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>
31 lines
678 B
Plaintext
31 lines
678 B
Plaintext
test interpret
|
|
|
|
|
|
function %bmask_i8x16(i8x16) -> i8x16 {
|
|
block0(v0: i8x16):
|
|
v1 = bmask.i8x16 v0
|
|
return v1
|
|
}
|
|
; run: %bmask_i8x16([-1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0]) == [-1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0]
|
|
|
|
function %bmask_i16x8(i16x8) -> i16x8 {
|
|
block0(v0: i16x8):
|
|
v1 = bmask.i16x8 v0
|
|
return v1
|
|
}
|
|
; run: %bmask_i16x8([-1 0 -1 0 -1 0 -1 0]) == [-1 0 -1 0 -1 0 -1 0]
|
|
|
|
function %bmask_i32x4(i32x4) -> i32x4 {
|
|
block0(v0: i32x4):
|
|
v1 = bmask.i32x4 v0
|
|
return v1
|
|
}
|
|
; run: %bmask_i32x4([-1 0 -1 0]) == [-1 0 -1 0]
|
|
|
|
function %bmask_i64x2(i64x2) -> i64x2 {
|
|
block0(v0: i64x2):
|
|
v1 = bmask.i64x2 v0
|
|
return v1
|
|
}
|
|
; run: %bmask_i64x2([-1 0]) == [-1 0]
|