diff --git a/cranelift/filetests/filetests/isa/aarch64/bmask.clif b/cranelift/filetests/filetests/isa/aarch64/bmask.clif new file mode 100644 index 0000000000..6beefe6421 --- /dev/null +++ b/cranelift/filetests/filetests/isa/aarch64/bmask.clif @@ -0,0 +1,299 @@ +test compile precise-output +target aarch64 + + +function %bmask_i64_i64(i64) -> i64 { +block0(v0: i64): + v1 = bmask.i64 v0 + return v1 +} + +; block0: +; subs xzr, x0, #0 +; csetm x0, ne +; ret + +function %bmask_i64_i32(i64) -> i32 { +block0(v0: i64): + v1 = bmask.i32 v0 + return v1 +} + +; block0: +; subs xzr, x0, #0 +; csetm x0, ne +; ret + +function %bmask_i64_i16(i64) -> i16 { +block0(v0: i64): + v1 = bmask.i16 v0 + return v1 +} + +; block0: +; subs xzr, x0, #0 +; csetm x0, ne +; ret + +function %bmask_i64_i8(i64) -> i8 { +block0(v0: i64): + v1 = bmask.i8 v0 + return v1 +} + +; block0: +; subs xzr, x0, #0 +; csetm x0, ne +; ret + +function %bmask_i32_i64(i32) -> i64 { +block0(v0: i32): + v1 = bmask.i64 v0 + return v1 +} + +; block0: +; subs wzr, w0, #0 +; csetm x0, ne +; ret + +function %bmask_i32_i32(i32) -> i32 { +block0(v0: i32): + v1 = bmask.i32 v0 + return v1 +} + +; block0: +; subs wzr, w0, #0 +; csetm x0, ne +; ret + +function %bmask_i32_i16(i32) -> i16 { +block0(v0: i32): + v1 = bmask.i16 v0 + return v1 +} + +; block0: +; subs wzr, w0, #0 +; csetm x0, ne +; ret + +function %bmask_i32_i8(i32) -> i8 { +block0(v0: i32): + v1 = bmask.i8 v0 + return v1 +} + +; block0: +; subs wzr, w0, #0 +; csetm x0, ne +; ret + +function %bmask_i16_i64(i16) -> i64 { +block0(v0: i16): + v1 = bmask.i64 v0 + return v1 +} + +; block0: +; and w2, w0, #65535 +; subs wzr, w2, #0 +; csetm x0, ne +; ret + +function %bmask_i16_i32(i16) -> i32 { +block0(v0: i16): + v1 = bmask.i32 v0 + return v1 +} + +; block0: +; and w2, w0, #65535 +; subs wzr, w2, #0 +; csetm x0, ne +; ret + +function %bmask_i16_i16(i16) -> i16 { +block0(v0: i16): + v1 = bmask.i16 v0 + return v1 +} + +; block0: +; and w2, w0, #65535 +; subs wzr, w2, #0 +; csetm x0, ne +; ret + +function %bmask_i16_i8(i16) -> i8 { +block0(v0: i16): + v1 = bmask.i8 v0 + return v1 +} + +; block0: +; and w2, w0, #65535 +; subs wzr, w2, #0 +; csetm x0, ne +; ret + +function %bmask_i8_i64(i8) -> i64 { +block0(v0: i8): + v1 = bmask.i64 v0 + return v1 +} + +; block0: +; and w2, w0, #255 +; subs wzr, w2, #0 +; csetm x0, ne +; ret + +function %bmask_i8_i32(i8) -> i32 { +block0(v0: i8): + v1 = bmask.i32 v0 + return v1 +} + +; block0: +; and w2, w0, #255 +; subs wzr, w2, #0 +; csetm x0, ne +; ret + +function %bmask_i8_i16(i8) -> i16 { +block0(v0: i8): + v1 = bmask.i16 v0 + return v1 +} + +; block0: +; and w2, w0, #255 +; subs wzr, w2, #0 +; csetm x0, ne +; ret + +function %bmask_i8_i8(i8) -> i8 { +block0(v0: i8): + v1 = bmask.i8 v0 + return v1 +} + +; block0: +; and w2, w0, #255 +; subs wzr, w2, #0 +; csetm x0, ne +; ret + +function %bmask_i128_i128(i128) -> i128 { +block0(v0: i128): + v1 = bmask.i128 v0 + return v1 +} + +; block0: +; orr x3, x0, x1 +; subs xzr, x3, #0 +; csetm x1, ne +; mov x0, x1 +; ret + +function %bmask_i128_i64(i128) -> i64 { +block0(v0: i128): + v1 = bmask.i64 v0 + return v1 +} + +; block0: +; orr x3, x0, x1 +; subs xzr, x3, #0 +; csetm x0, ne +; ret + +function %bmask_i128_i32(i128) -> i32 { +block0(v0: i128): + v1 = bmask.i32 v0 + return v1 +} + +; block0: +; orr x3, x0, x1 +; subs xzr, x3, #0 +; csetm x0, ne +; ret + +function %bmask_i128_i16(i128) -> i16 { +block0(v0: i128): + v1 = bmask.i16 v0 + return v1 +} + +; block0: +; orr x3, x0, x1 +; subs xzr, x3, #0 +; csetm x0, ne +; ret + +function %bmask_i128_i8(i128) -> i8 { +block0(v0: i128): + v1 = bmask.i8 v0 + return v1 +} + +; block0: +; orr x3, x0, x1 +; subs xzr, x3, #0 +; csetm x0, ne +; ret + +function %bmask_i64_i128(i64) -> i128 { +block0(v0: i64): + v1 = bmask.i128 v0 + return v1 +} + +; block0: +; subs xzr, x0, #0 +; csetm x1, ne +; mov x0, x1 +; ret + +function %bmask_i32_i128(i32) -> i128 { +block0(v0: i32): + v1 = bmask.i128 v0 + return v1 +} + +; block0: +; subs wzr, w0, #0 +; csetm x1, ne +; mov x0, x1 +; ret + +function %bmask_i16_i128(i16) -> i128 { +block0(v0: i16): + v1 = bmask.i128 v0 + return v1 +} + +; block0: +; and w2, w0, #65535 +; subs wzr, w2, #0 +; csetm x1, ne +; mov x0, x1 +; ret + +function %bmask_i8_i128(i8) -> i128 { +block0(v0: i8): + v1 = bmask.i128 v0 + return v1 +} + +; block0: +; and w2, w0, #255 +; subs wzr, w2, #0 +; csetm x1, ne +; mov x0, x1 +; ret + diff --git a/cranelift/filetests/filetests/isa/aarch64/i128-bmask.clif b/cranelift/filetests/filetests/isa/aarch64/i128-bmask.clif deleted file mode 100644 index 6e59708343..0000000000 --- a/cranelift/filetests/filetests/isa/aarch64/i128-bmask.clif +++ /dev/null @@ -1,114 +0,0 @@ -test compile precise-output -target aarch64 - -function %bmask_i128_i128(i128) -> i128 { -block0(v0: i128): - v1 = bmask.i128 v0 - return v1 -} - -; block0: -; orr x3, x0, x1 -; subs xzr, x3, #0 -; csetm x1, ne -; mov x0, x1 -; ret - -function %bmask_i128_i64(i128) -> i64 { -block0(v0: i128): - v1 = bmask.i64 v0 - return v1 -} - -; block0: -; orr x3, x0, x1 -; subs xzr, x3, #0 -; csetm x0, ne -; ret - -function %bmask_i128_i32(i128) -> i32 { -block0(v0: i128): - v1 = bmask.i32 v0 - return v1 -} - -; block0: -; orr x3, x0, x1 -; subs xzr, x3, #0 -; csetm x0, ne -; ret - -function %bmask_i128_i16(i128) -> i16 { -block0(v0: i128): - v1 = bmask.i16 v0 - return v1 -} - -; block0: -; orr x3, x0, x1 -; subs xzr, x3, #0 -; csetm x0, ne -; ret - -function %bmask_i128_i8(i128) -> i8 { -block0(v0: i128): - v1 = bmask.i8 v0 - return v1 -} - -; block0: -; orr x3, x0, x1 -; subs xzr, x3, #0 -; csetm x0, ne -; ret - -function %bmask_i64_i128(i64) -> i128 { -block0(v0: i64): - v1 = bmask.i128 v0 - return v1 -} - -; block0: -; subs xzr, x0, #0 -; csetm x1, ne -; mov x0, x1 -; ret - -function %bmask_i32_i128(i32) -> i128 { -block0(v0: i32): - v1 = bmask.i128 v0 - return v1 -} - -; block0: -; subs wzr, w0, #0 -; csetm x1, ne -; mov x0, x1 -; ret - -function %bmask_i16_i128(i16) -> i128 { -block0(v0: i16): - v1 = bmask.i128 v0 - return v1 -} - -; block0: -; and w2, w0, #65535 -; subs wzr, w2, #0 -; csetm x1, ne -; mov x0, x1 -; ret - -function %bmask_i8_i128(i8) -> i128 { -block0(v0: i8): - v1 = bmask.i128 v0 - return v1 -} - -; block0: -; and w2, w0, #255 -; subs wzr, w2, #0 -; csetm x1, ne -; mov x0, x1 -; ret -