summaryrefslogtreecommitdiff
path: root/test/simd.wast
diff options
context:
space:
mode:
Diffstat (limited to 'test/simd.wast')
-rw-r--r--test/simd.wast793
1 files changed, 793 insertions, 0 deletions
diff --git a/test/simd.wast b/test/simd.wast
new file mode 100644
index 000000000..79ecaeeaf
--- /dev/null
+++ b/test/simd.wast
@@ -0,0 +1,793 @@
+(module
+ (func $v128.load (param $0 i32) (result v128)
+ (v128.load offset=0 align=16
+ (get_local $0)
+ )
+ )
+ (func $v128.store (param $0 i32) (param $1 v128)
+ (v128.store offset=0 align=16
+ (get_local $0)
+ (get_local $1)
+ )
+ )
+ (func $v128.const (result v128)
+ (v128.const i32 1 2 3 4)
+ )
+ (func $v128.shuffle (param $0 v128) (param $1 v128) (result v128)
+ (v8x16.shuffle 0 17 2 19 4 21 6 23 8 25 10 27 12 29 14 31
+ (get_local $0)
+ (get_local $1)
+ )
+ )
+ (func $i8x16.splat (param $0 i32) (result v128)
+ (i8x16.splat
+ (get_local $0)
+ )
+ )
+ (func $i8x16.extract_lane_s (param $0 v128) (result i32)
+ (i8x16.extract_lane_s 0
+ (get_local $0)
+ )
+ )
+ (func $i8x16.extract_lane_u (param $0 v128) (result i32)
+ (i8x16.extract_lane_u 0
+ (get_local $0)
+ )
+ )
+ (func $i8x16.replace_lane (param $0 v128) (param $1 i32) (result v128)
+ (i8x16.replace_lane 0
+ (get_local $0)
+ (get_local $1)
+ )
+ )
+ (func $i16x8.splat (param $0 i32) (result v128)
+ (i16x8.splat
+ (get_local $0)
+ )
+ )
+ (func $i16x8.extract_lane_s (param $0 v128) (result i32)
+ (i16x8.extract_lane_s 0
+ (get_local $0)
+ )
+ )
+ (func $i16x8.extract_lane_u (param $0 v128) (result i32)
+ (i16x8.extract_lane_u 0
+ (get_local $0)
+ )
+ )
+ (func $i16x8.replace_lane (param $0 v128) (param $1 i32) (result v128)
+ (i16x8.replace_lane 0
+ (get_local $0)
+ (get_local $1)
+ )
+ )
+ (func $i32x4.splat (param $0 i32) (result v128)
+ (i32x4.splat
+ (get_local $0)
+ )
+ )
+ (func $i32x4.extract_lane (param $0 v128) (result i32)
+ (i32x4.extract_lane 0
+ (get_local $0)
+ )
+ )
+ (func $i32x4.replace_lane (param $0 v128) (param $1 i32) (result v128)
+ (i32x4.replace_lane 0
+ (get_local $0)
+ (get_local $1)
+ )
+ )
+ (func $i64x2.extract_lane (param $0 v128) (result i64)
+ (i64x2.extract_lane 0
+ (get_local $0)
+ )
+ )
+ (func $i64x2.replace_lane (param $0 v128) (param $1 i64) (result v128)
+ (i64x2.replace_lane 0
+ (get_local $0)
+ (get_local $1)
+ )
+ )
+ (func $f32x4.splat (param $0 f32) (result v128)
+ (f32x4.splat
+ (get_local $0)
+ )
+ )
+ (func $f32x4.extract_lane (param $0 v128) (result f32)
+ (f32x4.extract_lane 0
+ (get_local $0)
+ )
+ )
+ (func $f32x4.replace_lane (param $0 v128) (param $1 f32) (result v128)
+ (f32x4.replace_lane 0
+ (get_local $0)
+ (get_local $1)
+ )
+ )
+ (func $f64x2.splat (param $0 f64) (result v128)
+ (f64x2.splat
+ (get_local $0)
+ )
+ )
+ (func $f64x2.extract_lane (param $0 v128) (result f64)
+ (f64x2.extract_lane 0
+ (get_local $0)
+ )
+ )
+ (func $f64x2.replace_lane (param $0 v128) (param $1 f64) (result v128)
+ (f64x2.replace_lane 0
+ (get_local $0)
+ (get_local $1)
+ )
+ )
+ (func $i8x16.eq (param $0 v128) (param $1 v128) (result v128)
+ (i8x16.eq
+ (get_local $0)
+ (get_local $1)
+ )
+ )
+ (func $i8x16.ne (param $0 v128) (param $1 v128) (result v128)
+ (i8x16.ne
+ (get_local $0)
+ (get_local $1)
+ )
+ )
+ (func $i8x16.lt_s (param $0 v128) (param $1 v128) (result v128)
+ (i8x16.lt_s
+ (get_local $0)
+ (get_local $1)
+ )
+ )
+ (func $i8x16.lt_u (param $0 v128) (param $1 v128) (result v128)
+ (i8x16.lt_u
+ (get_local $0)
+ (get_local $1)
+ )
+ )
+ (func $i8x16.gt_s (param $0 v128) (param $1 v128) (result v128)
+ (i8x16.gt_s
+ (get_local $0)
+ (get_local $1)
+ )
+ )
+ (func $i8x16.gt_u (param $0 v128) (param $1 v128) (result v128)
+ (i8x16.gt_u
+ (get_local $0)
+ (get_local $1)
+ )
+ )
+ (func $i8x16.le_s (param $0 v128) (param $1 v128) (result v128)
+ (i8x16.le_s
+ (get_local $0)
+ (get_local $1)
+ )
+ )
+ (func $i8x16.le_u (param $0 v128) (param $1 v128) (result v128)
+ (i8x16.le_u
+ (get_local $0)
+ (get_local $1)
+ )
+ )
+ (func $i8x16.ge_s (param $0 v128) (param $1 v128) (result v128)
+ (i8x16.ge_s
+ (get_local $0)
+ (get_local $1)
+ )
+ )
+ (func $i8x16.ge_u (param $0 v128) (param $1 v128) (result v128)
+ (i8x16.ge_u
+ (get_local $0)
+ (get_local $1)
+ )
+ )
+ (func $i16x8.eq (param $0 v128) (param $1 v128) (result v128)
+ (i16x8.eq
+ (get_local $0)
+ (get_local $1)
+ )
+ )
+ (func $i16x8.ne (param $0 v128) (param $1 v128) (result v128)
+ (i16x8.ne
+ (get_local $0)
+ (get_local $1)
+ )
+ )
+ (func $i16x8.lt_s (param $0 v128) (param $1 v128) (result v128)
+ (i16x8.lt_s
+ (get_local $0)
+ (get_local $1)
+ )
+ )
+ (func $i16x8.lt_u (param $0 v128) (param $1 v128) (result v128)
+ (i16x8.lt_u
+ (get_local $0)
+ (get_local $1)
+ )
+ )
+ (func $i16x8.gt_s (param $0 v128) (param $1 v128) (result v128)
+ (i16x8.gt_s
+ (get_local $0)
+ (get_local $1)
+ )
+ )
+ (func $i16x8.gt_u (param $0 v128) (param $1 v128) (result v128)
+ (i16x8.gt_u
+ (get_local $0)
+ (get_local $1)
+ )
+ )
+ (func $i16x8.le_s (param $0 v128) (param $1 v128) (result v128)
+ (i16x8.le_s
+ (get_local $0)
+ (get_local $1)
+ )
+ )
+ (func $i16x8.le_u (param $0 v128) (param $1 v128) (result v128)
+ (i16x8.le_u
+ (get_local $0)
+ (get_local $1)
+ )
+ )
+ (func $i16x8.ge_s (param $0 v128) (param $1 v128) (result v128)
+ (i16x8.ge_s
+ (get_local $0)
+ (get_local $1)
+ )
+ )
+ (func $i16x8.ge_u (param $0 v128) (param $1 v128) (result v128)
+ (i16x8.ge_u
+ (get_local $0)
+ (get_local $1)
+ )
+ )
+ (func $i32x4.eq (param $0 v128) (param $1 v128) (result v128)
+ (i32x4.eq
+ (get_local $0)
+ (get_local $1)
+ )
+ )
+ (func $i32x4.ne (param $0 v128) (param $1 v128) (result v128)
+ (i32x4.ne
+ (get_local $0)
+ (get_local $1)
+ )
+ )
+ (func $i32x4.lt_s (param $0 v128) (param $1 v128) (result v128)
+ (i32x4.lt_s
+ (get_local $0)
+ (get_local $1)
+ )
+ )
+ (func $i32x4.lt_u (param $0 v128) (param $1 v128) (result v128)
+ (i32x4.lt_u
+ (get_local $0)
+ (get_local $1)
+ )
+ )
+ (func $i32x4.gt_s (param $0 v128) (param $1 v128) (result v128)
+ (i32x4.gt_s
+ (get_local $0)
+ (get_local $1)
+ )
+ )
+ (func $i32x4.gt_u (param $0 v128) (param $1 v128) (result v128)
+ (i32x4.gt_u
+ (get_local $0)
+ (get_local $1)
+ )
+ )
+ (func $i32x4.le_s (param $0 v128) (param $1 v128) (result v128)
+ (i32x4.le_s
+ (get_local $0)
+ (get_local $1)
+ )
+ )
+ (func $i32x4.le_u (param $0 v128) (param $1 v128) (result v128)
+ (i32x4.le_u
+ (get_local $0)
+ (get_local $1)
+ )
+ )
+ (func $i32x4.ge_s (param $0 v128) (param $1 v128) (result v128)
+ (i32x4.ge_s
+ (get_local $0)
+ (get_local $1)
+ )
+ )
+ (func $i32x4.ge_u (param $0 v128) (param $1 v128) (result v128)
+ (i32x4.ge_u
+ (get_local $0)
+ (get_local $1)
+ )
+ )
+ (func $f32x4.eq (param $0 v128) (param $1 v128) (result v128)
+ (f32x4.eq
+ (get_local $0)
+ (get_local $1)
+ )
+ )
+ (func $f32x4.ne (param $0 v128) (param $1 v128) (result v128)
+ (f32x4.ne
+ (get_local $0)
+ (get_local $1)
+ )
+ )
+ (func $f32x4.lt (param $0 v128) (param $1 v128) (result v128)
+ (f32x4.lt
+ (get_local $0)
+ (get_local $1)
+ )
+ )
+ (func $f32x4.gt (param $0 v128) (param $1 v128) (result v128)
+ (f32x4.gt
+ (get_local $0)
+ (get_local $1)
+ )
+ )
+ (func $f32x4.le (param $0 v128) (param $1 v128) (result v128)
+ (f32x4.le
+ (get_local $0)
+ (get_local $1)
+ )
+ )
+ (func $f32x4.ge (param $0 v128) (param $1 v128) (result v128)
+ (f32x4.ge
+ (get_local $0)
+ (get_local $1)
+ )
+ )
+ (func $f64x2.eq (param $0 v128) (param $1 v128) (result v128)
+ (f64x2.eq
+ (get_local $0)
+ (get_local $1)
+ )
+ )
+ (func $f64x2.ne (param $0 v128) (param $1 v128) (result v128)
+ (f64x2.ne
+ (get_local $0)
+ (get_local $1)
+ )
+ )
+ (func $f64x2.lt (param $0 v128) (param $1 v128) (result v128)
+ (f64x2.lt
+ (get_local $0)
+ (get_local $1)
+ )
+ )
+ (func $f64x2.gt (param $0 v128) (param $1 v128) (result v128)
+ (f64x2.gt
+ (get_local $0)
+ (get_local $1)
+ )
+ )
+ (func $f64x2.le (param $0 v128) (param $1 v128) (result v128)
+ (f64x2.le
+ (get_local $0)
+ (get_local $1)
+ )
+ )
+ (func $f64x2.ge (param $0 v128) (param $1 v128) (result v128)
+ (f64x2.ge
+ (get_local $0)
+ (get_local $1)
+ )
+ )
+ (func $v128.not (param $0 v128) (result v128)
+ (v128.not
+ (get_local $0)
+ )
+ )
+ (func $v128.and (param $0 v128) (param $1 v128) (result v128)
+ (v128.and
+ (get_local $0)
+ (get_local $1)
+ )
+ )
+ (func $v128.or (param $0 v128) (param $1 v128) (result v128)
+ (v128.or
+ (get_local $0)
+ (get_local $1)
+ )
+ )
+ (func $v128.xor (param $0 v128) (param $1 v128) (result v128)
+ (v128.xor
+ (get_local $0)
+ (get_local $1)
+ )
+ )
+ (func $v128.bitselect (param $0 v128) (param $1 v128) (param $2 v128) (result v128)
+ (v128.bitselect
+ (get_local $0)
+ (get_local $1)
+ (get_local $2)
+ )
+ )
+ (func $i8x16.neg (param $0 v128) (result v128)
+ (i8x16.neg
+ (get_local $0)
+ )
+ )
+ (func $i8x16.any_true (param $0 v128) (result i32)
+ (i8x16.any_true
+ (get_local $0)
+ )
+ )
+ (func $i8x16.all_true (param $0 v128) (result i32)
+ (i8x16.all_true
+ (get_local $0)
+ )
+ )
+ (func $i8x16.shl (param $0 v128) (param $1 i32) (result v128)
+ (i8x16.shl
+ (get_local $0)
+ (get_local $1)
+ )
+ )
+ (func $i8x16.shr_s (param $0 v128) (param $1 i32) (result v128)
+ (i8x16.shr_s
+ (get_local $0)
+ (get_local $1)
+ )
+ )
+ (func $i8x16.shr_u (param $0 v128) (param $1 i32) (result v128)
+ (i8x16.shr_u
+ (get_local $0)
+ (get_local $1)
+ )
+ )
+ (func $i8x16.add (param $0 v128) (param $1 v128) (result v128)
+ (i8x16.add
+ (get_local $0)
+ (get_local $1)
+ )
+ )
+ (func $i8x16.add_saturate_s (param $0 v128) (param $1 v128) (result v128)
+ (i8x16.add_saturate_s
+ (get_local $0)
+ (get_local $1)
+ )
+ )
+ (func $i8x16.add_saturate_u (param $0 v128) (param $1 v128) (result v128)
+ (i8x16.add_saturate_u
+ (get_local $0)
+ (get_local $1)
+ )
+ )
+ (func $i8x16.sub (param $0 v128) (param $1 v128) (result v128)
+ (i8x16.sub
+ (get_local $0)
+ (get_local $1)
+ )
+ )
+ (func $i8x16.sub_saturate_s (param $0 v128) (param $1 v128) (result v128)
+ (i8x16.sub_saturate_s
+ (get_local $0)
+ (get_local $1)
+ )
+ )
+ (func $i8x16.sub_saturate_u (param $0 v128) (param $1 v128) (result v128)
+ (i8x16.sub_saturate_u
+ (get_local $0)
+ (get_local $1)
+ )
+ )
+ (func $i8x16.mul (param $0 v128) (param $1 v128) (result v128)
+ (i8x16.mul
+ (get_local $0)
+ (get_local $1)
+ )
+ )
+ (func $i16x8.neg (param $0 v128) (result v128)
+ (i16x8.neg
+ (get_local $0)
+ )
+ )
+ (func $i16x8.any_true (param $0 v128) (result i32)
+ (i16x8.any_true
+ (get_local $0)
+ )
+ )
+ (func $i16x8.all_true (param $0 v128) (result i32)
+ (i16x8.all_true
+ (get_local $0)
+ )
+ )
+ (func $i16x8.shl (param $0 v128) (param $1 i32) (result v128)
+ (i16x8.shl
+ (get_local $0)
+ (get_local $1)
+ )
+ )
+ (func $i16x8.shr_s (param $0 v128) (param $1 i32) (result v128)
+ (i16x8.shr_s
+ (get_local $0)
+ (get_local $1)
+ )
+ )
+ (func $i16x8.shr_u (param $0 v128) (param $1 i32) (result v128)
+ (i16x8.shr_u
+ (get_local $0)
+ (get_local $1)
+ )
+ )
+ (func $i16x8.add (param $0 v128) (param $1 v128) (result v128)
+ (i16x8.add
+ (get_local $0)
+ (get_local $1)
+ )
+ )
+ (func $i16x8.add_saturate_s (param $0 v128) (param $1 v128) (result v128)
+ (i16x8.add_saturate_s
+ (get_local $0)
+ (get_local $1)
+ )
+ )
+ (func $i16x8.add_saturate_u (param $0 v128) (param $1 v128) (result v128)
+ (i16x8.add_saturate_u
+ (get_local $0)
+ (get_local $1)
+ )
+ )
+ (func $i16x8.sub (param $0 v128) (param $1 v128) (result v128)
+ (i16x8.sub
+ (get_local $0)
+ (get_local $1)
+ )
+ )
+ (func $i16x8.sub_saturate_s (param $0 v128) (param $1 v128) (result v128)
+ (i16x8.sub_saturate_s
+ (get_local $0)
+ (get_local $1)
+ )
+ )
+ (func $i16x8.sub_saturate_u (param $0 v128) (param $1 v128) (result v128)
+ (i16x8.sub_saturate_u
+ (get_local $0)
+ (get_local $1)
+ )
+ )
+ (func $i16x8.mul (param $0 v128) (param $1 v128) (result v128)
+ (i16x8.mul
+ (get_local $0)
+ (get_local $1)
+ )
+ )
+ (func $i32x4.neg (param $0 v128) (result v128)
+ (i32x4.neg
+ (get_local $0)
+ )
+ )
+ (func $i32x4.any_true (param $0 v128) (result i32)
+ (i32x4.any_true
+ (get_local $0)
+ )
+ )
+ (func $i32x4.all_true (param $0 v128) (result i32)
+ (i32x4.all_true
+ (get_local $0)
+ )
+ )
+ (func $i32x4.shl (param $0 v128) (param $1 i32) (result v128)
+ (i32x4.shl
+ (get_local $0)
+ (get_local $1)
+ )
+ )
+ (func $i32x4.shr_s (param $0 v128) (param $1 i32) (result v128)
+ (i32x4.shr_s
+ (get_local $0)
+ (get_local $1)
+ )
+ )
+ (func $i32x4.shr_u (param $0 v128) (param $1 i32) (result v128)
+ (i32x4.shr_u
+ (get_local $0)
+ (get_local $1)
+ )
+ )
+ (func $i32x4.add (param $0 v128) (param $1 v128) (result v128)
+ (i32x4.add
+ (get_local $0)
+ (get_local $1)
+ )
+ )
+ (func $i32x4.sub (param $0 v128) (param $1 v128) (result v128)
+ (i32x4.sub
+ (get_local $0)
+ (get_local $1)
+ )
+ )
+ (func $i32x4.mul (param $0 v128) (param $1 v128) (result v128)
+ (i32x4.mul
+ (get_local $0)
+ (get_local $1)
+ )
+ )
+ (func $i64x2.neg (param $0 v128) (result v128)
+ (i64x2.neg
+ (get_local $0)
+ )
+ )
+ (func $i64x2.any_true (param $0 v128) (result i32)
+ (i64x2.any_true
+ (get_local $0)
+ )
+ )
+ (func $i64x2.all_true (param $0 v128) (result i32)
+ (i64x2.all_true
+ (get_local $0)
+ )
+ )
+ (func $i64x2.shl (param $0 v128) (param $1 i32) (result v128)
+ (i64x2.shl
+ (get_local $0)
+ (get_local $1)
+ )
+ )
+ (func $i64x2.shr_s (param $0 v128) (param $1 i32) (result v128)
+ (i64x2.shr_s
+ (get_local $0)
+ (get_local $1)
+ )
+ )
+ (func $i64x2.shr_u (param $0 v128) (param $1 i32) (result v128)
+ (i64x2.shr_u
+ (get_local $0)
+ (get_local $1)
+ )
+ )
+ (func $i64x2.add (param $0 v128) (param $1 v128) (result v128)
+ (i64x2.add
+ (get_local $0)
+ (get_local $1)
+ )
+ )
+ (func $i64x2.sub (param $0 v128) (param $1 v128) (result v128)
+ (i64x2.sub
+ (get_local $0)
+ (get_local $1)
+ )
+ )
+ (func $f32x4.add (param $0 v128) (param $1 v128) (result v128)
+ (f32x4.add
+ (get_local $0)
+ (get_local $1)
+ )
+ )
+ (func $f32x4.sub (param $0 v128) (param $1 v128) (result v128)
+ (f32x4.sub
+ (get_local $0)
+ (get_local $1)
+ )
+ )
+ (func $f32x4.mul (param $0 v128) (param $1 v128) (result v128)
+ (f32x4.mul
+ (get_local $0)
+ (get_local $1)
+ )
+ )
+ (func $f32x4.div (param $0 v128) (param $1 v128) (result v128)
+ (f32x4.div
+ (get_local $0)
+ (get_local $1)
+ )
+ )
+ (func $f32x4.min (param $0 v128) (param $1 v128) (result v128)
+ (f32x4.min
+ (get_local $0)
+ (get_local $1)
+ )
+ )
+ (func $f32x4.max (param $0 v128) (param $1 v128) (result v128)
+ (f32x4.max
+ (get_local $0)
+ (get_local $1)
+ )
+ )
+ (func $f32x4.abs (param $0 v128) (result v128)
+ (f32x4.abs
+ (get_local $0)
+ )
+ )
+ (func $f32x4.neg (param $0 v128) (result v128)
+ (f32x4.neg
+ (get_local $0)
+ )
+ )
+ (func $f32x4.sqrt (param $0 v128) (result v128)
+ (f32x4.sqrt
+ (get_local $0)
+ )
+ )
+ (func $f64x2.add (param $0 v128) (param $1 v128) (result v128)
+ (f64x2.add
+ (get_local $0)
+ (get_local $1)
+ )
+ )
+ (func $f64x2.sub (param $0 v128) (param $1 v128) (result v128)
+ (f64x2.sub
+ (get_local $0)
+ (get_local $1)
+ )
+ )
+ (func $f64x2.mul (param $0 v128) (param $1 v128) (result v128)
+ (f64x2.mul
+ (get_local $0)
+ (get_local $1)
+ )
+ )
+ (func $f64x2.div (param $0 v128) (param $1 v128) (result v128)
+ (f64x2.div
+ (get_local $0)
+ (get_local $1)
+ )
+ )
+ (func $f64x2.min (param $0 v128) (param $1 v128) (result v128)
+ (f64x2.min
+ (get_local $0)
+ (get_local $1)
+ )
+ )
+ (func $f64x2.max (param $0 v128) (param $1 v128) (result v128)
+ (f64x2.max
+ (get_local $0)
+ (get_local $1)
+ )
+ )
+ (func $f64x2.abs (param $0 v128) (result v128)
+ (f64x2.abs
+ (get_local $0)
+ )
+ )
+ (func $f64x2.neg (param $0 v128) (result v128)
+ (f64x2.neg
+ (get_local $0)
+ )
+ )
+ (func $f64x2.sqrt (param $0 v128) (result v128)
+ (f64x2.sqrt
+ (get_local $0)
+ )
+ )
+ (func $i32x4.trunc_s/f32x4:sat (param $0 v128) (result v128)
+ (i32x4.trunc_s/f32x4:sat
+ (get_local $0)
+ )
+ )
+ (func $i32x4.trunc_u/f32x4:sat (param $0 v128) (result v128)
+ (i32x4.trunc_u/f32x4:sat
+ (get_local $0)
+ )
+ )
+ (func $i64x2.trunc_s/f64x2:sat (param $0 v128) (result v128)
+ (i64x2.trunc_s/f64x2:sat
+ (get_local $0)
+ )
+ )
+ (func $i64x2.trunc_u/f64x2:sat (param $0 v128) (result v128)
+ (i64x2.trunc_u/f64x2:sat
+ (get_local $0)
+ )
+ )
+ (func $f32x4.convert_s/i32x4 (param $0 v128) (result v128)
+ (f32x4.convert_s/i32x4
+ (get_local $0)
+ )
+ )
+ (func $f32x4.convert_u/i32x4 (param $0 v128) (result v128)
+ (f32x4.convert_u/i32x4
+ (get_local $0)
+ )
+ )
+ (func $f64x2.convert_s/i64x2 (param $0 v128) (result v128)
+ (f64x2.convert_s/i64x2
+ (get_local $0)
+ )
+ )
+ (func $f64x2.convert_u/i64x2 (param $0 v128) (result v128)
+ (f64x2.convert_u/i64x2
+ (get_local $0)
+ )
+ )
+)