diff options
Diffstat (limited to 'test/lit/basic/relaxed-simd.wast')
-rw-r--r-- | test/lit/basic/relaxed-simd.wast | 565 |
1 files changed, 565 insertions, 0 deletions
diff --git a/test/lit/basic/relaxed-simd.wast b/test/lit/basic/relaxed-simd.wast new file mode 100644 index 000000000..d20e5c42b --- /dev/null +++ b/test/lit/basic/relaxed-simd.wast @@ -0,0 +1,565 @@ +;; NOTE: Assertions have been generated by update_lit_checks.py --all-items and should not be edited. + +;; RUN: wasm-as %s -all -g -o %t.wasm +;; RUN: wasm-dis %t.wasm -all -o %t.wast +;; RUN: wasm-as %s -all -o %t.nodebug.wasm +;; RUN: wasm-dis %t.nodebug.wasm -all -o %t.nodebug.wast +;; RUN: wasm-opt %t.wast -all -o %t.text.wast -g -S +;; RUN: cat %t.wast | filecheck %s --check-prefix=CHECK-BINARY +;; RUN: cat %t.nodebug.wast | filecheck %s --check-prefix=CHECK-NODEBUG +;; RUN: cat %t.text.wast | filecheck %s --check-prefix=CHECK-TEXT +(module + (memory 1 1) + + ;; CHECK-BINARY: (type $0 (func (param v128 v128 v128) (result v128))) + + ;; CHECK-BINARY: (type $1 (func (param v128 v128) (result v128))) + + ;; CHECK-BINARY: (type $2 (func (param v128) (result v128))) + + ;; CHECK-BINARY: (memory $0 1 1) + + ;; CHECK-BINARY: (func $i8x16.relaxed_swizzle (type $1) (param $0 v128) (param $1 v128) (result v128) + ;; CHECK-BINARY-NEXT: (i8x16.relaxed_swizzle + ;; CHECK-BINARY-NEXT: (local.get $0) + ;; CHECK-BINARY-NEXT: (local.get $1) + ;; CHECK-BINARY-NEXT: ) + ;; CHECK-BINARY-NEXT: ) + ;; CHECK-TEXT: (type $0 (func (param v128 v128 v128) (result v128))) + + ;; CHECK-TEXT: (type $1 (func (param v128 v128) (result v128))) + + ;; CHECK-TEXT: (type $2 (func (param v128) (result v128))) + + ;; CHECK-TEXT: (memory $0 1 1) + + ;; CHECK-TEXT: (func $i8x16.relaxed_swizzle (type $1) (param $0 v128) (param $1 v128) (result v128) + ;; CHECK-TEXT-NEXT: (i8x16.relaxed_swizzle + ;; CHECK-TEXT-NEXT: (local.get $0) + ;; CHECK-TEXT-NEXT: (local.get $1) + ;; CHECK-TEXT-NEXT: ) + ;; CHECK-TEXT-NEXT: ) + (func $i8x16.relaxed_swizzle (param $0 v128) (param $1 v128) (result v128) + (i8x16.relaxed_swizzle + (local.get $0) + (local.get $1) + ) + ) + + ;; CHECK-BINARY: (func $i32x4.relaxed_trunc_f32x4_s (type $2) (param $0 v128) (result v128) + ;; CHECK-BINARY-NEXT: (i32x4.relaxed_trunc_f32x4_s + ;; CHECK-BINARY-NEXT: (local.get $0) + ;; CHECK-BINARY-NEXT: ) + ;; CHECK-BINARY-NEXT: ) + ;; CHECK-TEXT: (func $i32x4.relaxed_trunc_f32x4_s (type $2) (param $0 v128) (result v128) + ;; CHECK-TEXT-NEXT: (i32x4.relaxed_trunc_f32x4_s + ;; CHECK-TEXT-NEXT: (local.get $0) + ;; CHECK-TEXT-NEXT: ) + ;; CHECK-TEXT-NEXT: ) + (func $i32x4.relaxed_trunc_f32x4_s (param $0 v128) (result v128) + (i32x4.relaxed_trunc_f32x4_s + (local.get $0) + ) + ) + ;; CHECK-BINARY: (func $i32x4.relaxed_trunc_f32x4_u (type $2) (param $0 v128) (result v128) + ;; CHECK-BINARY-NEXT: (i32x4.relaxed_trunc_f32x4_u + ;; CHECK-BINARY-NEXT: (local.get $0) + ;; CHECK-BINARY-NEXT: ) + ;; CHECK-BINARY-NEXT: ) + ;; CHECK-TEXT: (func $i32x4.relaxed_trunc_f32x4_u (type $2) (param $0 v128) (result v128) + ;; CHECK-TEXT-NEXT: (i32x4.relaxed_trunc_f32x4_u + ;; CHECK-TEXT-NEXT: (local.get $0) + ;; CHECK-TEXT-NEXT: ) + ;; CHECK-TEXT-NEXT: ) + (func $i32x4.relaxed_trunc_f32x4_u (param $0 v128) (result v128) + (i32x4.relaxed_trunc_f32x4_u + (local.get $0) + ) + ) + ;; CHECK-BINARY: (func $i32x4.relaxed_trunc_f64x2_s_zero (type $2) (param $0 v128) (result v128) + ;; CHECK-BINARY-NEXT: (i32x4.relaxed_trunc_f64x2_s_zero + ;; CHECK-BINARY-NEXT: (local.get $0) + ;; CHECK-BINARY-NEXT: ) + ;; CHECK-BINARY-NEXT: ) + ;; CHECK-TEXT: (func $i32x4.relaxed_trunc_f64x2_s_zero (type $2) (param $0 v128) (result v128) + ;; CHECK-TEXT-NEXT: (i32x4.relaxed_trunc_f64x2_s_zero + ;; CHECK-TEXT-NEXT: (local.get $0) + ;; CHECK-TEXT-NEXT: ) + ;; CHECK-TEXT-NEXT: ) + (func $i32x4.relaxed_trunc_f64x2_s_zero (param $0 v128) (result v128) + (i32x4.relaxed_trunc_f64x2_s_zero + (local.get $0) + ) + ) + ;; CHECK-BINARY: (func $i32x4.relaxed_trunc_f64x2_u_zero (type $2) (param $0 v128) (result v128) + ;; CHECK-BINARY-NEXT: (i32x4.relaxed_trunc_f64x2_u_zero + ;; CHECK-BINARY-NEXT: (local.get $0) + ;; CHECK-BINARY-NEXT: ) + ;; CHECK-BINARY-NEXT: ) + ;; CHECK-TEXT: (func $i32x4.relaxed_trunc_f64x2_u_zero (type $2) (param $0 v128) (result v128) + ;; CHECK-TEXT-NEXT: (i32x4.relaxed_trunc_f64x2_u_zero + ;; CHECK-TEXT-NEXT: (local.get $0) + ;; CHECK-TEXT-NEXT: ) + ;; CHECK-TEXT-NEXT: ) + (func $i32x4.relaxed_trunc_f64x2_u_zero (param $0 v128) (result v128) + (i32x4.relaxed_trunc_f64x2_u_zero + (local.get $0) + ) + ) + + ;; CHECK-BINARY: (func $f32x4.relaxed_fma (type $0) (param $0 v128) (param $1 v128) (param $2 v128) (result v128) + ;; CHECK-BINARY-NEXT: (f32x4.relaxed_fma + ;; CHECK-BINARY-NEXT: (local.get $0) + ;; CHECK-BINARY-NEXT: (local.get $1) + ;; CHECK-BINARY-NEXT: (local.get $2) + ;; CHECK-BINARY-NEXT: ) + ;; CHECK-BINARY-NEXT: ) + ;; CHECK-TEXT: (func $f32x4.relaxed_fma (type $0) (param $0 v128) (param $1 v128) (param $2 v128) (result v128) + ;; CHECK-TEXT-NEXT: (f32x4.relaxed_fma + ;; CHECK-TEXT-NEXT: (local.get $0) + ;; CHECK-TEXT-NEXT: (local.get $1) + ;; CHECK-TEXT-NEXT: (local.get $2) + ;; CHECK-TEXT-NEXT: ) + ;; CHECK-TEXT-NEXT: ) + (func $f32x4.relaxed_fma (param $0 v128) (param $1 v128) (param $2 v128) (result v128) + (f32x4.relaxed_fma + (local.get $0) + (local.get $1) + (local.get $2) + ) + ) + ;; CHECK-BINARY: (func $f32x4.relaxed_fms (type $0) (param $0 v128) (param $1 v128) (param $2 v128) (result v128) + ;; CHECK-BINARY-NEXT: (f32x4.relaxed_fms + ;; CHECK-BINARY-NEXT: (local.get $0) + ;; CHECK-BINARY-NEXT: (local.get $1) + ;; CHECK-BINARY-NEXT: (local.get $2) + ;; CHECK-BINARY-NEXT: ) + ;; CHECK-BINARY-NEXT: ) + ;; CHECK-TEXT: (func $f32x4.relaxed_fms (type $0) (param $0 v128) (param $1 v128) (param $2 v128) (result v128) + ;; CHECK-TEXT-NEXT: (f32x4.relaxed_fms + ;; CHECK-TEXT-NEXT: (local.get $0) + ;; CHECK-TEXT-NEXT: (local.get $1) + ;; CHECK-TEXT-NEXT: (local.get $2) + ;; CHECK-TEXT-NEXT: ) + ;; CHECK-TEXT-NEXT: ) + (func $f32x4.relaxed_fms (param $0 v128) (param $1 v128) (param $2 v128) (result v128) + (f32x4.relaxed_fms + (local.get $0) + (local.get $1) + (local.get $2) + ) + ) + ;; CHECK-BINARY: (func $f64x2.relaxed_fma (type $0) (param $0 v128) (param $1 v128) (param $2 v128) (result v128) + ;; CHECK-BINARY-NEXT: (f64x2.relaxed_fma + ;; CHECK-BINARY-NEXT: (local.get $0) + ;; CHECK-BINARY-NEXT: (local.get $1) + ;; CHECK-BINARY-NEXT: (local.get $2) + ;; CHECK-BINARY-NEXT: ) + ;; CHECK-BINARY-NEXT: ) + ;; CHECK-TEXT: (func $f64x2.relaxed_fma (type $0) (param $0 v128) (param $1 v128) (param $2 v128) (result v128) + ;; CHECK-TEXT-NEXT: (f64x2.relaxed_fma + ;; CHECK-TEXT-NEXT: (local.get $0) + ;; CHECK-TEXT-NEXT: (local.get $1) + ;; CHECK-TEXT-NEXT: (local.get $2) + ;; CHECK-TEXT-NEXT: ) + ;; CHECK-TEXT-NEXT: ) + (func $f64x2.relaxed_fma (param $0 v128) (param $1 v128) (param $2 v128) (result v128) + (f64x2.relaxed_fma + (local.get $0) + (local.get $1) + (local.get $2) + ) + ) + ;; CHECK-BINARY: (func $f64x2.relaxed_fms (type $0) (param $0 v128) (param $1 v128) (param $2 v128) (result v128) + ;; CHECK-BINARY-NEXT: (f64x2.relaxed_fms + ;; CHECK-BINARY-NEXT: (local.get $0) + ;; CHECK-BINARY-NEXT: (local.get $1) + ;; CHECK-BINARY-NEXT: (local.get $2) + ;; CHECK-BINARY-NEXT: ) + ;; CHECK-BINARY-NEXT: ) + ;; CHECK-TEXT: (func $f64x2.relaxed_fms (type $0) (param $0 v128) (param $1 v128) (param $2 v128) (result v128) + ;; CHECK-TEXT-NEXT: (f64x2.relaxed_fms + ;; CHECK-TEXT-NEXT: (local.get $0) + ;; CHECK-TEXT-NEXT: (local.get $1) + ;; CHECK-TEXT-NEXT: (local.get $2) + ;; CHECK-TEXT-NEXT: ) + ;; CHECK-TEXT-NEXT: ) + (func $f64x2.relaxed_fms (param $0 v128) (param $1 v128) (param $2 v128) (result v128) + (f64x2.relaxed_fms + (local.get $0) + (local.get $1) + (local.get $2) + ) + ) + + ;; CHECK-BINARY: (func $i8x16.laneselect (type $0) (param $0 v128) (param $1 v128) (param $2 v128) (result v128) + ;; CHECK-BINARY-NEXT: (i8x16.laneselect + ;; CHECK-BINARY-NEXT: (local.get $0) + ;; CHECK-BINARY-NEXT: (local.get $1) + ;; CHECK-BINARY-NEXT: (local.get $2) + ;; CHECK-BINARY-NEXT: ) + ;; CHECK-BINARY-NEXT: ) + ;; CHECK-TEXT: (func $i8x16.laneselect (type $0) (param $0 v128) (param $1 v128) (param $2 v128) (result v128) + ;; CHECK-TEXT-NEXT: (i8x16.laneselect + ;; CHECK-TEXT-NEXT: (local.get $0) + ;; CHECK-TEXT-NEXT: (local.get $1) + ;; CHECK-TEXT-NEXT: (local.get $2) + ;; CHECK-TEXT-NEXT: ) + ;; CHECK-TEXT-NEXT: ) + (func $i8x16.laneselect (param $0 v128) (param $1 v128) (param $2 v128) (result v128) + (i8x16.laneselect + (local.get $0) + (local.get $1) + (local.get $2) + ) + ) + ;; CHECK-BINARY: (func $i16x8.laneselect (type $0) (param $0 v128) (param $1 v128) (param $2 v128) (result v128) + ;; CHECK-BINARY-NEXT: (i16x8.laneselect + ;; CHECK-BINARY-NEXT: (local.get $0) + ;; CHECK-BINARY-NEXT: (local.get $1) + ;; CHECK-BINARY-NEXT: (local.get $2) + ;; CHECK-BINARY-NEXT: ) + ;; CHECK-BINARY-NEXT: ) + ;; CHECK-TEXT: (func $i16x8.laneselect (type $0) (param $0 v128) (param $1 v128) (param $2 v128) (result v128) + ;; CHECK-TEXT-NEXT: (i16x8.laneselect + ;; CHECK-TEXT-NEXT: (local.get $0) + ;; CHECK-TEXT-NEXT: (local.get $1) + ;; CHECK-TEXT-NEXT: (local.get $2) + ;; CHECK-TEXT-NEXT: ) + ;; CHECK-TEXT-NEXT: ) + (func $i16x8.laneselect (param $0 v128) (param $1 v128) (param $2 v128) (result v128) + (i16x8.laneselect + (local.get $0) + (local.get $1) + (local.get $2) + ) + ) + ;; CHECK-BINARY: (func $i32x4.laneselect (type $0) (param $0 v128) (param $1 v128) (param $2 v128) (result v128) + ;; CHECK-BINARY-NEXT: (i32x4.laneselect + ;; CHECK-BINARY-NEXT: (local.get $0) + ;; CHECK-BINARY-NEXT: (local.get $1) + ;; CHECK-BINARY-NEXT: (local.get $2) + ;; CHECK-BINARY-NEXT: ) + ;; CHECK-BINARY-NEXT: ) + ;; CHECK-TEXT: (func $i32x4.laneselect (type $0) (param $0 v128) (param $1 v128) (param $2 v128) (result v128) + ;; CHECK-TEXT-NEXT: (i32x4.laneselect + ;; CHECK-TEXT-NEXT: (local.get $0) + ;; CHECK-TEXT-NEXT: (local.get $1) + ;; CHECK-TEXT-NEXT: (local.get $2) + ;; CHECK-TEXT-NEXT: ) + ;; CHECK-TEXT-NEXT: ) + (func $i32x4.laneselect (param $0 v128) (param $1 v128) (param $2 v128) (result v128) + (i32x4.laneselect + (local.get $0) + (local.get $1) + (local.get $2) + ) + ) + ;; CHECK-BINARY: (func $i64x2.laneselect (type $0) (param $0 v128) (param $1 v128) (param $2 v128) (result v128) + ;; CHECK-BINARY-NEXT: (i64x2.laneselect + ;; CHECK-BINARY-NEXT: (local.get $0) + ;; CHECK-BINARY-NEXT: (local.get $1) + ;; CHECK-BINARY-NEXT: (local.get $2) + ;; CHECK-BINARY-NEXT: ) + ;; CHECK-BINARY-NEXT: ) + ;; CHECK-TEXT: (func $i64x2.laneselect (type $0) (param $0 v128) (param $1 v128) (param $2 v128) (result v128) + ;; CHECK-TEXT-NEXT: (i64x2.laneselect + ;; CHECK-TEXT-NEXT: (local.get $0) + ;; CHECK-TEXT-NEXT: (local.get $1) + ;; CHECK-TEXT-NEXT: (local.get $2) + ;; CHECK-TEXT-NEXT: ) + ;; CHECK-TEXT-NEXT: ) + (func $i64x2.laneselect (param $0 v128) (param $1 v128) (param $2 v128) (result v128) + (i64x2.laneselect + (local.get $0) + (local.get $1) + (local.get $2) + ) + ) + + ;; CHECK-BINARY: (func $f32x4.relaxed_min (type $1) (param $0 v128) (param $1 v128) (result v128) + ;; CHECK-BINARY-NEXT: (f32x4.relaxed_min + ;; CHECK-BINARY-NEXT: (local.get $0) + ;; CHECK-BINARY-NEXT: (local.get $1) + ;; CHECK-BINARY-NEXT: ) + ;; CHECK-BINARY-NEXT: ) + ;; CHECK-TEXT: (func $f32x4.relaxed_min (type $1) (param $0 v128) (param $1 v128) (result v128) + ;; CHECK-TEXT-NEXT: (f32x4.relaxed_min + ;; CHECK-TEXT-NEXT: (local.get $0) + ;; CHECK-TEXT-NEXT: (local.get $1) + ;; CHECK-TEXT-NEXT: ) + ;; CHECK-TEXT-NEXT: ) + (func $f32x4.relaxed_min (param $0 v128) (param $1 v128) (result v128) + (f32x4.relaxed_min + (local.get $0) + (local.get $1) + ) + ) + ;; CHECK-BINARY: (func $f32x4.relaxed_max (type $1) (param $0 v128) (param $1 v128) (result v128) + ;; CHECK-BINARY-NEXT: (f32x4.relaxed_max + ;; CHECK-BINARY-NEXT: (local.get $0) + ;; CHECK-BINARY-NEXT: (local.get $1) + ;; CHECK-BINARY-NEXT: ) + ;; CHECK-BINARY-NEXT: ) + ;; CHECK-TEXT: (func $f32x4.relaxed_max (type $1) (param $0 v128) (param $1 v128) (result v128) + ;; CHECK-TEXT-NEXT: (f32x4.relaxed_max + ;; CHECK-TEXT-NEXT: (local.get $0) + ;; CHECK-TEXT-NEXT: (local.get $1) + ;; CHECK-TEXT-NEXT: ) + ;; CHECK-TEXT-NEXT: ) + (func $f32x4.relaxed_max (param $0 v128) (param $1 v128) (result v128) + (f32x4.relaxed_max + (local.get $0) + (local.get $1) + ) + ) + ;; CHECK-BINARY: (func $f64x2.relaxed_min (type $1) (param $0 v128) (param $1 v128) (result v128) + ;; CHECK-BINARY-NEXT: (f64x2.relaxed_min + ;; CHECK-BINARY-NEXT: (local.get $0) + ;; CHECK-BINARY-NEXT: (local.get $1) + ;; CHECK-BINARY-NEXT: ) + ;; CHECK-BINARY-NEXT: ) + ;; CHECK-TEXT: (func $f64x2.relaxed_min (type $1) (param $0 v128) (param $1 v128) (result v128) + ;; CHECK-TEXT-NEXT: (f64x2.relaxed_min + ;; CHECK-TEXT-NEXT: (local.get $0) + ;; CHECK-TEXT-NEXT: (local.get $1) + ;; CHECK-TEXT-NEXT: ) + ;; CHECK-TEXT-NEXT: ) + (func $f64x2.relaxed_min (param $0 v128) (param $1 v128) (result v128) + (f64x2.relaxed_min + (local.get $0) + (local.get $1) + ) + ) + ;; CHECK-BINARY: (func $f64x2.relaxed_max (type $1) (param $0 v128) (param $1 v128) (result v128) + ;; CHECK-BINARY-NEXT: (f64x2.relaxed_max + ;; CHECK-BINARY-NEXT: (local.get $0) + ;; CHECK-BINARY-NEXT: (local.get $1) + ;; CHECK-BINARY-NEXT: ) + ;; CHECK-BINARY-NEXT: ) + ;; CHECK-TEXT: (func $f64x2.relaxed_max (type $1) (param $0 v128) (param $1 v128) (result v128) + ;; CHECK-TEXT-NEXT: (f64x2.relaxed_max + ;; CHECK-TEXT-NEXT: (local.get $0) + ;; CHECK-TEXT-NEXT: (local.get $1) + ;; CHECK-TEXT-NEXT: ) + ;; CHECK-TEXT-NEXT: ) + (func $f64x2.relaxed_max (param $0 v128) (param $1 v128) (result v128) + (f64x2.relaxed_max + (local.get $0) + (local.get $1) + ) + ) + + ;; CHECK-BINARY: (func $i16x8.relaxed_q15mulr_s (type $1) (param $0 v128) (param $1 v128) (result v128) + ;; CHECK-BINARY-NEXT: (i16x8.relaxed_q15mulr_s + ;; CHECK-BINARY-NEXT: (local.get $0) + ;; CHECK-BINARY-NEXT: (local.get $1) + ;; CHECK-BINARY-NEXT: ) + ;; CHECK-BINARY-NEXT: ) + ;; CHECK-TEXT: (func $i16x8.relaxed_q15mulr_s (type $1) (param $0 v128) (param $1 v128) (result v128) + ;; CHECK-TEXT-NEXT: (i16x8.relaxed_q15mulr_s + ;; CHECK-TEXT-NEXT: (local.get $0) + ;; CHECK-TEXT-NEXT: (local.get $1) + ;; CHECK-TEXT-NEXT: ) + ;; CHECK-TEXT-NEXT: ) + (func $i16x8.relaxed_q15mulr_s (param $0 v128) (param $1 v128) (result v128) + (i16x8.relaxed_q15mulr_s + (local.get $0) + (local.get $1) + ) + ) + + ;; CHECK-BINARY: (func $i16x8.dot_i8x16_i7x16_s (type $1) (param $0 v128) (param $1 v128) (result v128) + ;; CHECK-BINARY-NEXT: (i16x8.dot_i8x16_i7x16_s + ;; CHECK-BINARY-NEXT: (local.get $0) + ;; CHECK-BINARY-NEXT: (local.get $1) + ;; CHECK-BINARY-NEXT: ) + ;; CHECK-BINARY-NEXT: ) + ;; CHECK-TEXT: (func $i16x8.dot_i8x16_i7x16_s (type $1) (param $0 v128) (param $1 v128) (result v128) + ;; CHECK-TEXT-NEXT: (i16x8.dot_i8x16_i7x16_s + ;; CHECK-TEXT-NEXT: (local.get $0) + ;; CHECK-TEXT-NEXT: (local.get $1) + ;; CHECK-TEXT-NEXT: ) + ;; CHECK-TEXT-NEXT: ) + (func $i16x8.dot_i8x16_i7x16_s (param $0 v128) (param $1 v128) (result v128) + (i16x8.dot_i8x16_i7x16_s + (local.get $0) + (local.get $1) + ) + ) + +;; CHECK-BINARY: (func $i32x4.dot_i8x16_i7x16_add_s (type $0) (param $0 v128) (param $1 v128) (param $2 v128) (result v128) +;; CHECK-BINARY-NEXT: (i32x4.dot_i8x16_i7x16_add_s +;; CHECK-BINARY-NEXT: (local.get $0) +;; CHECK-BINARY-NEXT: (local.get $1) +;; CHECK-BINARY-NEXT: (local.get $2) +;; CHECK-BINARY-NEXT: ) +;; CHECK-BINARY-NEXT: ) +;; CHECK-TEXT: (func $i32x4.dot_i8x16_i7x16_add_s (type $0) (param $0 v128) (param $1 v128) (param $2 v128) (result v128) +;; CHECK-TEXT-NEXT: (i32x4.dot_i8x16_i7x16_add_s +;; CHECK-TEXT-NEXT: (local.get $0) +;; CHECK-TEXT-NEXT: (local.get $1) +;; CHECK-TEXT-NEXT: (local.get $2) +;; CHECK-TEXT-NEXT: ) +;; CHECK-TEXT-NEXT: ) +(func $i32x4.dot_i8x16_i7x16_add_s (param $0 v128) (param $1 v128) (param $2 v128) (result v128) + (i32x4.dot_i8x16_i7x16_add_s + (local.get $0) + (local.get $1) + (local.get $2) + ) + ) + +) +;; CHECK-NODEBUG: (type $0 (func (param v128 v128 v128) (result v128))) + +;; CHECK-NODEBUG: (type $1 (func (param v128 v128) (result v128))) + +;; CHECK-NODEBUG: (type $2 (func (param v128) (result v128))) + +;; CHECK-NODEBUG: (memory $0 1 1) + +;; CHECK-NODEBUG: (func $0 (type $1) (param $0 v128) (param $1 v128) (result v128) +;; CHECK-NODEBUG-NEXT: (i8x16.relaxed_swizzle +;; CHECK-NODEBUG-NEXT: (local.get $0) +;; CHECK-NODEBUG-NEXT: (local.get $1) +;; CHECK-NODEBUG-NEXT: ) +;; CHECK-NODEBUG-NEXT: ) + +;; CHECK-NODEBUG: (func $1 (type $2) (param $0 v128) (result v128) +;; CHECK-NODEBUG-NEXT: (i32x4.relaxed_trunc_f32x4_s +;; CHECK-NODEBUG-NEXT: (local.get $0) +;; CHECK-NODEBUG-NEXT: ) +;; CHECK-NODEBUG-NEXT: ) + +;; CHECK-NODEBUG: (func $2 (type $2) (param $0 v128) (result v128) +;; CHECK-NODEBUG-NEXT: (i32x4.relaxed_trunc_f32x4_u +;; CHECK-NODEBUG-NEXT: (local.get $0) +;; CHECK-NODEBUG-NEXT: ) +;; CHECK-NODEBUG-NEXT: ) + +;; CHECK-NODEBUG: (func $3 (type $2) (param $0 v128) (result v128) +;; CHECK-NODEBUG-NEXT: (i32x4.relaxed_trunc_f64x2_s_zero +;; CHECK-NODEBUG-NEXT: (local.get $0) +;; CHECK-NODEBUG-NEXT: ) +;; CHECK-NODEBUG-NEXT: ) + +;; CHECK-NODEBUG: (func $4 (type $2) (param $0 v128) (result v128) +;; CHECK-NODEBUG-NEXT: (i32x4.relaxed_trunc_f64x2_u_zero +;; CHECK-NODEBUG-NEXT: (local.get $0) +;; CHECK-NODEBUG-NEXT: ) +;; CHECK-NODEBUG-NEXT: ) + +;; CHECK-NODEBUG: (func $5 (type $0) (param $0 v128) (param $1 v128) (param $2 v128) (result v128) +;; CHECK-NODEBUG-NEXT: (f32x4.relaxed_fma +;; CHECK-NODEBUG-NEXT: (local.get $0) +;; CHECK-NODEBUG-NEXT: (local.get $1) +;; CHECK-NODEBUG-NEXT: (local.get $2) +;; CHECK-NODEBUG-NEXT: ) +;; CHECK-NODEBUG-NEXT: ) + +;; CHECK-NODEBUG: (func $6 (type $0) (param $0 v128) (param $1 v128) (param $2 v128) (result v128) +;; CHECK-NODEBUG-NEXT: (f32x4.relaxed_fms +;; CHECK-NODEBUG-NEXT: (local.get $0) +;; CHECK-NODEBUG-NEXT: (local.get $1) +;; CHECK-NODEBUG-NEXT: (local.get $2) +;; CHECK-NODEBUG-NEXT: ) +;; CHECK-NODEBUG-NEXT: ) + +;; CHECK-NODEBUG: (func $7 (type $0) (param $0 v128) (param $1 v128) (param $2 v128) (result v128) +;; CHECK-NODEBUG-NEXT: (f64x2.relaxed_fma +;; CHECK-NODEBUG-NEXT: (local.get $0) +;; CHECK-NODEBUG-NEXT: (local.get $1) +;; CHECK-NODEBUG-NEXT: (local.get $2) +;; CHECK-NODEBUG-NEXT: ) +;; CHECK-NODEBUG-NEXT: ) + +;; CHECK-NODEBUG: (func $8 (type $0) (param $0 v128) (param $1 v128) (param $2 v128) (result v128) +;; CHECK-NODEBUG-NEXT: (f64x2.relaxed_fms +;; CHECK-NODEBUG-NEXT: (local.get $0) +;; CHECK-NODEBUG-NEXT: (local.get $1) +;; CHECK-NODEBUG-NEXT: (local.get $2) +;; CHECK-NODEBUG-NEXT: ) +;; CHECK-NODEBUG-NEXT: ) + +;; CHECK-NODEBUG: (func $9 (type $0) (param $0 v128) (param $1 v128) (param $2 v128) (result v128) +;; CHECK-NODEBUG-NEXT: (i8x16.laneselect +;; CHECK-NODEBUG-NEXT: (local.get $0) +;; CHECK-NODEBUG-NEXT: (local.get $1) +;; CHECK-NODEBUG-NEXT: (local.get $2) +;; CHECK-NODEBUG-NEXT: ) +;; CHECK-NODEBUG-NEXT: ) + +;; CHECK-NODEBUG: (func $10 (type $0) (param $0 v128) (param $1 v128) (param $2 v128) (result v128) +;; CHECK-NODEBUG-NEXT: (i16x8.laneselect +;; CHECK-NODEBUG-NEXT: (local.get $0) +;; CHECK-NODEBUG-NEXT: (local.get $1) +;; CHECK-NODEBUG-NEXT: (local.get $2) +;; CHECK-NODEBUG-NEXT: ) +;; CHECK-NODEBUG-NEXT: ) + +;; CHECK-NODEBUG: (func $11 (type $0) (param $0 v128) (param $1 v128) (param $2 v128) (result v128) +;; CHECK-NODEBUG-NEXT: (i32x4.laneselect +;; CHECK-NODEBUG-NEXT: (local.get $0) +;; CHECK-NODEBUG-NEXT: (local.get $1) +;; CHECK-NODEBUG-NEXT: (local.get $2) +;; CHECK-NODEBUG-NEXT: ) +;; CHECK-NODEBUG-NEXT: ) + +;; CHECK-NODEBUG: (func $12 (type $0) (param $0 v128) (param $1 v128) (param $2 v128) (result v128) +;; CHECK-NODEBUG-NEXT: (i64x2.laneselect +;; CHECK-NODEBUG-NEXT: (local.get $0) +;; CHECK-NODEBUG-NEXT: (local.get $1) +;; CHECK-NODEBUG-NEXT: (local.get $2) +;; CHECK-NODEBUG-NEXT: ) +;; CHECK-NODEBUG-NEXT: ) + +;; CHECK-NODEBUG: (func $13 (type $1) (param $0 v128) (param $1 v128) (result v128) +;; CHECK-NODEBUG-NEXT: (f32x4.relaxed_min +;; CHECK-NODEBUG-NEXT: (local.get $0) +;; CHECK-NODEBUG-NEXT: (local.get $1) +;; CHECK-NODEBUG-NEXT: ) +;; CHECK-NODEBUG-NEXT: ) + +;; CHECK-NODEBUG: (func $14 (type $1) (param $0 v128) (param $1 v128) (result v128) +;; CHECK-NODEBUG-NEXT: (f32x4.relaxed_max +;; CHECK-NODEBUG-NEXT: (local.get $0) +;; CHECK-NODEBUG-NEXT: (local.get $1) +;; CHECK-NODEBUG-NEXT: ) +;; CHECK-NODEBUG-NEXT: ) + +;; CHECK-NODEBUG: (func $15 (type $1) (param $0 v128) (param $1 v128) (result v128) +;; CHECK-NODEBUG-NEXT: (f64x2.relaxed_min +;; CHECK-NODEBUG-NEXT: (local.get $0) +;; CHECK-NODEBUG-NEXT: (local.get $1) +;; CHECK-NODEBUG-NEXT: ) +;; CHECK-NODEBUG-NEXT: ) + +;; CHECK-NODEBUG: (func $16 (type $1) (param $0 v128) (param $1 v128) (result v128) +;; CHECK-NODEBUG-NEXT: (f64x2.relaxed_max +;; CHECK-NODEBUG-NEXT: (local.get $0) +;; CHECK-NODEBUG-NEXT: (local.get $1) +;; CHECK-NODEBUG-NEXT: ) +;; CHECK-NODEBUG-NEXT: ) + +;; CHECK-NODEBUG: (func $17 (type $1) (param $0 v128) (param $1 v128) (result v128) +;; CHECK-NODEBUG-NEXT: (i16x8.relaxed_q15mulr_s +;; CHECK-NODEBUG-NEXT: (local.get $0) +;; CHECK-NODEBUG-NEXT: (local.get $1) +;; CHECK-NODEBUG-NEXT: ) +;; CHECK-NODEBUG-NEXT: ) + +;; CHECK-NODEBUG: (func $18 (type $1) (param $0 v128) (param $1 v128) (result v128) +;; CHECK-NODEBUG-NEXT: (i16x8.dot_i8x16_i7x16_s +;; CHECK-NODEBUG-NEXT: (local.get $0) +;; CHECK-NODEBUG-NEXT: (local.get $1) +;; CHECK-NODEBUG-NEXT: ) +;; CHECK-NODEBUG-NEXT: ) + +;; CHECK-NODEBUG: (func $19 (type $0) (param $0 v128) (param $1 v128) (param $2 v128) (result v128) +;; CHECK-NODEBUG-NEXT: (i32x4.dot_i8x16_i7x16_add_s +;; CHECK-NODEBUG-NEXT: (local.get $0) +;; CHECK-NODEBUG-NEXT: (local.get $1) +;; CHECK-NODEBUG-NEXT: (local.get $2) +;; CHECK-NODEBUG-NEXT: ) +;; CHECK-NODEBUG-NEXT: ) |