From d31bdff7db6a0024f88102c60b3b6f9a8c1ff12c Mon Sep 17 00:00:00 2001 From: Afonso Bordado Date: Mon, 6 Sep 2021 20:26:27 +0100 Subject: [PATCH] cranelift: Use bool args in simd tests --- .../filetests/runtests/simd-valltrue.clif | 74 ++++++------------- .../filetests/runtests/simd-vanytrue.clif | 74 ++++++------------- 2 files changed, 48 insertions(+), 100 deletions(-) diff --git a/cranelift/filetests/filetests/runtests/simd-valltrue.clif b/cranelift/filetests/filetests/runtests/simd-valltrue.clif index 247b3d4bfd..ced9a6bb0d 100644 --- a/cranelift/filetests/filetests/runtests/simd-valltrue.clif +++ b/cranelift/filetests/filetests/runtests/simd-valltrue.clif @@ -3,67 +3,41 @@ test run target aarch64 target x86_64 machinst -; TODO: Refactor this once we support simd bools in the trampoline - -function %vall_true_b8x16() -> b1, b1, b1 { -block0: - v0 = vconst.b8x16 [false false false false false false false false false false false false false false false false] +function %vall_true_b8x16(b8x16) -> b1 { +block0(v0: b8x16): v1 = vall_true v0 - - v2 = vconst.b8x16 [true false false false false false false false false false false false false false false false] - v3 = vall_true v2 - - v4 = vconst.b8x16 [true true true true true true true true true true true true true true true true] - v5 = vall_true v4 - - return v1, v3, v5 + return v1 } -; run: %vall_true_b8x16() == [false, false, true] +; run: %vall_true_b8x16([false false false false false false false false false false false false false false false false]) == false +; run: %vall_true_b8x16([true false false false false false false false false false false false false false false false]) == false +; run: %vall_true_b8x16([true true true true true true true true true true true true true true true true]) == true -function %vall_true_b16x8() -> b1, b1, b1 { -block0: - v0 = vconst.b16x8 [false false false false false false false false] +function %vall_true_b16x8(b16x8) -> b1 { +block0(v0: b16x8): v1 = vall_true v0 - - v2 = vconst.b16x8 [true false false false false false false false] - v3 = vall_true v2 - - v4 = vconst.b16x8 [true true true true true true true true] - v5 = vall_true v4 - - return v1, v3, v5 + return v1 } -; run: %vall_true_b16x8() == [false, false, true] +; run: %vall_true_b16x8([false false false false false false false false]) == false +; run: %vall_true_b16x8([true false false false false false false false]) == false +; run: %vall_true_b16x8([true true true true true true true true]) == true -function %vall_true_b32x4() -> b1, b1, b1 { -block0: - v0 = vconst.b32x4 [false false false false] +function %vall_true_b32x4(b32x4) -> b1 { +block0(v0: b32x4): v1 = vall_true v0 - - v2 = vconst.b32x4 [true false false false] - v3 = vall_true v2 - - v4 = vconst.b32x4 [true true true true] - v5 = vall_true v4 - - return v1, v3, v5 + return v1 } -; run: %vall_true_b32x4() == [false, false, true] +; run: %vall_true_b32x4([false false false false]) == false +; run: %vall_true_b32x4([true false false false]) == false +; run: %vall_true_b32x4([true true true true]) == true -function %vall_true_b64x2() -> b1, b1, b1 { -block0: - v0 = vconst.b64x2 [false false] +function %vall_true_b64x2(b64x2) -> b1 { +block0(v0: b64x2): v1 = vall_true v0 - - v2 = vconst.b64x2 [true false] - v3 = vall_true v2 - - v4 = vconst.b64x2 [true true] - v5 = vall_true v4 - - return v1, v3, v5 + return v1 } -; run: %vall_true_b64x2() == [false, false, true] +; run: %vall_true_b64x2([false false]) == false +; run: %vall_true_b64x2([true false]) == false +; run: %vall_true_b64x2([true true]) == true diff --git a/cranelift/filetests/filetests/runtests/simd-vanytrue.clif b/cranelift/filetests/filetests/runtests/simd-vanytrue.clif index 15d7f9a040..fd206d54ef 100644 --- a/cranelift/filetests/filetests/runtests/simd-vanytrue.clif +++ b/cranelift/filetests/filetests/runtests/simd-vanytrue.clif @@ -3,67 +3,41 @@ test run target x86_64 machinst ; TODO: The AArch64 backend is producing an illegal instruction for b64x2. See: #3304 -; TODO: Refactor this once we support simd bools in the trampoline - -function %vany_true_b8x16() -> b1, b1, b1 { -block0: - v0 = vconst.b8x16 [false false false false false false false false false false false false false false false false] +function %vany_true_b8x16(b8x16) -> b1 { +block0(v0: b8x16): v1 = vany_true v0 - - v2 = vconst.b8x16 [true false false false false false false false false false false false false false false false] - v3 = vany_true v2 - - v4 = vconst.b8x16 [true true true true true true true true true true true true true true true true] - v5 = vany_true v4 - - return v1, v3, v5 + return v1 } -; run: %vany_true_b8x16() == [false, true, true] +; run: %vany_true_b8x16([false false false false false false false false false false false false false false false false]) == false +; run: %vany_true_b8x16([true false false false false false false false false false false false false false false false]) == true +; run: %vany_true_b8x16([true true true true true true true true true true true true true true true true]) == true -function %vany_true_b16x8() -> b1, b1, b1 { -block0: - v0 = vconst.b16x8 [false false false false false false false false] +function %vany_true_b16x8(b16x8) -> b1 { +block0(v0: b16x8): v1 = vany_true v0 - - v2 = vconst.b16x8 [true false false false false false false false] - v3 = vany_true v2 - - v4 = vconst.b16x8 [true true true true true true true true] - v5 = vany_true v4 - - return v1, v3, v5 + return v1 } -; run: %vany_true_b16x8() == [false, true, true] +; run: %vany_true_b16x8([false false false false false false false false]) == false +; run: %vany_true_b16x8([true false false false false false false false]) == true +; run: %vany_true_b16x8([true true true true true true true true]) == true -function %vany_true_b32x4() -> b1, b1, b1 { -block0: - v0 = vconst.b32x4 [false false false false] +function %vany_true_b32x4(b32x4) -> b1 { +block0(v0: b32x4): v1 = vany_true v0 - - v2 = vconst.b32x4 [true false false false] - v3 = vany_true v2 - - v4 = vconst.b32x4 [true true true true] - v5 = vany_true v4 - - return v1, v3, v5 + return v1 } -; run: %vany_true_b32x4() == [false, true, true] +; run: %vany_true_b32x4([false false false false]) == false +; run: %vany_true_b32x4([true false false false]) == true +; run: %vany_true_b32x4([true true true true]) == true -function %vany_true_b64x2() -> b1, b1, b1 { -block0: - v0 = vconst.b64x2 [false false] +function %vany_true_b64x2(b64x2) -> b1 { +block0(v0: b64x2): v1 = vany_true v0 - - v2 = vconst.b64x2 [true false] - v3 = vany_true v2 - - v4 = vconst.b64x2 [true true] - v5 = vany_true v4 - - return v1, v3, v5 + return v1 } -; run: %vany_true_b64x2() == [false, true, true] +; run: %vany_true_b64x2([false false]) == false +; run: %vany_true_b64x2([true false]) == true +; run: %vany_true_b64x2([true true]) == true