diff options
author | Derek Schuff <dschuff@google.com> | 2016-08-02 23:16:09 +0000 |
---|---|---|
committer | Derek Schuff <dschuff@google.com> | 2016-08-02 23:16:09 +0000 |
commit | 39bf39f35c208109f6d5907708ee53dee2878bed (patch) | |
tree | 92c88047132b9387bfac686662ba7d8a3b9e0abc /llvm/lib/Target/WebAssembly/WebAssemblyArgumentMove.cpp | |
parent | 02a1e973a80adce224cd950bb2b5b2c78622829a (diff) | |
download | bcm5719-llvm-39bf39f35c208109f6d5907708ee53dee2878bed.tar.gz bcm5719-llvm-39bf39f35c208109f6d5907708ee53dee2878bed.zip |
[WebAssembly] Initial SIMD128 support.
Kicks off the implementation of wasm SIMD128 support (spec:
https://github.com/stoklund/portable-simd/blob/master/portable-simd.md),
adding support for add, sub, mul for i8x16, i16x8, i32x4, and f32x4.
The spec is WIP, and might change in the near future.
Patch by João Porto
Differential Revision: https://reviews.llvm.org/D22686
llvm-svn: 277543
Diffstat (limited to 'llvm/lib/Target/WebAssembly/WebAssemblyArgumentMove.cpp')
-rw-r--r-- | llvm/lib/Target/WebAssembly/WebAssemblyArgumentMove.cpp | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/llvm/lib/Target/WebAssembly/WebAssemblyArgumentMove.cpp b/llvm/lib/Target/WebAssembly/WebAssemblyArgumentMove.cpp index 5887f45371f..0ccc8131715 100644 --- a/llvm/lib/Target/WebAssembly/WebAssemblyArgumentMove.cpp +++ b/llvm/lib/Target/WebAssembly/WebAssemblyArgumentMove.cpp @@ -26,9 +26,10 @@ /// //===----------------------------------------------------------------------===// -#include "WebAssembly.h" #include "MCTargetDesc/WebAssemblyMCTargetDesc.h" +#include "WebAssembly.h" #include "WebAssemblyMachineFunctionInfo.h" +#include "WebAssemblySubtarget.h" #include "llvm/CodeGen/MachineBlockFrequencyInfo.h" #include "llvm/CodeGen/MachineRegisterInfo.h" #include "llvm/CodeGen/Passes.h" @@ -71,6 +72,10 @@ static bool IsArgument(const MachineInstr &MI) { case WebAssembly::ARGUMENT_I64: case WebAssembly::ARGUMENT_F32: case WebAssembly::ARGUMENT_F64: + case WebAssembly::ARGUMENT_v16i8: + case WebAssembly::ARGUMENT_v8i16: + case WebAssembly::ARGUMENT_v4i32: + case WebAssembly::ARGUMENT_v4f32: return true; default: return false; |