cranelift: Remove booleans (#5031)
Remove the boolean types from cranelift, and the associated instructions breduce, bextend, bconst, and bint. Standardize on using 1/0 for the return value from instructions that produce scalar boolean results, and -1/0 for boolean vector elements. Fixes #3205 Co-authored-by: Afonso Bordado <afonso360@users.noreply.github.com> Co-authored-by: Ulrich Weigand <ulrich.weigand@de.ibm.com> Co-authored-by: Chris Fallin <chris@cfallin.org>
This commit is contained in:
@@ -1,33 +1,33 @@
|
||||
test interpret
|
||||
|
||||
function %simd_icmp_sge_i8(i8x16, i8x16) -> b8x16 {
|
||||
function %simd_icmp_sge_i8(i8x16, i8x16) -> i8x16 {
|
||||
block0(v0: i8x16, v1: i8x16):
|
||||
v2 = icmp sge v0, v1
|
||||
return v2
|
||||
}
|
||||
; run: %simd_icmp_sge_i8([0 1 -1 0 -5 1 0 0 0 0 0 0 0 0 0 0], [0 0 -1 1 -1 1 0 0 0 0 0 0 0 0 0 0]) == [true true true false false true true true true true true true true true true true]
|
||||
; run: %simd_icmp_sge_i8([0 1 -1 0 -5 1 0 0 0 0 0 0 0 0 0 0], [0 0 -1 1 -1 1 0 0 0 0 0 0 0 0 0 0]) == [-1 -1 -1 0 0 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1]
|
||||
|
||||
function %simd_icmp_sge_i16(i16x8, i16x8) -> b16x8 {
|
||||
function %simd_icmp_sge_i16(i16x8, i16x8) -> i16x8 {
|
||||
block0(v0: i16x8, v1: i16x8):
|
||||
v2 = icmp sge v0, v1
|
||||
return v2
|
||||
}
|
||||
; run: %simd_icmp_sge_i16([0 1 -1 0 -5 1 0 0], [0 0 -1 1 -1 1 0 0]) == [true true true false false true true true]
|
||||
; run: %simd_icmp_sge_i16([0 1 -1 0 -5 1 0 0], [0 0 -1 1 -1 1 0 0]) == [-1 -1 -1 0 0 -1 -1 -1]
|
||||
|
||||
function %simd_icmp_sge_i32(i32x4, i32x4) -> b32x4 {
|
||||
function %simd_icmp_sge_i32(i32x4, i32x4) -> i32x4 {
|
||||
block0(v0: i32x4, v1: i32x4):
|
||||
v2 = icmp sge v0, v1
|
||||
return v2
|
||||
}
|
||||
; run: %simd_icmp_sge_i32([0 1 -1 0], [0 0 -1 1]) == [true true true false]
|
||||
; run: %simd_icmp_sge_i32([-5 1 0 0], [-1 1 0 0]) == [false true true true]
|
||||
; run: %simd_icmp_sge_i32([0 1 -1 0], [0 0 -1 1]) == [-1 -1 -1 0]
|
||||
; run: %simd_icmp_sge_i32([-5 1 0 0], [-1 1 0 0]) == [0 -1 -1 -1]
|
||||
|
||||
function %simd_icmp_sge_i64(i64x2, i64x2) -> b64x2 {
|
||||
function %simd_icmp_sge_i64(i64x2, i64x2) -> i64x2 {
|
||||
block0(v0: i64x2, v1: i64x2):
|
||||
v2 = icmp sge v0, v1
|
||||
return v2
|
||||
}
|
||||
; run: %simd_icmp_sge_i64([0 1], [0 0]) == [true true]
|
||||
; run: %simd_icmp_sge_i64([-1 0], [-1 1]) == [true false]
|
||||
; run: %simd_icmp_sge_i64([-5 1], [-1 1]) == [false true]
|
||||
; run: %simd_icmp_sge_i64([0 0], [0 0]) == [true true]
|
||||
; run: %simd_icmp_sge_i64([0 1], [0 0]) == [-1 -1]
|
||||
; run: %simd_icmp_sge_i64([-1 0], [-1 1]) == [-1 0]
|
||||
; run: %simd_icmp_sge_i64([-5 1], [-1 1]) == [0 -1]
|
||||
; run: %simd_icmp_sge_i64([0 0], [0 0]) == [-1 -1]
|
||||
|
||||
Reference in New Issue
Block a user