summaryrefslogtreecommitdiff
path: root/src/tools/fuzzing.h
diff options
context:
space:
mode:
authorThomas Lively <7121787+tlively@users.noreply.github.com>2019-09-24 16:57:57 -0700
committerGitHub <noreply@github.com>2019-09-24 16:57:57 -0700
commited2c3cd0892be8a1380a6c6bfddfa3492c16f91c (patch)
tree32e5f1499f69caa359c130c92e1d28153e7506d3 /src/tools/fuzzing.h
parent034ed383a968204427befda3f9fb8bb5d2f63f75 (diff)
downloadbinaryen-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.h18
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;
}