| Index: tests_lit/llvm2ice_tests/vector-arith.ll
|
| diff --git a/tests_lit/llvm2ice_tests/vector-arith.ll b/tests_lit/llvm2ice_tests/vector-arith.ll
|
| index 94acfe0759cd676a74a84bea4c0320d2c43343ac..e093f97b054385c5bafaeead8845293488a39e74 100644
|
| --- a/tests_lit/llvm2ice_tests/vector-arith.ll
|
| +++ b/tests_lit/llvm2ice_tests/vector-arith.ll
|
| @@ -56,7 +56,10 @@ entry:
|
| %res = frem <4 x float> %arg0, %arg1
|
| ret <4 x float> %res
|
| ; CHECK-LABEL: test_frem:
|
| -; CHECK: Sz_frem_v4f32
|
| +; CHECK: fmodf
|
| +; CHECK: fmodf
|
| +; CHECK: fmodf
|
| +; CHECK: fmodf
|
| }
|
|
|
| define <16 x i8> @test_add_v16i8(<16 x i8> %arg0, <16 x i8> %arg1) {
|
| @@ -104,7 +107,22 @@ entry:
|
| %res = mul <16 x i8> %arg0, %arg1
|
| ret <16 x i8> %res
|
| ; CHECK-LABEL: test_mul_v16i8:
|
| -; CHECK: Sz_mul_v16i8
|
| +; CHECK: imul
|
| +; CHECK: imul
|
| +; CHECK: imul
|
| +; CHECK: imul
|
| +; CHECK: imul
|
| +; CHECK: imul
|
| +; CHECK: imul
|
| +; CHECK: imul
|
| +; CHECK: imul
|
| +; CHECK: imul
|
| +; CHECK: imul
|
| +; CHECK: imul
|
| +; CHECK: imul
|
| +; CHECK: imul
|
| +; CHECK: imul
|
| +; CHECK: imul
|
| }
|
|
|
| define <16 x i8> @test_shl_v16i8(<16 x i8> %arg0, <16 x i8> %arg1) {
|
| @@ -112,7 +130,22 @@ entry:
|
| %res = shl <16 x i8> %arg0, %arg1
|
| ret <16 x i8> %res
|
| ; CHECK-LABEL: test_shl_v16i8:
|
| -; CHECK: Sz_shl_v16i8
|
| +; CHECK: shl
|
| +; CHECK: shl
|
| +; CHECK: shl
|
| +; CHECK: shl
|
| +; CHECK: shl
|
| +; CHECK: shl
|
| +; CHECK: shl
|
| +; CHECK: shl
|
| +; CHECK: shl
|
| +; CHECK: shl
|
| +; CHECK: shl
|
| +; CHECK: shl
|
| +; CHECK: shl
|
| +; CHECK: shl
|
| +; CHECK: shl
|
| +; CHECK: shl
|
| }
|
|
|
| define <16 x i8> @test_lshr_v16i8(<16 x i8> %arg0, <16 x i8> %arg1) {
|
| @@ -120,7 +153,22 @@ entry:
|
| %res = lshr <16 x i8> %arg0, %arg1
|
| ret <16 x i8> %res
|
| ; CHECK-LABEL: test_lshr_v16i8:
|
| -; CHECK: Sz_lshr_v16i8
|
| +; CHECK: shr
|
| +; CHECK: shr
|
| +; CHECK: shr
|
| +; CHECK: shr
|
| +; CHECK: shr
|
| +; CHECK: shr
|
| +; CHECK: shr
|
| +; CHECK: shr
|
| +; CHECK: shr
|
| +; CHECK: shr
|
| +; CHECK: shr
|
| +; CHECK: shr
|
| +; CHECK: shr
|
| +; CHECK: shr
|
| +; CHECK: shr
|
| +; CHECK: shr
|
| }
|
|
|
| define <16 x i8> @test_ashr_v16i8(<16 x i8> %arg0, <16 x i8> %arg1) {
|
| @@ -128,7 +176,22 @@ entry:
|
| %res = ashr <16 x i8> %arg0, %arg1
|
| ret <16 x i8> %res
|
| ; CHECK-LABEL: test_ashr_v16i8:
|
| -; CHECK: Sz_ashr_v16i8
|
| +; CHECK: sar
|
| +; CHECK: sar
|
| +; CHECK: sar
|
| +; CHECK: sar
|
| +; CHECK: sar
|
| +; CHECK: sar
|
| +; CHECK: sar
|
| +; CHECK: sar
|
| +; CHECK: sar
|
| +; CHECK: sar
|
| +; CHECK: sar
|
| +; CHECK: sar
|
| +; CHECK: sar
|
| +; CHECK: sar
|
| +; CHECK: sar
|
| +; CHECK: sar
|
| }
|
|
|
| define <16 x i8> @test_udiv_v16i8(<16 x i8> %arg0, <16 x i8> %arg1) {
|
| @@ -136,7 +199,22 @@ entry:
|
| %res = udiv <16 x i8> %arg0, %arg1
|
| ret <16 x i8> %res
|
| ; CHECK-LABEL: test_udiv_v16i8:
|
| -; CHECK: Sz_udiv_v16i8
|
| +; CHECK: div
|
| +; CHECK: div
|
| +; CHECK: div
|
| +; CHECK: div
|
| +; CHECK: div
|
| +; CHECK: div
|
| +; CHECK: div
|
| +; CHECK: div
|
| +; CHECK: div
|
| +; CHECK: div
|
| +; CHECK: div
|
| +; CHECK: div
|
| +; CHECK: div
|
| +; CHECK: div
|
| +; CHECK: div
|
| +; CHECK: div
|
| }
|
|
|
| define <16 x i8> @test_sdiv_v16i8(<16 x i8> %arg0, <16 x i8> %arg1) {
|
| @@ -144,7 +222,22 @@ entry:
|
| %res = sdiv <16 x i8> %arg0, %arg1
|
| ret <16 x i8> %res
|
| ; CHECK-LABEL: test_sdiv_v16i8:
|
| -; CHECK: Sz_sdiv_v16i8
|
| +; CHECK: idiv
|
| +; CHECK: idiv
|
| +; CHECK: idiv
|
| +; CHECK: idiv
|
| +; CHECK: idiv
|
| +; CHECK: idiv
|
| +; CHECK: idiv
|
| +; CHECK: idiv
|
| +; CHECK: idiv
|
| +; CHECK: idiv
|
| +; CHECK: idiv
|
| +; CHECK: idiv
|
| +; CHECK: idiv
|
| +; CHECK: idiv
|
| +; CHECK: idiv
|
| +; CHECK: idiv
|
| }
|
|
|
| define <16 x i8> @test_urem_v16i8(<16 x i8> %arg0, <16 x i8> %arg1) {
|
| @@ -152,7 +245,22 @@ entry:
|
| %res = urem <16 x i8> %arg0, %arg1
|
| ret <16 x i8> %res
|
| ; CHECK-LABEL: test_urem_v16i8:
|
| -; CHECK: Sz_urem_v16i8
|
| +; CHECK: div
|
| +; CHECK: div
|
| +; CHECK: div
|
| +; CHECK: div
|
| +; CHECK: div
|
| +; CHECK: div
|
| +; CHECK: div
|
| +; CHECK: div
|
| +; CHECK: div
|
| +; CHECK: div
|
| +; CHECK: div
|
| +; CHECK: div
|
| +; CHECK: div
|
| +; CHECK: div
|
| +; CHECK: div
|
| +; CHECK: div
|
| }
|
|
|
| define <16 x i8> @test_srem_v16i8(<16 x i8> %arg0, <16 x i8> %arg1) {
|
| @@ -160,7 +268,22 @@ entry:
|
| %res = srem <16 x i8> %arg0, %arg1
|
| ret <16 x i8> %res
|
| ; CHECK-LABEL: test_srem_v16i8:
|
| -; CHECK: Sz_srem_v16i8
|
| +; CHECK: idiv
|
| +; CHECK: idiv
|
| +; CHECK: idiv
|
| +; CHECK: idiv
|
| +; CHECK: idiv
|
| +; CHECK: idiv
|
| +; CHECK: idiv
|
| +; CHECK: idiv
|
| +; CHECK: idiv
|
| +; CHECK: idiv
|
| +; CHECK: idiv
|
| +; CHECK: idiv
|
| +; CHECK: idiv
|
| +; CHECK: idiv
|
| +; CHECK: idiv
|
| +; CHECK: idiv
|
| }
|
|
|
| define <8 x i16> @test_add_v8i16(<8 x i16> %arg0, <8 x i16> %arg1) {
|
| @@ -216,7 +339,14 @@ entry:
|
| %res = shl <8 x i16> %arg0, %arg1
|
| ret <8 x i16> %res
|
| ; CHECK-LABEL: test_shl_v8i16:
|
| -; CHECK: Sz_shl_v8i16
|
| +; CHECK: shl
|
| +; CHECK: shl
|
| +; CHECK: shl
|
| +; CHECK: shl
|
| +; CHECK: shl
|
| +; CHECK: shl
|
| +; CHECK: shl
|
| +; CHECK: shl
|
| }
|
|
|
| define <8 x i16> @test_lshr_v8i16(<8 x i16> %arg0, <8 x i16> %arg1) {
|
| @@ -224,7 +354,14 @@ entry:
|
| %res = lshr <8 x i16> %arg0, %arg1
|
| ret <8 x i16> %res
|
| ; CHECK-LABEL: test_lshr_v8i16:
|
| -; CHECK: Sz_lshr_v8i16
|
| +; CHECK: shr
|
| +; CHECK: shr
|
| +; CHECK: shr
|
| +; CHECK: shr
|
| +; CHECK: shr
|
| +; CHECK: shr
|
| +; CHECK: shr
|
| +; CHECK: shr
|
| }
|
|
|
| define <8 x i16> @test_ashr_v8i16(<8 x i16> %arg0, <8 x i16> %arg1) {
|
| @@ -232,7 +369,14 @@ entry:
|
| %res = ashr <8 x i16> %arg0, %arg1
|
| ret <8 x i16> %res
|
| ; CHECK-LABEL: test_ashr_v8i16:
|
| -; CHECK: Sz_ashr_v8i16
|
| +; CHECK: sar
|
| +; CHECK: sar
|
| +; CHECK: sar
|
| +; CHECK: sar
|
| +; CHECK: sar
|
| +; CHECK: sar
|
| +; CHECK: sar
|
| +; CHECK: sar
|
| }
|
|
|
| define <8 x i16> @test_udiv_v8i16(<8 x i16> %arg0, <8 x i16> %arg1) {
|
| @@ -240,7 +384,14 @@ entry:
|
| %res = udiv <8 x i16> %arg0, %arg1
|
| ret <8 x i16> %res
|
| ; CHECK-LABEL: test_udiv_v8i16:
|
| -; CHECK: Sz_udiv_v8i16
|
| +; CHECK: div
|
| +; CHECK: div
|
| +; CHECK: div
|
| +; CHECK: div
|
| +; CHECK: div
|
| +; CHECK: div
|
| +; CHECK: div
|
| +; CHECK: div
|
| }
|
|
|
| define <8 x i16> @test_sdiv_v8i16(<8 x i16> %arg0, <8 x i16> %arg1) {
|
| @@ -248,7 +399,14 @@ entry:
|
| %res = sdiv <8 x i16> %arg0, %arg1
|
| ret <8 x i16> %res
|
| ; CHECK-LABEL: test_sdiv_v8i16:
|
| -; CHECK: Sz_sdiv_v8i16
|
| +; CHECK: idiv
|
| +; CHECK: idiv
|
| +; CHECK: idiv
|
| +; CHECK: idiv
|
| +; CHECK: idiv
|
| +; CHECK: idiv
|
| +; CHECK: idiv
|
| +; CHECK: idiv
|
| }
|
|
|
| define <8 x i16> @test_urem_v8i16(<8 x i16> %arg0, <8 x i16> %arg1) {
|
| @@ -256,7 +414,14 @@ entry:
|
| %res = urem <8 x i16> %arg0, %arg1
|
| ret <8 x i16> %res
|
| ; CHECK-LABEL: test_urem_v8i16:
|
| -; CHECK: Sz_urem_v8i16
|
| +; CHECK: div
|
| +; CHECK: div
|
| +; CHECK: div
|
| +; CHECK: div
|
| +; CHECK: div
|
| +; CHECK: div
|
| +; CHECK: div
|
| +; CHECK: div
|
| }
|
|
|
| define <8 x i16> @test_srem_v8i16(<8 x i16> %arg0, <8 x i16> %arg1) {
|
| @@ -264,7 +429,14 @@ entry:
|
| %res = srem <8 x i16> %arg0, %arg1
|
| ret <8 x i16> %res
|
| ; CHECK-LABEL: test_srem_v8i16:
|
| -; CHECK: Sz_srem_v8i16
|
| +; CHECK: idiv
|
| +; CHECK: idiv
|
| +; CHECK: idiv
|
| +; CHECK: idiv
|
| +; CHECK: idiv
|
| +; CHECK: idiv
|
| +; CHECK: idiv
|
| +; CHECK: idiv
|
| }
|
|
|
| define <4 x i32> @test_add_v4i32(<4 x i32> %arg0, <4 x i32> %arg1) {
|
| @@ -324,7 +496,10 @@ entry:
|
| %res = shl <4 x i32> %arg0, %arg1
|
| ret <4 x i32> %res
|
| ; CHECK-LABEL: test_shl_v4i32:
|
| -; CHECK: Sz_shl_v4i32
|
| +; CHECK: shl
|
| +; CHECK: shl
|
| +; CHECK: shl
|
| +; CHECK: shl
|
|
|
| ; This line is to ensure that pmulld is generated in test_mul_v4i32 above.
|
| ; SSE41-LABEL: test_shl_v4i32:
|
| @@ -335,7 +510,10 @@ entry:
|
| %res = lshr <4 x i32> %arg0, %arg1
|
| ret <4 x i32> %res
|
| ; CHECK-LABEL: test_lshr_v4i32:
|
| -; CHECK: Sz_lshr_v4i32
|
| +; CHECK: shr
|
| +; CHECK: shr
|
| +; CHECK: shr
|
| +; CHECK: shr
|
| }
|
|
|
| define <4 x i32> @test_ashr_v4i32(<4 x i32> %arg0, <4 x i32> %arg1) {
|
| @@ -343,7 +521,10 @@ entry:
|
| %res = ashr <4 x i32> %arg0, %arg1
|
| ret <4 x i32> %res
|
| ; CHECK-LABEL: test_ashr_v4i32:
|
| -; CHECK: Sz_ashr_v4i32
|
| +; CHECK: sar
|
| +; CHECK: sar
|
| +; CHECK: sar
|
| +; CHECK: sar
|
| }
|
|
|
| define <4 x i32> @test_udiv_v4i32(<4 x i32> %arg0, <4 x i32> %arg1) {
|
| @@ -351,7 +532,10 @@ entry:
|
| %res = udiv <4 x i32> %arg0, %arg1
|
| ret <4 x i32> %res
|
| ; CHECK-LABEL: test_udiv_v4i32:
|
| -; CHECK: Sz_udiv_v4i32
|
| +; CHECK: div
|
| +; CHECK: div
|
| +; CHECK: div
|
| +; CHECK: div
|
| }
|
|
|
| define <4 x i32> @test_sdiv_v4i32(<4 x i32> %arg0, <4 x i32> %arg1) {
|
| @@ -359,7 +543,10 @@ entry:
|
| %res = sdiv <4 x i32> %arg0, %arg1
|
| ret <4 x i32> %res
|
| ; CHECK-LABEL: test_sdiv_v4i32:
|
| -; CHECK: Sz_sdiv_v4i32
|
| +; CHECK: idiv
|
| +; CHECK: idiv
|
| +; CHECK: idiv
|
| +; CHECK: idiv
|
| }
|
|
|
| define <4 x i32> @test_urem_v4i32(<4 x i32> %arg0, <4 x i32> %arg1) {
|
| @@ -367,7 +554,10 @@ entry:
|
| %res = urem <4 x i32> %arg0, %arg1
|
| ret <4 x i32> %res
|
| ; CHECK-LABEL: test_urem_v4i32:
|
| -; CHECK: Sz_urem_v4i32
|
| +; CHECK: div
|
| +; CHECK: div
|
| +; CHECK: div
|
| +; CHECK: div
|
| }
|
|
|
| define <4 x i32> @test_srem_v4i32(<4 x i32> %arg0, <4 x i32> %arg1) {
|
| @@ -375,7 +565,10 @@ entry:
|
| %res = srem <4 x i32> %arg0, %arg1
|
| ret <4 x i32> %res
|
| ; CHECK-LABEL: test_srem_v4i32:
|
| -; CHECK: Sz_srem_v4i32
|
| +; CHECK: idiv
|
| +; CHECK: idiv
|
| +; CHECK: idiv
|
| +; CHECK: idiv
|
| }
|
|
|
| ; ERRORS-NOT: ICE translation error
|
|
|