llvm-project/llvm/test/CodeGen/WebAssembly
Thomas Lively cb32792210 [WebAssembly] Implement prototype v128.load{32,64}_zero instructions
Specified in https://github.com/WebAssembly/simd/pull/237, these
instructions load the first vector lane from memory and zero the other
lanes. Since these instructions are not officially part of the SIMD
proposal, they are only available on an opt-in basis via LLVM
intrinsics and clang builtin functions. If these instructions are
merged to the proposal, this implementation will change so that the
instructions will be generated from normal IR. At that point the
intrinsics and builtin functions would be removed.

This PR also changes the opcodes for the experimental f32x4.qfm{a,s}
instructions because their opcodes conflicted with those of the
v128.load{32,64}_zero instructions. The new opcodes were chosen to
match those used in V8.

Differential Revision: https://reviews.llvm.org/D84820
2020-08-03 13:54:00 -07:00
..
PR40172.ll [WebAssembly][FastISel] Do not assume naive CmpInst lowering 2019-01-14 22:03:43 +00:00
PR40267.ll [LegalizeVectorTypes] Allow illegal indices when splitting extract_vector_elt 2019-01-31 00:35:37 +00:00
PR41149.ll [SelectionDAG] Add scalarization of ABS node (PR41149) 2019-03-21 11:18:54 +00:00
PR41841.ll [WebAssembly] Don't assume that zext/sext result is i32/i64 in fast isel (PR41841) 2019-05-13 19:40:18 +00:00
add-prototypes-conflict.ll [WebAssembly] Fix a typo in a test file name 2019-07-09 01:21:04 +00:00
add-prototypes.ll [WebAssembly] Make sret parameter work with AddMissingPrototypes 2019-07-09 02:10:33 +00:00
address-offsets.ll [WebAssembly] Limit PIC support to the Emscripten target 2019-06-05 20:01:01 +00:00
aliases.ll [WebAssembly] MC: Fix for data aliases with offsets (getelementptr) 2020-06-17 16:25:50 -07:00
atomic-fence.ll [WebAssembly] Add atomic.fence instruction 2019-08-28 23:13:43 +00:00
atomic-fence.mir [WebAssembly] Adding 64-bit versions of all load & store ops. 2020-06-15 08:31:56 -07:00
atomic-mem-consistency.ll [WebAssembly] Remove uses of ThreadModel 2019-02-28 18:39:08 +00:00
atomic-rmw.ll [WebAssembly] Remove uses of ThreadModel 2019-02-28 18:39:08 +00:00
bulk-memory.ll [WebAssembly] Restore defaults for stores per memop 2019-09-18 23:18:16 +00:00
bulk-memory64.ll [WebAssembly] Added 64-bit memory.grow/size/copy/fill 2020-07-06 12:49:50 -07:00
byval.ll [WebAssembly] Replace all calls with generalized multivalue calls 2020-02-18 15:55:20 -08:00
call-pic.ll [WebAssembly] Replace all calls with generalized multivalue calls 2020-02-18 15:55:20 -08:00
call.ll [WebAssembly] Replace all calls with generalized multivalue calls 2020-02-18 15:55:20 -08:00
cfg-stackify-dbg-skip.ll [WebAssembly] Run ExplicitLocals pass after CFGStackify 2019-03-30 09:29:57 +00:00
cfg-stackify-dbg.mir [WebAssembly] Handle END_LOOP in unreachable BB in CFGStackify 2019-03-29 19:36:51 +00:00
cfg-stackify-eh.ll [WebAssembly] Fix getBottom for loops 2020-07-29 10:36:32 -07:00
cfg-stackify.ll Reland "[WebAssembly] Eliminate range checks on br_tables" 2020-06-03 14:04:59 -07:00
cfi.ll
clear-cache.ll Revert "Revert "Reland "[Support] make report_fatal_error `abort` instead of `exit`""" 2020-02-13 10:16:06 -08:00
comparisons-f32.ll [WebAssembly] Massive instruction renaming 2019-01-08 06:25:55 +00:00
comparisons-f64.ll [WebAssembly] Massive instruction renaming 2019-01-08 06:25:55 +00:00
comparisons-i32.ll [WebAssembly][FastISel] Do not assume naive CmpInst lowering 2019-01-14 22:03:43 +00:00
comparisons-i64.ll [WebAssembly][FastISel] Do not assume naive CmpInst lowering 2019-01-14 22:03:43 +00:00
conv-trap.ll [WebAssembly] Trapping fptoint builtins and intrinsics 2019-10-15 01:11:51 +00:00
conv.ll [WebAssembly] Massive instruction renaming 2019-01-08 06:25:55 +00:00
copysign-casts.ll [WebAssembly] Massive instruction renaming 2019-01-08 06:25:55 +00:00
cpus.ll [WebAssembly] Adding 64-bit versions of all load & store ops. 2020-06-15 08:31:56 -07:00
custom-sections.ll [WebAssembly] Add languages from debug info to producers section 2019-01-18 02:47:48 +00:00
dbgvalue.ll
dead-vreg.ll
debugtest-opt.ll [WebAssembly] Add int32 DW_OP_WASM_location variant 2020-04-16 16:32:17 -07:00
debugtrap.ll [WebAssembly] Lower llvm.debugtrap properly 2020-06-04 13:25:10 -07:00
divrem-constant.ll
eh-labels.mir Simplify MachineVerifier's block-successor verification. 2020-06-06 22:30:51 -04:00
eh-lsda.ll
exception.ll [WebAssembly] Fix a bug in finding matching EH pad 2020-05-28 19:46:11 -07:00
explicit-locals.mir [WebAssembly] Make returns variadic 2019-10-09 21:42:08 +00:00
export-name.ll [WebAssembly] Add new `export_name` clang attribute for controlling wasm export names 2019-12-11 11:54:57 -08:00
f16.ll [WebAssembly] Replace all calls with generalized multivalue calls 2020-02-18 15:55:20 -08:00
f32.ll [WebAssembly] Replace all calls with generalized multivalue calls 2020-02-18 15:55:20 -08:00
f64.ll [WebAssembly] Replace all calls with generalized multivalue calls 2020-02-18 15:55:20 -08:00
fast-isel-br-i1.ll
fast-isel-i24.ll [WebAssembly] Massive instruction renaming 2019-01-08 06:25:55 +00:00
fast-isel-i256.ll
fast-isel-noreg.ll [WebAssembly] Update CodeGen test expectations after rL354697. NFC 2019-02-23 00:07:39 +00:00
fast-isel.ll [WebAssembly] Massive instruction renaming 2019-01-08 06:25:55 +00:00
frem.ll [WebAssembly] Replace all calls with generalized multivalue calls 2020-02-18 15:55:20 -08:00
func.ll
function-bitcasts-varargs.ll [WebAssembly] Update CodeGen test expectations after rL354697. NFC 2019-02-23 00:07:39 +00:00
function-bitcasts.ll [WebAssembly] Replace all calls with generalized multivalue calls 2020-02-18 15:55:20 -08:00
function-info.mir [WebAssembly] Make returns variadic 2019-10-09 21:42:08 +00:00
function-pointer64.ll [WebAssembly] 64-bit (function) pointer fixes. 2020-07-16 14:10:22 -07:00
global.ll [WebAssembly] Replace all calls with generalized multivalue calls 2020-02-18 15:55:20 -08:00
global_dtors.ll [WebAssembly] Fix crash when @llvm.global_dtors is external 2019-03-01 00:12:13 +00:00
globl.ll
i32-load-store-alignment.ll Fix typo in comment 2019-01-09 14:20:20 +00:00
i32.ll [WebAssembly] Massive instruction renaming 2019-01-08 06:25:55 +00:00
i64-load-store-alignment.ll Fix typo in comment 2019-01-09 14:20:20 +00:00
i64.ll [WebAssembly] Massive instruction renaming 2019-01-08 06:25:55 +00:00
i128-returned.ll
i128.ll [WebAssembly] Update CodeGen test expectations after rL354697. NFC 2019-02-23 00:07:39 +00:00
ident.ll
immediates.ll
implicit-def.ll [WebAssembly] Disable MachineBlockPlacement pass 2019-03-05 20:35:34 +00:00
import-module.ll [WebAssembly] Add codegen support for the import_field attribute 2019-02-01 22:27:34 +00:00
indirect-import.ll Migrate function attribute "no-frame-pointer-elim"="false" to "frame-pointer"="none" as cleanups after D56351 2019-12-24 16:27:51 -08:00
indirectbr.ll [WebAssembly] Make BR_TABLE non-duplicable 2020-06-11 15:11:45 -07:00
inline-asm-m.ll
inline-asm-roundtrip.ll [WebAssembly] Massive instruction renaming 2019-01-08 06:25:55 +00:00
inline-asm.ll [WebAssembly] Massive instruction renaming 2019-01-08 06:25:55 +00:00
inlineasm-output-template.ll [AsmPrinter] refactor to support %c w/ GlobalAddress' 2019-04-26 18:45:04 +00:00
irreducible-cfg-exceptions.ll [WebAssembly] Improve readability of irreducibility tests 2019-03-19 05:10:39 +00:00
irreducible-cfg.ll [WebAssembly] Optimize the number of routing blocks in FixIrreducibleCFG 2019-03-30 01:31:11 +00:00
irreducible-cfg.mir [WebAssembly] Optimize the number of routing blocks in FixIrreducibleCFG 2019-03-30 01:31:11 +00:00
legalize.ll [WebAssembly] Massive instruction renaming 2019-01-08 06:25:55 +00:00
libcalls.ll [WebAssembly] Replace all calls with generalized multivalue calls 2020-02-18 15:55:20 -08:00
lit.local.cfg
llround-conv-i32.ll [WebAssembly] Replace all calls with generalized multivalue calls 2020-02-18 15:55:20 -08:00
load-ext-atomic.ll [WebAssembly] Adding 64-bit versions of all load & store ops. 2020-06-15 08:31:56 -07:00
load-ext.ll [WebAssembly] Adding 64-bit versions of all load & store ops. 2020-06-15 08:31:56 -07:00
load-store-i1.ll [WebAssembly] Adding 64-bit versions of all load & store ops. 2020-06-15 08:31:56 -07:00
load-store-pic.ll [WebAssembly] Limit PIC support to the Emscripten target 2019-06-05 20:01:01 +00:00
load.ll [WebAssembly] Adding 64-bit versions of all load & store ops. 2020-06-15 08:31:56 -07:00
lower-em-ehsjlj-options.ll [WebAssembly] Replace all calls with generalized multivalue calls 2020-02-18 15:55:20 -08:00
lower-em-exceptions-allowed.ll [Target] As part of using inclusive language within the llvm project, 2020-06-20 00:06:39 -07:00
lower-em-exceptions-resume-only.ll [WebAssembly] Fix resume-only case in Emscripten EH 2020-01-23 18:13:52 -08:00
lower-em-exceptions.ll [WebAssembly] Fix conflict between ret legalization and sjlj 2019-08-05 21:36:09 +00:00
lower-em-sjlj-alias.ll [WebAssembly] Compare functions by names in Emscripten Sjlj 2019-09-03 22:26:49 +00:00
lower-em-sjlj-debuginfo.ll [WebAssembly] Use dummy debug info in Emscripten SjLj 2020-04-09 18:44:50 -07:00
lower-em-sjlj-sret.ll [WebAssembly] Combine emscripten SjLj tests 2019-08-26 21:41:17 +00:00
lower-em-sjlj.ll [WebAssembly] Use dummy debug info in Emscripten SjLj 2020-04-09 18:44:50 -07:00
lower-global-dtors.ll [WebAssembly] Fix the order of destructors in the LowerGlobalDtors pass. 2020-03-26 16:19:02 -07:00
main-declaration.ll [WebAssembly] Update CodeGen test expectations after rL354697. NFC 2019-02-23 00:07:39 +00:00
main-no-args.ll [WebAssembly] Update CodeGen test expectations after rL354697. NFC 2019-02-23 00:07:39 +00:00
main-three-args.ll [WebAssembly] Re-enable main-function signature rewriting 2019-01-29 10:53:42 +00:00
main-with-args.ll [WebAssembly] Re-enable main-function signature rewriting 2019-01-29 10:53:42 +00:00
mem-intrinsics.ll [WebAssembly] Replace all calls with generalized multivalue calls 2020-02-18 15:55:20 -08:00
memory-addr32.ll [WebAssembly] Remove tests for old intrinsics. 2019-01-14 18:25:29 +00:00
memory-addr64.ll [WebAssembly] Added 64-bit memory.grow/size/copy/fill 2020-07-06 12:49:50 -07:00
muloti4.ll [WebAssembly] Update CodeGen test expectations after rL354697. NFC 2019-02-23 00:07:39 +00:00
multi-return.ll [WebAssembly] Track frame registers through VReg and local allocation 2020-01-17 17:23:56 -08:00
multivalue-stackify.ll [WebAssembly] Fix RegStackify and ExplicitLocals to handle multivalue 2020-02-18 14:56:09 -08:00
multivalue-stackify.py [WebAssembly] Fix RegStackify and ExplicitLocals to handle multivalue 2020-02-18 14:56:09 -08:00
multivalue.ll [WebAssembly] Replace all calls with generalized multivalue calls 2020-02-18 15:55:20 -08:00
mutable-globals.ll [WebAssembly] Add mutable globals feature 2019-03-29 22:00:18 +00:00
negative-base-reg.ll Migrate function attribute "no-frame-pointer-elim"="false" to "frame-pointer"="none" as cleanups after D56351 2019-12-24 16:27:51 -08:00
null-streamer.ll
offset-atomics.ll Revert "Revert "Reland "[Support] make report_fatal_error `abort` instead of `exit`""" 2020-02-13 10:16:06 -08:00
offset-fastisel.ll [WebAssembly] Massive instruction renaming 2019-01-08 06:25:55 +00:00
offset-folding.ll
offset.ll [SelectionDAGBuilder] Stop setting alignment to one for hidden sret values 2020-05-04 14:44:39 +01:00
phi.ll [WebAssembly] Make LBB markers not affected by test order 2019-04-23 21:17:03 +00:00
reference-types.ll [WebAssembly] Add reference types target feature 2020-01-24 14:26:27 -08:00
reg-argument.mir [WebAssembly] Make returns variadic 2019-10-09 21:42:08 +00:00
reg-copy.mir [WebAssembly] Make returns variadic 2019-10-09 21:42:08 +00:00
reg-stackify.ll [DAGCombiner] Rebuild (setcc x, y, ==) from (xor (xor x, y), 1) 2020-07-15 07:34:22 +00:00
return-address-emscripten.ll [WebAssembly] Replace all calls with generalized multivalue calls 2020-02-18 15:55:20 -08:00
return-address-unknown.ll [WebAssembly] Implement __builtin_return_address for emscripten 2019-05-23 01:24:01 +00:00
return-int32.ll [WebAssembly] Massive instruction renaming 2019-01-08 06:25:55 +00:00
return-void.ll
returned.ll [WebAssembly] Replace all calls with generalized multivalue calls 2020-02-18 15:55:20 -08:00
select.ll [WebAssembly] Fix miscompile of select with and 2019-11-15 16:22:01 -08:00
signext-arg.ll [WebAssembly] Replace all calls with generalized multivalue calls 2020-02-18 15:55:20 -08:00
signext-inreg.ll [WebAssembly] Massive instruction renaming 2019-01-08 06:25:55 +00:00
signext-zeroext.ll [WebAssembly] Update CodeGen test expectations after rL354697. NFC 2019-02-23 00:07:39 +00:00
simd-arith.ll [WebAssembly] Prefer v128.const for constant splats 2020-07-10 18:27:52 -07:00
simd-bitcasts.ll [WebAssembly] Enable recently implemented SIMD operations 2020-02-04 18:36:32 -08:00
simd-build-pair.ll [WebAssembly] Enable recently implemented SIMD operations 2020-02-04 18:36:32 -08:00
simd-build-vector.ll [WebAssembly] Update latest implemented SIMD instructions 2020-05-15 10:53:02 -07:00
simd-comparisons.ll [WebAssembly] Enable recently implemented SIMD operations 2020-02-04 18:36:32 -08:00
simd-conversions.ll [WebAssembly] Renumber SIMD opcodes 2020-05-01 17:20:49 -07:00
simd-extended-extract.ll [WebAssembly] Enable recently implemented SIMD operations 2020-02-04 18:36:32 -08:00
simd-illegal-signext.ll [WebAssembly] Implement ReplaceNodeResults to fix a SIMD crash 2019-05-23 18:09:26 +00:00
simd-intrinsics.ll [WebAssembly] Remove intrinsics for SIMD widening ops 2020-07-28 18:25:55 -07:00
simd-load-splat.ll Reland "[WebAssembly] Handle multiple loads of splatted loads" 2019-10-31 20:02:24 -07:00
simd-load-store-alignment.ll [NFC][WebAssembly] Add tests for alignment on new SIMD loads 2020-06-09 13:46:12 -07:00
simd-load-zero-offset.ll [WebAssembly] Implement prototype v128.load{32,64}_zero instructions 2020-08-03 13:54:00 -07:00
simd-nested-shuffles.ll [WebAssembly] Fix invalid machine instrs in -O0, verify in tests 2018-12-21 06:58:15 +00:00
simd-nonconst-sext.ll [WebAssembly] Fix ISel crash in SIGN_EXTEND_INREG lowering 2020-06-03 15:36:44 -07:00
simd-noopt.ll [WebAssembly][NFC] Elaborate on simd-noopt test comment 2019-01-02 20:43:08 +00:00
simd-offset.ll [WebAssembly] Implement truncating vector stores 2020-07-28 17:46:45 -07:00
simd-reductions.ll [WebAssembly] Optimize ISel for SIMD Boolean reductions 2019-06-19 00:02:13 +00:00
simd-scalar-to-vector.ll [WebAssembly] Enable recently implemented SIMD operations 2020-02-04 18:36:32 -08:00
simd-select.ll [WebAssembly] Implement v128.select 2020-07-16 11:37:25 -07:00
simd-sext-inreg.ll [WebAssembly] Simplify extract_vector lowering 2020-02-25 13:54:48 -08:00
simd-shift-complex-splats.ll [WebAssembly][NFC] Simplify vector shift lowering and add tests 2020-07-10 00:18:59 -07:00
simd-shuffle-bitcast.ll [NFC] Fix typo in triples from unkown to unknown 2020-07-02 16:21:54 +08:00
simd-unsupported.ll [WebAssembly] Implement i64x2.mul and remove i8x16.mul 2020-05-19 12:50:44 -07:00
simd-widening.ll [WebAssembly] Remove intrinsics for SIMD widening ops 2020-07-28 18:25:55 -07:00
simd.ll [WebAssembly] Prefer v128.const for constant splats 2020-07-10 18:27:52 -07:00
stack-alignment.ll [WebAssembly] Adding 64-bit versions of __stack_pointer and other globals 2020-06-25 15:52:44 -07:00
stack-insts.ll Reland "[WebAssembly] Eliminate range checks on br_tables" 2020-06-03 14:04:59 -07:00
stack-protector.ll [WebAssembly] Generate unreachable after __stack_chk_fail 2020-07-08 01:02:05 -07:00
stackified-debug.ll [WebAssembly] Added Debug Fixup pass 2020-05-14 13:14:45 -07:00
store-trunc-atomic.ll [WebAssembly] Adding 64-bit versions of all load & store ops. 2020-06-15 08:31:56 -07:00
store-trunc.ll [WebAssembly] Adding 64-bit versions of all load & store ops. 2020-06-15 08:31:56 -07:00
store.ll [WebAssembly] Adding 64-bit versions of all load & store ops. 2020-06-15 08:31:56 -07:00
swiftcc.ll [WebAssembly] Support swiftself and swifterror for WebAssembly target 2020-03-19 17:39:52 -07:00
switch-in-loop.ll [WebAssembly] Make BR_TABLE non-duplicable 2020-06-11 15:11:45 -07:00
switch-unreachable-default.ll [WebAssembly] Fix bug in FixBrTables and use branch analysis utils 2020-06-17 12:34:45 -07:00
switch.ll [WebAssembly] Fixed 64-bit indices in br_table 2020-07-30 10:52:16 -07:00
tailcall.ll [WebAssembly] Replace all calls with generalized multivalue calls 2020-02-18 15:55:20 -08:00
target-features-tls.ll [WebAssembly] Disallow 'shared-mem' rather than 'atomics' 2020-05-08 13:52:39 -07:00
target-features.ll [WebAssembly] Update bleeding-edge CPU features 2020-01-24 14:27:35 -08:00
tls-general-dynamic.ll Revert "Revert "Reland "[Support] make report_fatal_error `abort` instead of `exit`""" 2020-02-13 10:16:06 -08:00
tls-local-exec.ll [WebAssembly] Compile all TLS on Emscripten as local-exec 2019-07-16 22:22:08 +00:00
umulo-128-legalisation-lowering.ll [WebAssembly] Update CodeGen test expectations after rL354697. NFC 2019-02-23 00:07:39 +00:00
umulo-i64.ll [WebAssembly] Update CodeGen test expectations after rL354697. NFC 2019-02-23 00:07:39 +00:00
unreachable.ll [WebAssembly] Update CodeGen test expectations after rL354697. NFC 2019-02-23 00:07:39 +00:00
unsupported-function-bitcasts.ll [WebAssembly] Replace all calls with generalized multivalue calls 2020-02-18 15:55:20 -08:00
unused-argument.ll [WebAssembly] Replace all calls with generalized multivalue calls 2020-02-18 15:55:20 -08:00
userstack.ll [WebAssembly] Adding 64-bit versions of __stack_pointer and other globals 2020-06-25 15:52:44 -07:00
varargs.ll [WebAssembly] Properly align fp128 arguments in outgoing varargs arguments 2019-02-26 05:20:19 +00:00
vector-sdiv.ll
vtable.ll [WebAssembly] Remove uses of ThreadModel 2019-02-28 18:39:08 +00:00
wasmehprepare.ll [WebAssembly] Fix wasm.lsda() optimization in WasmEHPrepare 2020-04-04 07:02:50 -07:00