diff options
author | Thomas Lively <7121787+tlively@users.noreply.github.com> | 2019-09-24 16:57:57 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-09-24 16:57:57 -0700 |
commit | ed2c3cd0892be8a1380a6c6bfddfa3492c16f91c (patch) | |
tree | 32e5f1499f69caa359c130c92e1d28153e7506d3 /src/tools/fuzzing.h | |
parent | 034ed383a968204427befda3f9fb8bb5d2f63f75 (diff) | |
download | binaryen-ed2c3cd0892be8a1380a6c6bfddfa3492c16f91c.tar.gz binaryen-ed2c3cd0892be8a1380a6c6bfddfa3492c16f91c.tar.bz2 binaryen-ed2c3cd0892be8a1380a6c6bfddfa3492c16f91c.zip |
SIMD load and extend instructions (#2353)
Adds support for the new load and extend instructions. Also updates
from C++11 to C++17 in order to use generic lambdas in the interpreter
implementation.
Diffstat (limited to 'src/tools/fuzzing.h')
-rw-r--r-- | src/tools/fuzzing.h | 18 |
1 files changed, 16 insertions, 2 deletions
diff --git a/src/tools/fuzzing.h b/src/tools/fuzzing.h index 39cff56d5..45ddc59b1 100644 --- a/src/tools/fuzzing.h +++ b/src/tools/fuzzing.h @@ -2492,8 +2492,16 @@ private: } Expression* makeSIMDLoad() { - SIMDLoadOp op = pick( - LoadSplatVec8x16, LoadSplatVec16x8, LoadSplatVec32x4, LoadSplatVec64x2); + SIMDLoadOp op = pick(LoadSplatVec8x16, + LoadSplatVec16x8, + LoadSplatVec32x4, + LoadSplatVec64x2, + LoadExtSVec8x8ToVecI16x8, + LoadExtUVec8x8ToVecI16x8, + LoadExtSVec16x4ToVecI32x4, + LoadExtUVec16x4ToVecI32x4, + LoadExtSVec32x2ToVecI64x2, + LoadExtUVec32x2ToVecI64x2); Address offset = logify(get()); Address align; switch (op) { @@ -2507,6 +2515,12 @@ private: align = pick(1, 2, 4); break; case LoadSplatVec64x2: + case LoadExtSVec8x8ToVecI16x8: + case LoadExtUVec8x8ToVecI16x8: + case LoadExtSVec16x4ToVecI32x4: + case LoadExtUVec16x4ToVecI32x4: + case LoadExtSVec32x2ToVecI64x2: + case LoadExtUVec32x2ToVecI64x2: align = pick(1, 2, 4, 8); break; } |