llvm-project/clang/test
Thomas Lively 8e3e56f2a3 [WebAssembly] Add wasm-specific vector shuffle builtin and intrinsic
Summary:

Although using `__builtin_shufflevector` and the `shufflevector`
instruction works fine, they are not opaque to the optimizer. As a
result, DAGCombine can potentially reduce the number of shuffles and
change the shuffle masks. This is unexpected behavior for users of the
WebAssembly SIMD intrinsics who have crafted their shuffles to
optimize the code generated by engines. This patch solves the problem
by adding a new shuffle intrinsic that is opaque to the optimizers in
line with the decision of the WebAssembly SIMD contributors at
https://github.com/WebAssembly/simd/issues/196#issuecomment-622494748. In
the future we may implement custom DAG combines to properly optimize
shuffles and replace this solution.

Reviewers: aheejin, dschuff

Subscribers: sbc100, jgravelle-google, hiraditya, sunfish, cfe-commits, llvm-commits

Tags: #clang, #llvm

Differential Revision: https://reviews.llvm.org/D66983
2020-05-11 10:01:55 -07:00
..
ARCMT
AST [AST] Preserve the type in RecoveryExprs for broken function calls. 2020-05-11 08:46:18 +02:00
ASTMerge
Analysis [analyzer] Stability improvement for IteratorModeling 2020-05-06 14:16:39 +03:00
CXX Fix parsing of enum-base to follow C++11 rules. 2020-05-08 19:32:00 -07:00
ClangScanDeps
CodeCompletion [AST] Preserve the type in RecoveryExprs for broken function calls. 2020-05-11 08:46:18 +02:00
CodeGen [WebAssembly] Add wasm-specific vector shuffle builtin and intrinsic 2020-05-11 10:01:55 -07:00
CodeGenCUDA [clang][codegen] Hoist parameter attribute setting in function prolog. 2020-05-05 15:31:51 -04:00
CodeGenCXX Implement _ExtInt ABI for all ABIs in Clang, enable type for ABIs 2020-05-06 06:52:18 -07:00
CodeGenCoroutines [CodeGen] Add an alignment attribute to all sret parameters 2020-03-24 15:31:57 -04:00
CodeGenHIP
CodeGenObjC [CodeGen][ObjC] Don't try to retain a __unsafe_unretained ARC pointer 2020-05-06 12:47:17 -07:00
CodeGenObjCXX [Frontend] Drop unneeded CC1 options 2020-04-21 19:59:28 -07:00
CodeGenOpenCL Reapply "Add support for #pragma float_control" with buildbot fixes 2020-05-04 05:51:25 -07:00
CodeGenOpenCLCXX [CodeGen] Add an alignment attribute to all sret parameters 2020-03-24 15:31:57 -04:00
CodeGenSYCL [SYCL] Update __builtin_unique_stable_name for other backends. 2020-04-17 07:54:18 -07:00
Coverage
CoverageMapping Reland: [Coverage] Revise format to reduce binary size 2020-02-28 18:12:04 -08:00
Driver [Clang] Pass -z max-page-size to linker for Fuchsia 2020-05-09 13:44:20 -07:00
FixIt
Format
Frontend [Fixed Point] Add triples to test cases. 2020-04-08 16:31:36 +02:00
Headers Reapply "Add support for #pragma float_control" with buildbot fixes 2020-05-04 05:51:25 -07:00
Import [CodeGen] Emit destructor calls to destruct compound literals 2020-03-10 14:08:28 -07:00
Index [AST] Preserve the type in RecoveryExprs for broken function calls. 2020-05-11 08:46:18 +02:00
Integration
InterfaceStubs [llvm][clang][IFS] Enhancing the llvm-ifs yaml format for symbol lists. 2020-04-01 10:49:06 -04:00
Layout [MS] Fix packed struct layout for arrays of aligned non-record types 2020-04-14 18:34:52 -07:00
Lexer Fix bugs when an included file name is typo corrected. 2020-05-08 13:33:39 -04:00
Misc [Sema] Put existing warning under -Wexcess-initializers 2020-05-06 11:28:40 +01:00
Modules Improve diagnostics for missing import / #include of module. 2020-04-28 18:41:14 -07:00
OpenMP [OPENMP]Consider 'omp_null_allocator' as a predefined allocator. 2020-05-07 10:11:06 -04:00
PCH [OPENMP]Consider 'omp_null_allocator' as a predefined allocator. 2020-05-07 10:11:06 -04:00
Parser Enforce the C++11 anonymous enum bitfields check even for 2020-05-10 14:03:50 -07:00
ParserSYCL [SYCL] Implement __builtin_unique_stable_name. 2020-03-25 07:01:50 -07:00
Preprocessor [AArch64] Add NVIDIA Carmel support 2020-05-04 13:52:30 +01:00
Profile Reland: [Coverage] Revise format to reduce binary size 2020-02-28 18:12:04 -08:00
Refactor
Rewriter
Sema Ensure aux-target specific builtins get validated. 2020-05-07 13:22:10 -07:00
SemaCUDA Revert D77954 -- it breaks Eigen & Tensorflow. 2020-05-05 14:07:31 -07:00
SemaCXX Add a missing test file for recovery expressions. 2020-05-11 09:23:32 +02:00
SemaObjC Properly implement 'enum class' parsing. 2020-05-10 13:21:04 -07:00
SemaObjCXX [AST] dont invaliate VarDecl when the initializer contains errors. 2020-04-21 10:53:35 +02:00
SemaOpenCL [AST] Use PrintingPolicy for format string diagnosis 2020-04-28 23:43:48 +01:00
SemaOpenCLCXX [OpenCL] Fixed test for the cast operators. 2020-04-28 12:46:36 +01:00
SemaSYCL [SYCL] Driver option to select SYCL version 2020-03-07 18:28:54 +03:00
SemaTemplate Properly implement 'enum class' parsing. 2020-05-10 13:21:04 -07:00
TableGen
Templight
Tooling [PowerPC] Delete PPCMachObjectWriter and powerpc{,64}-apple-darwin 2020-03-05 11:05:26 -08:00
Unit Revert a few unsuccessful attempts at fixing bots. 2020-04-13 17:09:21 -04:00
VFS
clang-rename
utils/update_cc_test_checks
.clang-format
CMakeLists.txt Stop passing site cfg files via --param to llvm-lit. 2020-04-07 08:20:40 -04:00
TestRunner.sh
cxx-sections.data
lit.cfg.py Fix an indent. 2020-04-13 11:54:00 -04:00
lit.site.cfg.py.in Revert "Temporarily revert "build: use `find_package(Python3)` if available"" 2020-04-29 01:38:08 +00:00
make_test_dirs.pl