diff options
Diffstat (limited to 'llvm/test/CodeGen/WebAssembly/simd-intrinsics.ll')
-rw-r--r-- | llvm/test/CodeGen/WebAssembly/simd-intrinsics.ll | 78 |
1 files changed, 26 insertions, 52 deletions
diff --git a/llvm/test/CodeGen/WebAssembly/simd-intrinsics.ll b/llvm/test/CodeGen/WebAssembly/simd-intrinsics.ll index 1cf990d11d4..6245efd0a0b 100644 --- a/llvm/test/CodeGen/WebAssembly/simd-intrinsics.ll +++ b/llvm/test/CodeGen/WebAssembly/simd-intrinsics.ll @@ -12,8 +12,7 @@ target triple = "wasm32-unknown-unknown" ; 16 x i8 ; ============================================================================== ; CHECK-LABEL: add_sat_s_v16i8: -; SIMD128-NEXT: .param v128, v128{{$}} -; SIMD128-NEXT: .result v128{{$}} +; SIMD128-NEXT: .functype add_sat_s_v16i8 (v128, v128) -> (v128){{$}} ; SIMD128-NEXT: i8x16.add_saturate_s $push[[R:[0-9]+]]=, $0, $1{{$}} ; SIMD128-NEXT: return $pop[[R]]{{$}} declare <16 x i8> @llvm.sadd.sat.v16i8(<16 x i8>, <16 x i8>) @@ -23,8 +22,7 @@ define <16 x i8> @add_sat_s_v16i8(<16 x i8> %x, <16 x i8> %y) { } ; CHECK-LABEL: add_sat_u_v16i8: -; SIMD128-NEXT: .param v128, v128{{$}} -; SIMD128-NEXT: .result v128{{$}} +; SIMD128-NEXT: .functype add_sat_u_v16i8 (v128, v128) -> (v128){{$}} ; SIMD128-NEXT: i8x16.add_saturate_u $push[[R:[0-9]+]]=, $0, $1{{$}} ; SIMD128-NEXT: return $pop[[R]]{{$}} declare <16 x i8> @llvm.uadd.sat.v16i8(<16 x i8>, <16 x i8>) @@ -34,8 +32,7 @@ define <16 x i8> @add_sat_u_v16i8(<16 x i8> %x, <16 x i8> %y) { } ; CHECK-LABEL: sub_sat_s_v16i8: -; SIMD128-NEXT: .param v128, v128{{$}} -; SIMD128-NEXT: .result v128{{$}} +; SIMD128-NEXT: .functype sub_sat_s_v16i8 (v128, v128) -> (v128){{$}} ; SIMD128-NEXT: i8x16.sub_saturate_s $push[[R:[0-9]+]]=, $0, $1{{$}} ; SIMD128-NEXT: return $pop[[R]]{{$}} declare <16 x i8> @llvm.wasm.sub.saturate.signed.v16i8(<16 x i8>, <16 x i8>) @@ -47,8 +44,7 @@ define <16 x i8> @sub_sat_s_v16i8(<16 x i8> %x, <16 x i8> %y) { } ; CHECK-LABEL: sub_sat_u_v16i8: -; SIMD128-NEXT: .param v128, v128{{$}} -; SIMD128-NEXT: .result v128{{$}} +; SIMD128-NEXT: .functype sub_sat_u_v16i8 (v128, v128) -> (v128){{$}} ; SIMD128-NEXT: i8x16.sub_saturate_u $push[[R:[0-9]+]]=, $0, $1{{$}} ; SIMD128-NEXT: return $pop[[R]]{{$}} declare <16 x i8> @llvm.wasm.sub.saturate.unsigned.v16i8(<16 x i8>, <16 x i8>) @@ -60,8 +56,7 @@ define <16 x i8> @sub_sat_u_v16i8(<16 x i8> %x, <16 x i8> %y) { } ; CHECK-LABEL: any_v16i8: -; SIMD128-NEXT: .param v128{{$}} -; SIMD128-NEXT: .result i32{{$}} +; SIMD128-NEXT: .functype any_v16i8 (v128) -> (i32){{$}} ; SIMD128-NEXT: i8x16.any_true $push[[R:[0-9]+]]=, $0{{$}} ; SIMD128-NEXT: return $pop[[R]]{{$}} declare i32 @llvm.wasm.anytrue.v16i8(<16 x i8>) @@ -71,8 +66,7 @@ define i32 @any_v16i8(<16 x i8> %x) { } ; CHECK-LABEL: all_v16i8: -; SIMD128-NEXT: .param v128{{$}} -; SIMD128-NEXT: .result i32{{$}} +; SIMD128-NEXT: .functype all_v16i8 (v128) -> (i32){{$}} ; SIMD128-NEXT: i8x16.all_true $push[[R:[0-9]+]]=, $0{{$}} ; SIMD128-NEXT: return $pop[[R]]{{$}} declare i32 @llvm.wasm.alltrue.v16i8(<16 x i8>) @@ -82,8 +76,7 @@ define i32 @all_v16i8(<16 x i8> %x) { } ; CHECK-LABEL: bitselect_v16i8: -; SIMD128-NEXT: .param v128, v128, v128{{$}} -; SIMD128-NEXT: .result v128{{$}} +; SIMD128-NEXT: .functype bitselect_v16i8 (v128, v128, v128) -> (v128){{$}} ; SIMD128-NEXT: v128.bitselect $push[[R:[0-9]+]]=, $1, $2, $0{{$}} ; SIMD128-NEXT: return $pop[[R]]{{$}} declare <16 x i8> @llvm.wasm.bitselect.v16i8(<16 x i8>, <16 x i8>, <16 x i8>) @@ -98,8 +91,7 @@ define <16 x i8> @bitselect_v16i8(<16 x i8> %c, <16 x i8> %v1, <16 x i8> %v2) { ; 8 x i16 ; ============================================================================== ; CHECK-LABEL: add_sat_s_v8i16: -; SIMD128-NEXT: .param v128, v128{{$}} -; SIMD128-NEXT: .result v128{{$}} +; SIMD128-NEXT: .functype add_sat_s_v8i16 (v128, v128) -> (v128){{$}} ; SIMD128-NEXT: i16x8.add_saturate_s $push[[R:[0-9]+]]=, $0, $1{{$}} ; SIMD128-NEXT: return $pop[[R]]{{$}} declare <8 x i16> @llvm.sadd.sat.v8i16(<8 x i16>, <8 x i16>) @@ -109,8 +101,7 @@ define <8 x i16> @add_sat_s_v8i16(<8 x i16> %x, <8 x i16> %y) { } ; CHECK-LABEL: add_sat_u_v8i16: -; SIMD128-NEXT: .param v128, v128{{$}} -; SIMD128-NEXT: .result v128{{$}} +; SIMD128-NEXT: .functype add_sat_u_v8i16 (v128, v128) -> (v128){{$}} ; SIMD128-NEXT: i16x8.add_saturate_u $push[[R:[0-9]+]]=, $0, $1{{$}} ; SIMD128-NEXT: return $pop[[R]]{{$}} declare <8 x i16> @llvm.uadd.sat.v8i16(<8 x i16>, <8 x i16>) @@ -120,8 +111,7 @@ define <8 x i16> @add_sat_u_v8i16(<8 x i16> %x, <8 x i16> %y) { } ; CHECK-LABEL: sub_sat_s_v8i16: -; SIMD128-NEXT: .param v128, v128{{$}} -; SIMD128-NEXT: .result v128{{$}} +; SIMD128-NEXT: .functype sub_sat_s_v8i16 (v128, v128) -> (v128){{$}} ; SIMD128-NEXT: i16x8.sub_saturate_s $push[[R:[0-9]+]]=, $0, $1{{$}} ; SIMD128-NEXT: return $pop[[R]]{{$}} declare <8 x i16> @llvm.wasm.sub.saturate.signed.v8i16(<8 x i16>, <8 x i16>) @@ -133,8 +123,7 @@ define <8 x i16> @sub_sat_s_v8i16(<8 x i16> %x, <8 x i16> %y) { } ; CHECK-LABEL: sub_sat_u_v8i16: -; SIMD128-NEXT: .param v128, v128{{$}} -; SIMD128-NEXT: .result v128{{$}} +; SIMD128-NEXT: .functype sub_sat_u_v8i16 (v128, v128) -> (v128){{$}} ; SIMD128-NEXT: i16x8.sub_saturate_u $push[[R:[0-9]+]]=, $0, $1{{$}} ; SIMD128-NEXT: return $pop[[R]]{{$}} declare <8 x i16> @llvm.wasm.sub.saturate.unsigned.v8i16(<8 x i16>, <8 x i16>) @@ -146,8 +135,7 @@ define <8 x i16> @sub_sat_u_v8i16(<8 x i16> %x, <8 x i16> %y) { } ; CHECK-LABEL: any_v8i16: -; SIMD128-NEXT: .param v128{{$}} -; SIMD128-NEXT: .result i32{{$}} +; SIMD128-NEXT: .functype any_v8i16 (v128) -> (i32){{$}} ; SIMD128-NEXT: i16x8.any_true $push[[R:[0-9]+]]=, $0{{$}} ; SIMD128-NEXT: return $pop[[R]]{{$}} declare i32 @llvm.wasm.anytrue.v8i16(<8 x i16>) @@ -157,8 +145,7 @@ define i32 @any_v8i16(<8 x i16> %x) { } ; CHECK-LABEL: all_v8i16: -; SIMD128-NEXT: .param v128{{$}} -; SIMD128-NEXT: .result i32{{$}} +; SIMD128-NEXT: .functype all_v8i16 (v128) -> (i32){{$}} ; SIMD128-NEXT: i16x8.all_true $push[[R:[0-9]+]]=, $0{{$}} ; SIMD128-NEXT: return $pop[[R]]{{$}} declare i32 @llvm.wasm.alltrue.v8i16(<8 x i16>) @@ -168,8 +155,7 @@ define i32 @all_v8i16(<8 x i16> %x) { } ; CHECK-LABEL: bitselect_v8i16: -; SIMD128-NEXT: .param v128, v128, v128{{$}} -; SIMD128-NEXT: .result v128{{$}} +; SIMD128-NEXT: .functype bitselect_v8i16 (v128, v128, v128) -> (v128){{$}} ; SIMD128-NEXT: v128.bitselect $push[[R:[0-9]+]]=, $1, $2, $0{{$}} ; SIMD128-NEXT: return $pop[[R]]{{$}} declare <8 x i16> @llvm.wasm.bitselect.v8i16(<8 x i16>, <8 x i16>, <8 x i16>) @@ -184,8 +170,7 @@ define <8 x i16> @bitselect_v8i16(<8 x i16> %c, <8 x i16> %v1, <8 x i16> %v2) { ; 4 x i32 ; ============================================================================== ; CHECK-LABEL: any_v4i32: -; SIMD128-NEXT: .param v128{{$}} -; SIMD128-NEXT: .result i32{{$}} +; SIMD128-NEXT: .functype any_v4i32 (v128) -> (i32){{$}} ; SIMD128-NEXT: i32x4.any_true $push[[R:[0-9]+]]=, $0{{$}} ; SIMD128-NEXT: return $pop[[R]]{{$}} declare i32 @llvm.wasm.anytrue.v4i32(<4 x i32>) @@ -195,8 +180,7 @@ define i32 @any_v4i32(<4 x i32> %x) { } ; CHECK-LABEL: all_v4i32: -; SIMD128-NEXT: .param v128{{$}} -; SIMD128-NEXT: .result i32{{$}} +; SIMD128-NEXT: .functype all_v4i32 (v128) -> (i32){{$}} ; SIMD128-NEXT: i32x4.all_true $push[[R:[0-9]+]]=, $0{{$}} ; SIMD128-NEXT: return $pop[[R]]{{$}} declare i32 @llvm.wasm.alltrue.v4i32(<4 x i32>) @@ -206,8 +190,7 @@ define i32 @all_v4i32(<4 x i32> %x) { } ; CHECK-LABEL: bitselect_v4i32: -; SIMD128-NEXT: .param v128, v128, v128{{$}} -; SIMD128-NEXT: .result v128{{$}} +; SIMD128-NEXT: .functype bitselect_v4i32 (v128, v128, v128) -> (v128){{$}} ; SIMD128-NEXT: v128.bitselect $push[[R:[0-9]+]]=, $1, $2, $0{{$}} ; SIMD128-NEXT: return $pop[[R]]{{$}} declare <4 x i32> @llvm.wasm.bitselect.v4i32(<4 x i32>, <4 x i32>, <4 x i32>) @@ -220,8 +203,7 @@ define <4 x i32> @bitselect_v4i32(<4 x i32> %c, <4 x i32> %v1, <4 x i32> %v2) { ; CHECK-LABEL: trunc_sat_s_v4i32: ; NO-SIMD128-NOT: f32x4 -; SIMD128-NEXT: .param v128{{$}} -; SIMD128-NEXT: .result v128{{$}} +; SIMD128-NEXT: .functype trunc_sat_s_v4i32 (v128) -> (v128){{$}} ; SIMD128-NEXT: i32x4.trunc_sat_s/f32x4 $push[[R:[0-9]+]]=, $0 ; SIMD128-NEXT: return $pop[[R]] declare <4 x i32> @llvm.wasm.trunc.saturate.signed.v4i32.v4f32(<4 x float>) @@ -232,8 +214,7 @@ define <4 x i32> @trunc_sat_s_v4i32(<4 x float> %x) { ; CHECK-LABEL: trunc_sat_u_v4i32: ; NO-SIMD128-NOT: f32x4 -; SIMD128-NEXT: .param v128{{$}} -; SIMD128-NEXT: .result v128{{$}} +; SIMD128-NEXT: .functype trunc_sat_u_v4i32 (v128) -> (v128){{$}} ; SIMD128-NEXT: i32x4.trunc_sat_u/f32x4 $push[[R:[0-9]+]]=, $0 ; SIMD128-NEXT: return $pop[[R]] declare <4 x i32> @llvm.wasm.trunc.saturate.unsigned.v4i32.v4f32(<4 x float>) @@ -246,8 +227,7 @@ define <4 x i32> @trunc_sat_u_v4i32(<4 x float> %x) { ; 2 x i64 ; ============================================================================== ; CHECK-LABEL: any_v2i64: -; SIMD128-NEXT: .param v128{{$}} -; SIMD128-NEXT: .result i32{{$}} +; SIMD128-NEXT: .functype any_v2i64 (v128) -> (i32){{$}} ; SIMD128-NEXT: i64x2.any_true $push[[R:[0-9]+]]=, $0{{$}} ; SIMD128-NEXT: return $pop[[R]]{{$}} declare i32 @llvm.wasm.anytrue.v2i64(<2 x i64>) @@ -257,8 +237,7 @@ define i32 @any_v2i64(<2 x i64> %x) { } ; CHECK-LABEL: all_v2i64: -; SIMD128-NEXT: .param v128{{$}} -; SIMD128-NEXT: .result i32{{$}} +; SIMD128-NEXT: .functype all_v2i64 (v128) -> (i32){{$}} ; SIMD128-NEXT: i64x2.all_true $push[[R:[0-9]+]]=, $0{{$}} ; SIMD128-NEXT: return $pop[[R]]{{$}} declare i32 @llvm.wasm.alltrue.v2i64(<2 x i64>) @@ -268,8 +247,7 @@ define i32 @all_v2i64(<2 x i64> %x) { } ; CHECK-LABEL: bitselect_v2i64: -; SIMD128-NEXT: .param v128, v128, v128{{$}} -; SIMD128-NEXT: .result v128{{$}} +; SIMD128-NEXT: .functype bitselect_v2i64 (v128, v128, v128) -> (v128){{$}} ; SIMD128-NEXT: v128.bitselect $push[[R:[0-9]+]]=, $1, $2, $0{{$}} ; SIMD128-NEXT: return $pop[[R]]{{$}} declare <2 x i64> @llvm.wasm.bitselect.v2i64(<2 x i64>, <2 x i64>, <2 x i64>) @@ -282,8 +260,7 @@ define <2 x i64> @bitselect_v2i64(<2 x i64> %c, <2 x i64> %v1, <2 x i64> %v2) { ; CHECK-LABEL: trunc_sat_s_v2i64: ; NO-SIMD128-NOT: f32x4 -; SIMD128-NEXT: .param v128{{$}} -; SIMD128-NEXT: .result v128{{$}} +; SIMD128-NEXT: .functype trunc_sat_s_v2i64 (v128) -> (v128){{$}} ; SIMD128-NEXT: i64x2.trunc_sat_s/f64x2 $push[[R:[0-9]+]]=, $0 ; SIMD128-NEXT: return $pop[[R]] declare <2 x i64> @llvm.wasm.trunc.saturate.signed.v2i64.v2f64(<2 x double>) @@ -294,8 +271,7 @@ define <2 x i64> @trunc_sat_s_v2i64(<2 x double> %x) { ; CHECK-LABEL: trunc_sat_u_v2i64: ; NO-SIMD128-NOT: f32x4 -; SIMD128-NEXT: .param v128{{$}} -; SIMD128-NEXT: .result v128{{$}} +; SIMD128-NEXT: .functype trunc_sat_u_v2i64 (v128) -> (v128){{$}} ; SIMD128-NEXT: i64x2.trunc_sat_u/f64x2 $push[[R:[0-9]+]]=, $0 ; SIMD128-NEXT: return $pop[[R]] declare <2 x i64> @llvm.wasm.trunc.saturate.unsigned.v2i64.v2f64(<2 x double>) @@ -308,8 +284,7 @@ define <2 x i64> @trunc_sat_u_v2i64(<2 x double> %x) { ; 4 x f32 ; ============================================================================== ; CHECK-LABEL: bitselect_v4f32: -; SIMD128-NEXT: .param v128, v128, v128{{$}} -; SIMD128-NEXT: .result v128{{$}} +; SIMD128-NEXT: .functype bitselect_v4f32 (v128, v128, v128) -> (v128){{$}} ; SIMD128-NEXT: v128.bitselect $push[[R:[0-9]+]]=, $1, $2, $0{{$}} ; SIMD128-NEXT: return $pop[[R]]{{$}} declare <4 x float> @llvm.wasm.bitselect.v4f32(<4 x float>, <4 x float>, <4 x float>) @@ -324,8 +299,7 @@ define <4 x float> @bitselect_v4f32(<4 x float> %c, <4 x float> %v1, <4 x float> ; 2 x f64 ; ============================================================================== ; CHECK-LABEL: bitselect_v2f64: -; SIMD128-NEXT: .param v128, v128, v128{{$}} -; SIMD128-NEXT: .result v128{{$}} +; SIMD128-NEXT: .functype bitselect_v2f64 (v128, v128, v128) -> (v128){{$}} ; SIMD128-NEXT: v128.bitselect $push[[R:[0-9]+]]=, $1, $2, $0{{$}} ; SIMD128-NEXT: return $pop[[R]]{{$}} declare <2 x double> @llvm.wasm.bitselect.v2f64(<2 x double>, <2 x double>, <2 x double>) |