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,89 +0,0 @@
|
||||
test interpret
|
||||
test run
|
||||
target aarch64
|
||||
target x86_64
|
||||
target s390x
|
||||
target riscv64
|
||||
|
||||
function %bextend_b1_b8(b1) -> b8 {
|
||||
block0(v0: b1):
|
||||
v1 = bextend.b8 v0
|
||||
return v1
|
||||
}
|
||||
; run: %bextend_b1_b8(true) == true
|
||||
; run: %bextend_b1_b8(false) == false
|
||||
|
||||
function %bextend_b1_b16(b1) -> b16 {
|
||||
block0(v0: b1):
|
||||
v1 = bextend.b16 v0
|
||||
return v1
|
||||
}
|
||||
; run: %bextend_b1_b16(true) == true
|
||||
; run: %bextend_b1_b16(false) == false
|
||||
|
||||
function %bextend_b1_b32(b1) -> b32 {
|
||||
block0(v0: b1):
|
||||
v1 = bextend.b32 v0
|
||||
return v1
|
||||
}
|
||||
; run: %bextend_b1_b32(true) == true
|
||||
; run: %bextend_b1_b32(false) == false
|
||||
|
||||
function %bextend_b1_b64(b1) -> b64 {
|
||||
block0(v0: b1):
|
||||
v1 = bextend.b64 v0
|
||||
return v1
|
||||
}
|
||||
; run: %bextend_b1_b64(true) == true
|
||||
; run: %bextend_b1_b64(false) == false
|
||||
|
||||
|
||||
function %bextend_b8_b16(b8) -> b16 {
|
||||
block0(v0: b8):
|
||||
v1 = bextend.b16 v0
|
||||
return v1
|
||||
}
|
||||
; run: %bextend_b8_b16(true) == true
|
||||
; run: %bextend_b8_b16(false) == false
|
||||
|
||||
function %bextend_b8_b32(b8) -> b32 {
|
||||
block0(v0: b8):
|
||||
v1 = bextend.b32 v0
|
||||
return v1
|
||||
}
|
||||
; run: %bextend_b8_b32(true) == true
|
||||
; run: %bextend_b8_b32(false) == false
|
||||
|
||||
function %bextend_b8_b64(b8) -> b64 {
|
||||
block0(v0: b8):
|
||||
v1 = bextend.b64 v0
|
||||
return v1
|
||||
}
|
||||
; run: %bextend_b8_b64(true) == true
|
||||
; run: %bextend_b8_b64(false) == false
|
||||
|
||||
|
||||
function %bextend_b16_b32(b16) -> b32 {
|
||||
block0(v0: b16):
|
||||
v1 = bextend.b32 v0
|
||||
return v1
|
||||
}
|
||||
; run: %bextend_b16_b32(true) == true
|
||||
; run: %bextend_b16_b32(false) == false
|
||||
|
||||
function %bextend_b16_b64(b16) -> b64 {
|
||||
block0(v0: b16):
|
||||
v1 = bextend.b64 v0
|
||||
return v1
|
||||
}
|
||||
; run: %bextend_b16_b64(true) == true
|
||||
; run: %bextend_b16_b64(false) == false
|
||||
|
||||
|
||||
function %bextend_b32_b64(b32) -> b64 {
|
||||
block0(v0: b32):
|
||||
v1 = bextend.b64 v0
|
||||
return v1
|
||||
}
|
||||
; run: %bextend_b32_b64(true) == true
|
||||
; run: %bextend_b32_b64(false) == false
|
||||
@@ -1,341 +0,0 @@
|
||||
test interpret
|
||||
test run
|
||||
target aarch64
|
||||
target s390x
|
||||
target x86_64
|
||||
target riscv64
|
||||
|
||||
function %bint_b1_i8_true() -> i8 {
|
||||
block0:
|
||||
v0 = bconst.b1 true
|
||||
v1 = bint.i8 v0
|
||||
return v1
|
||||
}
|
||||
; run: %bint_b1_i8_true() == 1
|
||||
|
||||
function %bint_b1_i8_false() -> i8 {
|
||||
block0:
|
||||
v0 = bconst.b1 false
|
||||
v1 = bint.i8 v0
|
||||
return v1
|
||||
}
|
||||
; run: %bint_b1_i8_false() == 0
|
||||
|
||||
function %bint_b1_i16_true() -> i16 {
|
||||
block0:
|
||||
v0 = bconst.b1 true
|
||||
v1 = bint.i16 v0
|
||||
return v1
|
||||
}
|
||||
; run: %bint_b1_i16_true() == 1
|
||||
|
||||
function %bint_b1_i16_false() -> i16 {
|
||||
block0:
|
||||
v0 = bconst.b1 false
|
||||
v1 = bint.i16 v0
|
||||
return v1
|
||||
}
|
||||
; run: %bint_b1_i16_false() == 0
|
||||
|
||||
function %bint_b1_i32_true() -> i32 {
|
||||
block0:
|
||||
v0 = bconst.b1 true
|
||||
v1 = bint.i32 v0
|
||||
return v1
|
||||
}
|
||||
; run: %bint_b1_i32_true() == 1
|
||||
|
||||
function %bint_b1_i32_false() -> i32 {
|
||||
block0:
|
||||
v0 = bconst.b1 false
|
||||
v1 = bint.i32 v0
|
||||
return v1
|
||||
}
|
||||
; run: %bint_b1_i32_false() == 0
|
||||
|
||||
function %bint_b1_i64_true() -> i64 {
|
||||
block0:
|
||||
v0 = bconst.b1 true
|
||||
v1 = bint.i64 v0
|
||||
return v1
|
||||
}
|
||||
; run: %bint_b1_i64_true() == 1
|
||||
|
||||
function %bint_b1_i64_false() -> i64 {
|
||||
block0:
|
||||
v0 = bconst.b1 false
|
||||
v1 = bint.i64 v0
|
||||
return v1
|
||||
}
|
||||
; run: %bint_b1_i64_false() == 0
|
||||
|
||||
|
||||
|
||||
|
||||
function %bint_b8_i8_true() -> i8 {
|
||||
block0:
|
||||
v0 = bconst.b8 true
|
||||
v1 = bint.i8 v0
|
||||
return v1
|
||||
}
|
||||
; run: %bint_b8_i8_true() == 1
|
||||
|
||||
function %bint_b8_i8_false() -> i8 {
|
||||
block0:
|
||||
v0 = bconst.b8 false
|
||||
v1 = bint.i8 v0
|
||||
return v1
|
||||
}
|
||||
; run: %bint_b8_i8_false() == 0
|
||||
|
||||
function %bint_b8_i16_true() -> i16 {
|
||||
block0:
|
||||
v0 = bconst.b8 true
|
||||
v1 = bint.i16 v0
|
||||
return v1
|
||||
}
|
||||
; run: %bint_b8_i16_true() == 1
|
||||
|
||||
function %bint_b8_i16_false() -> i16 {
|
||||
block0:
|
||||
v0 = bconst.b8 false
|
||||
v1 = bint.i16 v0
|
||||
return v1
|
||||
}
|
||||
; run: %bint_b8_i16_false() == 0
|
||||
|
||||
function %bint_b8_i32_true() -> i32 {
|
||||
block0:
|
||||
v0 = bconst.b8 true
|
||||
v1 = bint.i32 v0
|
||||
return v1
|
||||
}
|
||||
; run: %bint_b8_i32_true() == 1
|
||||
|
||||
function %bint_b8_i32_false() -> i32 {
|
||||
block0:
|
||||
v0 = bconst.b8 false
|
||||
v1 = bint.i32 v0
|
||||
return v1
|
||||
}
|
||||
; run: %bint_b8_i32_false() == 0
|
||||
|
||||
function %bint_b8_i64_true() -> i64 {
|
||||
block0:
|
||||
v0 = bconst.b8 true
|
||||
v1 = bint.i64 v0
|
||||
return v1
|
||||
}
|
||||
; run: %bint_b8_i64_true() == 1
|
||||
|
||||
function %bint_b8_i64_false() -> i64 {
|
||||
block0:
|
||||
v0 = bconst.b8 false
|
||||
v1 = bint.i64 v0
|
||||
return v1
|
||||
}
|
||||
; run: %bint_b8_i64_false() == 0
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
function %bint_b16_i8_true() -> i8 {
|
||||
block0:
|
||||
v0 = bconst.b16 true
|
||||
v1 = bint.i8 v0
|
||||
return v1
|
||||
}
|
||||
; run: %bint_b16_i8_true() == 1
|
||||
|
||||
function %bint_b16_i8_false() -> i8 {
|
||||
block0:
|
||||
v0 = bconst.b16 false
|
||||
v1 = bint.i8 v0
|
||||
return v1
|
||||
}
|
||||
; run: %bint_b16_i8_false() == 0
|
||||
|
||||
function %bint_b16_i16_true() -> i16 {
|
||||
block0:
|
||||
v0 = bconst.b16 true
|
||||
v1 = bint.i16 v0
|
||||
return v1
|
||||
}
|
||||
; run: %bint_b16_i16_true() == 1
|
||||
|
||||
function %bint_b16_i16_false() -> i16 {
|
||||
block0:
|
||||
v0 = bconst.b16 false
|
||||
v1 = bint.i16 v0
|
||||
return v1
|
||||
}
|
||||
; run: %bint_b16_i16_false() == 0
|
||||
|
||||
function %bint_b16_i32_true() -> i32 {
|
||||
block0:
|
||||
v0 = bconst.b16 true
|
||||
v1 = bint.i32 v0
|
||||
return v1
|
||||
}
|
||||
; run: %bint_b16_i32_true() == 1
|
||||
|
||||
function %bint_b16_i32_false() -> i32 {
|
||||
block0:
|
||||
v0 = bconst.b16 false
|
||||
v1 = bint.i32 v0
|
||||
return v1
|
||||
}
|
||||
; run: %bint_b16_i32_false() == 0
|
||||
|
||||
function %bint_b16_i64_true() -> i64 {
|
||||
block0:
|
||||
v0 = bconst.b16 true
|
||||
v1 = bint.i64 v0
|
||||
return v1
|
||||
}
|
||||
; run: %bint_b16_i64_true() == 1
|
||||
|
||||
function %bint_b16_i64_false() -> i64 {
|
||||
block0:
|
||||
v0 = bconst.b16 false
|
||||
v1 = bint.i64 v0
|
||||
return v1
|
||||
}
|
||||
; run: %bint_b16_i64_false() == 0
|
||||
|
||||
|
||||
|
||||
|
||||
function %bint_b32_i8_true() -> i8 {
|
||||
block0:
|
||||
v0 = bconst.b32 true
|
||||
v1 = bint.i8 v0
|
||||
return v1
|
||||
}
|
||||
; run: %bint_b32_i8_true() == 1
|
||||
|
||||
function %bint_b32_i8_false() -> i8 {
|
||||
block0:
|
||||
v0 = bconst.b32 false
|
||||
v1 = bint.i8 v0
|
||||
return v1
|
||||
}
|
||||
; run: %bint_b32_i8_false() == 0
|
||||
|
||||
function %bint_b32_i16_true() -> i16 {
|
||||
block0:
|
||||
v0 = bconst.b32 true
|
||||
v1 = bint.i16 v0
|
||||
return v1
|
||||
}
|
||||
; run: %bint_b32_i16_true() == 1
|
||||
|
||||
function %bint_b32_i16_false() -> i16 {
|
||||
block0:
|
||||
v0 = bconst.b32 false
|
||||
v1 = bint.i16 v0
|
||||
return v1
|
||||
}
|
||||
; run: %bint_b32_i16_false() == 0
|
||||
|
||||
function %bint_b32_i32_true() -> i32 {
|
||||
block0:
|
||||
v0 = bconst.b32 true
|
||||
v1 = bint.i32 v0
|
||||
return v1
|
||||
}
|
||||
; run: %bint_b32_i32_true() == 1
|
||||
|
||||
function %bint_b32_i32_false() -> i32 {
|
||||
block0:
|
||||
v0 = bconst.b32 false
|
||||
v1 = bint.i32 v0
|
||||
return v1
|
||||
}
|
||||
; run: %bint_b32_i32_false() == 0
|
||||
|
||||
function %bint_b32_i64_true() -> i64 {
|
||||
block0:
|
||||
v0 = bconst.b32 true
|
||||
v1 = bint.i64 v0
|
||||
return v1
|
||||
}
|
||||
; run: %bint_b32_i64_true() == 1
|
||||
|
||||
function %bint_b32_i64_false() -> i64 {
|
||||
block0:
|
||||
v0 = bconst.b32 false
|
||||
v1 = bint.i64 v0
|
||||
return v1
|
||||
}
|
||||
; run: %bint_b32_i64_false() == 0
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
function %bint_b64_i8_true() -> i8 {
|
||||
block0:
|
||||
v0 = bconst.b64 true
|
||||
v1 = bint.i8 v0
|
||||
return v1
|
||||
}
|
||||
; run: %bint_b64_i8_true() == 1
|
||||
|
||||
function %bint_b64_i8_false() -> i8 {
|
||||
block0:
|
||||
v0 = bconst.b64 false
|
||||
v1 = bint.i8 v0
|
||||
return v1
|
||||
}
|
||||
; run: %bint_b64_i8_false() == 0
|
||||
|
||||
function %bint_b64_i16_true() -> i16 {
|
||||
block0:
|
||||
v0 = bconst.b64 true
|
||||
v1 = bint.i16 v0
|
||||
return v1
|
||||
}
|
||||
; run: %bint_b64_i16_true() == 1
|
||||
|
||||
function %bint_b64_i16_false() -> i16 {
|
||||
block0:
|
||||
v0 = bconst.b64 false
|
||||
v1 = bint.i16 v0
|
||||
return v1
|
||||
}
|
||||
; run: %bint_b64_i16_false() == 0
|
||||
|
||||
function %bint_b64_i32_true() -> i32 {
|
||||
block0:
|
||||
v0 = bconst.b64 true
|
||||
v1 = bint.i32 v0
|
||||
return v1
|
||||
}
|
||||
; run: %bint_b64_i32_true() == 1
|
||||
|
||||
function %bint_b64_i32_false() -> i32 {
|
||||
block0:
|
||||
v0 = bconst.b64 false
|
||||
v1 = bint.i32 v0
|
||||
return v1
|
||||
}
|
||||
; run: %bint_b64_i32_false() == 0
|
||||
|
||||
function %bint_b64_i64_true() -> i64 {
|
||||
block0:
|
||||
v0 = bconst.b64 true
|
||||
v1 = bint.i64 v0
|
||||
return v1
|
||||
}
|
||||
; run: %bint_b64_i64_true() == 1
|
||||
|
||||
function %bint_b64_i64_false() -> i64 {
|
||||
block0:
|
||||
v0 = bconst.b64 false
|
||||
v1 = bint.i64 v0
|
||||
return v1
|
||||
}
|
||||
; run: %bint_b64_i64_false() == 0
|
||||
@@ -3,16 +3,16 @@ target aarch64
|
||||
; the interpreter, x86_64, and s390x do not support bitcasting to/from
|
||||
; references
|
||||
|
||||
function %bitcast_ir64(i64) -> b1 {
|
||||
function %bitcast_ir64(i64) -> i8 {
|
||||
block0(v0: i64):
|
||||
v1 = bitcast.r64 v0
|
||||
v2 = is_null v1
|
||||
return v2
|
||||
}
|
||||
; run: %bitcast_ir64(0) == true
|
||||
; run: %bitcast_ir64(18446744073709551615) == false
|
||||
; run: %bitcast_ir64(-1) == false
|
||||
; run: %bitcast_ir64(127) == false
|
||||
; run: %bitcast_ir64(0) == 1
|
||||
; run: %bitcast_ir64(18446744073709551615) == 0
|
||||
; run: %bitcast_ir64(-1) == 0
|
||||
; run: %bitcast_ir64(127) == 0
|
||||
|
||||
function %bitcast_ri64(i64) -> i64 {
|
||||
block0(v0: i64):
|
||||
|
||||
@@ -5,10 +5,10 @@ target riscv64
|
||||
target s390x has_mie2
|
||||
; target x86_64 TODO: Not yet implemented on x86_64
|
||||
|
||||
function %bnot_band() -> b1 {
|
||||
function %bnot_band() -> i8 {
|
||||
block0:
|
||||
v1 = bconst.b1 false
|
||||
v2 = bconst.b1 true
|
||||
v1 = iconst.i8 0
|
||||
v2 = iconst.i8 1
|
||||
v3 = bnot v1
|
||||
v4 = band v3, v2
|
||||
return v4
|
||||
|
||||
@@ -4,162 +4,130 @@ target aarch64
|
||||
target s390x
|
||||
target riscv64
|
||||
|
||||
function %bmask_b64_i64(b64) -> i64 {
|
||||
block0(v0: b64):
|
||||
function %bmask_i64_i64(i64) -> i64 {
|
||||
block0(v0: i64):
|
||||
v1 = bmask.i64 v0
|
||||
return v1
|
||||
}
|
||||
; run: %bmask_b64_i64(true) == -1
|
||||
; run: %bmask_b64_i64(false) == 0
|
||||
; run: %bmask_i64_i64(1) == -1
|
||||
; run: %bmask_i64_i64(0) == 0
|
||||
|
||||
function %bmask_b64_i32(b64) -> i32 {
|
||||
block0(v0: b64):
|
||||
function %bmask_i64_i32(i64) -> i32 {
|
||||
block0(v0: i64):
|
||||
v1 = bmask.i32 v0
|
||||
return v1
|
||||
}
|
||||
; run: %bmask_b64_i32(true) == -1
|
||||
; run: %bmask_b64_i32(false) == 0
|
||||
; run: %bmask_i64_i32(1) == -1
|
||||
; run: %bmask_i64_i32(0) == 0
|
||||
|
||||
function %bmask_b64_i16(b64) -> i16 {
|
||||
block0(v0: b64):
|
||||
function %bmask_i64_i16(i64) -> i16 {
|
||||
block0(v0: i64):
|
||||
v1 = bmask.i16 v0
|
||||
return v1
|
||||
}
|
||||
; run: %bmask_b64_i16(true) == -1
|
||||
; run: %bmask_b64_i16(false) == 0
|
||||
; run: %bmask_i64_i16(1) == -1
|
||||
; run: %bmask_i64_i16(0) == 0
|
||||
|
||||
function %bmask_b64_i8(b64) -> i8 {
|
||||
block0(v0: b64):
|
||||
function %bmask_i64_i8(i64) -> i8 {
|
||||
block0(v0: i64):
|
||||
v1 = bmask.i8 v0
|
||||
return v1
|
||||
}
|
||||
; run: %bmask_b64_i8(true) == -1
|
||||
; run: %bmask_b64_i8(false) == 0
|
||||
; run: %bmask_i64_i8(1) == -1
|
||||
; run: %bmask_i64_i8(0) == 0
|
||||
|
||||
function %bmask_b32_i64(b32) -> i64 {
|
||||
block0(v0: b32):
|
||||
function %bmask_i32_i64(i32) -> i64 {
|
||||
block0(v0: i32):
|
||||
v1 = bmask.i64 v0
|
||||
return v1
|
||||
}
|
||||
; run: %bmask_b32_i64(true) == -1
|
||||
; run: %bmask_b32_i64(false) == 0
|
||||
; run: %bmask_i32_i64(1) == -1
|
||||
; run: %bmask_i32_i64(0) == 0
|
||||
|
||||
function %bmask_b32_i32(b32) -> i32 {
|
||||
block0(v0: b32):
|
||||
function %bmask_i32_i32(i32) -> i32 {
|
||||
block0(v0: i32):
|
||||
v1 = bmask.i32 v0
|
||||
return v1
|
||||
}
|
||||
; run: %bmask_b32_i32(true) == -1
|
||||
; run: %bmask_b32_i32(false) == 0
|
||||
; run: %bmask_i32_i32(1) == -1
|
||||
; run: %bmask_i32_i32(0) == 0
|
||||
|
||||
function %bmask_b32_i16(b32) -> i16 {
|
||||
block0(v0: b32):
|
||||
function %bmask_i32_i16(i32) -> i16 {
|
||||
block0(v0: i32):
|
||||
v1 = bmask.i16 v0
|
||||
return v1
|
||||
}
|
||||
; run: %bmask_b32_i16(true) == -1
|
||||
; run: %bmask_b32_i16(false) == 0
|
||||
; run: %bmask_i32_i16(1) == -1
|
||||
; run: %bmask_i32_i16(0) == 0
|
||||
|
||||
function %bmask_b32_i8(b32) -> i8 {
|
||||
block0(v0: b32):
|
||||
function %bmask_i32_i8(i32) -> i8 {
|
||||
block0(v0: i32):
|
||||
v1 = bmask.i8 v0
|
||||
return v1
|
||||
}
|
||||
; run: %bmask_b32_i8(true) == -1
|
||||
; run: %bmask_b32_i8(false) == 0
|
||||
; run: %bmask_i32_i8(1) == -1
|
||||
; run: %bmask_i32_i8(0) == 0
|
||||
|
||||
function %bmask_b16_i64(b16) -> i64 {
|
||||
block0(v0: b16):
|
||||
function %bmask_i16_i64(i16) -> i64 {
|
||||
block0(v0: i16):
|
||||
v1 = bmask.i64 v0
|
||||
return v1
|
||||
}
|
||||
; run: %bmask_b16_i64(true) == -1
|
||||
; run: %bmask_b16_i64(false) == 0
|
||||
; run: %bmask_i16_i64(1) == -1
|
||||
; run: %bmask_i16_i64(0) == 0
|
||||
|
||||
function %bmask_b16_i32(b16) -> i32 {
|
||||
block0(v0: b16):
|
||||
function %bmask_i16_i32(i16) -> i32 {
|
||||
block0(v0: i16):
|
||||
v1 = bmask.i32 v0
|
||||
return v1
|
||||
}
|
||||
; run: %bmask_b16_i32(true) == -1
|
||||
; run: %bmask_b16_i32(false) == 0
|
||||
; run: %bmask_i16_i32(1) == -1
|
||||
; run: %bmask_i16_i32(0) == 0
|
||||
|
||||
function %bmask_b16_i16(b16) -> i16 {
|
||||
block0(v0: b16):
|
||||
function %bmask_i16_i16(i16) -> i16 {
|
||||
block0(v0: i16):
|
||||
v1 = bmask.i16 v0
|
||||
return v1
|
||||
}
|
||||
; run: %bmask_b16_i16(true) == -1
|
||||
; run: %bmask_b16_i16(false) == 0
|
||||
; run: %bmask_i16_i16(1) == -1
|
||||
; run: %bmask_i16_i16(0) == 0
|
||||
|
||||
function %bmask_b16_i8(b16) -> i8 {
|
||||
block0(v0: b16):
|
||||
function %bmask_i16_i8(i16) -> i8 {
|
||||
block0(v0: i16):
|
||||
v1 = bmask.i8 v0
|
||||
return v1
|
||||
}
|
||||
; run: %bmask_b16_i8(true) == -1
|
||||
; run: %bmask_b16_i8(false) == 0
|
||||
; run: %bmask_i16_i8(1) == -1
|
||||
; run: %bmask_i16_i8(0) == 0
|
||||
|
||||
function %bmask_b8_i64(b8) -> i64 {
|
||||
block0(v0: b8):
|
||||
function %bmask_i8_i64(i8) -> i64 {
|
||||
block0(v0: i8):
|
||||
v1 = bmask.i64 v0
|
||||
return v1
|
||||
}
|
||||
; run: %bmask_b8_i64(true) == -1
|
||||
; run: %bmask_b8_i64(false) == 0
|
||||
; run: %bmask_i8_i64(1) == -1
|
||||
; run: %bmask_i8_i64(0) == 0
|
||||
|
||||
function %bmask_b8_i32(b8) -> i32 {
|
||||
block0(v0: b8):
|
||||
function %bmask_i8_i32(i8) -> i32 {
|
||||
block0(v0: i8):
|
||||
v1 = bmask.i32 v0
|
||||
return v1
|
||||
}
|
||||
; run: %bmask_b8_i32(true) == -1
|
||||
; run: %bmask_b8_i32(false) == 0
|
||||
; run: %bmask_i8_i32(1) == -1
|
||||
; run: %bmask_i8_i32(0) == 0
|
||||
|
||||
function %bmask_b8_i16(b8) -> i16 {
|
||||
block0(v0: b8):
|
||||
function %bmask_i8_i16(i8) -> i16 {
|
||||
block0(v0: i8):
|
||||
v1 = bmask.i16 v0
|
||||
return v1
|
||||
}
|
||||
; run: %bmask_b8_i16(true) == -1
|
||||
; run: %bmask_b8_i16(false) == 0
|
||||
; run: %bmask_i8_i16(1) == -1
|
||||
; run: %bmask_i8_i16(0) == 0
|
||||
|
||||
function %bmask_b8_i8(b8) -> i8 {
|
||||
block0(v0: b8):
|
||||
function %bmask_i8_i8(i8) -> i8 {
|
||||
block0(v0: i8):
|
||||
v1 = bmask.i8 v0
|
||||
return v1
|
||||
}
|
||||
; run: %bmask_b8_i8(true) == -1
|
||||
; run: %bmask_b8_i8(false) == 0
|
||||
|
||||
function %bmask_b1_i64(b1) -> i64 {
|
||||
block0(v0: b1):
|
||||
v1 = bmask.i64 v0
|
||||
return v1
|
||||
}
|
||||
; run: %bmask_b1_i64(true) == -1
|
||||
; run: %bmask_b1_i64(false) == 0
|
||||
|
||||
function %bmask_b1_i32(b1) -> i32 {
|
||||
block0(v0: b1):
|
||||
v1 = bmask.i32 v0
|
||||
return v1
|
||||
}
|
||||
; run: %bmask_b1_i32(true) == -1
|
||||
; run: %bmask_b1_i32(false) == 0
|
||||
|
||||
function %bmask_b1_i16(b1) -> i16 {
|
||||
block0(v0: b1):
|
||||
v1 = bmask.i16 v0
|
||||
return v1
|
||||
}
|
||||
; run: %bmask_b1_i16(true) == -1
|
||||
; run: %bmask_b1_i16(false) == 0
|
||||
|
||||
function %bmask_b1_i8(b1) -> i8 {
|
||||
block0(v0: b1):
|
||||
v1 = bmask.i8 v0
|
||||
return v1
|
||||
}
|
||||
; run: %bmask_b1_i8(true) == -1
|
||||
; run: %bmask_b1_i8(false) == 0
|
||||
; run: %bmask_i8_i8(1) == -1
|
||||
; run: %bmask_i8_i8(0) == 0
|
||||
|
||||
@@ -4,42 +4,34 @@ target x86_64
|
||||
target aarch64
|
||||
target s390x
|
||||
|
||||
function %bnot_b1(b1) -> b1 {
|
||||
block0(v0: b1):
|
||||
v1 = bnot.b1 v0
|
||||
function %bnot_i8(i8) -> i8 {
|
||||
block0(v0: i8):
|
||||
v1 = bnot.i8 v0
|
||||
return v1
|
||||
}
|
||||
; run: %bnot_b1(false) == true
|
||||
; run: %bnot_b1(true) == false
|
||||
; run: %bnot_i8(0) == -1
|
||||
; run: %bnot_i8(1) == -2
|
||||
|
||||
function %bnot_b8(b8) -> b8 {
|
||||
block0(v0: b8):
|
||||
v1 = bnot.b8 v0
|
||||
function %bnot_i16(i16) -> i16 {
|
||||
block0(v0: i16):
|
||||
v1 = bnot.i16 v0
|
||||
return v1
|
||||
}
|
||||
; run: %bnot_b8(false) == true
|
||||
; run: %bnot_b8(true) == false
|
||||
; run: %bnot_i16(0) == -1
|
||||
; run: %bnot_i16(1) == -2
|
||||
|
||||
function %bnot_b16(b16) -> b16 {
|
||||
block0(v0: b16):
|
||||
v1 = bnot.b16 v0
|
||||
function %bnot_i32(i32) -> i32 {
|
||||
block0(v0: i32):
|
||||
v1 = bnot.i32 v0
|
||||
return v1
|
||||
}
|
||||
; run: %bnot_b16(false) == true
|
||||
; run: %bnot_b16(true) == false
|
||||
; run: %bnot_i32(0) == -1
|
||||
; run: %bnot_i32(1) == -2
|
||||
|
||||
function %bnot_b32(b32) -> b32 {
|
||||
block0(v0: b32):
|
||||
v1 = bnot.b32 v0
|
||||
function %bnot_i64(i64) -> i64 {
|
||||
block0(v0: i64):
|
||||
v1 = bnot.i64 v0
|
||||
return v1
|
||||
}
|
||||
; run: %bnot_b32(false) == true
|
||||
; run: %bnot_b32(true) == false
|
||||
|
||||
function %bnot_b64(b64) -> b64 {
|
||||
block0(v0: b64):
|
||||
v1 = bnot.b64 v0
|
||||
return v1
|
||||
}
|
||||
; run: %bnot_b64(false) == true
|
||||
; run: %bnot_b64(true) == false
|
||||
; run: %bnot_i64(0) == -1
|
||||
; run: %bnot_i64(1) == -2
|
||||
|
||||
@@ -5,188 +5,221 @@ target s390x
|
||||
target x86_64
|
||||
target riscv64
|
||||
|
||||
function %jump() -> b1 {
|
||||
function %jump() -> i8 {
|
||||
block0:
|
||||
jump block2
|
||||
|
||||
block1:
|
||||
v0 = bconst.b1 false
|
||||
v0 = iconst.i8 0
|
||||
return v0
|
||||
|
||||
block2:
|
||||
v1 = bconst.b1 true
|
||||
v1 = iconst.i8 1
|
||||
return v1
|
||||
}
|
||||
; run: %jump() == true
|
||||
; run: %jump() == 1
|
||||
|
||||
|
||||
function %brz_i64(i64) -> b1 {
|
||||
function %brz_i64(i64) -> i8 {
|
||||
block0(v0: i64):
|
||||
brz v0, block1
|
||||
jump block2
|
||||
|
||||
block1:
|
||||
v1 = bconst.b1 true
|
||||
v1 = iconst.i8 1
|
||||
return v1
|
||||
|
||||
block2:
|
||||
v2 = bconst.b1 false
|
||||
v2 = iconst.i8 0
|
||||
return v2
|
||||
}
|
||||
; run: %brz_i64(0) == true
|
||||
; run: %brz_i64(1) == false
|
||||
; run: %brz_i64(-1) == false
|
||||
; run: %brz_i64(0) == 1
|
||||
; run: %brz_i64(1) == 0
|
||||
; run: %brz_i64(-1) == 0
|
||||
; run: %brz_i64(97) == 0
|
||||
|
||||
function %brz_i32(i32) -> b1 {
|
||||
function %brz_i8_overflow(i8) -> i8 {
|
||||
block0(v0: i8):
|
||||
v1 = iconst.i8 255
|
||||
v2 = iadd.i8 v0, v1
|
||||
brz v2, block2
|
||||
jump block1
|
||||
|
||||
block1:
|
||||
v3 = iconst.i8 1
|
||||
return v3
|
||||
|
||||
block2:
|
||||
v4 = iconst.i8 0
|
||||
return v4
|
||||
}
|
||||
|
||||
; run: %brz_i8_overflow(0) == 1
|
||||
; run: %brz_i8_overflow(1) == 0
|
||||
; run: %brz_i8_overflow(2) == 1
|
||||
; run: %brz_i8_overflow(98) == 1
|
||||
; run: %brz_i8_overflow(97) == 1
|
||||
|
||||
function %brz_i16_overflow(i16) -> i8 {
|
||||
block0(v0: i16):
|
||||
v1 = iconst.i16 65535
|
||||
v2 = iadd v0, v1
|
||||
brz v2, block2
|
||||
jump block1
|
||||
|
||||
block1:
|
||||
v3 = iconst.i8 1
|
||||
return v3
|
||||
|
||||
block2:
|
||||
v4 = iconst.i8 0
|
||||
return v4
|
||||
}
|
||||
|
||||
; run: %brz_i16_overflow(0) == 1
|
||||
; run: %brz_i16_overflow(1) == 0
|
||||
; run: %brz_i16_overflow(2) == 1
|
||||
; run: %brz_i16_overflow(98) == 1
|
||||
; run: %brz_i16_overflow(97) == 1
|
||||
|
||||
function %brz_i32_overflow(i32) -> i8 {
|
||||
block0(v0: i32):
|
||||
v1 = iconst.i32 4294967295
|
||||
v2 = iadd v0, v1
|
||||
brz v2, block2
|
||||
jump block1
|
||||
|
||||
block1:
|
||||
v3 = iconst.i8 1
|
||||
return v3
|
||||
|
||||
block2:
|
||||
v4 = iconst.i8 0
|
||||
return v4
|
||||
}
|
||||
|
||||
; run: %brz_i32_overflow(0) == 1
|
||||
; run: %brz_i32_overflow(1) == 0
|
||||
; run: %brz_i32_overflow(2) == 1
|
||||
; run: %brz_i32_overflow(98) == 1
|
||||
; run: %brz_i32_overflow(97) == 1
|
||||
|
||||
function %brz_i32(i32) -> i8 {
|
||||
block0(v0: i32):
|
||||
brz v0, block1
|
||||
jump block2
|
||||
|
||||
block1:
|
||||
v1 = bconst.b1 true
|
||||
v1 = iconst.i8 1
|
||||
return v1
|
||||
|
||||
block2:
|
||||
v2 = bconst.b1 false
|
||||
v2 = iconst.i8 0
|
||||
return v2
|
||||
}
|
||||
; run: %brz_i32(0) == true
|
||||
; run: %brz_i32(1) == false
|
||||
; run: %brz_i32(-1) == false
|
||||
; run: %brz_i32(0) == 1
|
||||
; run: %brz_i32(1) == 0
|
||||
; run: %brz_i32(-1) == 0
|
||||
|
||||
function %brz_i16(i16) -> b1 {
|
||||
function %brz_i16(i16) -> i8 {
|
||||
block0(v0: i16):
|
||||
brz v0, block1
|
||||
jump block2
|
||||
|
||||
block1:
|
||||
v1 = bconst.b1 true
|
||||
v1 = iconst.i8 1
|
||||
return v1
|
||||
|
||||
block2:
|
||||
v2 = bconst.b1 false
|
||||
v2 = iconst.i8 0
|
||||
return v2
|
||||
}
|
||||
; run: %brz_i16(0) == true
|
||||
; run: %brz_i16(1) == false
|
||||
; run: %brz_i16(-1) == false
|
||||
; run: %brz_i16(0) == 1
|
||||
; run: %brz_i16(1) == 0
|
||||
; run: %brz_i16(-1) == 0
|
||||
|
||||
function %brz_i8(i8) -> b1 {
|
||||
block0(v0: i8):
|
||||
brz v0, block1
|
||||
jump block2
|
||||
|
||||
block1:
|
||||
v1 = bconst.b1 true
|
||||
return v1
|
||||
|
||||
block2:
|
||||
v2 = bconst.b1 false
|
||||
return v2
|
||||
}
|
||||
; run: %brz_i8(0) == true
|
||||
; run: %brz_i8(1) == false
|
||||
; run: %brz_i8(-1) == false
|
||||
|
||||
|
||||
function %brz_b1(b1) -> b1 {
|
||||
block0(v1: b1):
|
||||
function %brz_i8(i8) -> i8 {
|
||||
block0(v1: i8):
|
||||
brz v1, block1
|
||||
jump block2
|
||||
|
||||
block1:
|
||||
v2 = bconst.b1 true
|
||||
v2 = iconst.i8 1
|
||||
return v2
|
||||
|
||||
block2:
|
||||
v3 = bconst.b1 false
|
||||
v3 = iconst.i8 0
|
||||
return v3
|
||||
}
|
||||
; run: %brz_b1(true) == false
|
||||
; run: %brz_b1(false) == true
|
||||
; run: %brz_i8(1) == 0
|
||||
; run: %brz_i8(0) == 1
|
||||
|
||||
|
||||
function %brnz_i64(i64) -> b1 {
|
||||
function %brnz_i64(i64) -> i8 {
|
||||
block0(v0: i64):
|
||||
brnz v0, block1
|
||||
jump block2
|
||||
|
||||
block1:
|
||||
v1 = bconst.b1 true
|
||||
v1 = iconst.i8 1
|
||||
return v1
|
||||
|
||||
block2:
|
||||
v2 = bconst.b1 false
|
||||
v2 = iconst.i8 0
|
||||
return v2
|
||||
}
|
||||
; run: %brnz_i64(0) == false
|
||||
; run: %brnz_i64(1) == true
|
||||
; run: %brnz_i64(-1) == true
|
||||
; run: %brnz_i64(0) == 0
|
||||
; run: %brnz_i64(1) == 1
|
||||
; run: %brnz_i64(-1) == 1
|
||||
|
||||
function %brnz_i32(i32) -> b1 {
|
||||
function %brnz_i32(i32) -> i8 {
|
||||
block0(v0: i32):
|
||||
brnz v0, block1
|
||||
jump block2
|
||||
|
||||
block1:
|
||||
v1 = bconst.b1 true
|
||||
v1 = iconst.i8 1
|
||||
return v1
|
||||
|
||||
block2:
|
||||
v2 = bconst.b1 false
|
||||
v2 = iconst.i8 0
|
||||
return v2
|
||||
}
|
||||
; run: %brnz_i32(0) == false
|
||||
; run: %brnz_i32(1) == true
|
||||
; run: %brnz_i32(-1) == true
|
||||
; run: %brnz_i32(0) == 0
|
||||
; run: %brnz_i32(1) == 1
|
||||
; run: %brnz_i32(-1) == 1
|
||||
|
||||
function %brnz_i16(i16) -> b1 {
|
||||
function %brnz_i16(i16) -> i8 {
|
||||
block0(v0: i16):
|
||||
brnz v0, block1
|
||||
jump block2
|
||||
|
||||
block1:
|
||||
v1 = bconst.b1 true
|
||||
v1 = iconst.i8 1
|
||||
return v1
|
||||
|
||||
block2:
|
||||
v2 = bconst.b1 false
|
||||
v2 = iconst.i8 0
|
||||
return v2
|
||||
}
|
||||
; run: %brnz_i16(0) == false
|
||||
; run: %brnz_i16(1) == true
|
||||
; run: %brnz_i16(-1) == true
|
||||
; run: %brnz_i16(0) == 0
|
||||
; run: %brnz_i16(1) == 1
|
||||
; run: %brnz_i16(-1) == 1
|
||||
|
||||
function %brnz_i8(i8) -> b1 {
|
||||
function %brnz_i8(i8) -> i8 {
|
||||
block0(v0: i8):
|
||||
brnz v0, block1
|
||||
jump block2
|
||||
|
||||
block1:
|
||||
v1 = bconst.b1 true
|
||||
v1 = iconst.i8 1
|
||||
return v1
|
||||
|
||||
block2:
|
||||
v2 = bconst.b1 false
|
||||
v2 = iconst.i8 0
|
||||
return v2
|
||||
}
|
||||
; run: %brnz_i8(0) == false
|
||||
; run: %brnz_i8(1) == true
|
||||
; run: %brnz_i8(-1) == true
|
||||
|
||||
|
||||
function %brnz_b1(b1) -> b1 {
|
||||
block0(v1: b1):
|
||||
brnz v1, block1
|
||||
jump block2
|
||||
|
||||
block1:
|
||||
v2 = bconst.b1 true
|
||||
return v2
|
||||
|
||||
block2:
|
||||
v3 = bconst.b1 false
|
||||
return v3
|
||||
}
|
||||
; run: %brnz_b1(true) == true
|
||||
; run: %brnz_b1(false) == false
|
||||
; run: %brnz_i8(0) == 0
|
||||
; run: %brnz_i8(1) == 1
|
||||
; run: %brnz_i8(-1) == 1
|
||||
; run: %brnz_i8(97) == 1
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -1,90 +0,0 @@
|
||||
test interpret
|
||||
test run
|
||||
target aarch64
|
||||
target x86_64
|
||||
target s390x
|
||||
target riscv64
|
||||
|
||||
function %breduce_b8_b1(b8) -> b1 {
|
||||
block0(v0: b8):
|
||||
v1 = breduce.b1 v0
|
||||
return v1
|
||||
}
|
||||
; run: %breduce_b8_b1(true) == true
|
||||
; run: %breduce_b8_b1(false) == false
|
||||
|
||||
|
||||
function %breduce_b16_b1(b16) -> b1 {
|
||||
block0(v0: b16):
|
||||
v1 = breduce.b1 v0
|
||||
return v1
|
||||
}
|
||||
; run: %breduce_b16_b1(true) == true
|
||||
; run: %breduce_b16_b1(false) == false
|
||||
|
||||
function %breduce_b16_b8(b16) -> b8 {
|
||||
block0(v0: b16):
|
||||
v1 = breduce.b8 v0
|
||||
return v1
|
||||
}
|
||||
; run: %breduce_b16_b8(true) == true
|
||||
; run: %breduce_b16_b8(false) == false
|
||||
|
||||
|
||||
function %breduce_b32_b1(b32) -> b1 {
|
||||
block0(v0: b32):
|
||||
v1 = breduce.b1 v0
|
||||
return v1
|
||||
}
|
||||
; run: %breduce_b32_b1(true) == true
|
||||
; run: %breduce_b32_b1(false) == false
|
||||
|
||||
function %breduce_b32_b8(b32) -> b8 {
|
||||
block0(v0: b32):
|
||||
v1 = breduce.b8 v0
|
||||
return v1
|
||||
}
|
||||
; run: %breduce_b32_b8(true) == true
|
||||
; run: %breduce_b32_b8(false) == false
|
||||
|
||||
function %breduce_b32_b16(b32) -> b16 {
|
||||
block0(v0: b32):
|
||||
v1 = breduce.b16 v0
|
||||
return v1
|
||||
}
|
||||
; run: %breduce_b32_b16(true) == true
|
||||
; run: %breduce_b32_b16(false) == false
|
||||
|
||||
|
||||
|
||||
function %breduce_b64_b1(b64) -> b1 {
|
||||
block0(v0: b64):
|
||||
v1 = breduce.b1 v0
|
||||
return v1
|
||||
}
|
||||
; run: %breduce_b64_b1(true) == true
|
||||
; run: %breduce_b64_b1(false) == false
|
||||
|
||||
function %breduce_b64_b8(b64) -> b8 {
|
||||
block0(v0: b64):
|
||||
v1 = breduce.b8 v0
|
||||
return v1
|
||||
}
|
||||
; run: %breduce_b64_b8(true) == true
|
||||
; run: %breduce_b64_b8(false) == false
|
||||
|
||||
function %breduce_b64_b16(b64) -> b16 {
|
||||
block0(v0: b64):
|
||||
v1 = breduce.b16 v0
|
||||
return v1
|
||||
}
|
||||
; run: %breduce_b64_b16(true) == true
|
||||
; run: %breduce_b64_b16(false) == false
|
||||
|
||||
function %breduce_b64_b32(b64) -> b32 {
|
||||
block0(v0: b64):
|
||||
v1 = breduce.b32 v0
|
||||
return v1
|
||||
}
|
||||
; run: %breduce_b64_b32(true) == true
|
||||
; run: %breduce_b64_b32(false) == false
|
||||
@@ -52,21 +52,22 @@ block0(v0: f64):
|
||||
|
||||
|
||||
|
||||
function %callee_b1(b1) -> b1 {
|
||||
block0(v0: b1):
|
||||
v1 = bnot.b1 v0
|
||||
return v1
|
||||
function %callee_i8(i8) -> i8 {
|
||||
block0(v0: i8):
|
||||
v1 = iconst.i8 0
|
||||
v2 = icmp eq v0, v1
|
||||
return v2
|
||||
}
|
||||
|
||||
function %call_b1(b1) -> b1 {
|
||||
fn0 = %callee_b1(b1) -> b1
|
||||
function %call_i8(i8) -> i8 {
|
||||
fn0 = %callee_i8(i8) -> i8
|
||||
|
||||
block0(v0: b1):
|
||||
block0(v0: i8):
|
||||
v1 = call fn0(v0)
|
||||
return v1
|
||||
}
|
||||
; run: %call_b1(true) == false
|
||||
; run: %call_b1(false) == true
|
||||
; run: %call_i8(1) == 0
|
||||
; run: %call_i8(0) == 1
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -59,7 +59,7 @@ function %ceil_is_nan_f32(f32) -> i32 {
|
||||
block0(v0: f32):
|
||||
v1 = ceil v0
|
||||
v2 = fcmp ne v1, v1
|
||||
v3 = bint.i32 v2
|
||||
v3 = uextend.i32 v2
|
||||
return v3
|
||||
}
|
||||
; run: %ceil_is_nan_f32(+NaN) == 1
|
||||
@@ -132,7 +132,7 @@ function %ceil_is_nan_f64(f64) -> i32 {
|
||||
block0(v0: f64):
|
||||
v1 = ceil v0
|
||||
v2 = fcmp ne v1, v1
|
||||
v3 = bint.i32 v2
|
||||
v3 = uextend.i32 v2
|
||||
return v3
|
||||
}
|
||||
; run: %ceil_is_nan_f64(+NaN) == 1
|
||||
|
||||
@@ -93,62 +93,62 @@ block0:
|
||||
|
||||
|
||||
|
||||
function %b8_bconst_false() -> b8 {
|
||||
function %i8_iconst_false() -> i8 {
|
||||
block0:
|
||||
v1 = bconst.b8 false
|
||||
v1 = iconst.i8 0
|
||||
return v1
|
||||
}
|
||||
; run: %b8_bconst_false() == false
|
||||
; run: %i8_iconst_false() == 0
|
||||
|
||||
function %b8_bconst_true() -> b8 {
|
||||
function %i8_iconst_true() -> i8 {
|
||||
block0:
|
||||
v1 = bconst.b8 true
|
||||
v1 = iconst.i8 1
|
||||
return v1
|
||||
}
|
||||
; run: %b8_bconst_true() == true
|
||||
; run: %i8_iconst_true() == 1
|
||||
|
||||
|
||||
function %b16_bconst_false() -> b16 {
|
||||
function %i16_iconst_false() -> i16 {
|
||||
block0:
|
||||
v1 = bconst.b16 false
|
||||
v1 = iconst.i16 0
|
||||
return v1
|
||||
}
|
||||
; run: %b16_bconst_false() == false
|
||||
; run: %i16_iconst_false() == 0
|
||||
|
||||
function %b16_bconst_true() -> b16 {
|
||||
function %i16_iconst_true() -> i16 {
|
||||
block0:
|
||||
v1 = bconst.b16 true
|
||||
v1 = iconst.i16 1
|
||||
return v1
|
||||
}
|
||||
; run: %b16_bconst_true() == true
|
||||
; run: %i16_iconst_true() == 1
|
||||
|
||||
|
||||
function %b32_bconst_false() -> b32 {
|
||||
function %i32_iconst_false() -> i32 {
|
||||
block0:
|
||||
v1 = bconst.b32 false
|
||||
v1 = iconst.i32 0
|
||||
return v1
|
||||
}
|
||||
; run: %b32_bconst_false() == false
|
||||
; run: %i32_iconst_false() == 0
|
||||
|
||||
function %b32_bconst_true() -> b32 {
|
||||
function %i32_iconst_true() -> i32 {
|
||||
block0:
|
||||
v1 = bconst.b32 true
|
||||
v1 = iconst.i32 1
|
||||
return v1
|
||||
}
|
||||
; run: %b32_bconst_true() == true
|
||||
; run: %i32_iconst_true() == 1
|
||||
|
||||
|
||||
function %b64_bconst_false() -> b64 {
|
||||
function %i64_iconst_false() -> i64 {
|
||||
block0:
|
||||
v1 = bconst.b64 false
|
||||
v1 = iconst.i64 0
|
||||
return v1
|
||||
}
|
||||
; run: %b64_bconst_false() == false
|
||||
; run: %i64_iconst_false() == 0
|
||||
|
||||
; this verifies that returning b64 immediates does not result in a segmentation fault, see https://github.com/bytecodealliance/cranelift/issues/911
|
||||
function %b64_bconst_true() -> b64 {
|
||||
; this verifies that returning i64 immediates does not result in a segmentation fault, see https://github.com/bytecodealliance/cranelift/issues/911
|
||||
function %i64_iconst_true() -> i64 {
|
||||
block0:
|
||||
v1 = bconst.b64 true
|
||||
v1 = iconst.i64 1
|
||||
return v1
|
||||
}
|
||||
; run: %b64_bconst_true() == true
|
||||
; run: %i64_iconst_true() == 1
|
||||
|
||||
@@ -44,46 +44,6 @@ block0(v0: i64):
|
||||
; run: %copy_i64(-1) == -1
|
||||
; run: %copy_i64(127) == 127
|
||||
|
||||
function %copy_b1(b1) -> b1 {
|
||||
block0(v0: b1):
|
||||
v1 = copy v0
|
||||
return v1
|
||||
}
|
||||
; run: %copy_b1(false) == false
|
||||
; run: %copy_b1(true) == true
|
||||
|
||||
function %copy_b8(b8) -> b8 {
|
||||
block0(v0: b8):
|
||||
v1 = copy v0
|
||||
return v1
|
||||
}
|
||||
; run: %copy_b8(false) == false
|
||||
; run: %copy_b8(true) == true
|
||||
|
||||
function %copy_b16(b16) -> b16 {
|
||||
block0(v0: b16):
|
||||
v1 = copy v0
|
||||
return v1
|
||||
}
|
||||
; run: %copy_b16(false) == false
|
||||
; run: %copy_b16(true) == true
|
||||
|
||||
function %copy_b32(b32) -> b32 {
|
||||
block0(v0: b32):
|
||||
v1 = copy v0
|
||||
return v1
|
||||
}
|
||||
; run: %copy_b32(false) == false
|
||||
; run: %copy_b32(true) == true
|
||||
|
||||
function %copy_b64(b64) -> b64 {
|
||||
block0(v0: b64):
|
||||
v1 = copy v0
|
||||
return v1
|
||||
}
|
||||
; run: %copy_b64(false) == false
|
||||
; run: %copy_b64(true) == true
|
||||
|
||||
function %copy_f32(f32) -> f32 {
|
||||
block0(v0: f32):
|
||||
v1 = copy v0
|
||||
|
||||
@@ -49,7 +49,7 @@ function %fadd_is_nan_f32(f32, f32) -> i32 {
|
||||
block0(v0: f32, v1: f32):
|
||||
v2 = fadd v0, v1
|
||||
v3 = fcmp ne v2, v2
|
||||
v4 = bint.i32 v3
|
||||
v4 = uextend.i32 v3
|
||||
return v4
|
||||
}
|
||||
; run: %fadd_is_nan_f32(+Inf, -Inf) == 1
|
||||
@@ -114,7 +114,7 @@ function %fadd_is_nan_f64(f64, f64) -> i32 {
|
||||
block0(v0: f64, v1: f64):
|
||||
v2 = fadd v0, v1
|
||||
v3 = fcmp ne v2, v2
|
||||
v4 = bint.i32 v3
|
||||
v4 = uextend.i32 v3
|
||||
return v4
|
||||
}
|
||||
; run: %fadd_is_nan_f64(+Inf, -Inf) == 1
|
||||
|
||||
@@ -5,316 +5,316 @@ target aarch64
|
||||
target s390x
|
||||
target riscv64
|
||||
|
||||
function %fcmp_eq_f32(f32, f32) -> b1 {
|
||||
function %fcmp_eq_f32(f32, f32) -> i8 {
|
||||
block0(v0: f32, v1: f32):
|
||||
v2 = fcmp eq v0, v1
|
||||
return v2
|
||||
}
|
||||
; run: %fcmp_eq_f32(0x0.5, 0x0.5) == true
|
||||
; run: %fcmp_eq_f32(0x1.0, 0x1.0) == true
|
||||
; run: %fcmp_eq_f32(-0x1.0, 0x1.0) == false
|
||||
; run: %fcmp_eq_f32(0x1.0, -0x1.0) == false
|
||||
; run: %fcmp_eq_f32(0x0.5, 0x1.0) == false
|
||||
; run: %fcmp_eq_f32(0x1.5, 0x2.9) == false
|
||||
; run: %fcmp_eq_f32(0x1.1p10, 0x1.4p1) == false
|
||||
; run: %fcmp_eq_f32(0x1.4cccccp0, 0x1.8p0) == false
|
||||
; run: %fcmp_eq_f32(0x1.b33334p0, 0x1.99999ap-2) == false
|
||||
; run: %fcmp_eq_f32(0x1.333334p-1, 0x1.666666p1) == false
|
||||
; run: %fcmp_eq_f32(-0x0.5, -0x1.0) == false
|
||||
; run: %fcmp_eq_f32(-0x1.5, -0x2.9) == false
|
||||
; run: %fcmp_eq_f32(-0x1.1p10, -0x1.333334p-1) == false
|
||||
; run: %fcmp_eq_f32(-0x1.99999ap-2, -0x1.4cccccp0) == false
|
||||
; run: %fcmp_eq_f32(-0x1.8p0, -0x1.b33334p0) == false
|
||||
; run: %fcmp_eq_f32(-0x1.4p1, -0x1.666666p1) == false
|
||||
; run: %fcmp_eq_f32(0x0.5, -0x1.0) == false
|
||||
; run: %fcmp_eq_f32(0x1.b33334p0, -0x1.b33334p0) == false
|
||||
; run: %fcmp_eq_f32(0x0.5, 0x0.5) == 1
|
||||
; run: %fcmp_eq_f32(0x1.0, 0x1.0) == 1
|
||||
; run: %fcmp_eq_f32(-0x1.0, 0x1.0) == 0
|
||||
; run: %fcmp_eq_f32(0x1.0, -0x1.0) == 0
|
||||
; run: %fcmp_eq_f32(0x0.5, 0x1.0) == 0
|
||||
; run: %fcmp_eq_f32(0x1.5, 0x2.9) == 0
|
||||
; run: %fcmp_eq_f32(0x1.1p10, 0x1.4p1) == 0
|
||||
; run: %fcmp_eq_f32(0x1.4cccccp0, 0x1.8p0) == 0
|
||||
; run: %fcmp_eq_f32(0x1.b33334p0, 0x1.99999ap-2) == 0
|
||||
; run: %fcmp_eq_f32(0x1.333334p-1, 0x1.666666p1) == 0
|
||||
; run: %fcmp_eq_f32(-0x0.5, -0x1.0) == 0
|
||||
; run: %fcmp_eq_f32(-0x1.5, -0x2.9) == 0
|
||||
; run: %fcmp_eq_f32(-0x1.1p10, -0x1.333334p-1) == 0
|
||||
; run: %fcmp_eq_f32(-0x1.99999ap-2, -0x1.4cccccp0) == 0
|
||||
; run: %fcmp_eq_f32(-0x1.8p0, -0x1.b33334p0) == 0
|
||||
; run: %fcmp_eq_f32(-0x1.4p1, -0x1.666666p1) == 0
|
||||
; run: %fcmp_eq_f32(0x0.5, -0x1.0) == 0
|
||||
; run: %fcmp_eq_f32(0x1.b33334p0, -0x1.b33334p0) == 0
|
||||
|
||||
; Zeroes
|
||||
; run: %fcmp_eq_f32(0x0.0, 0x0.0) == true
|
||||
; run: %fcmp_eq_f32(-0x0.0, -0x0.0) == true
|
||||
; run: %fcmp_eq_f32(0x0.0, -0x0.0) == true
|
||||
; run: %fcmp_eq_f32(-0x0.0, 0x0.0) == true
|
||||
; run: %fcmp_eq_f32(0x0.0, 0x0.0) == 1
|
||||
; run: %fcmp_eq_f32(-0x0.0, -0x0.0) == 1
|
||||
; run: %fcmp_eq_f32(0x0.0, -0x0.0) == 1
|
||||
; run: %fcmp_eq_f32(-0x0.0, 0x0.0) == 1
|
||||
|
||||
; Infinities
|
||||
; run: %fcmp_eq_f32(Inf, Inf) == true
|
||||
; run: %fcmp_eq_f32(-Inf, -Inf) == true
|
||||
; run: %fcmp_eq_f32(Inf, -Inf) == false
|
||||
; run: %fcmp_eq_f32(-Inf, Inf) == false
|
||||
; run: %fcmp_eq_f32(Inf, Inf) == 1
|
||||
; run: %fcmp_eq_f32(-Inf, -Inf) == 1
|
||||
; run: %fcmp_eq_f32(Inf, -Inf) == 0
|
||||
; run: %fcmp_eq_f32(-Inf, Inf) == 0
|
||||
|
||||
; Inf/Zero
|
||||
; run: %fcmp_eq_f32(0x0.0, Inf) == false
|
||||
; run: %fcmp_eq_f32(-0x0.0, Inf) == false
|
||||
; run: %fcmp_eq_f32(0x0.0, -Inf) == false
|
||||
; run: %fcmp_eq_f32(-0x0.0, -Inf) == false
|
||||
; run: %fcmp_eq_f32(Inf, 0x0.0) == false
|
||||
; run: %fcmp_eq_f32(Inf, -0x0.0) == false
|
||||
; run: %fcmp_eq_f32(-Inf, 0x0.0) == false
|
||||
; run: %fcmp_eq_f32(-Inf, -0x0.0) == false
|
||||
; run: %fcmp_eq_f32(0x0.0, Inf) == 0
|
||||
; run: %fcmp_eq_f32(-0x0.0, Inf) == 0
|
||||
; run: %fcmp_eq_f32(0x0.0, -Inf) == 0
|
||||
; run: %fcmp_eq_f32(-0x0.0, -Inf) == 0
|
||||
; run: %fcmp_eq_f32(Inf, 0x0.0) == 0
|
||||
; run: %fcmp_eq_f32(Inf, -0x0.0) == 0
|
||||
; run: %fcmp_eq_f32(-Inf, 0x0.0) == 0
|
||||
; run: %fcmp_eq_f32(-Inf, -0x0.0) == 0
|
||||
|
||||
; Epsilon / Max / Min Positive
|
||||
; run: %fcmp_eq_f32(0x1.0p-23, 0x1.0p-23) == true
|
||||
; run: %fcmp_eq_f32(0x1.fffffep127, 0x1.fffffep127) == true
|
||||
; run: %fcmp_eq_f32(0x1.0p-126, 0x1.0p-126) == true
|
||||
; run: %fcmp_eq_f32(0x1.0p-23, 0x1.fffffep127) == false
|
||||
; run: %fcmp_eq_f32(0x1.0p-23, 0x1.0p-126) == false
|
||||
; run: %fcmp_eq_f32(0x1.0p-126, 0x1.fffffep127) == false
|
||||
; run: %fcmp_eq_f32(0x1.0p-23, 0x1.0p-23) == 1
|
||||
; run: %fcmp_eq_f32(0x1.fffffep127, 0x1.fffffep127) == 1
|
||||
; run: %fcmp_eq_f32(0x1.0p-126, 0x1.0p-126) == 1
|
||||
; run: %fcmp_eq_f32(0x1.0p-23, 0x1.fffffep127) == 0
|
||||
; run: %fcmp_eq_f32(0x1.0p-23, 0x1.0p-126) == 0
|
||||
; run: %fcmp_eq_f32(0x1.0p-126, 0x1.fffffep127) == 0
|
||||
|
||||
; Subnormals
|
||||
; run: %fcmp_eq_f32(0x0.800002p-126, -0x0.800002p-126) == false
|
||||
; run: %fcmp_eq_f32(-0x0.800002p-126, 0x0.800002p-126) == false
|
||||
; run: %fcmp_eq_f32(0x0.800002p-126, 0x0.0) == false
|
||||
; run: %fcmp_eq_f32(-0x0.800002p-126, 0x0.0) == false
|
||||
; run: %fcmp_eq_f32(0x0.800002p-126, -0x0.0) == false
|
||||
; run: %fcmp_eq_f32(-0x0.800002p-126, -0x0.0) == false
|
||||
; run: %fcmp_eq_f32(0x0.0, 0x0.800002p-126) == false
|
||||
; run: %fcmp_eq_f32(0x0.0, -0x0.800002p-126) == false
|
||||
; run: %fcmp_eq_f32(-0x0.0, 0x0.800002p-126) == false
|
||||
; run: %fcmp_eq_f32(-0x0.0, -0x0.800002p-126) == false
|
||||
; run: %fcmp_eq_f32(0x0.800002p-126, -0x0.800002p-126) == 0
|
||||
; run: %fcmp_eq_f32(-0x0.800002p-126, 0x0.800002p-126) == 0
|
||||
; run: %fcmp_eq_f32(0x0.800002p-126, 0x0.0) == 0
|
||||
; run: %fcmp_eq_f32(-0x0.800002p-126, 0x0.0) == 0
|
||||
; run: %fcmp_eq_f32(0x0.800002p-126, -0x0.0) == 0
|
||||
; run: %fcmp_eq_f32(-0x0.800002p-126, -0x0.0) == 0
|
||||
; run: %fcmp_eq_f32(0x0.0, 0x0.800002p-126) == 0
|
||||
; run: %fcmp_eq_f32(0x0.0, -0x0.800002p-126) == 0
|
||||
; run: %fcmp_eq_f32(-0x0.0, 0x0.800002p-126) == 0
|
||||
; run: %fcmp_eq_f32(-0x0.0, -0x0.800002p-126) == 0
|
||||
|
||||
; NaN's
|
||||
; run: %fcmp_eq_f32(+NaN, +NaN) == false
|
||||
; run: %fcmp_eq_f32(-NaN, -NaN) == false
|
||||
; run: %fcmp_eq_f32(+NaN, -NaN) == false
|
||||
; run: %fcmp_eq_f32(-NaN, +NaN) == false
|
||||
; run: %fcmp_eq_f32(+NaN, +NaN) == 0
|
||||
; run: %fcmp_eq_f32(-NaN, -NaN) == 0
|
||||
; run: %fcmp_eq_f32(+NaN, -NaN) == 0
|
||||
; run: %fcmp_eq_f32(-NaN, +NaN) == 0
|
||||
|
||||
; run: %fcmp_eq_f32(+NaN, -0x1.0) == false
|
||||
; run: %fcmp_eq_f32(-NaN, -0x1.0) == false
|
||||
; run: %fcmp_eq_f32(+NaN, 0x1.0) == false
|
||||
; run: %fcmp_eq_f32(-NaN, 0x1.0) == false
|
||||
; run: %fcmp_eq_f32(+NaN, -0x0.0) == false
|
||||
; run: %fcmp_eq_f32(-NaN, -0x0.0) == false
|
||||
; run: %fcmp_eq_f32(+NaN, 0x0.0) == false
|
||||
; run: %fcmp_eq_f32(-NaN, 0x0.0) == false
|
||||
; run: %fcmp_eq_f32(+NaN, -Inf) == false
|
||||
; run: %fcmp_eq_f32(-NaN, -Inf) == false
|
||||
; run: %fcmp_eq_f32(+NaN, Inf) == false
|
||||
; run: %fcmp_eq_f32(-NaN, Inf) == false
|
||||
; run: %fcmp_eq_f32(-0x0.0, +NaN) == false
|
||||
; run: %fcmp_eq_f32(-0x0.0, -NaN) == false
|
||||
; run: %fcmp_eq_f32(0x0.0, +NaN) == false
|
||||
; run: %fcmp_eq_f32(0x0.0, -NaN) == false
|
||||
; run: %fcmp_eq_f32(-Inf, +NaN) == false
|
||||
; run: %fcmp_eq_f32(-Inf, -NaN) == false
|
||||
; run: %fcmp_eq_f32(Inf, +NaN) == false
|
||||
; run: %fcmp_eq_f32(Inf, -NaN) == false
|
||||
; run: %fcmp_eq_f32(+NaN, -0x1.0) == 0
|
||||
; run: %fcmp_eq_f32(-NaN, -0x1.0) == 0
|
||||
; run: %fcmp_eq_f32(+NaN, 0x1.0) == 0
|
||||
; run: %fcmp_eq_f32(-NaN, 0x1.0) == 0
|
||||
; run: %fcmp_eq_f32(+NaN, -0x0.0) == 0
|
||||
; run: %fcmp_eq_f32(-NaN, -0x0.0) == 0
|
||||
; run: %fcmp_eq_f32(+NaN, 0x0.0) == 0
|
||||
; run: %fcmp_eq_f32(-NaN, 0x0.0) == 0
|
||||
; run: %fcmp_eq_f32(+NaN, -Inf) == 0
|
||||
; run: %fcmp_eq_f32(-NaN, -Inf) == 0
|
||||
; run: %fcmp_eq_f32(+NaN, Inf) == 0
|
||||
; run: %fcmp_eq_f32(-NaN, Inf) == 0
|
||||
; run: %fcmp_eq_f32(-0x0.0, +NaN) == 0
|
||||
; run: %fcmp_eq_f32(-0x0.0, -NaN) == 0
|
||||
; run: %fcmp_eq_f32(0x0.0, +NaN) == 0
|
||||
; run: %fcmp_eq_f32(0x0.0, -NaN) == 0
|
||||
; run: %fcmp_eq_f32(-Inf, +NaN) == 0
|
||||
; run: %fcmp_eq_f32(-Inf, -NaN) == 0
|
||||
; run: %fcmp_eq_f32(Inf, +NaN) == 0
|
||||
; run: %fcmp_eq_f32(Inf, -NaN) == 0
|
||||
|
||||
; run: %fcmp_eq_f32(+NaN:0x1, +NaN:0x1) == false
|
||||
; run: %fcmp_eq_f32(-NaN:0x1, -NaN:0x1) == false
|
||||
; run: %fcmp_eq_f32(+NaN:0x1, -NaN:0x1) == false
|
||||
; run: %fcmp_eq_f32(-NaN:0x1, +NaN:0x1) == false
|
||||
; run: %fcmp_eq_f32(+NaN:0x1, +NaN) == false
|
||||
; run: %fcmp_eq_f32(+NaN:0x1, -NaN) == false
|
||||
; run: %fcmp_eq_f32(-NaN:0x1, -NaN) == false
|
||||
; run: %fcmp_eq_f32(-NaN:0x1, +NaN) == false
|
||||
; run: %fcmp_eq_f32(+NaN:0x1, +NaN:0x1) == 0
|
||||
; run: %fcmp_eq_f32(-NaN:0x1, -NaN:0x1) == 0
|
||||
; run: %fcmp_eq_f32(+NaN:0x1, -NaN:0x1) == 0
|
||||
; run: %fcmp_eq_f32(-NaN:0x1, +NaN:0x1) == 0
|
||||
; run: %fcmp_eq_f32(+NaN:0x1, +NaN) == 0
|
||||
; run: %fcmp_eq_f32(+NaN:0x1, -NaN) == 0
|
||||
; run: %fcmp_eq_f32(-NaN:0x1, -NaN) == 0
|
||||
; run: %fcmp_eq_f32(-NaN:0x1, +NaN) == 0
|
||||
|
||||
; run: %fcmp_eq_f32(+NaN:0x80001, +NaN:0x80001) == false
|
||||
; run: %fcmp_eq_f32(-NaN:0x80001, -NaN:0x80001) == false
|
||||
; run: %fcmp_eq_f32(+NaN:0x80001, -NaN:0x80001) == false
|
||||
; run: %fcmp_eq_f32(-NaN:0x80001, +NaN:0x80001) == false
|
||||
; run: %fcmp_eq_f32(+NaN:0x80001, +NaN) == false
|
||||
; run: %fcmp_eq_f32(+NaN:0x80001, -NaN) == false
|
||||
; run: %fcmp_eq_f32(-NaN:0x80001, -NaN) == false
|
||||
; run: %fcmp_eq_f32(-NaN:0x80001, +NaN) == false
|
||||
; run: %fcmp_eq_f32(+NaN:0x80001, +NaN:0x80001) == 0
|
||||
; run: %fcmp_eq_f32(-NaN:0x80001, -NaN:0x80001) == 0
|
||||
; run: %fcmp_eq_f32(+NaN:0x80001, -NaN:0x80001) == 0
|
||||
; run: %fcmp_eq_f32(-NaN:0x80001, +NaN:0x80001) == 0
|
||||
; run: %fcmp_eq_f32(+NaN:0x80001, +NaN) == 0
|
||||
; run: %fcmp_eq_f32(+NaN:0x80001, -NaN) == 0
|
||||
; run: %fcmp_eq_f32(-NaN:0x80001, -NaN) == 0
|
||||
; run: %fcmp_eq_f32(-NaN:0x80001, +NaN) == 0
|
||||
|
||||
; sNaN's
|
||||
; run: %fcmp_eq_f32(+sNaN:0x1, +sNaN:0x1) == false
|
||||
; run: %fcmp_eq_f32(-sNaN:0x1, -sNaN:0x1) == false
|
||||
; run: %fcmp_eq_f32(+sNaN:0x1, -sNaN:0x1) == false
|
||||
; run: %fcmp_eq_f32(-sNaN:0x1, +sNaN:0x1) == false
|
||||
; run: %fcmp_eq_f32(+sNaN:0x1, +sNaN:0x1) == 0
|
||||
; run: %fcmp_eq_f32(-sNaN:0x1, -sNaN:0x1) == 0
|
||||
; run: %fcmp_eq_f32(+sNaN:0x1, -sNaN:0x1) == 0
|
||||
; run: %fcmp_eq_f32(-sNaN:0x1, +sNaN:0x1) == 0
|
||||
|
||||
; run: %fcmp_eq_f32(+sNaN:0x1, -0x1.0) == false
|
||||
; run: %fcmp_eq_f32(-sNaN:0x1, -0x1.0) == false
|
||||
; run: %fcmp_eq_f32(+sNaN:0x1, 0x1.0) == false
|
||||
; run: %fcmp_eq_f32(-sNaN:0x1, 0x1.0) == false
|
||||
; run: %fcmp_eq_f32(+sNaN:0x1, -0x0.0) == false
|
||||
; run: %fcmp_eq_f32(-sNaN:0x1, -0x0.0) == false
|
||||
; run: %fcmp_eq_f32(+sNaN:0x1, 0x0.0) == false
|
||||
; run: %fcmp_eq_f32(-sNaN:0x1, 0x0.0) == false
|
||||
; run: %fcmp_eq_f32(+sNaN:0x1, -Inf) == false
|
||||
; run: %fcmp_eq_f32(-sNaN:0x1, -Inf) == false
|
||||
; run: %fcmp_eq_f32(+sNaN:0x1, Inf) == false
|
||||
; run: %fcmp_eq_f32(-sNaN:0x1, Inf) == false
|
||||
; run: %fcmp_eq_f32(-0x0.0, +sNaN:0x1) == false
|
||||
; run: %fcmp_eq_f32(-0x0.0, -sNaN:0x1) == false
|
||||
; run: %fcmp_eq_f32(0x0.0, +sNaN:0x1) == false
|
||||
; run: %fcmp_eq_f32(0x0.0, -sNaN:0x1) == false
|
||||
; run: %fcmp_eq_f32(-Inf, +sNaN:0x1) == false
|
||||
; run: %fcmp_eq_f32(-Inf, -sNaN:0x1) == false
|
||||
; run: %fcmp_eq_f32(Inf, +sNaN:0x1) == false
|
||||
; run: %fcmp_eq_f32(Inf, -sNaN:0x1) == false
|
||||
; run: %fcmp_eq_f32(+sNaN:0x1, -0x1.0) == 0
|
||||
; run: %fcmp_eq_f32(-sNaN:0x1, -0x1.0) == 0
|
||||
; run: %fcmp_eq_f32(+sNaN:0x1, 0x1.0) == 0
|
||||
; run: %fcmp_eq_f32(-sNaN:0x1, 0x1.0) == 0
|
||||
; run: %fcmp_eq_f32(+sNaN:0x1, -0x0.0) == 0
|
||||
; run: %fcmp_eq_f32(-sNaN:0x1, -0x0.0) == 0
|
||||
; run: %fcmp_eq_f32(+sNaN:0x1, 0x0.0) == 0
|
||||
; run: %fcmp_eq_f32(-sNaN:0x1, 0x0.0) == 0
|
||||
; run: %fcmp_eq_f32(+sNaN:0x1, -Inf) == 0
|
||||
; run: %fcmp_eq_f32(-sNaN:0x1, -Inf) == 0
|
||||
; run: %fcmp_eq_f32(+sNaN:0x1, Inf) == 0
|
||||
; run: %fcmp_eq_f32(-sNaN:0x1, Inf) == 0
|
||||
; run: %fcmp_eq_f32(-0x0.0, +sNaN:0x1) == 0
|
||||
; run: %fcmp_eq_f32(-0x0.0, -sNaN:0x1) == 0
|
||||
; run: %fcmp_eq_f32(0x0.0, +sNaN:0x1) == 0
|
||||
; run: %fcmp_eq_f32(0x0.0, -sNaN:0x1) == 0
|
||||
; run: %fcmp_eq_f32(-Inf, +sNaN:0x1) == 0
|
||||
; run: %fcmp_eq_f32(-Inf, -sNaN:0x1) == 0
|
||||
; run: %fcmp_eq_f32(Inf, +sNaN:0x1) == 0
|
||||
; run: %fcmp_eq_f32(Inf, -sNaN:0x1) == 0
|
||||
|
||||
; run: %fcmp_eq_f32(+sNaN:0x1, +NaN:0x1) == false
|
||||
; run: %fcmp_eq_f32(-sNaN:0x1, -NaN:0x1) == false
|
||||
; run: %fcmp_eq_f32(+sNaN:0x1, -NaN:0x1) == false
|
||||
; run: %fcmp_eq_f32(-sNaN:0x1, +NaN:0x1) == false
|
||||
; run: %fcmp_eq_f32(+NaN:0x1, +sNaN:0x1) == false
|
||||
; run: %fcmp_eq_f32(-NaN:0x1, -sNaN:0x1) == false
|
||||
; run: %fcmp_eq_f32(-NaN:0x1, +sNaN:0x1) == false
|
||||
; run: %fcmp_eq_f32(+NaN:0x1, -sNaN:0x1) == false
|
||||
; run: %fcmp_eq_f32(+sNaN:0x1, +NaN:0x1) == 0
|
||||
; run: %fcmp_eq_f32(-sNaN:0x1, -NaN:0x1) == 0
|
||||
; run: %fcmp_eq_f32(+sNaN:0x1, -NaN:0x1) == 0
|
||||
; run: %fcmp_eq_f32(-sNaN:0x1, +NaN:0x1) == 0
|
||||
; run: %fcmp_eq_f32(+NaN:0x1, +sNaN:0x1) == 0
|
||||
; run: %fcmp_eq_f32(-NaN:0x1, -sNaN:0x1) == 0
|
||||
; run: %fcmp_eq_f32(-NaN:0x1, +sNaN:0x1) == 0
|
||||
; run: %fcmp_eq_f32(+NaN:0x1, -sNaN:0x1) == 0
|
||||
|
||||
; run: %fcmp_eq_f32(+sNaN:0x80001, +sNaN:0x80001) == false
|
||||
; run: %fcmp_eq_f32(-sNaN:0x80001, -sNaN:0x80001) == false
|
||||
; run: %fcmp_eq_f32(+sNaN:0x80001, -sNaN:0x80001) == false
|
||||
; run: %fcmp_eq_f32(-sNaN:0x80001, +sNaN:0x80001) == false
|
||||
; run: %fcmp_eq_f32(+sNaN:0x80001, +sNaN:0x1) == false
|
||||
; run: %fcmp_eq_f32(+sNaN:0x80001, -sNaN:0x1) == false
|
||||
; run: %fcmp_eq_f32(-sNaN:0x80001, -sNaN:0x1) == false
|
||||
; run: %fcmp_eq_f32(-sNaN:0x80001, +sNaN:0x1) == false
|
||||
; run: %fcmp_eq_f32(+sNaN:0x80001, +sNaN:0x80001) == 0
|
||||
; run: %fcmp_eq_f32(-sNaN:0x80001, -sNaN:0x80001) == 0
|
||||
; run: %fcmp_eq_f32(+sNaN:0x80001, -sNaN:0x80001) == 0
|
||||
; run: %fcmp_eq_f32(-sNaN:0x80001, +sNaN:0x80001) == 0
|
||||
; run: %fcmp_eq_f32(+sNaN:0x80001, +sNaN:0x1) == 0
|
||||
; run: %fcmp_eq_f32(+sNaN:0x80001, -sNaN:0x1) == 0
|
||||
; run: %fcmp_eq_f32(-sNaN:0x80001, -sNaN:0x1) == 0
|
||||
; run: %fcmp_eq_f32(-sNaN:0x80001, +sNaN:0x1) == 0
|
||||
|
||||
|
||||
function %fcmp_eq_f64(f64, f64) -> b1 {
|
||||
function %fcmp_eq_f64(f64, f64) -> i8 {
|
||||
block0(v0: f64, v1: f64):
|
||||
v2 = fcmp eq v0, v1
|
||||
return v2
|
||||
}
|
||||
; run: %fcmp_eq_f64(0x0.5, 0x0.5) == true
|
||||
; run: %fcmp_eq_f64(0x1.0, 0x1.0) == true
|
||||
; run: %fcmp_eq_f64(-0x1.0, 0x1.0) == false
|
||||
; run: %fcmp_eq_f64(0x1.0, -0x1.0) == false
|
||||
; run: %fcmp_eq_f64(0x0.5, 0x1.0) == false
|
||||
; run: %fcmp_eq_f64(0x1.5, 0x2.9) == false
|
||||
; run: %fcmp_eq_f64(0x1.1p10, 0x1.4p1) == false
|
||||
; run: %fcmp_eq_f64(0x1.4cccccccccccdp0, 0x1.8p0) == false
|
||||
; run: %fcmp_eq_f64(0x1.b333333333333p0, 0x1.999999999999ap-2) == false
|
||||
; run: %fcmp_eq_f64(0x1.3333333333333p-1, 0x1.6666666666666p1) == false
|
||||
; run: %fcmp_eq_f64(-0x0.5, -0x1.0) == false
|
||||
; run: %fcmp_eq_f64(-0x1.5, -0x2.9) == false
|
||||
; run: %fcmp_eq_f64(-0x1.1p10, -0x1.3333333333333p-1) == false
|
||||
; run: %fcmp_eq_f64(-0x1.999999999999ap-2, -0x1.4cccccccccccdp0) == false
|
||||
; run: %fcmp_eq_f64(-0x1.8p0, -0x1.b333333333333p0) == false
|
||||
; run: %fcmp_eq_f64(-0x1.4p1, -0x1.6666666666666p1) == false
|
||||
; run: %fcmp_eq_f64(0x0.5, -0x1.0) == false
|
||||
; run: %fcmp_eq_f64(0x1.b333333333333p0, -0x1.b333333333333p0) == false
|
||||
; run: %fcmp_eq_f64(0x0.5, 0x0.5) == 1
|
||||
; run: %fcmp_eq_f64(0x1.0, 0x1.0) == 1
|
||||
; run: %fcmp_eq_f64(-0x1.0, 0x1.0) == 0
|
||||
; run: %fcmp_eq_f64(0x1.0, -0x1.0) == 0
|
||||
; run: %fcmp_eq_f64(0x0.5, 0x1.0) == 0
|
||||
; run: %fcmp_eq_f64(0x1.5, 0x2.9) == 0
|
||||
; run: %fcmp_eq_f64(0x1.1p10, 0x1.4p1) == 0
|
||||
; run: %fcmp_eq_f64(0x1.4cccccccccccdp0, 0x1.8p0) == 0
|
||||
; run: %fcmp_eq_f64(0x1.b333333333333p0, 0x1.999999999999ap-2) == 0
|
||||
; run: %fcmp_eq_f64(0x1.3333333333333p-1, 0x1.6666666666666p1) == 0
|
||||
; run: %fcmp_eq_f64(-0x0.5, -0x1.0) == 0
|
||||
; run: %fcmp_eq_f64(-0x1.5, -0x2.9) == 0
|
||||
; run: %fcmp_eq_f64(-0x1.1p10, -0x1.3333333333333p-1) == 0
|
||||
; run: %fcmp_eq_f64(-0x1.999999999999ap-2, -0x1.4cccccccccccdp0) == 0
|
||||
; run: %fcmp_eq_f64(-0x1.8p0, -0x1.b333333333333p0) == 0
|
||||
; run: %fcmp_eq_f64(-0x1.4p1, -0x1.6666666666666p1) == 0
|
||||
; run: %fcmp_eq_f64(0x0.5, -0x1.0) == 0
|
||||
; run: %fcmp_eq_f64(0x1.b333333333333p0, -0x1.b333333333333p0) == 0
|
||||
|
||||
|
||||
; Zeroes
|
||||
; run: %fcmp_eq_f64(0x0.0, 0x0.0) == true
|
||||
; run: %fcmp_eq_f64(-0x0.0, -0x0.0) == true
|
||||
; run: %fcmp_eq_f64(0x0.0, -0x0.0) == true
|
||||
; run: %fcmp_eq_f64(-0x0.0, 0x0.0) == true
|
||||
; run: %fcmp_eq_f64(0x0.0, 0x0.0) == 1
|
||||
; run: %fcmp_eq_f64(-0x0.0, -0x0.0) == 1
|
||||
; run: %fcmp_eq_f64(0x0.0, -0x0.0) == 1
|
||||
; run: %fcmp_eq_f64(-0x0.0, 0x0.0) == 1
|
||||
|
||||
; Infinities
|
||||
; run: %fcmp_eq_f64(Inf, Inf) == true
|
||||
; run: %fcmp_eq_f64(-Inf, -Inf) == true
|
||||
; run: %fcmp_eq_f64(Inf, -Inf) == false
|
||||
; run: %fcmp_eq_f64(-Inf, Inf) == false
|
||||
; run: %fcmp_eq_f64(Inf, Inf) == 1
|
||||
; run: %fcmp_eq_f64(-Inf, -Inf) == 1
|
||||
; run: %fcmp_eq_f64(Inf, -Inf) == 0
|
||||
; run: %fcmp_eq_f64(-Inf, Inf) == 0
|
||||
|
||||
; Inf/Zero
|
||||
; run: %fcmp_eq_f64(0x0.0, Inf) == false
|
||||
; run: %fcmp_eq_f64(-0x0.0, Inf) == false
|
||||
; run: %fcmp_eq_f64(0x0.0, -Inf) == false
|
||||
; run: %fcmp_eq_f64(-0x0.0, -Inf) == false
|
||||
; run: %fcmp_eq_f64(Inf, 0x0.0) == false
|
||||
; run: %fcmp_eq_f64(Inf, -0x0.0) == false
|
||||
; run: %fcmp_eq_f64(-Inf, 0x0.0) == false
|
||||
; run: %fcmp_eq_f64(-Inf, -0x0.0) == false
|
||||
; run: %fcmp_eq_f64(0x0.0, Inf) == 0
|
||||
; run: %fcmp_eq_f64(-0x0.0, Inf) == 0
|
||||
; run: %fcmp_eq_f64(0x0.0, -Inf) == 0
|
||||
; run: %fcmp_eq_f64(-0x0.0, -Inf) == 0
|
||||
; run: %fcmp_eq_f64(Inf, 0x0.0) == 0
|
||||
; run: %fcmp_eq_f64(Inf, -0x0.0) == 0
|
||||
; run: %fcmp_eq_f64(-Inf, 0x0.0) == 0
|
||||
; run: %fcmp_eq_f64(-Inf, -0x0.0) == 0
|
||||
|
||||
; Epsilon / Max / Min Positive
|
||||
; run: %fcmp_eq_f64(0x1.0p-52, 0x1.0p-52) == true
|
||||
; run: %fcmp_eq_f64(0x1.fffffffffffffp1023, 0x1.fffffffffffffp1023) == true
|
||||
; run: %fcmp_eq_f64(0x1.0p-1022, 0x1.0p-1022) == true
|
||||
; run: %fcmp_eq_f64(0x1.0p-52, 0x1.fffffffffffffp1023) == false
|
||||
; run: %fcmp_eq_f64(0x1.0p-52, 0x1.0p-1022) == false
|
||||
; run: %fcmp_eq_f64(0x1.0p-1022, 0x1.fffffffffffffp1023) == false
|
||||
; run: %fcmp_eq_f64(0x1.0p-52, 0x1.0p-52) == 1
|
||||
; run: %fcmp_eq_f64(0x1.fffffffffffffp1023, 0x1.fffffffffffffp1023) == 1
|
||||
; run: %fcmp_eq_f64(0x1.0p-1022, 0x1.0p-1022) == 1
|
||||
; run: %fcmp_eq_f64(0x1.0p-52, 0x1.fffffffffffffp1023) == 0
|
||||
; run: %fcmp_eq_f64(0x1.0p-52, 0x1.0p-1022) == 0
|
||||
; run: %fcmp_eq_f64(0x1.0p-1022, 0x1.fffffffffffffp1023) == 0
|
||||
|
||||
; Subnormals
|
||||
; run: %fcmp_eq_f64(0x0.8p-1022, -0x0.8p-1022) == false
|
||||
; run: %fcmp_eq_f64(-0x0.8p-1022, 0x0.8p-1022) == false
|
||||
; run: %fcmp_eq_f64(0x0.8p-1022, 0x0.0) == false
|
||||
; run: %fcmp_eq_f64(-0x0.8p-1022, 0x0.0) == false
|
||||
; run: %fcmp_eq_f64(0x0.8p-1022, -0x0.0) == false
|
||||
; run: %fcmp_eq_f64(-0x0.8p-1022, -0x0.0) == false
|
||||
; run: %fcmp_eq_f64(0x0.0, 0x0.8p-1022) == false
|
||||
; run: %fcmp_eq_f64(0x0.0, -0x0.8p-1022) == false
|
||||
; run: %fcmp_eq_f64(-0x0.0, 0x0.8p-1022) == false
|
||||
; run: %fcmp_eq_f64(-0x0.0, -0x0.8p-1022) == false
|
||||
; run: %fcmp_eq_f64(0x0.8p-1022, -0x0.8p-1022) == 0
|
||||
; run: %fcmp_eq_f64(-0x0.8p-1022, 0x0.8p-1022) == 0
|
||||
; run: %fcmp_eq_f64(0x0.8p-1022, 0x0.0) == 0
|
||||
; run: %fcmp_eq_f64(-0x0.8p-1022, 0x0.0) == 0
|
||||
; run: %fcmp_eq_f64(0x0.8p-1022, -0x0.0) == 0
|
||||
; run: %fcmp_eq_f64(-0x0.8p-1022, -0x0.0) == 0
|
||||
; run: %fcmp_eq_f64(0x0.0, 0x0.8p-1022) == 0
|
||||
; run: %fcmp_eq_f64(0x0.0, -0x0.8p-1022) == 0
|
||||
; run: %fcmp_eq_f64(-0x0.0, 0x0.8p-1022) == 0
|
||||
; run: %fcmp_eq_f64(-0x0.0, -0x0.8p-1022) == 0
|
||||
|
||||
; NaN's
|
||||
; run: %fcmp_eq_f64(+NaN, +NaN) == false
|
||||
; run: %fcmp_eq_f64(-NaN, -NaN) == false
|
||||
; run: %fcmp_eq_f64(+NaN, -NaN) == false
|
||||
; run: %fcmp_eq_f64(-NaN, +NaN) == false
|
||||
; run: %fcmp_eq_f64(+NaN, +NaN) == 0
|
||||
; run: %fcmp_eq_f64(-NaN, -NaN) == 0
|
||||
; run: %fcmp_eq_f64(+NaN, -NaN) == 0
|
||||
; run: %fcmp_eq_f64(-NaN, +NaN) == 0
|
||||
|
||||
; run: %fcmp_eq_f64(+NaN, -0x1.0) == false
|
||||
; run: %fcmp_eq_f64(-NaN, -0x1.0) == false
|
||||
; run: %fcmp_eq_f64(+NaN, 0x1.0) == false
|
||||
; run: %fcmp_eq_f64(-NaN, 0x1.0) == false
|
||||
; run: %fcmp_eq_f64(+NaN, -0x0.0) == false
|
||||
; run: %fcmp_eq_f64(-NaN, -0x0.0) == false
|
||||
; run: %fcmp_eq_f64(+NaN, 0x0.0) == false
|
||||
; run: %fcmp_eq_f64(-NaN, 0x0.0) == false
|
||||
; run: %fcmp_eq_f64(+NaN, -Inf) == false
|
||||
; run: %fcmp_eq_f64(-NaN, -Inf) == false
|
||||
; run: %fcmp_eq_f64(+NaN, Inf) == false
|
||||
; run: %fcmp_eq_f64(-NaN, Inf) == false
|
||||
; run: %fcmp_eq_f64(-0x0.0, +NaN) == false
|
||||
; run: %fcmp_eq_f64(-0x0.0, -NaN) == false
|
||||
; run: %fcmp_eq_f64(0x0.0, +NaN) == false
|
||||
; run: %fcmp_eq_f64(0x0.0, -NaN) == false
|
||||
; run: %fcmp_eq_f64(-Inf, +NaN) == false
|
||||
; run: %fcmp_eq_f64(-Inf, -NaN) == false
|
||||
; run: %fcmp_eq_f64(Inf, +NaN) == false
|
||||
; run: %fcmp_eq_f64(Inf, -NaN) == false
|
||||
; run: %fcmp_eq_f64(+NaN, -0x1.0) == 0
|
||||
; run: %fcmp_eq_f64(-NaN, -0x1.0) == 0
|
||||
; run: %fcmp_eq_f64(+NaN, 0x1.0) == 0
|
||||
; run: %fcmp_eq_f64(-NaN, 0x1.0) == 0
|
||||
; run: %fcmp_eq_f64(+NaN, -0x0.0) == 0
|
||||
; run: %fcmp_eq_f64(-NaN, -0x0.0) == 0
|
||||
; run: %fcmp_eq_f64(+NaN, 0x0.0) == 0
|
||||
; run: %fcmp_eq_f64(-NaN, 0x0.0) == 0
|
||||
; run: %fcmp_eq_f64(+NaN, -Inf) == 0
|
||||
; run: %fcmp_eq_f64(-NaN, -Inf) == 0
|
||||
; run: %fcmp_eq_f64(+NaN, Inf) == 0
|
||||
; run: %fcmp_eq_f64(-NaN, Inf) == 0
|
||||
; run: %fcmp_eq_f64(-0x0.0, +NaN) == 0
|
||||
; run: %fcmp_eq_f64(-0x0.0, -NaN) == 0
|
||||
; run: %fcmp_eq_f64(0x0.0, +NaN) == 0
|
||||
; run: %fcmp_eq_f64(0x0.0, -NaN) == 0
|
||||
; run: %fcmp_eq_f64(-Inf, +NaN) == 0
|
||||
; run: %fcmp_eq_f64(-Inf, -NaN) == 0
|
||||
; run: %fcmp_eq_f64(Inf, +NaN) == 0
|
||||
; run: %fcmp_eq_f64(Inf, -NaN) == 0
|
||||
|
||||
; run: %fcmp_eq_f64(+NaN:0x1, +NaN:0x1) == false
|
||||
; run: %fcmp_eq_f64(-NaN:0x1, -NaN:0x1) == false
|
||||
; run: %fcmp_eq_f64(+NaN:0x1, -NaN:0x1) == false
|
||||
; run: %fcmp_eq_f64(-NaN:0x1, +NaN:0x1) == false
|
||||
; run: %fcmp_eq_f64(+NaN:0x1, +NaN) == false
|
||||
; run: %fcmp_eq_f64(+NaN:0x1, -NaN) == false
|
||||
; run: %fcmp_eq_f64(-NaN:0x1, -NaN) == false
|
||||
; run: %fcmp_eq_f64(-NaN:0x1, +NaN) == false
|
||||
; run: %fcmp_eq_f64(+NaN:0x1, +NaN:0x1) == 0
|
||||
; run: %fcmp_eq_f64(-NaN:0x1, -NaN:0x1) == 0
|
||||
; run: %fcmp_eq_f64(+NaN:0x1, -NaN:0x1) == 0
|
||||
; run: %fcmp_eq_f64(-NaN:0x1, +NaN:0x1) == 0
|
||||
; run: %fcmp_eq_f64(+NaN:0x1, +NaN) == 0
|
||||
; run: %fcmp_eq_f64(+NaN:0x1, -NaN) == 0
|
||||
; run: %fcmp_eq_f64(-NaN:0x1, -NaN) == 0
|
||||
; run: %fcmp_eq_f64(-NaN:0x1, +NaN) == 0
|
||||
|
||||
; run: %fcmp_eq_f64(+NaN:0x800000000001, +NaN:0x800000000001) == false
|
||||
; run: %fcmp_eq_f64(-NaN:0x800000000001, -NaN:0x800000000001) == false
|
||||
; run: %fcmp_eq_f64(+NaN:0x800000000001, -NaN:0x800000000001) == false
|
||||
; run: %fcmp_eq_f64(-NaN:0x800000000001, +NaN:0x800000000001) == false
|
||||
; run: %fcmp_eq_f64(+NaN:0x800000000001, +NaN) == false
|
||||
; run: %fcmp_eq_f64(+NaN:0x800000000001, -NaN) == false
|
||||
; run: %fcmp_eq_f64(-NaN:0x800000000001, -NaN) == false
|
||||
; run: %fcmp_eq_f64(-NaN:0x800000000001, +NaN) == false
|
||||
; run: %fcmp_eq_f64(+NaN:0x800000000001, +NaN:0x800000000001) == 0
|
||||
; run: %fcmp_eq_f64(-NaN:0x800000000001, -NaN:0x800000000001) == 0
|
||||
; run: %fcmp_eq_f64(+NaN:0x800000000001, -NaN:0x800000000001) == 0
|
||||
; run: %fcmp_eq_f64(-NaN:0x800000000001, +NaN:0x800000000001) == 0
|
||||
; run: %fcmp_eq_f64(+NaN:0x800000000001, +NaN) == 0
|
||||
; run: %fcmp_eq_f64(+NaN:0x800000000001, -NaN) == 0
|
||||
; run: %fcmp_eq_f64(-NaN:0x800000000001, -NaN) == 0
|
||||
; run: %fcmp_eq_f64(-NaN:0x800000000001, +NaN) == 0
|
||||
|
||||
; sNaN's
|
||||
; run: %fcmp_eq_f64(+sNaN:0x1, +sNaN:0x1) == false
|
||||
; run: %fcmp_eq_f64(-sNaN:0x1, -sNaN:0x1) == false
|
||||
; run: %fcmp_eq_f64(+sNaN:0x1, -sNaN:0x1) == false
|
||||
; run: %fcmp_eq_f64(-sNaN:0x1, +sNaN:0x1) == false
|
||||
; run: %fcmp_eq_f64(+sNaN:0x1, +sNaN:0x1) == 0
|
||||
; run: %fcmp_eq_f64(-sNaN:0x1, -sNaN:0x1) == 0
|
||||
; run: %fcmp_eq_f64(+sNaN:0x1, -sNaN:0x1) == 0
|
||||
; run: %fcmp_eq_f64(-sNaN:0x1, +sNaN:0x1) == 0
|
||||
|
||||
; run: %fcmp_eq_f64(+sNaN:0x1, -0x1.0) == false
|
||||
; run: %fcmp_eq_f64(-sNaN:0x1, -0x1.0) == false
|
||||
; run: %fcmp_eq_f64(+sNaN:0x1, 0x1.0) == false
|
||||
; run: %fcmp_eq_f64(-sNaN:0x1, 0x1.0) == false
|
||||
; run: %fcmp_eq_f64(+sNaN:0x1, -0x0.0) == false
|
||||
; run: %fcmp_eq_f64(-sNaN:0x1, -0x0.0) == false
|
||||
; run: %fcmp_eq_f64(+sNaN:0x1, 0x0.0) == false
|
||||
; run: %fcmp_eq_f64(-sNaN:0x1, 0x0.0) == false
|
||||
; run: %fcmp_eq_f64(+sNaN:0x1, -Inf) == false
|
||||
; run: %fcmp_eq_f64(-sNaN:0x1, -Inf) == false
|
||||
; run: %fcmp_eq_f64(+sNaN:0x1, Inf) == false
|
||||
; run: %fcmp_eq_f64(-sNaN:0x1, Inf) == false
|
||||
; run: %fcmp_eq_f64(-0x0.0, +sNaN:0x1) == false
|
||||
; run: %fcmp_eq_f64(-0x0.0, -sNaN:0x1) == false
|
||||
; run: %fcmp_eq_f64(0x0.0, +sNaN:0x1) == false
|
||||
; run: %fcmp_eq_f64(0x0.0, -sNaN:0x1) == false
|
||||
; run: %fcmp_eq_f64(-Inf, +sNaN:0x1) == false
|
||||
; run: %fcmp_eq_f64(-Inf, -sNaN:0x1) == false
|
||||
; run: %fcmp_eq_f64(Inf, +sNaN:0x1) == false
|
||||
; run: %fcmp_eq_f64(Inf, -sNaN:0x1) == false
|
||||
; run: %fcmp_eq_f64(+sNaN:0x1, -0x1.0) == 0
|
||||
; run: %fcmp_eq_f64(-sNaN:0x1, -0x1.0) == 0
|
||||
; run: %fcmp_eq_f64(+sNaN:0x1, 0x1.0) == 0
|
||||
; run: %fcmp_eq_f64(-sNaN:0x1, 0x1.0) == 0
|
||||
; run: %fcmp_eq_f64(+sNaN:0x1, -0x0.0) == 0
|
||||
; run: %fcmp_eq_f64(-sNaN:0x1, -0x0.0) == 0
|
||||
; run: %fcmp_eq_f64(+sNaN:0x1, 0x0.0) == 0
|
||||
; run: %fcmp_eq_f64(-sNaN:0x1, 0x0.0) == 0
|
||||
; run: %fcmp_eq_f64(+sNaN:0x1, -Inf) == 0
|
||||
; run: %fcmp_eq_f64(-sNaN:0x1, -Inf) == 0
|
||||
; run: %fcmp_eq_f64(+sNaN:0x1, Inf) == 0
|
||||
; run: %fcmp_eq_f64(-sNaN:0x1, Inf) == 0
|
||||
; run: %fcmp_eq_f64(-0x0.0, +sNaN:0x1) == 0
|
||||
; run: %fcmp_eq_f64(-0x0.0, -sNaN:0x1) == 0
|
||||
; run: %fcmp_eq_f64(0x0.0, +sNaN:0x1) == 0
|
||||
; run: %fcmp_eq_f64(0x0.0, -sNaN:0x1) == 0
|
||||
; run: %fcmp_eq_f64(-Inf, +sNaN:0x1) == 0
|
||||
; run: %fcmp_eq_f64(-Inf, -sNaN:0x1) == 0
|
||||
; run: %fcmp_eq_f64(Inf, +sNaN:0x1) == 0
|
||||
; run: %fcmp_eq_f64(Inf, -sNaN:0x1) == 0
|
||||
|
||||
; run: %fcmp_eq_f64(+sNaN:0x1, +NaN:0x1) == false
|
||||
; run: %fcmp_eq_f64(-sNaN:0x1, -NaN:0x1) == false
|
||||
; run: %fcmp_eq_f64(+sNaN:0x1, -NaN:0x1) == false
|
||||
; run: %fcmp_eq_f64(-sNaN:0x1, +NaN:0x1) == false
|
||||
; run: %fcmp_eq_f64(+NaN:0x1, +sNaN:0x1) == false
|
||||
; run: %fcmp_eq_f64(-NaN:0x1, -sNaN:0x1) == false
|
||||
; run: %fcmp_eq_f64(-NaN:0x1, +sNaN:0x1) == false
|
||||
; run: %fcmp_eq_f64(+NaN:0x1, -sNaN:0x1) == false
|
||||
; run: %fcmp_eq_f64(+sNaN:0x1, +NaN:0x1) == 0
|
||||
; run: %fcmp_eq_f64(-sNaN:0x1, -NaN:0x1) == 0
|
||||
; run: %fcmp_eq_f64(+sNaN:0x1, -NaN:0x1) == 0
|
||||
; run: %fcmp_eq_f64(-sNaN:0x1, +NaN:0x1) == 0
|
||||
; run: %fcmp_eq_f64(+NaN:0x1, +sNaN:0x1) == 0
|
||||
; run: %fcmp_eq_f64(-NaN:0x1, -sNaN:0x1) == 0
|
||||
; run: %fcmp_eq_f64(-NaN:0x1, +sNaN:0x1) == 0
|
||||
; run: %fcmp_eq_f64(+NaN:0x1, -sNaN:0x1) == 0
|
||||
|
||||
; run: %fcmp_eq_f64(+sNaN:0x800000000001, +sNaN:0x800000000001) == false
|
||||
; run: %fcmp_eq_f64(-sNaN:0x800000000001, -sNaN:0x800000000001) == false
|
||||
; run: %fcmp_eq_f64(+sNaN:0x800000000001, -sNaN:0x800000000001) == false
|
||||
; run: %fcmp_eq_f64(-sNaN:0x800000000001, +sNaN:0x800000000001) == false
|
||||
; run: %fcmp_eq_f64(+sNaN:0x800000000001, +sNaN:0x1) == false
|
||||
; run: %fcmp_eq_f64(+sNaN:0x800000000001, -sNaN:0x1) == false
|
||||
; run: %fcmp_eq_f64(-sNaN:0x800000000001, -sNaN:0x1) == false
|
||||
; run: %fcmp_eq_f64(-sNaN:0x800000000001, +sNaN:0x1) == false
|
||||
; run: %fcmp_eq_f64(+sNaN:0x800000000001, +sNaN:0x800000000001) == 0
|
||||
; run: %fcmp_eq_f64(-sNaN:0x800000000001, -sNaN:0x800000000001) == 0
|
||||
; run: %fcmp_eq_f64(+sNaN:0x800000000001, -sNaN:0x800000000001) == 0
|
||||
; run: %fcmp_eq_f64(-sNaN:0x800000000001, +sNaN:0x800000000001) == 0
|
||||
; run: %fcmp_eq_f64(+sNaN:0x800000000001, +sNaN:0x1) == 0
|
||||
; run: %fcmp_eq_f64(+sNaN:0x800000000001, -sNaN:0x1) == 0
|
||||
; run: %fcmp_eq_f64(-sNaN:0x800000000001, -sNaN:0x1) == 0
|
||||
; run: %fcmp_eq_f64(-sNaN:0x800000000001, +sNaN:0x1) == 0
|
||||
|
||||
@@ -5,316 +5,316 @@ target aarch64
|
||||
target s390x
|
||||
target riscv64
|
||||
|
||||
function %fcmp_ge_f32(f32, f32) -> b1 {
|
||||
function %fcmp_ge_f32(f32, f32) -> i8 {
|
||||
block0(v0: f32, v1: f32):
|
||||
v2 = fcmp ge v0, v1
|
||||
return v2
|
||||
}
|
||||
; run: %fcmp_ge_f32(0x0.5, 0x0.5) == true
|
||||
; run: %fcmp_ge_f32(0x1.0, 0x1.0) == true
|
||||
; run: %fcmp_ge_f32(-0x1.0, 0x1.0) == false
|
||||
; run: %fcmp_ge_f32(0x1.0, -0x1.0) == true
|
||||
; run: %fcmp_ge_f32(0x0.5, 0x1.0) == false
|
||||
; run: %fcmp_ge_f32(0x1.5, 0x2.9) == false
|
||||
; run: %fcmp_ge_f32(0x1.1p10, 0x1.4p1) == true
|
||||
; run: %fcmp_ge_f32(0x1.4cccccp0, 0x1.8p0) == false
|
||||
; run: %fcmp_ge_f32(0x1.b33334p0, 0x1.99999ap-2) == true
|
||||
; run: %fcmp_ge_f32(0x1.333334p-1, 0x1.666666p1) == false
|
||||
; run: %fcmp_ge_f32(-0x0.5, -0x1.0) == true
|
||||
; run: %fcmp_ge_f32(-0x1.5, -0x2.9) == true
|
||||
; run: %fcmp_ge_f32(-0x1.1p10, -0x1.333334p-1) == false
|
||||
; run: %fcmp_ge_f32(-0x1.99999ap-2, -0x1.4cccccp0) == true
|
||||
; run: %fcmp_ge_f32(-0x1.8p0, -0x1.b33334p0) == true
|
||||
; run: %fcmp_ge_f32(-0x1.4p1, -0x1.666666p1) == true
|
||||
; run: %fcmp_ge_f32(0x0.5, -0x1.0) == true
|
||||
; run: %fcmp_ge_f32(0x1.b33334p0, -0x1.b33334p0) == true
|
||||
; run: %fcmp_ge_f32(0x0.5, 0x0.5) == 1
|
||||
; run: %fcmp_ge_f32(0x1.0, 0x1.0) == 1
|
||||
; run: %fcmp_ge_f32(-0x1.0, 0x1.0) == 0
|
||||
; run: %fcmp_ge_f32(0x1.0, -0x1.0) == 1
|
||||
; run: %fcmp_ge_f32(0x0.5, 0x1.0) == 0
|
||||
; run: %fcmp_ge_f32(0x1.5, 0x2.9) == 0
|
||||
; run: %fcmp_ge_f32(0x1.1p10, 0x1.4p1) == 1
|
||||
; run: %fcmp_ge_f32(0x1.4cccccp0, 0x1.8p0) == 0
|
||||
; run: %fcmp_ge_f32(0x1.b33334p0, 0x1.99999ap-2) == 1
|
||||
; run: %fcmp_ge_f32(0x1.333334p-1, 0x1.666666p1) == 0
|
||||
; run: %fcmp_ge_f32(-0x0.5, -0x1.0) == 1
|
||||
; run: %fcmp_ge_f32(-0x1.5, -0x2.9) == 1
|
||||
; run: %fcmp_ge_f32(-0x1.1p10, -0x1.333334p-1) == 0
|
||||
; run: %fcmp_ge_f32(-0x1.99999ap-2, -0x1.4cccccp0) == 1
|
||||
; run: %fcmp_ge_f32(-0x1.8p0, -0x1.b33334p0) == 1
|
||||
; run: %fcmp_ge_f32(-0x1.4p1, -0x1.666666p1) == 1
|
||||
; run: %fcmp_ge_f32(0x0.5, -0x1.0) == 1
|
||||
; run: %fcmp_ge_f32(0x1.b33334p0, -0x1.b33334p0) == 1
|
||||
|
||||
; Zeroes
|
||||
; run: %fcmp_ge_f32(0x0.0, 0x0.0) == true
|
||||
; run: %fcmp_ge_f32(-0x0.0, -0x0.0) == true
|
||||
; run: %fcmp_ge_f32(0x0.0, -0x0.0) == true
|
||||
; run: %fcmp_ge_f32(-0x0.0, 0x0.0) == true
|
||||
; run: %fcmp_ge_f32(0x0.0, 0x0.0) == 1
|
||||
; run: %fcmp_ge_f32(-0x0.0, -0x0.0) == 1
|
||||
; run: %fcmp_ge_f32(0x0.0, -0x0.0) == 1
|
||||
; run: %fcmp_ge_f32(-0x0.0, 0x0.0) == 1
|
||||
|
||||
; Infinities
|
||||
; run: %fcmp_ge_f32(Inf, Inf) == true
|
||||
; run: %fcmp_ge_f32(-Inf, -Inf) == true
|
||||
; run: %fcmp_ge_f32(Inf, -Inf) == true
|
||||
; run: %fcmp_ge_f32(-Inf, Inf) == false
|
||||
; run: %fcmp_ge_f32(Inf, Inf) == 1
|
||||
; run: %fcmp_ge_f32(-Inf, -Inf) == 1
|
||||
; run: %fcmp_ge_f32(Inf, -Inf) == 1
|
||||
; run: %fcmp_ge_f32(-Inf, Inf) == 0
|
||||
|
||||
; Inf/Zero
|
||||
; run: %fcmp_ge_f32(0x0.0, Inf) == false
|
||||
; run: %fcmp_ge_f32(-0x0.0, Inf) == false
|
||||
; run: %fcmp_ge_f32(0x0.0, -Inf) == true
|
||||
; run: %fcmp_ge_f32(-0x0.0, -Inf) == true
|
||||
; run: %fcmp_ge_f32(Inf, 0x0.0) == true
|
||||
; run: %fcmp_ge_f32(Inf, -0x0.0) == true
|
||||
; run: %fcmp_ge_f32(-Inf, 0x0.0) == false
|
||||
; run: %fcmp_ge_f32(-Inf, -0x0.0) == false
|
||||
; run: %fcmp_ge_f32(0x0.0, Inf) == 0
|
||||
; run: %fcmp_ge_f32(-0x0.0, Inf) == 0
|
||||
; run: %fcmp_ge_f32(0x0.0, -Inf) == 1
|
||||
; run: %fcmp_ge_f32(-0x0.0, -Inf) == 1
|
||||
; run: %fcmp_ge_f32(Inf, 0x0.0) == 1
|
||||
; run: %fcmp_ge_f32(Inf, -0x0.0) == 1
|
||||
; run: %fcmp_ge_f32(-Inf, 0x0.0) == 0
|
||||
; run: %fcmp_ge_f32(-Inf, -0x0.0) == 0
|
||||
|
||||
; Epsilon / Max / Min Positive
|
||||
; run: %fcmp_ge_f32(0x1.0p-23, 0x1.0p-23) == true
|
||||
; run: %fcmp_ge_f32(0x1.fffffep127, 0x1.fffffep127) == true
|
||||
; run: %fcmp_ge_f32(0x1.0p-126, 0x1.0p-126) == true
|
||||
; run: %fcmp_ge_f32(0x1.0p-23, 0x1.fffffep127) == false
|
||||
; run: %fcmp_ge_f32(0x1.0p-23, 0x1.0p-126) == true
|
||||
; run: %fcmp_ge_f32(0x1.0p-126, 0x1.fffffep127) == false
|
||||
; run: %fcmp_ge_f32(0x1.0p-23, 0x1.0p-23) == 1
|
||||
; run: %fcmp_ge_f32(0x1.fffffep127, 0x1.fffffep127) == 1
|
||||
; run: %fcmp_ge_f32(0x1.0p-126, 0x1.0p-126) == 1
|
||||
; run: %fcmp_ge_f32(0x1.0p-23, 0x1.fffffep127) == 0
|
||||
; run: %fcmp_ge_f32(0x1.0p-23, 0x1.0p-126) == 1
|
||||
; run: %fcmp_ge_f32(0x1.0p-126, 0x1.fffffep127) == 0
|
||||
|
||||
; Subnormals
|
||||
; run: %fcmp_ge_f32(0x0.800002p-126, -0x0.800002p-126) == true
|
||||
; run: %fcmp_ge_f32(-0x0.800002p-126, 0x0.800002p-126) == false
|
||||
; run: %fcmp_ge_f32(0x0.800002p-126, 0x0.0) == true
|
||||
; run: %fcmp_ge_f32(-0x0.800002p-126, 0x0.0) == false
|
||||
; run: %fcmp_ge_f32(0x0.800002p-126, -0x0.0) == true
|
||||
; run: %fcmp_ge_f32(-0x0.800002p-126, -0x0.0) == false
|
||||
; run: %fcmp_ge_f32(0x0.0, 0x0.800002p-126) == false
|
||||
; run: %fcmp_ge_f32(0x0.0, -0x0.800002p-126) == true
|
||||
; run: %fcmp_ge_f32(-0x0.0, 0x0.800002p-126) == false
|
||||
; run: %fcmp_ge_f32(-0x0.0, -0x0.800002p-126) == true
|
||||
; run: %fcmp_ge_f32(0x0.800002p-126, -0x0.800002p-126) == 1
|
||||
; run: %fcmp_ge_f32(-0x0.800002p-126, 0x0.800002p-126) == 0
|
||||
; run: %fcmp_ge_f32(0x0.800002p-126, 0x0.0) == 1
|
||||
; run: %fcmp_ge_f32(-0x0.800002p-126, 0x0.0) == 0
|
||||
; run: %fcmp_ge_f32(0x0.800002p-126, -0x0.0) == 1
|
||||
; run: %fcmp_ge_f32(-0x0.800002p-126, -0x0.0) == 0
|
||||
; run: %fcmp_ge_f32(0x0.0, 0x0.800002p-126) == 0
|
||||
; run: %fcmp_ge_f32(0x0.0, -0x0.800002p-126) == 1
|
||||
; run: %fcmp_ge_f32(-0x0.0, 0x0.800002p-126) == 0
|
||||
; run: %fcmp_ge_f32(-0x0.0, -0x0.800002p-126) == 1
|
||||
|
||||
; NaN's
|
||||
; run: %fcmp_ge_f32(+NaN, +NaN) == false
|
||||
; run: %fcmp_ge_f32(-NaN, -NaN) == false
|
||||
; run: %fcmp_ge_f32(+NaN, -NaN) == false
|
||||
; run: %fcmp_ge_f32(-NaN, +NaN) == false
|
||||
; run: %fcmp_ge_f32(+NaN, +NaN) == 0
|
||||
; run: %fcmp_ge_f32(-NaN, -NaN) == 0
|
||||
; run: %fcmp_ge_f32(+NaN, -NaN) == 0
|
||||
; run: %fcmp_ge_f32(-NaN, +NaN) == 0
|
||||
|
||||
; run: %fcmp_ge_f32(+NaN, -0x1.0) == false
|
||||
; run: %fcmp_ge_f32(-NaN, -0x1.0) == false
|
||||
; run: %fcmp_ge_f32(+NaN, 0x1.0) == false
|
||||
; run: %fcmp_ge_f32(-NaN, 0x1.0) == false
|
||||
; run: %fcmp_ge_f32(+NaN, -0x0.0) == false
|
||||
; run: %fcmp_ge_f32(-NaN, -0x0.0) == false
|
||||
; run: %fcmp_ge_f32(+NaN, 0x0.0) == false
|
||||
; run: %fcmp_ge_f32(-NaN, 0x0.0) == false
|
||||
; run: %fcmp_ge_f32(+NaN, -Inf) == false
|
||||
; run: %fcmp_ge_f32(-NaN, -Inf) == false
|
||||
; run: %fcmp_ge_f32(+NaN, Inf) == false
|
||||
; run: %fcmp_ge_f32(-NaN, Inf) == false
|
||||
; run: %fcmp_ge_f32(-0x0.0, +NaN) == false
|
||||
; run: %fcmp_ge_f32(-0x0.0, -NaN) == false
|
||||
; run: %fcmp_ge_f32(0x0.0, +NaN) == false
|
||||
; run: %fcmp_ge_f32(0x0.0, -NaN) == false
|
||||
; run: %fcmp_ge_f32(-Inf, +NaN) == false
|
||||
; run: %fcmp_ge_f32(-Inf, -NaN) == false
|
||||
; run: %fcmp_ge_f32(Inf, +NaN) == false
|
||||
; run: %fcmp_ge_f32(Inf, -NaN) == false
|
||||
; run: %fcmp_ge_f32(+NaN, -0x1.0) == 0
|
||||
; run: %fcmp_ge_f32(-NaN, -0x1.0) == 0
|
||||
; run: %fcmp_ge_f32(+NaN, 0x1.0) == 0
|
||||
; run: %fcmp_ge_f32(-NaN, 0x1.0) == 0
|
||||
; run: %fcmp_ge_f32(+NaN, -0x0.0) == 0
|
||||
; run: %fcmp_ge_f32(-NaN, -0x0.0) == 0
|
||||
; run: %fcmp_ge_f32(+NaN, 0x0.0) == 0
|
||||
; run: %fcmp_ge_f32(-NaN, 0x0.0) == 0
|
||||
; run: %fcmp_ge_f32(+NaN, -Inf) == 0
|
||||
; run: %fcmp_ge_f32(-NaN, -Inf) == 0
|
||||
; run: %fcmp_ge_f32(+NaN, Inf) == 0
|
||||
; run: %fcmp_ge_f32(-NaN, Inf) == 0
|
||||
; run: %fcmp_ge_f32(-0x0.0, +NaN) == 0
|
||||
; run: %fcmp_ge_f32(-0x0.0, -NaN) == 0
|
||||
; run: %fcmp_ge_f32(0x0.0, +NaN) == 0
|
||||
; run: %fcmp_ge_f32(0x0.0, -NaN) == 0
|
||||
; run: %fcmp_ge_f32(-Inf, +NaN) == 0
|
||||
; run: %fcmp_ge_f32(-Inf, -NaN) == 0
|
||||
; run: %fcmp_ge_f32(Inf, +NaN) == 0
|
||||
; run: %fcmp_ge_f32(Inf, -NaN) == 0
|
||||
|
||||
; run: %fcmp_ge_f32(+NaN:0x1, +NaN:0x1) == false
|
||||
; run: %fcmp_ge_f32(-NaN:0x1, -NaN:0x1) == false
|
||||
; run: %fcmp_ge_f32(+NaN:0x1, -NaN:0x1) == false
|
||||
; run: %fcmp_ge_f32(-NaN:0x1, +NaN:0x1) == false
|
||||
; run: %fcmp_ge_f32(+NaN:0x1, +NaN) == false
|
||||
; run: %fcmp_ge_f32(+NaN:0x1, -NaN) == false
|
||||
; run: %fcmp_ge_f32(-NaN:0x1, -NaN) == false
|
||||
; run: %fcmp_ge_f32(-NaN:0x1, +NaN) == false
|
||||
; run: %fcmp_ge_f32(+NaN:0x1, +NaN:0x1) == 0
|
||||
; run: %fcmp_ge_f32(-NaN:0x1, -NaN:0x1) == 0
|
||||
; run: %fcmp_ge_f32(+NaN:0x1, -NaN:0x1) == 0
|
||||
; run: %fcmp_ge_f32(-NaN:0x1, +NaN:0x1) == 0
|
||||
; run: %fcmp_ge_f32(+NaN:0x1, +NaN) == 0
|
||||
; run: %fcmp_ge_f32(+NaN:0x1, -NaN) == 0
|
||||
; run: %fcmp_ge_f32(-NaN:0x1, -NaN) == 0
|
||||
; run: %fcmp_ge_f32(-NaN:0x1, +NaN) == 0
|
||||
|
||||
; run: %fcmp_ge_f32(+NaN:0x80001, +NaN:0x80001) == false
|
||||
; run: %fcmp_ge_f32(-NaN:0x80001, -NaN:0x80001) == false
|
||||
; run: %fcmp_ge_f32(+NaN:0x80001, -NaN:0x80001) == false
|
||||
; run: %fcmp_ge_f32(-NaN:0x80001, +NaN:0x80001) == false
|
||||
; run: %fcmp_ge_f32(+NaN:0x80001, +NaN) == false
|
||||
; run: %fcmp_ge_f32(+NaN:0x80001, -NaN) == false
|
||||
; run: %fcmp_ge_f32(-NaN:0x80001, -NaN) == false
|
||||
; run: %fcmp_ge_f32(-NaN:0x80001, +NaN) == false
|
||||
; run: %fcmp_ge_f32(+NaN:0x80001, +NaN:0x80001) == 0
|
||||
; run: %fcmp_ge_f32(-NaN:0x80001, -NaN:0x80001) == 0
|
||||
; run: %fcmp_ge_f32(+NaN:0x80001, -NaN:0x80001) == 0
|
||||
; run: %fcmp_ge_f32(-NaN:0x80001, +NaN:0x80001) == 0
|
||||
; run: %fcmp_ge_f32(+NaN:0x80001, +NaN) == 0
|
||||
; run: %fcmp_ge_f32(+NaN:0x80001, -NaN) == 0
|
||||
; run: %fcmp_ge_f32(-NaN:0x80001, -NaN) == 0
|
||||
; run: %fcmp_ge_f32(-NaN:0x80001, +NaN) == 0
|
||||
|
||||
; sNaN's
|
||||
; run: %fcmp_ge_f32(+sNaN:0x1, +sNaN:0x1) == false
|
||||
; run: %fcmp_ge_f32(-sNaN:0x1, -sNaN:0x1) == false
|
||||
; run: %fcmp_ge_f32(+sNaN:0x1, -sNaN:0x1) == false
|
||||
; run: %fcmp_ge_f32(-sNaN:0x1, +sNaN:0x1) == false
|
||||
; run: %fcmp_ge_f32(+sNaN:0x1, +sNaN:0x1) == 0
|
||||
; run: %fcmp_ge_f32(-sNaN:0x1, -sNaN:0x1) == 0
|
||||
; run: %fcmp_ge_f32(+sNaN:0x1, -sNaN:0x1) == 0
|
||||
; run: %fcmp_ge_f32(-sNaN:0x1, +sNaN:0x1) == 0
|
||||
|
||||
; run: %fcmp_ge_f32(+sNaN:0x1, -0x1.0) == false
|
||||
; run: %fcmp_ge_f32(-sNaN:0x1, -0x1.0) == false
|
||||
; run: %fcmp_ge_f32(+sNaN:0x1, 0x1.0) == false
|
||||
; run: %fcmp_ge_f32(-sNaN:0x1, 0x1.0) == false
|
||||
; run: %fcmp_ge_f32(+sNaN:0x1, -0x0.0) == false
|
||||
; run: %fcmp_ge_f32(-sNaN:0x1, -0x0.0) == false
|
||||
; run: %fcmp_ge_f32(+sNaN:0x1, 0x0.0) == false
|
||||
; run: %fcmp_ge_f32(-sNaN:0x1, 0x0.0) == false
|
||||
; run: %fcmp_ge_f32(+sNaN:0x1, -Inf) == false
|
||||
; run: %fcmp_ge_f32(-sNaN:0x1, -Inf) == false
|
||||
; run: %fcmp_ge_f32(+sNaN:0x1, Inf) == false
|
||||
; run: %fcmp_ge_f32(-sNaN:0x1, Inf) == false
|
||||
; run: %fcmp_ge_f32(-0x0.0, +sNaN:0x1) == false
|
||||
; run: %fcmp_ge_f32(-0x0.0, -sNaN:0x1) == false
|
||||
; run: %fcmp_ge_f32(0x0.0, +sNaN:0x1) == false
|
||||
; run: %fcmp_ge_f32(0x0.0, -sNaN:0x1) == false
|
||||
; run: %fcmp_ge_f32(-Inf, +sNaN:0x1) == false
|
||||
; run: %fcmp_ge_f32(-Inf, -sNaN:0x1) == false
|
||||
; run: %fcmp_ge_f32(Inf, +sNaN:0x1) == false
|
||||
; run: %fcmp_ge_f32(Inf, -sNaN:0x1) == false
|
||||
; run: %fcmp_ge_f32(+sNaN:0x1, -0x1.0) == 0
|
||||
; run: %fcmp_ge_f32(-sNaN:0x1, -0x1.0) == 0
|
||||
; run: %fcmp_ge_f32(+sNaN:0x1, 0x1.0) == 0
|
||||
; run: %fcmp_ge_f32(-sNaN:0x1, 0x1.0) == 0
|
||||
; run: %fcmp_ge_f32(+sNaN:0x1, -0x0.0) == 0
|
||||
; run: %fcmp_ge_f32(-sNaN:0x1, -0x0.0) == 0
|
||||
; run: %fcmp_ge_f32(+sNaN:0x1, 0x0.0) == 0
|
||||
; run: %fcmp_ge_f32(-sNaN:0x1, 0x0.0) == 0
|
||||
; run: %fcmp_ge_f32(+sNaN:0x1, -Inf) == 0
|
||||
; run: %fcmp_ge_f32(-sNaN:0x1, -Inf) == 0
|
||||
; run: %fcmp_ge_f32(+sNaN:0x1, Inf) == 0
|
||||
; run: %fcmp_ge_f32(-sNaN:0x1, Inf) == 0
|
||||
; run: %fcmp_ge_f32(-0x0.0, +sNaN:0x1) == 0
|
||||
; run: %fcmp_ge_f32(-0x0.0, -sNaN:0x1) == 0
|
||||
; run: %fcmp_ge_f32(0x0.0, +sNaN:0x1) == 0
|
||||
; run: %fcmp_ge_f32(0x0.0, -sNaN:0x1) == 0
|
||||
; run: %fcmp_ge_f32(-Inf, +sNaN:0x1) == 0
|
||||
; run: %fcmp_ge_f32(-Inf, -sNaN:0x1) == 0
|
||||
; run: %fcmp_ge_f32(Inf, +sNaN:0x1) == 0
|
||||
; run: %fcmp_ge_f32(Inf, -sNaN:0x1) == 0
|
||||
|
||||
; run: %fcmp_ge_f32(+sNaN:0x1, +NaN:0x1) == false
|
||||
; run: %fcmp_ge_f32(-sNaN:0x1, -NaN:0x1) == false
|
||||
; run: %fcmp_ge_f32(+sNaN:0x1, -NaN:0x1) == false
|
||||
; run: %fcmp_ge_f32(-sNaN:0x1, +NaN:0x1) == false
|
||||
; run: %fcmp_ge_f32(+NaN:0x1, +sNaN:0x1) == false
|
||||
; run: %fcmp_ge_f32(-NaN:0x1, -sNaN:0x1) == false
|
||||
; run: %fcmp_ge_f32(-NaN:0x1, +sNaN:0x1) == false
|
||||
; run: %fcmp_ge_f32(+NaN:0x1, -sNaN:0x1) == false
|
||||
; run: %fcmp_ge_f32(+sNaN:0x1, +NaN:0x1) == 0
|
||||
; run: %fcmp_ge_f32(-sNaN:0x1, -NaN:0x1) == 0
|
||||
; run: %fcmp_ge_f32(+sNaN:0x1, -NaN:0x1) == 0
|
||||
; run: %fcmp_ge_f32(-sNaN:0x1, +NaN:0x1) == 0
|
||||
; run: %fcmp_ge_f32(+NaN:0x1, +sNaN:0x1) == 0
|
||||
; run: %fcmp_ge_f32(-NaN:0x1, -sNaN:0x1) == 0
|
||||
; run: %fcmp_ge_f32(-NaN:0x1, +sNaN:0x1) == 0
|
||||
; run: %fcmp_ge_f32(+NaN:0x1, -sNaN:0x1) == 0
|
||||
|
||||
; run: %fcmp_ge_f32(+sNaN:0x80001, +sNaN:0x80001) == false
|
||||
; run: %fcmp_ge_f32(-sNaN:0x80001, -sNaN:0x80001) == false
|
||||
; run: %fcmp_ge_f32(+sNaN:0x80001, -sNaN:0x80001) == false
|
||||
; run: %fcmp_ge_f32(-sNaN:0x80001, +sNaN:0x80001) == false
|
||||
; run: %fcmp_ge_f32(+sNaN:0x80001, +sNaN:0x1) == false
|
||||
; run: %fcmp_ge_f32(+sNaN:0x80001, -sNaN:0x1) == false
|
||||
; run: %fcmp_ge_f32(-sNaN:0x80001, -sNaN:0x1) == false
|
||||
; run: %fcmp_ge_f32(-sNaN:0x80001, +sNaN:0x1) == false
|
||||
; run: %fcmp_ge_f32(+sNaN:0x80001, +sNaN:0x80001) == 0
|
||||
; run: %fcmp_ge_f32(-sNaN:0x80001, -sNaN:0x80001) == 0
|
||||
; run: %fcmp_ge_f32(+sNaN:0x80001, -sNaN:0x80001) == 0
|
||||
; run: %fcmp_ge_f32(-sNaN:0x80001, +sNaN:0x80001) == 0
|
||||
; run: %fcmp_ge_f32(+sNaN:0x80001, +sNaN:0x1) == 0
|
||||
; run: %fcmp_ge_f32(+sNaN:0x80001, -sNaN:0x1) == 0
|
||||
; run: %fcmp_ge_f32(-sNaN:0x80001, -sNaN:0x1) == 0
|
||||
; run: %fcmp_ge_f32(-sNaN:0x80001, +sNaN:0x1) == 0
|
||||
|
||||
|
||||
function %fcmp_ge_f64(f64, f64) -> b1 {
|
||||
function %fcmp_ge_f64(f64, f64) -> i8 {
|
||||
block0(v0: f64, v1: f64):
|
||||
v2 = fcmp ge v0, v1
|
||||
return v2
|
||||
}
|
||||
; run: %fcmp_ge_f64(0x0.5, 0x0.5) == true
|
||||
; run: %fcmp_ge_f64(0x1.0, 0x1.0) == true
|
||||
; run: %fcmp_ge_f64(-0x1.0, 0x1.0) == false
|
||||
; run: %fcmp_ge_f64(0x1.0, -0x1.0) == true
|
||||
; run: %fcmp_ge_f64(0x0.5, 0x1.0) == false
|
||||
; run: %fcmp_ge_f64(0x1.5, 0x2.9) == false
|
||||
; run: %fcmp_ge_f64(0x1.1p10, 0x1.4p1) == true
|
||||
; run: %fcmp_ge_f64(0x1.4cccccccccccdp0, 0x1.8p0) == false
|
||||
; run: %fcmp_ge_f64(0x1.b333333333333p0, 0x1.999999999999ap-2) == true
|
||||
; run: %fcmp_ge_f64(0x1.3333333333333p-1, 0x1.6666666666666p1) == false
|
||||
; run: %fcmp_ge_f64(-0x0.5, -0x1.0) == true
|
||||
; run: %fcmp_ge_f64(-0x1.5, -0x2.9) == true
|
||||
; run: %fcmp_ge_f64(-0x1.1p10, -0x1.3333333333333p-1) == false
|
||||
; run: %fcmp_ge_f64(-0x1.999999999999ap-2, -0x1.4cccccccccccdp0) == true
|
||||
; run: %fcmp_ge_f64(-0x1.8p0, -0x1.b333333333333p0) == true
|
||||
; run: %fcmp_ge_f64(-0x1.4p1, -0x1.6666666666666p1) == true
|
||||
; run: %fcmp_ge_f64(0x0.5, -0x1.0) == true
|
||||
; run: %fcmp_ge_f64(0x1.b333333333333p0, -0x1.b333333333333p0) == true
|
||||
; run: %fcmp_ge_f64(0x0.5, 0x0.5) == 1
|
||||
; run: %fcmp_ge_f64(0x1.0, 0x1.0) == 1
|
||||
; run: %fcmp_ge_f64(-0x1.0, 0x1.0) == 0
|
||||
; run: %fcmp_ge_f64(0x1.0, -0x1.0) == 1
|
||||
; run: %fcmp_ge_f64(0x0.5, 0x1.0) == 0
|
||||
; run: %fcmp_ge_f64(0x1.5, 0x2.9) == 0
|
||||
; run: %fcmp_ge_f64(0x1.1p10, 0x1.4p1) == 1
|
||||
; run: %fcmp_ge_f64(0x1.4cccccccccccdp0, 0x1.8p0) == 0
|
||||
; run: %fcmp_ge_f64(0x1.b333333333333p0, 0x1.999999999999ap-2) == 1
|
||||
; run: %fcmp_ge_f64(0x1.3333333333333p-1, 0x1.6666666666666p1) == 0
|
||||
; run: %fcmp_ge_f64(-0x0.5, -0x1.0) == 1
|
||||
; run: %fcmp_ge_f64(-0x1.5, -0x2.9) == 1
|
||||
; run: %fcmp_ge_f64(-0x1.1p10, -0x1.3333333333333p-1) == 0
|
||||
; run: %fcmp_ge_f64(-0x1.999999999999ap-2, -0x1.4cccccccccccdp0) == 1
|
||||
; run: %fcmp_ge_f64(-0x1.8p0, -0x1.b333333333333p0) == 1
|
||||
; run: %fcmp_ge_f64(-0x1.4p1, -0x1.6666666666666p1) == 1
|
||||
; run: %fcmp_ge_f64(0x0.5, -0x1.0) == 1
|
||||
; run: %fcmp_ge_f64(0x1.b333333333333p0, -0x1.b333333333333p0) == 1
|
||||
|
||||
|
||||
; Zeroes
|
||||
; run: %fcmp_ge_f64(0x0.0, 0x0.0) == true
|
||||
; run: %fcmp_ge_f64(-0x0.0, -0x0.0) == true
|
||||
; run: %fcmp_ge_f64(0x0.0, -0x0.0) == true
|
||||
; run: %fcmp_ge_f64(-0x0.0, 0x0.0) == true
|
||||
; run: %fcmp_ge_f64(0x0.0, 0x0.0) == 1
|
||||
; run: %fcmp_ge_f64(-0x0.0, -0x0.0) == 1
|
||||
; run: %fcmp_ge_f64(0x0.0, -0x0.0) == 1
|
||||
; run: %fcmp_ge_f64(-0x0.0, 0x0.0) == 1
|
||||
|
||||
; Infinities
|
||||
; run: %fcmp_ge_f64(Inf, Inf) == true
|
||||
; run: %fcmp_ge_f64(-Inf, -Inf) == true
|
||||
; run: %fcmp_ge_f64(Inf, -Inf) == true
|
||||
; run: %fcmp_ge_f64(-Inf, Inf) == false
|
||||
; run: %fcmp_ge_f64(Inf, Inf) == 1
|
||||
; run: %fcmp_ge_f64(-Inf, -Inf) == 1
|
||||
; run: %fcmp_ge_f64(Inf, -Inf) == 1
|
||||
; run: %fcmp_ge_f64(-Inf, Inf) == 0
|
||||
|
||||
; Inf/Zero
|
||||
; run: %fcmp_ge_f64(0x0.0, Inf) == false
|
||||
; run: %fcmp_ge_f64(-0x0.0, Inf) == false
|
||||
; run: %fcmp_ge_f64(0x0.0, -Inf) == true
|
||||
; run: %fcmp_ge_f64(-0x0.0, -Inf) == true
|
||||
; run: %fcmp_ge_f64(Inf, 0x0.0) == true
|
||||
; run: %fcmp_ge_f64(Inf, -0x0.0) == true
|
||||
; run: %fcmp_ge_f64(-Inf, 0x0.0) == false
|
||||
; run: %fcmp_ge_f64(-Inf, -0x0.0) == false
|
||||
; run: %fcmp_ge_f64(0x0.0, Inf) == 0
|
||||
; run: %fcmp_ge_f64(-0x0.0, Inf) == 0
|
||||
; run: %fcmp_ge_f64(0x0.0, -Inf) == 1
|
||||
; run: %fcmp_ge_f64(-0x0.0, -Inf) == 1
|
||||
; run: %fcmp_ge_f64(Inf, 0x0.0) == 1
|
||||
; run: %fcmp_ge_f64(Inf, -0x0.0) == 1
|
||||
; run: %fcmp_ge_f64(-Inf, 0x0.0) == 0
|
||||
; run: %fcmp_ge_f64(-Inf, -0x0.0) == 0
|
||||
|
||||
; Epsilon / Max / Min Positive
|
||||
; run: %fcmp_ge_f64(0x1.0p-52, 0x1.0p-52) == true
|
||||
; run: %fcmp_ge_f64(0x1.fffffffffffffp1023, 0x1.fffffffffffffp1023) == true
|
||||
; run: %fcmp_ge_f64(0x1.0p-1022, 0x1.0p-1022) == true
|
||||
; run: %fcmp_ge_f64(0x1.0p-52, 0x1.fffffffffffffp1023) == false
|
||||
; run: %fcmp_ge_f64(0x1.0p-52, 0x1.0p-1022) == true
|
||||
; run: %fcmp_ge_f64(0x1.0p-1022, 0x1.fffffffffffffp1023) == false
|
||||
; run: %fcmp_ge_f64(0x1.0p-52, 0x1.0p-52) == 1
|
||||
; run: %fcmp_ge_f64(0x1.fffffffffffffp1023, 0x1.fffffffffffffp1023) == 1
|
||||
; run: %fcmp_ge_f64(0x1.0p-1022, 0x1.0p-1022) == 1
|
||||
; run: %fcmp_ge_f64(0x1.0p-52, 0x1.fffffffffffffp1023) == 0
|
||||
; run: %fcmp_ge_f64(0x1.0p-52, 0x1.0p-1022) == 1
|
||||
; run: %fcmp_ge_f64(0x1.0p-1022, 0x1.fffffffffffffp1023) == 0
|
||||
|
||||
; Subnormals
|
||||
; run: %fcmp_ge_f64(0x0.8p-1022, -0x0.8p-1022) == true
|
||||
; run: %fcmp_ge_f64(-0x0.8p-1022, 0x0.8p-1022) == false
|
||||
; run: %fcmp_ge_f64(0x0.8p-1022, 0x0.0) == true
|
||||
; run: %fcmp_ge_f64(-0x0.8p-1022, 0x0.0) == false
|
||||
; run: %fcmp_ge_f64(0x0.8p-1022, -0x0.0) == true
|
||||
; run: %fcmp_ge_f64(-0x0.8p-1022, -0x0.0) == false
|
||||
; run: %fcmp_ge_f64(0x0.0, 0x0.8p-1022) == false
|
||||
; run: %fcmp_ge_f64(0x0.0, -0x0.8p-1022) == true
|
||||
; run: %fcmp_ge_f64(-0x0.0, 0x0.8p-1022) == false
|
||||
; run: %fcmp_ge_f64(-0x0.0, -0x0.8p-1022) == true
|
||||
; run: %fcmp_ge_f64(0x0.8p-1022, -0x0.8p-1022) == 1
|
||||
; run: %fcmp_ge_f64(-0x0.8p-1022, 0x0.8p-1022) == 0
|
||||
; run: %fcmp_ge_f64(0x0.8p-1022, 0x0.0) == 1
|
||||
; run: %fcmp_ge_f64(-0x0.8p-1022, 0x0.0) == 0
|
||||
; run: %fcmp_ge_f64(0x0.8p-1022, -0x0.0) == 1
|
||||
; run: %fcmp_ge_f64(-0x0.8p-1022, -0x0.0) == 0
|
||||
; run: %fcmp_ge_f64(0x0.0, 0x0.8p-1022) == 0
|
||||
; run: %fcmp_ge_f64(0x0.0, -0x0.8p-1022) == 1
|
||||
; run: %fcmp_ge_f64(-0x0.0, 0x0.8p-1022) == 0
|
||||
; run: %fcmp_ge_f64(-0x0.0, -0x0.8p-1022) == 1
|
||||
|
||||
; NaN's
|
||||
; run: %fcmp_ge_f64(+NaN, +NaN) == false
|
||||
; run: %fcmp_ge_f64(-NaN, -NaN) == false
|
||||
; run: %fcmp_ge_f64(+NaN, -NaN) == false
|
||||
; run: %fcmp_ge_f64(-NaN, +NaN) == false
|
||||
; run: %fcmp_ge_f64(+NaN, +NaN) == 0
|
||||
; run: %fcmp_ge_f64(-NaN, -NaN) == 0
|
||||
; run: %fcmp_ge_f64(+NaN, -NaN) == 0
|
||||
; run: %fcmp_ge_f64(-NaN, +NaN) == 0
|
||||
|
||||
; run: %fcmp_ge_f64(+NaN, -0x1.0) == false
|
||||
; run: %fcmp_ge_f64(-NaN, -0x1.0) == false
|
||||
; run: %fcmp_ge_f64(+NaN, 0x1.0) == false
|
||||
; run: %fcmp_ge_f64(-NaN, 0x1.0) == false
|
||||
; run: %fcmp_ge_f64(+NaN, -0x0.0) == false
|
||||
; run: %fcmp_ge_f64(-NaN, -0x0.0) == false
|
||||
; run: %fcmp_ge_f64(+NaN, 0x0.0) == false
|
||||
; run: %fcmp_ge_f64(-NaN, 0x0.0) == false
|
||||
; run: %fcmp_ge_f64(+NaN, -Inf) == false
|
||||
; run: %fcmp_ge_f64(-NaN, -Inf) == false
|
||||
; run: %fcmp_ge_f64(+NaN, Inf) == false
|
||||
; run: %fcmp_ge_f64(-NaN, Inf) == false
|
||||
; run: %fcmp_ge_f64(-0x0.0, +NaN) == false
|
||||
; run: %fcmp_ge_f64(-0x0.0, -NaN) == false
|
||||
; run: %fcmp_ge_f64(0x0.0, +NaN) == false
|
||||
; run: %fcmp_ge_f64(0x0.0, -NaN) == false
|
||||
; run: %fcmp_ge_f64(-Inf, +NaN) == false
|
||||
; run: %fcmp_ge_f64(-Inf, -NaN) == false
|
||||
; run: %fcmp_ge_f64(Inf, +NaN) == false
|
||||
; run: %fcmp_ge_f64(Inf, -NaN) == false
|
||||
; run: %fcmp_ge_f64(+NaN, -0x1.0) == 0
|
||||
; run: %fcmp_ge_f64(-NaN, -0x1.0) == 0
|
||||
; run: %fcmp_ge_f64(+NaN, 0x1.0) == 0
|
||||
; run: %fcmp_ge_f64(-NaN, 0x1.0) == 0
|
||||
; run: %fcmp_ge_f64(+NaN, -0x0.0) == 0
|
||||
; run: %fcmp_ge_f64(-NaN, -0x0.0) == 0
|
||||
; run: %fcmp_ge_f64(+NaN, 0x0.0) == 0
|
||||
; run: %fcmp_ge_f64(-NaN, 0x0.0) == 0
|
||||
; run: %fcmp_ge_f64(+NaN, -Inf) == 0
|
||||
; run: %fcmp_ge_f64(-NaN, -Inf) == 0
|
||||
; run: %fcmp_ge_f64(+NaN, Inf) == 0
|
||||
; run: %fcmp_ge_f64(-NaN, Inf) == 0
|
||||
; run: %fcmp_ge_f64(-0x0.0, +NaN) == 0
|
||||
; run: %fcmp_ge_f64(-0x0.0, -NaN) == 0
|
||||
; run: %fcmp_ge_f64(0x0.0, +NaN) == 0
|
||||
; run: %fcmp_ge_f64(0x0.0, -NaN) == 0
|
||||
; run: %fcmp_ge_f64(-Inf, +NaN) == 0
|
||||
; run: %fcmp_ge_f64(-Inf, -NaN) == 0
|
||||
; run: %fcmp_ge_f64(Inf, +NaN) == 0
|
||||
; run: %fcmp_ge_f64(Inf, -NaN) == 0
|
||||
|
||||
; run: %fcmp_ge_f64(+NaN:0x1, +NaN:0x1) == false
|
||||
; run: %fcmp_ge_f64(-NaN:0x1, -NaN:0x1) == false
|
||||
; run: %fcmp_ge_f64(+NaN:0x1, -NaN:0x1) == false
|
||||
; run: %fcmp_ge_f64(-NaN:0x1, +NaN:0x1) == false
|
||||
; run: %fcmp_ge_f64(+NaN:0x1, +NaN) == false
|
||||
; run: %fcmp_ge_f64(+NaN:0x1, -NaN) == false
|
||||
; run: %fcmp_ge_f64(-NaN:0x1, -NaN) == false
|
||||
; run: %fcmp_ge_f64(-NaN:0x1, +NaN) == false
|
||||
; run: %fcmp_ge_f64(+NaN:0x1, +NaN:0x1) == 0
|
||||
; run: %fcmp_ge_f64(-NaN:0x1, -NaN:0x1) == 0
|
||||
; run: %fcmp_ge_f64(+NaN:0x1, -NaN:0x1) == 0
|
||||
; run: %fcmp_ge_f64(-NaN:0x1, +NaN:0x1) == 0
|
||||
; run: %fcmp_ge_f64(+NaN:0x1, +NaN) == 0
|
||||
; run: %fcmp_ge_f64(+NaN:0x1, -NaN) == 0
|
||||
; run: %fcmp_ge_f64(-NaN:0x1, -NaN) == 0
|
||||
; run: %fcmp_ge_f64(-NaN:0x1, +NaN) == 0
|
||||
|
||||
; run: %fcmp_ge_f64(+NaN:0x800000000001, +NaN:0x800000000001) == false
|
||||
; run: %fcmp_ge_f64(-NaN:0x800000000001, -NaN:0x800000000001) == false
|
||||
; run: %fcmp_ge_f64(+NaN:0x800000000001, -NaN:0x800000000001) == false
|
||||
; run: %fcmp_ge_f64(-NaN:0x800000000001, +NaN:0x800000000001) == false
|
||||
; run: %fcmp_ge_f64(+NaN:0x800000000001, +NaN) == false
|
||||
; run: %fcmp_ge_f64(+NaN:0x800000000001, -NaN) == false
|
||||
; run: %fcmp_ge_f64(-NaN:0x800000000001, -NaN) == false
|
||||
; run: %fcmp_ge_f64(-NaN:0x800000000001, +NaN) == false
|
||||
; run: %fcmp_ge_f64(+NaN:0x800000000001, +NaN:0x800000000001) == 0
|
||||
; run: %fcmp_ge_f64(-NaN:0x800000000001, -NaN:0x800000000001) == 0
|
||||
; run: %fcmp_ge_f64(+NaN:0x800000000001, -NaN:0x800000000001) == 0
|
||||
; run: %fcmp_ge_f64(-NaN:0x800000000001, +NaN:0x800000000001) == 0
|
||||
; run: %fcmp_ge_f64(+NaN:0x800000000001, +NaN) == 0
|
||||
; run: %fcmp_ge_f64(+NaN:0x800000000001, -NaN) == 0
|
||||
; run: %fcmp_ge_f64(-NaN:0x800000000001, -NaN) == 0
|
||||
; run: %fcmp_ge_f64(-NaN:0x800000000001, +NaN) == 0
|
||||
|
||||
; sNaN's
|
||||
; run: %fcmp_ge_f64(+sNaN:0x1, +sNaN:0x1) == false
|
||||
; run: %fcmp_ge_f64(-sNaN:0x1, -sNaN:0x1) == false
|
||||
; run: %fcmp_ge_f64(+sNaN:0x1, -sNaN:0x1) == false
|
||||
; run: %fcmp_ge_f64(-sNaN:0x1, +sNaN:0x1) == false
|
||||
; run: %fcmp_ge_f64(+sNaN:0x1, +sNaN:0x1) == 0
|
||||
; run: %fcmp_ge_f64(-sNaN:0x1, -sNaN:0x1) == 0
|
||||
; run: %fcmp_ge_f64(+sNaN:0x1, -sNaN:0x1) == 0
|
||||
; run: %fcmp_ge_f64(-sNaN:0x1, +sNaN:0x1) == 0
|
||||
|
||||
; run: %fcmp_ge_f64(+sNaN:0x1, -0x1.0) == false
|
||||
; run: %fcmp_ge_f64(-sNaN:0x1, -0x1.0) == false
|
||||
; run: %fcmp_ge_f64(+sNaN:0x1, 0x1.0) == false
|
||||
; run: %fcmp_ge_f64(-sNaN:0x1, 0x1.0) == false
|
||||
; run: %fcmp_ge_f64(+sNaN:0x1, -0x0.0) == false
|
||||
; run: %fcmp_ge_f64(-sNaN:0x1, -0x0.0) == false
|
||||
; run: %fcmp_ge_f64(+sNaN:0x1, 0x0.0) == false
|
||||
; run: %fcmp_ge_f64(-sNaN:0x1, 0x0.0) == false
|
||||
; run: %fcmp_ge_f64(+sNaN:0x1, -Inf) == false
|
||||
; run: %fcmp_ge_f64(-sNaN:0x1, -Inf) == false
|
||||
; run: %fcmp_ge_f64(+sNaN:0x1, Inf) == false
|
||||
; run: %fcmp_ge_f64(-sNaN:0x1, Inf) == false
|
||||
; run: %fcmp_ge_f64(-0x0.0, +sNaN:0x1) == false
|
||||
; run: %fcmp_ge_f64(-0x0.0, -sNaN:0x1) == false
|
||||
; run: %fcmp_ge_f64(0x0.0, +sNaN:0x1) == false
|
||||
; run: %fcmp_ge_f64(0x0.0, -sNaN:0x1) == false
|
||||
; run: %fcmp_ge_f64(-Inf, +sNaN:0x1) == false
|
||||
; run: %fcmp_ge_f64(-Inf, -sNaN:0x1) == false
|
||||
; run: %fcmp_ge_f64(Inf, +sNaN:0x1) == false
|
||||
; run: %fcmp_ge_f64(Inf, -sNaN:0x1) == false
|
||||
; run: %fcmp_ge_f64(+sNaN:0x1, -0x1.0) == 0
|
||||
; run: %fcmp_ge_f64(-sNaN:0x1, -0x1.0) == 0
|
||||
; run: %fcmp_ge_f64(+sNaN:0x1, 0x1.0) == 0
|
||||
; run: %fcmp_ge_f64(-sNaN:0x1, 0x1.0) == 0
|
||||
; run: %fcmp_ge_f64(+sNaN:0x1, -0x0.0) == 0
|
||||
; run: %fcmp_ge_f64(-sNaN:0x1, -0x0.0) == 0
|
||||
; run: %fcmp_ge_f64(+sNaN:0x1, 0x0.0) == 0
|
||||
; run: %fcmp_ge_f64(-sNaN:0x1, 0x0.0) == 0
|
||||
; run: %fcmp_ge_f64(+sNaN:0x1, -Inf) == 0
|
||||
; run: %fcmp_ge_f64(-sNaN:0x1, -Inf) == 0
|
||||
; run: %fcmp_ge_f64(+sNaN:0x1, Inf) == 0
|
||||
; run: %fcmp_ge_f64(-sNaN:0x1, Inf) == 0
|
||||
; run: %fcmp_ge_f64(-0x0.0, +sNaN:0x1) == 0
|
||||
; run: %fcmp_ge_f64(-0x0.0, -sNaN:0x1) == 0
|
||||
; run: %fcmp_ge_f64(0x0.0, +sNaN:0x1) == 0
|
||||
; run: %fcmp_ge_f64(0x0.0, -sNaN:0x1) == 0
|
||||
; run: %fcmp_ge_f64(-Inf, +sNaN:0x1) == 0
|
||||
; run: %fcmp_ge_f64(-Inf, -sNaN:0x1) == 0
|
||||
; run: %fcmp_ge_f64(Inf, +sNaN:0x1) == 0
|
||||
; run: %fcmp_ge_f64(Inf, -sNaN:0x1) == 0
|
||||
|
||||
; run: %fcmp_ge_f64(+sNaN:0x1, +NaN:0x1) == false
|
||||
; run: %fcmp_ge_f64(-sNaN:0x1, -NaN:0x1) == false
|
||||
; run: %fcmp_ge_f64(+sNaN:0x1, -NaN:0x1) == false
|
||||
; run: %fcmp_ge_f64(-sNaN:0x1, +NaN:0x1) == false
|
||||
; run: %fcmp_ge_f64(+NaN:0x1, +sNaN:0x1) == false
|
||||
; run: %fcmp_ge_f64(-NaN:0x1, -sNaN:0x1) == false
|
||||
; run: %fcmp_ge_f64(-NaN:0x1, +sNaN:0x1) == false
|
||||
; run: %fcmp_ge_f64(+NaN:0x1, -sNaN:0x1) == false
|
||||
; run: %fcmp_ge_f64(+sNaN:0x1, +NaN:0x1) == 0
|
||||
; run: %fcmp_ge_f64(-sNaN:0x1, -NaN:0x1) == 0
|
||||
; run: %fcmp_ge_f64(+sNaN:0x1, -NaN:0x1) == 0
|
||||
; run: %fcmp_ge_f64(-sNaN:0x1, +NaN:0x1) == 0
|
||||
; run: %fcmp_ge_f64(+NaN:0x1, +sNaN:0x1) == 0
|
||||
; run: %fcmp_ge_f64(-NaN:0x1, -sNaN:0x1) == 0
|
||||
; run: %fcmp_ge_f64(-NaN:0x1, +sNaN:0x1) == 0
|
||||
; run: %fcmp_ge_f64(+NaN:0x1, -sNaN:0x1) == 0
|
||||
|
||||
; run: %fcmp_ge_f64(+sNaN:0x800000000001, +sNaN:0x800000000001) == false
|
||||
; run: %fcmp_ge_f64(-sNaN:0x800000000001, -sNaN:0x800000000001) == false
|
||||
; run: %fcmp_ge_f64(+sNaN:0x800000000001, -sNaN:0x800000000001) == false
|
||||
; run: %fcmp_ge_f64(-sNaN:0x800000000001, +sNaN:0x800000000001) == false
|
||||
; run: %fcmp_ge_f64(+sNaN:0x800000000001, +sNaN:0x1) == false
|
||||
; run: %fcmp_ge_f64(+sNaN:0x800000000001, -sNaN:0x1) == false
|
||||
; run: %fcmp_ge_f64(-sNaN:0x800000000001, -sNaN:0x1) == false
|
||||
; run: %fcmp_ge_f64(-sNaN:0x800000000001, +sNaN:0x1) == false
|
||||
; run: %fcmp_ge_f64(+sNaN:0x800000000001, +sNaN:0x800000000001) == 0
|
||||
; run: %fcmp_ge_f64(-sNaN:0x800000000001, -sNaN:0x800000000001) == 0
|
||||
; run: %fcmp_ge_f64(+sNaN:0x800000000001, -sNaN:0x800000000001) == 0
|
||||
; run: %fcmp_ge_f64(-sNaN:0x800000000001, +sNaN:0x800000000001) == 0
|
||||
; run: %fcmp_ge_f64(+sNaN:0x800000000001, +sNaN:0x1) == 0
|
||||
; run: %fcmp_ge_f64(+sNaN:0x800000000001, -sNaN:0x1) == 0
|
||||
; run: %fcmp_ge_f64(-sNaN:0x800000000001, -sNaN:0x1) == 0
|
||||
; run: %fcmp_ge_f64(-sNaN:0x800000000001, +sNaN:0x1) == 0
|
||||
|
||||
@@ -5,316 +5,316 @@ target aarch64
|
||||
target s390x
|
||||
target riscv64
|
||||
|
||||
function %fcmp_gt_f32(f32, f32) -> b1 {
|
||||
function %fcmp_gt_f32(f32, f32) -> i8 {
|
||||
block0(v0: f32, v1: f32):
|
||||
v2 = fcmp gt v0, v1
|
||||
return v2
|
||||
}
|
||||
; run: %fcmp_gt_f32(0x0.5, 0x0.5) == false
|
||||
; run: %fcmp_gt_f32(0x1.0, 0x1.0) == false
|
||||
; run: %fcmp_gt_f32(-0x1.0, 0x1.0) == false
|
||||
; run: %fcmp_gt_f32(0x1.0, -0x1.0) == true
|
||||
; run: %fcmp_gt_f32(0x0.5, 0x1.0) == false
|
||||
; run: %fcmp_gt_f32(0x1.5, 0x2.9) == false
|
||||
; run: %fcmp_gt_f32(0x1.1p10, 0x1.4p1) == true
|
||||
; run: %fcmp_gt_f32(0x1.4cccccp0, 0x1.8p0) == false
|
||||
; run: %fcmp_gt_f32(0x1.b33334p0, 0x1.99999ap-2) == true
|
||||
; run: %fcmp_gt_f32(0x1.333334p-1, 0x1.666666p1) == false
|
||||
; run: %fcmp_gt_f32(-0x0.5, -0x1.0) == true
|
||||
; run: %fcmp_gt_f32(-0x1.5, -0x2.9) == true
|
||||
; run: %fcmp_gt_f32(-0x1.1p10, -0x1.333334p-1) == false
|
||||
; run: %fcmp_gt_f32(-0x1.99999ap-2, -0x1.4cccccp0) == true
|
||||
; run: %fcmp_gt_f32(-0x1.8p0, -0x1.b33334p0) == true
|
||||
; run: %fcmp_gt_f32(-0x1.4p1, -0x1.666666p1) == true
|
||||
; run: %fcmp_gt_f32(0x0.5, -0x1.0) == true
|
||||
; run: %fcmp_gt_f32(0x1.b33334p0, -0x1.b33334p0) == true
|
||||
; run: %fcmp_gt_f32(0x0.5, 0x0.5) == 0
|
||||
; run: %fcmp_gt_f32(0x1.0, 0x1.0) == 0
|
||||
; run: %fcmp_gt_f32(-0x1.0, 0x1.0) == 0
|
||||
; run: %fcmp_gt_f32(0x1.0, -0x1.0) == 1
|
||||
; run: %fcmp_gt_f32(0x0.5, 0x1.0) == 0
|
||||
; run: %fcmp_gt_f32(0x1.5, 0x2.9) == 0
|
||||
; run: %fcmp_gt_f32(0x1.1p10, 0x1.4p1) == 1
|
||||
; run: %fcmp_gt_f32(0x1.4cccccp0, 0x1.8p0) == 0
|
||||
; run: %fcmp_gt_f32(0x1.b33334p0, 0x1.99999ap-2) == 1
|
||||
; run: %fcmp_gt_f32(0x1.333334p-1, 0x1.666666p1) == 0
|
||||
; run: %fcmp_gt_f32(-0x0.5, -0x1.0) == 1
|
||||
; run: %fcmp_gt_f32(-0x1.5, -0x2.9) == 1
|
||||
; run: %fcmp_gt_f32(-0x1.1p10, -0x1.333334p-1) == 0
|
||||
; run: %fcmp_gt_f32(-0x1.99999ap-2, -0x1.4cccccp0) == 1
|
||||
; run: %fcmp_gt_f32(-0x1.8p0, -0x1.b33334p0) == 1
|
||||
; run: %fcmp_gt_f32(-0x1.4p1, -0x1.666666p1) == 1
|
||||
; run: %fcmp_gt_f32(0x0.5, -0x1.0) == 1
|
||||
; run: %fcmp_gt_f32(0x1.b33334p0, -0x1.b33334p0) == 1
|
||||
|
||||
; Zeroes
|
||||
; run: %fcmp_gt_f32(0x0.0, 0x0.0) == false
|
||||
; run: %fcmp_gt_f32(-0x0.0, -0x0.0) == false
|
||||
; run: %fcmp_gt_f32(0x0.0, -0x0.0) == false
|
||||
; run: %fcmp_gt_f32(-0x0.0, 0x0.0) == false
|
||||
; run: %fcmp_gt_f32(0x0.0, 0x0.0) == 0
|
||||
; run: %fcmp_gt_f32(-0x0.0, -0x0.0) == 0
|
||||
; run: %fcmp_gt_f32(0x0.0, -0x0.0) == 0
|
||||
; run: %fcmp_gt_f32(-0x0.0, 0x0.0) == 0
|
||||
|
||||
; Infinities
|
||||
; run: %fcmp_gt_f32(Inf, Inf) == false
|
||||
; run: %fcmp_gt_f32(-Inf, -Inf) == false
|
||||
; run: %fcmp_gt_f32(Inf, -Inf) == true
|
||||
; run: %fcmp_gt_f32(-Inf, Inf) == false
|
||||
; run: %fcmp_gt_f32(Inf, Inf) == 0
|
||||
; run: %fcmp_gt_f32(-Inf, -Inf) == 0
|
||||
; run: %fcmp_gt_f32(Inf, -Inf) == 1
|
||||
; run: %fcmp_gt_f32(-Inf, Inf) == 0
|
||||
|
||||
; Inf/Zero
|
||||
; run: %fcmp_gt_f32(0x0.0, Inf) == false
|
||||
; run: %fcmp_gt_f32(-0x0.0, Inf) == false
|
||||
; run: %fcmp_gt_f32(0x0.0, -Inf) == true
|
||||
; run: %fcmp_gt_f32(-0x0.0, -Inf) == true
|
||||
; run: %fcmp_gt_f32(Inf, 0x0.0) == true
|
||||
; run: %fcmp_gt_f32(Inf, -0x0.0) == true
|
||||
; run: %fcmp_gt_f32(-Inf, 0x0.0) == false
|
||||
; run: %fcmp_gt_f32(-Inf, -0x0.0) == false
|
||||
; run: %fcmp_gt_f32(0x0.0, Inf) == 0
|
||||
; run: %fcmp_gt_f32(-0x0.0, Inf) == 0
|
||||
; run: %fcmp_gt_f32(0x0.0, -Inf) == 1
|
||||
; run: %fcmp_gt_f32(-0x0.0, -Inf) == 1
|
||||
; run: %fcmp_gt_f32(Inf, 0x0.0) == 1
|
||||
; run: %fcmp_gt_f32(Inf, -0x0.0) == 1
|
||||
; run: %fcmp_gt_f32(-Inf, 0x0.0) == 0
|
||||
; run: %fcmp_gt_f32(-Inf, -0x0.0) == 0
|
||||
|
||||
; Epsilon / Max / Min Positive
|
||||
; run: %fcmp_gt_f32(0x1.0p-23, 0x1.0p-23) == false
|
||||
; run: %fcmp_gt_f32(0x1.fffffep127, 0x1.fffffep127) == false
|
||||
; run: %fcmp_gt_f32(0x1.0p-126, 0x1.0p-126) == false
|
||||
; run: %fcmp_gt_f32(0x1.0p-23, 0x1.fffffep127) == false
|
||||
; run: %fcmp_gt_f32(0x1.0p-23, 0x1.0p-126) == true
|
||||
; run: %fcmp_gt_f32(0x1.0p-126, 0x1.fffffep127) == false
|
||||
; run: %fcmp_gt_f32(0x1.0p-23, 0x1.0p-23) == 0
|
||||
; run: %fcmp_gt_f32(0x1.fffffep127, 0x1.fffffep127) == 0
|
||||
; run: %fcmp_gt_f32(0x1.0p-126, 0x1.0p-126) == 0
|
||||
; run: %fcmp_gt_f32(0x1.0p-23, 0x1.fffffep127) == 0
|
||||
; run: %fcmp_gt_f32(0x1.0p-23, 0x1.0p-126) == 1
|
||||
; run: %fcmp_gt_f32(0x1.0p-126, 0x1.fffffep127) == 0
|
||||
|
||||
; Subnormals
|
||||
; run: %fcmp_gt_f32(0x0.800002p-126, -0x0.800002p-126) == true
|
||||
; run: %fcmp_gt_f32(-0x0.800002p-126, 0x0.800002p-126) == false
|
||||
; run: %fcmp_gt_f32(0x0.800002p-126, 0x0.0) == true
|
||||
; run: %fcmp_gt_f32(-0x0.800002p-126, 0x0.0) == false
|
||||
; run: %fcmp_gt_f32(0x0.800002p-126, -0x0.0) == true
|
||||
; run: %fcmp_gt_f32(-0x0.800002p-126, -0x0.0) == false
|
||||
; run: %fcmp_gt_f32(0x0.0, 0x0.800002p-126) == false
|
||||
; run: %fcmp_gt_f32(0x0.0, -0x0.800002p-126) == true
|
||||
; run: %fcmp_gt_f32(-0x0.0, 0x0.800002p-126) == false
|
||||
; run: %fcmp_gt_f32(-0x0.0, -0x0.800002p-126) == true
|
||||
; run: %fcmp_gt_f32(0x0.800002p-126, -0x0.800002p-126) == 1
|
||||
; run: %fcmp_gt_f32(-0x0.800002p-126, 0x0.800002p-126) == 0
|
||||
; run: %fcmp_gt_f32(0x0.800002p-126, 0x0.0) == 1
|
||||
; run: %fcmp_gt_f32(-0x0.800002p-126, 0x0.0) == 0
|
||||
; run: %fcmp_gt_f32(0x0.800002p-126, -0x0.0) == 1
|
||||
; run: %fcmp_gt_f32(-0x0.800002p-126, -0x0.0) == 0
|
||||
; run: %fcmp_gt_f32(0x0.0, 0x0.800002p-126) == 0
|
||||
; run: %fcmp_gt_f32(0x0.0, -0x0.800002p-126) == 1
|
||||
; run: %fcmp_gt_f32(-0x0.0, 0x0.800002p-126) == 0
|
||||
; run: %fcmp_gt_f32(-0x0.0, -0x0.800002p-126) == 1
|
||||
|
||||
; NaN's
|
||||
; run: %fcmp_gt_f32(+NaN, +NaN) == false
|
||||
; run: %fcmp_gt_f32(-NaN, -NaN) == false
|
||||
; run: %fcmp_gt_f32(+NaN, -NaN) == false
|
||||
; run: %fcmp_gt_f32(-NaN, +NaN) == false
|
||||
; run: %fcmp_gt_f32(+NaN, +NaN) == 0
|
||||
; run: %fcmp_gt_f32(-NaN, -NaN) == 0
|
||||
; run: %fcmp_gt_f32(+NaN, -NaN) == 0
|
||||
; run: %fcmp_gt_f32(-NaN, +NaN) == 0
|
||||
|
||||
; run: %fcmp_gt_f32(+NaN, -0x1.0) == false
|
||||
; run: %fcmp_gt_f32(-NaN, -0x1.0) == false
|
||||
; run: %fcmp_gt_f32(+NaN, 0x1.0) == false
|
||||
; run: %fcmp_gt_f32(-NaN, 0x1.0) == false
|
||||
; run: %fcmp_gt_f32(+NaN, -0x0.0) == false
|
||||
; run: %fcmp_gt_f32(-NaN, -0x0.0) == false
|
||||
; run: %fcmp_gt_f32(+NaN, 0x0.0) == false
|
||||
; run: %fcmp_gt_f32(-NaN, 0x0.0) == false
|
||||
; run: %fcmp_gt_f32(+NaN, -Inf) == false
|
||||
; run: %fcmp_gt_f32(-NaN, -Inf) == false
|
||||
; run: %fcmp_gt_f32(+NaN, Inf) == false
|
||||
; run: %fcmp_gt_f32(-NaN, Inf) == false
|
||||
; run: %fcmp_gt_f32(-0x0.0, +NaN) == false
|
||||
; run: %fcmp_gt_f32(-0x0.0, -NaN) == false
|
||||
; run: %fcmp_gt_f32(0x0.0, +NaN) == false
|
||||
; run: %fcmp_gt_f32(0x0.0, -NaN) == false
|
||||
; run: %fcmp_gt_f32(-Inf, +NaN) == false
|
||||
; run: %fcmp_gt_f32(-Inf, -NaN) == false
|
||||
; run: %fcmp_gt_f32(Inf, +NaN) == false
|
||||
; run: %fcmp_gt_f32(Inf, -NaN) == false
|
||||
; run: %fcmp_gt_f32(+NaN, -0x1.0) == 0
|
||||
; run: %fcmp_gt_f32(-NaN, -0x1.0) == 0
|
||||
; run: %fcmp_gt_f32(+NaN, 0x1.0) == 0
|
||||
; run: %fcmp_gt_f32(-NaN, 0x1.0) == 0
|
||||
; run: %fcmp_gt_f32(+NaN, -0x0.0) == 0
|
||||
; run: %fcmp_gt_f32(-NaN, -0x0.0) == 0
|
||||
; run: %fcmp_gt_f32(+NaN, 0x0.0) == 0
|
||||
; run: %fcmp_gt_f32(-NaN, 0x0.0) == 0
|
||||
; run: %fcmp_gt_f32(+NaN, -Inf) == 0
|
||||
; run: %fcmp_gt_f32(-NaN, -Inf) == 0
|
||||
; run: %fcmp_gt_f32(+NaN, Inf) == 0
|
||||
; run: %fcmp_gt_f32(-NaN, Inf) == 0
|
||||
; run: %fcmp_gt_f32(-0x0.0, +NaN) == 0
|
||||
; run: %fcmp_gt_f32(-0x0.0, -NaN) == 0
|
||||
; run: %fcmp_gt_f32(0x0.0, +NaN) == 0
|
||||
; run: %fcmp_gt_f32(0x0.0, -NaN) == 0
|
||||
; run: %fcmp_gt_f32(-Inf, +NaN) == 0
|
||||
; run: %fcmp_gt_f32(-Inf, -NaN) == 0
|
||||
; run: %fcmp_gt_f32(Inf, +NaN) == 0
|
||||
; run: %fcmp_gt_f32(Inf, -NaN) == 0
|
||||
|
||||
; run: %fcmp_gt_f32(+NaN:0x1, +NaN:0x1) == false
|
||||
; run: %fcmp_gt_f32(-NaN:0x1, -NaN:0x1) == false
|
||||
; run: %fcmp_gt_f32(+NaN:0x1, -NaN:0x1) == false
|
||||
; run: %fcmp_gt_f32(-NaN:0x1, +NaN:0x1) == false
|
||||
; run: %fcmp_gt_f32(+NaN:0x1, +NaN) == false
|
||||
; run: %fcmp_gt_f32(+NaN:0x1, -NaN) == false
|
||||
; run: %fcmp_gt_f32(-NaN:0x1, -NaN) == false
|
||||
; run: %fcmp_gt_f32(-NaN:0x1, +NaN) == false
|
||||
; run: %fcmp_gt_f32(+NaN:0x1, +NaN:0x1) == 0
|
||||
; run: %fcmp_gt_f32(-NaN:0x1, -NaN:0x1) == 0
|
||||
; run: %fcmp_gt_f32(+NaN:0x1, -NaN:0x1) == 0
|
||||
; run: %fcmp_gt_f32(-NaN:0x1, +NaN:0x1) == 0
|
||||
; run: %fcmp_gt_f32(+NaN:0x1, +NaN) == 0
|
||||
; run: %fcmp_gt_f32(+NaN:0x1, -NaN) == 0
|
||||
; run: %fcmp_gt_f32(-NaN:0x1, -NaN) == 0
|
||||
; run: %fcmp_gt_f32(-NaN:0x1, +NaN) == 0
|
||||
|
||||
; run: %fcmp_gt_f32(+NaN:0x80001, +NaN:0x80001) == false
|
||||
; run: %fcmp_gt_f32(-NaN:0x80001, -NaN:0x80001) == false
|
||||
; run: %fcmp_gt_f32(+NaN:0x80001, -NaN:0x80001) == false
|
||||
; run: %fcmp_gt_f32(-NaN:0x80001, +NaN:0x80001) == false
|
||||
; run: %fcmp_gt_f32(+NaN:0x80001, +NaN) == false
|
||||
; run: %fcmp_gt_f32(+NaN:0x80001, -NaN) == false
|
||||
; run: %fcmp_gt_f32(-NaN:0x80001, -NaN) == false
|
||||
; run: %fcmp_gt_f32(-NaN:0x80001, +NaN) == false
|
||||
; run: %fcmp_gt_f32(+NaN:0x80001, +NaN:0x80001) == 0
|
||||
; run: %fcmp_gt_f32(-NaN:0x80001, -NaN:0x80001) == 0
|
||||
; run: %fcmp_gt_f32(+NaN:0x80001, -NaN:0x80001) == 0
|
||||
; run: %fcmp_gt_f32(-NaN:0x80001, +NaN:0x80001) == 0
|
||||
; run: %fcmp_gt_f32(+NaN:0x80001, +NaN) == 0
|
||||
; run: %fcmp_gt_f32(+NaN:0x80001, -NaN) == 0
|
||||
; run: %fcmp_gt_f32(-NaN:0x80001, -NaN) == 0
|
||||
; run: %fcmp_gt_f32(-NaN:0x80001, +NaN) == 0
|
||||
|
||||
; sNaN's
|
||||
; run: %fcmp_gt_f32(+sNaN:0x1, +sNaN:0x1) == false
|
||||
; run: %fcmp_gt_f32(-sNaN:0x1, -sNaN:0x1) == false
|
||||
; run: %fcmp_gt_f32(+sNaN:0x1, -sNaN:0x1) == false
|
||||
; run: %fcmp_gt_f32(-sNaN:0x1, +sNaN:0x1) == false
|
||||
; run: %fcmp_gt_f32(+sNaN:0x1, +sNaN:0x1) == 0
|
||||
; run: %fcmp_gt_f32(-sNaN:0x1, -sNaN:0x1) == 0
|
||||
; run: %fcmp_gt_f32(+sNaN:0x1, -sNaN:0x1) == 0
|
||||
; run: %fcmp_gt_f32(-sNaN:0x1, +sNaN:0x1) == 0
|
||||
|
||||
; run: %fcmp_gt_f32(+sNaN:0x1, -0x1.0) == false
|
||||
; run: %fcmp_gt_f32(-sNaN:0x1, -0x1.0) == false
|
||||
; run: %fcmp_gt_f32(+sNaN:0x1, 0x1.0) == false
|
||||
; run: %fcmp_gt_f32(-sNaN:0x1, 0x1.0) == false
|
||||
; run: %fcmp_gt_f32(+sNaN:0x1, -0x0.0) == false
|
||||
; run: %fcmp_gt_f32(-sNaN:0x1, -0x0.0) == false
|
||||
; run: %fcmp_gt_f32(+sNaN:0x1, 0x0.0) == false
|
||||
; run: %fcmp_gt_f32(-sNaN:0x1, 0x0.0) == false
|
||||
; run: %fcmp_gt_f32(+sNaN:0x1, -Inf) == false
|
||||
; run: %fcmp_gt_f32(-sNaN:0x1, -Inf) == false
|
||||
; run: %fcmp_gt_f32(+sNaN:0x1, Inf) == false
|
||||
; run: %fcmp_gt_f32(-sNaN:0x1, Inf) == false
|
||||
; run: %fcmp_gt_f32(-0x0.0, +sNaN:0x1) == false
|
||||
; run: %fcmp_gt_f32(-0x0.0, -sNaN:0x1) == false
|
||||
; run: %fcmp_gt_f32(0x0.0, +sNaN:0x1) == false
|
||||
; run: %fcmp_gt_f32(0x0.0, -sNaN:0x1) == false
|
||||
; run: %fcmp_gt_f32(-Inf, +sNaN:0x1) == false
|
||||
; run: %fcmp_gt_f32(-Inf, -sNaN:0x1) == false
|
||||
; run: %fcmp_gt_f32(Inf, +sNaN:0x1) == false
|
||||
; run: %fcmp_gt_f32(Inf, -sNaN:0x1) == false
|
||||
; run: %fcmp_gt_f32(+sNaN:0x1, -0x1.0) == 0
|
||||
; run: %fcmp_gt_f32(-sNaN:0x1, -0x1.0) == 0
|
||||
; run: %fcmp_gt_f32(+sNaN:0x1, 0x1.0) == 0
|
||||
; run: %fcmp_gt_f32(-sNaN:0x1, 0x1.0) == 0
|
||||
; run: %fcmp_gt_f32(+sNaN:0x1, -0x0.0) == 0
|
||||
; run: %fcmp_gt_f32(-sNaN:0x1, -0x0.0) == 0
|
||||
; run: %fcmp_gt_f32(+sNaN:0x1, 0x0.0) == 0
|
||||
; run: %fcmp_gt_f32(-sNaN:0x1, 0x0.0) == 0
|
||||
; run: %fcmp_gt_f32(+sNaN:0x1, -Inf) == 0
|
||||
; run: %fcmp_gt_f32(-sNaN:0x1, -Inf) == 0
|
||||
; run: %fcmp_gt_f32(+sNaN:0x1, Inf) == 0
|
||||
; run: %fcmp_gt_f32(-sNaN:0x1, Inf) == 0
|
||||
; run: %fcmp_gt_f32(-0x0.0, +sNaN:0x1) == 0
|
||||
; run: %fcmp_gt_f32(-0x0.0, -sNaN:0x1) == 0
|
||||
; run: %fcmp_gt_f32(0x0.0, +sNaN:0x1) == 0
|
||||
; run: %fcmp_gt_f32(0x0.0, -sNaN:0x1) == 0
|
||||
; run: %fcmp_gt_f32(-Inf, +sNaN:0x1) == 0
|
||||
; run: %fcmp_gt_f32(-Inf, -sNaN:0x1) == 0
|
||||
; run: %fcmp_gt_f32(Inf, +sNaN:0x1) == 0
|
||||
; run: %fcmp_gt_f32(Inf, -sNaN:0x1) == 0
|
||||
|
||||
; run: %fcmp_gt_f32(+sNaN:0x1, +NaN:0x1) == false
|
||||
; run: %fcmp_gt_f32(-sNaN:0x1, -NaN:0x1) == false
|
||||
; run: %fcmp_gt_f32(+sNaN:0x1, -NaN:0x1) == false
|
||||
; run: %fcmp_gt_f32(-sNaN:0x1, +NaN:0x1) == false
|
||||
; run: %fcmp_gt_f32(+NaN:0x1, +sNaN:0x1) == false
|
||||
; run: %fcmp_gt_f32(-NaN:0x1, -sNaN:0x1) == false
|
||||
; run: %fcmp_gt_f32(-NaN:0x1, +sNaN:0x1) == false
|
||||
; run: %fcmp_gt_f32(+NaN:0x1, -sNaN:0x1) == false
|
||||
; run: %fcmp_gt_f32(+sNaN:0x1, +NaN:0x1) == 0
|
||||
; run: %fcmp_gt_f32(-sNaN:0x1, -NaN:0x1) == 0
|
||||
; run: %fcmp_gt_f32(+sNaN:0x1, -NaN:0x1) == 0
|
||||
; run: %fcmp_gt_f32(-sNaN:0x1, +NaN:0x1) == 0
|
||||
; run: %fcmp_gt_f32(+NaN:0x1, +sNaN:0x1) == 0
|
||||
; run: %fcmp_gt_f32(-NaN:0x1, -sNaN:0x1) == 0
|
||||
; run: %fcmp_gt_f32(-NaN:0x1, +sNaN:0x1) == 0
|
||||
; run: %fcmp_gt_f32(+NaN:0x1, -sNaN:0x1) == 0
|
||||
|
||||
; run: %fcmp_gt_f32(+sNaN:0x80001, +sNaN:0x80001) == false
|
||||
; run: %fcmp_gt_f32(-sNaN:0x80001, -sNaN:0x80001) == false
|
||||
; run: %fcmp_gt_f32(+sNaN:0x80001, -sNaN:0x80001) == false
|
||||
; run: %fcmp_gt_f32(-sNaN:0x80001, +sNaN:0x80001) == false
|
||||
; run: %fcmp_gt_f32(+sNaN:0x80001, +sNaN:0x1) == false
|
||||
; run: %fcmp_gt_f32(+sNaN:0x80001, -sNaN:0x1) == false
|
||||
; run: %fcmp_gt_f32(-sNaN:0x80001, -sNaN:0x1) == false
|
||||
; run: %fcmp_gt_f32(-sNaN:0x80001, +sNaN:0x1) == false
|
||||
; run: %fcmp_gt_f32(+sNaN:0x80001, +sNaN:0x80001) == 0
|
||||
; run: %fcmp_gt_f32(-sNaN:0x80001, -sNaN:0x80001) == 0
|
||||
; run: %fcmp_gt_f32(+sNaN:0x80001, -sNaN:0x80001) == 0
|
||||
; run: %fcmp_gt_f32(-sNaN:0x80001, +sNaN:0x80001) == 0
|
||||
; run: %fcmp_gt_f32(+sNaN:0x80001, +sNaN:0x1) == 0
|
||||
; run: %fcmp_gt_f32(+sNaN:0x80001, -sNaN:0x1) == 0
|
||||
; run: %fcmp_gt_f32(-sNaN:0x80001, -sNaN:0x1) == 0
|
||||
; run: %fcmp_gt_f32(-sNaN:0x80001, +sNaN:0x1) == 0
|
||||
|
||||
|
||||
function %fcmp_gt_f64(f64, f64) -> b1 {
|
||||
function %fcmp_gt_f64(f64, f64) -> i8 {
|
||||
block0(v0: f64, v1: f64):
|
||||
v2 = fcmp gt v0, v1
|
||||
return v2
|
||||
}
|
||||
; run: %fcmp_gt_f64(0x0.5, 0x0.5) == false
|
||||
; run: %fcmp_gt_f64(0x1.0, 0x1.0) == false
|
||||
; run: %fcmp_gt_f64(-0x1.0, 0x1.0) == false
|
||||
; run: %fcmp_gt_f64(0x1.0, -0x1.0) == true
|
||||
; run: %fcmp_gt_f64(0x0.5, 0x1.0) == false
|
||||
; run: %fcmp_gt_f64(0x1.5, 0x2.9) == false
|
||||
; run: %fcmp_gt_f64(0x1.1p10, 0x1.4p1) == true
|
||||
; run: %fcmp_gt_f64(0x1.4cccccccccccdp0, 0x1.8p0) == false
|
||||
; run: %fcmp_gt_f64(0x1.b333333333333p0, 0x1.999999999999ap-2) == true
|
||||
; run: %fcmp_gt_f64(0x1.3333333333333p-1, 0x1.6666666666666p1) == false
|
||||
; run: %fcmp_gt_f64(-0x0.5, -0x1.0) == true
|
||||
; run: %fcmp_gt_f64(-0x1.5, -0x2.9) == true
|
||||
; run: %fcmp_gt_f64(-0x1.1p10, -0x1.3333333333333p-1) == false
|
||||
; run: %fcmp_gt_f64(-0x1.999999999999ap-2, -0x1.4cccccccccccdp0) == true
|
||||
; run: %fcmp_gt_f64(-0x1.8p0, -0x1.b333333333333p0) == true
|
||||
; run: %fcmp_gt_f64(-0x1.4p1, -0x1.6666666666666p1) == true
|
||||
; run: %fcmp_gt_f64(0x0.5, -0x1.0) == true
|
||||
; run: %fcmp_gt_f64(0x1.b333333333333p0, -0x1.b333333333333p0) == true
|
||||
; run: %fcmp_gt_f64(0x0.5, 0x0.5) == 0
|
||||
; run: %fcmp_gt_f64(0x1.0, 0x1.0) == 0
|
||||
; run: %fcmp_gt_f64(-0x1.0, 0x1.0) == 0
|
||||
; run: %fcmp_gt_f64(0x1.0, -0x1.0) == 1
|
||||
; run: %fcmp_gt_f64(0x0.5, 0x1.0) == 0
|
||||
; run: %fcmp_gt_f64(0x1.5, 0x2.9) == 0
|
||||
; run: %fcmp_gt_f64(0x1.1p10, 0x1.4p1) == 1
|
||||
; run: %fcmp_gt_f64(0x1.4cccccccccccdp0, 0x1.8p0) == 0
|
||||
; run: %fcmp_gt_f64(0x1.b333333333333p0, 0x1.999999999999ap-2) == 1
|
||||
; run: %fcmp_gt_f64(0x1.3333333333333p-1, 0x1.6666666666666p1) == 0
|
||||
; run: %fcmp_gt_f64(-0x0.5, -0x1.0) == 1
|
||||
; run: %fcmp_gt_f64(-0x1.5, -0x2.9) == 1
|
||||
; run: %fcmp_gt_f64(-0x1.1p10, -0x1.3333333333333p-1) == 0
|
||||
; run: %fcmp_gt_f64(-0x1.999999999999ap-2, -0x1.4cccccccccccdp0) == 1
|
||||
; run: %fcmp_gt_f64(-0x1.8p0, -0x1.b333333333333p0) == 1
|
||||
; run: %fcmp_gt_f64(-0x1.4p1, -0x1.6666666666666p1) == 1
|
||||
; run: %fcmp_gt_f64(0x0.5, -0x1.0) == 1
|
||||
; run: %fcmp_gt_f64(0x1.b333333333333p0, -0x1.b333333333333p0) == 1
|
||||
|
||||
|
||||
; Zeroes
|
||||
; run: %fcmp_gt_f64(0x0.0, 0x0.0) == false
|
||||
; run: %fcmp_gt_f64(-0x0.0, -0x0.0) == false
|
||||
; run: %fcmp_gt_f64(0x0.0, -0x0.0) == false
|
||||
; run: %fcmp_gt_f64(-0x0.0, 0x0.0) == false
|
||||
; run: %fcmp_gt_f64(0x0.0, 0x0.0) == 0
|
||||
; run: %fcmp_gt_f64(-0x0.0, -0x0.0) == 0
|
||||
; run: %fcmp_gt_f64(0x0.0, -0x0.0) == 0
|
||||
; run: %fcmp_gt_f64(-0x0.0, 0x0.0) == 0
|
||||
|
||||
; Infinities
|
||||
; run: %fcmp_gt_f64(Inf, Inf) == false
|
||||
; run: %fcmp_gt_f64(-Inf, -Inf) == false
|
||||
; run: %fcmp_gt_f64(Inf, -Inf) == true
|
||||
; run: %fcmp_gt_f64(-Inf, Inf) == false
|
||||
; run: %fcmp_gt_f64(Inf, Inf) == 0
|
||||
; run: %fcmp_gt_f64(-Inf, -Inf) == 0
|
||||
; run: %fcmp_gt_f64(Inf, -Inf) == 1
|
||||
; run: %fcmp_gt_f64(-Inf, Inf) == 0
|
||||
|
||||
; Inf/Zero
|
||||
; run: %fcmp_gt_f64(0x0.0, Inf) == false
|
||||
; run: %fcmp_gt_f64(-0x0.0, Inf) == false
|
||||
; run: %fcmp_gt_f64(0x0.0, -Inf) == true
|
||||
; run: %fcmp_gt_f64(-0x0.0, -Inf) == true
|
||||
; run: %fcmp_gt_f64(Inf, 0x0.0) == true
|
||||
; run: %fcmp_gt_f64(Inf, -0x0.0) == true
|
||||
; run: %fcmp_gt_f64(-Inf, 0x0.0) == false
|
||||
; run: %fcmp_gt_f64(-Inf, -0x0.0) == false
|
||||
; run: %fcmp_gt_f64(0x0.0, Inf) == 0
|
||||
; run: %fcmp_gt_f64(-0x0.0, Inf) == 0
|
||||
; run: %fcmp_gt_f64(0x0.0, -Inf) == 1
|
||||
; run: %fcmp_gt_f64(-0x0.0, -Inf) == 1
|
||||
; run: %fcmp_gt_f64(Inf, 0x0.0) == 1
|
||||
; run: %fcmp_gt_f64(Inf, -0x0.0) == 1
|
||||
; run: %fcmp_gt_f64(-Inf, 0x0.0) == 0
|
||||
; run: %fcmp_gt_f64(-Inf, -0x0.0) == 0
|
||||
|
||||
; Epsilon / Max / Min Positive
|
||||
; run: %fcmp_gt_f64(0x1.0p-52, 0x1.0p-52) == false
|
||||
; run: %fcmp_gt_f64(0x1.fffffffffffffp1023, 0x1.fffffffffffffp1023) == false
|
||||
; run: %fcmp_gt_f64(0x1.0p-1022, 0x1.0p-1022) == false
|
||||
; run: %fcmp_gt_f64(0x1.0p-52, 0x1.fffffffffffffp1023) == false
|
||||
; run: %fcmp_gt_f64(0x1.0p-52, 0x1.0p-1022) == true
|
||||
; run: %fcmp_gt_f64(0x1.0p-1022, 0x1.fffffffffffffp1023) == false
|
||||
; run: %fcmp_gt_f64(0x1.0p-52, 0x1.0p-52) == 0
|
||||
; run: %fcmp_gt_f64(0x1.fffffffffffffp1023, 0x1.fffffffffffffp1023) == 0
|
||||
; run: %fcmp_gt_f64(0x1.0p-1022, 0x1.0p-1022) == 0
|
||||
; run: %fcmp_gt_f64(0x1.0p-52, 0x1.fffffffffffffp1023) == 0
|
||||
; run: %fcmp_gt_f64(0x1.0p-52, 0x1.0p-1022) == 1
|
||||
; run: %fcmp_gt_f64(0x1.0p-1022, 0x1.fffffffffffffp1023) == 0
|
||||
|
||||
; Subnormals
|
||||
; run: %fcmp_gt_f64(0x0.8p-1022, -0x0.8p-1022) == true
|
||||
; run: %fcmp_gt_f64(-0x0.8p-1022, 0x0.8p-1022) == false
|
||||
; run: %fcmp_gt_f64(0x0.8p-1022, 0x0.0) == true
|
||||
; run: %fcmp_gt_f64(-0x0.8p-1022, 0x0.0) == false
|
||||
; run: %fcmp_gt_f64(0x0.8p-1022, -0x0.0) == true
|
||||
; run: %fcmp_gt_f64(-0x0.8p-1022, -0x0.0) == false
|
||||
; run: %fcmp_gt_f64(0x0.0, 0x0.8p-1022) == false
|
||||
; run: %fcmp_gt_f64(0x0.0, -0x0.8p-1022) == true
|
||||
; run: %fcmp_gt_f64(-0x0.0, 0x0.8p-1022) == false
|
||||
; run: %fcmp_gt_f64(-0x0.0, -0x0.8p-1022) == true
|
||||
; run: %fcmp_gt_f64(0x0.8p-1022, -0x0.8p-1022) == 1
|
||||
; run: %fcmp_gt_f64(-0x0.8p-1022, 0x0.8p-1022) == 0
|
||||
; run: %fcmp_gt_f64(0x0.8p-1022, 0x0.0) == 1
|
||||
; run: %fcmp_gt_f64(-0x0.8p-1022, 0x0.0) == 0
|
||||
; run: %fcmp_gt_f64(0x0.8p-1022, -0x0.0) == 1
|
||||
; run: %fcmp_gt_f64(-0x0.8p-1022, -0x0.0) == 0
|
||||
; run: %fcmp_gt_f64(0x0.0, 0x0.8p-1022) == 0
|
||||
; run: %fcmp_gt_f64(0x0.0, -0x0.8p-1022) == 1
|
||||
; run: %fcmp_gt_f64(-0x0.0, 0x0.8p-1022) == 0
|
||||
; run: %fcmp_gt_f64(-0x0.0, -0x0.8p-1022) == 1
|
||||
|
||||
; NaN's
|
||||
; run: %fcmp_gt_f64(+NaN, +NaN) == false
|
||||
; run: %fcmp_gt_f64(-NaN, -NaN) == false
|
||||
; run: %fcmp_gt_f64(+NaN, -NaN) == false
|
||||
; run: %fcmp_gt_f64(-NaN, +NaN) == false
|
||||
; run: %fcmp_gt_f64(+NaN, +NaN) == 0
|
||||
; run: %fcmp_gt_f64(-NaN, -NaN) == 0
|
||||
; run: %fcmp_gt_f64(+NaN, -NaN) == 0
|
||||
; run: %fcmp_gt_f64(-NaN, +NaN) == 0
|
||||
|
||||
; run: %fcmp_gt_f64(+NaN, -0x1.0) == false
|
||||
; run: %fcmp_gt_f64(-NaN, -0x1.0) == false
|
||||
; run: %fcmp_gt_f64(+NaN, 0x1.0) == false
|
||||
; run: %fcmp_gt_f64(-NaN, 0x1.0) == false
|
||||
; run: %fcmp_gt_f64(+NaN, -0x0.0) == false
|
||||
; run: %fcmp_gt_f64(-NaN, -0x0.0) == false
|
||||
; run: %fcmp_gt_f64(+NaN, 0x0.0) == false
|
||||
; run: %fcmp_gt_f64(-NaN, 0x0.0) == false
|
||||
; run: %fcmp_gt_f64(+NaN, -Inf) == false
|
||||
; run: %fcmp_gt_f64(-NaN, -Inf) == false
|
||||
; run: %fcmp_gt_f64(+NaN, Inf) == false
|
||||
; run: %fcmp_gt_f64(-NaN, Inf) == false
|
||||
; run: %fcmp_gt_f64(-0x0.0, +NaN) == false
|
||||
; run: %fcmp_gt_f64(-0x0.0, -NaN) == false
|
||||
; run: %fcmp_gt_f64(0x0.0, +NaN) == false
|
||||
; run: %fcmp_gt_f64(0x0.0, -NaN) == false
|
||||
; run: %fcmp_gt_f64(-Inf, +NaN) == false
|
||||
; run: %fcmp_gt_f64(-Inf, -NaN) == false
|
||||
; run: %fcmp_gt_f64(Inf, +NaN) == false
|
||||
; run: %fcmp_gt_f64(Inf, -NaN) == false
|
||||
; run: %fcmp_gt_f64(+NaN, -0x1.0) == 0
|
||||
; run: %fcmp_gt_f64(-NaN, -0x1.0) == 0
|
||||
; run: %fcmp_gt_f64(+NaN, 0x1.0) == 0
|
||||
; run: %fcmp_gt_f64(-NaN, 0x1.0) == 0
|
||||
; run: %fcmp_gt_f64(+NaN, -0x0.0) == 0
|
||||
; run: %fcmp_gt_f64(-NaN, -0x0.0) == 0
|
||||
; run: %fcmp_gt_f64(+NaN, 0x0.0) == 0
|
||||
; run: %fcmp_gt_f64(-NaN, 0x0.0) == 0
|
||||
; run: %fcmp_gt_f64(+NaN, -Inf) == 0
|
||||
; run: %fcmp_gt_f64(-NaN, -Inf) == 0
|
||||
; run: %fcmp_gt_f64(+NaN, Inf) == 0
|
||||
; run: %fcmp_gt_f64(-NaN, Inf) == 0
|
||||
; run: %fcmp_gt_f64(-0x0.0, +NaN) == 0
|
||||
; run: %fcmp_gt_f64(-0x0.0, -NaN) == 0
|
||||
; run: %fcmp_gt_f64(0x0.0, +NaN) == 0
|
||||
; run: %fcmp_gt_f64(0x0.0, -NaN) == 0
|
||||
; run: %fcmp_gt_f64(-Inf, +NaN) == 0
|
||||
; run: %fcmp_gt_f64(-Inf, -NaN) == 0
|
||||
; run: %fcmp_gt_f64(Inf, +NaN) == 0
|
||||
; run: %fcmp_gt_f64(Inf, -NaN) == 0
|
||||
|
||||
; run: %fcmp_gt_f64(+NaN:0x1, +NaN:0x1) == false
|
||||
; run: %fcmp_gt_f64(-NaN:0x1, -NaN:0x1) == false
|
||||
; run: %fcmp_gt_f64(+NaN:0x1, -NaN:0x1) == false
|
||||
; run: %fcmp_gt_f64(-NaN:0x1, +NaN:0x1) == false
|
||||
; run: %fcmp_gt_f64(+NaN:0x1, +NaN) == false
|
||||
; run: %fcmp_gt_f64(+NaN:0x1, -NaN) == false
|
||||
; run: %fcmp_gt_f64(-NaN:0x1, -NaN) == false
|
||||
; run: %fcmp_gt_f64(-NaN:0x1, +NaN) == false
|
||||
; run: %fcmp_gt_f64(+NaN:0x1, +NaN:0x1) == 0
|
||||
; run: %fcmp_gt_f64(-NaN:0x1, -NaN:0x1) == 0
|
||||
; run: %fcmp_gt_f64(+NaN:0x1, -NaN:0x1) == 0
|
||||
; run: %fcmp_gt_f64(-NaN:0x1, +NaN:0x1) == 0
|
||||
; run: %fcmp_gt_f64(+NaN:0x1, +NaN) == 0
|
||||
; run: %fcmp_gt_f64(+NaN:0x1, -NaN) == 0
|
||||
; run: %fcmp_gt_f64(-NaN:0x1, -NaN) == 0
|
||||
; run: %fcmp_gt_f64(-NaN:0x1, +NaN) == 0
|
||||
|
||||
; run: %fcmp_gt_f64(+NaN:0x800000000001, +NaN:0x800000000001) == false
|
||||
; run: %fcmp_gt_f64(-NaN:0x800000000001, -NaN:0x800000000001) == false
|
||||
; run: %fcmp_gt_f64(+NaN:0x800000000001, -NaN:0x800000000001) == false
|
||||
; run: %fcmp_gt_f64(-NaN:0x800000000001, +NaN:0x800000000001) == false
|
||||
; run: %fcmp_gt_f64(+NaN:0x800000000001, +NaN) == false
|
||||
; run: %fcmp_gt_f64(+NaN:0x800000000001, -NaN) == false
|
||||
; run: %fcmp_gt_f64(-NaN:0x800000000001, -NaN) == false
|
||||
; run: %fcmp_gt_f64(-NaN:0x800000000001, +NaN) == false
|
||||
; run: %fcmp_gt_f64(+NaN:0x800000000001, +NaN:0x800000000001) == 0
|
||||
; run: %fcmp_gt_f64(-NaN:0x800000000001, -NaN:0x800000000001) == 0
|
||||
; run: %fcmp_gt_f64(+NaN:0x800000000001, -NaN:0x800000000001) == 0
|
||||
; run: %fcmp_gt_f64(-NaN:0x800000000001, +NaN:0x800000000001) == 0
|
||||
; run: %fcmp_gt_f64(+NaN:0x800000000001, +NaN) == 0
|
||||
; run: %fcmp_gt_f64(+NaN:0x800000000001, -NaN) == 0
|
||||
; run: %fcmp_gt_f64(-NaN:0x800000000001, -NaN) == 0
|
||||
; run: %fcmp_gt_f64(-NaN:0x800000000001, +NaN) == 0
|
||||
|
||||
; sNaN's
|
||||
; run: %fcmp_gt_f64(+sNaN:0x1, +sNaN:0x1) == false
|
||||
; run: %fcmp_gt_f64(-sNaN:0x1, -sNaN:0x1) == false
|
||||
; run: %fcmp_gt_f64(+sNaN:0x1, -sNaN:0x1) == false
|
||||
; run: %fcmp_gt_f64(-sNaN:0x1, +sNaN:0x1) == false
|
||||
; run: %fcmp_gt_f64(+sNaN:0x1, +sNaN:0x1) == 0
|
||||
; run: %fcmp_gt_f64(-sNaN:0x1, -sNaN:0x1) == 0
|
||||
; run: %fcmp_gt_f64(+sNaN:0x1, -sNaN:0x1) == 0
|
||||
; run: %fcmp_gt_f64(-sNaN:0x1, +sNaN:0x1) == 0
|
||||
|
||||
; run: %fcmp_gt_f64(+sNaN:0x1, -0x1.0) == false
|
||||
; run: %fcmp_gt_f64(-sNaN:0x1, -0x1.0) == false
|
||||
; run: %fcmp_gt_f64(+sNaN:0x1, 0x1.0) == false
|
||||
; run: %fcmp_gt_f64(-sNaN:0x1, 0x1.0) == false
|
||||
; run: %fcmp_gt_f64(+sNaN:0x1, -0x0.0) == false
|
||||
; run: %fcmp_gt_f64(-sNaN:0x1, -0x0.0) == false
|
||||
; run: %fcmp_gt_f64(+sNaN:0x1, 0x0.0) == false
|
||||
; run: %fcmp_gt_f64(-sNaN:0x1, 0x0.0) == false
|
||||
; run: %fcmp_gt_f64(+sNaN:0x1, -Inf) == false
|
||||
; run: %fcmp_gt_f64(-sNaN:0x1, -Inf) == false
|
||||
; run: %fcmp_gt_f64(+sNaN:0x1, Inf) == false
|
||||
; run: %fcmp_gt_f64(-sNaN:0x1, Inf) == false
|
||||
; run: %fcmp_gt_f64(-0x0.0, +sNaN:0x1) == false
|
||||
; run: %fcmp_gt_f64(-0x0.0, -sNaN:0x1) == false
|
||||
; run: %fcmp_gt_f64(0x0.0, +sNaN:0x1) == false
|
||||
; run: %fcmp_gt_f64(0x0.0, -sNaN:0x1) == false
|
||||
; run: %fcmp_gt_f64(-Inf, +sNaN:0x1) == false
|
||||
; run: %fcmp_gt_f64(-Inf, -sNaN:0x1) == false
|
||||
; run: %fcmp_gt_f64(Inf, +sNaN:0x1) == false
|
||||
; run: %fcmp_gt_f64(Inf, -sNaN:0x1) == false
|
||||
; run: %fcmp_gt_f64(+sNaN:0x1, -0x1.0) == 0
|
||||
; run: %fcmp_gt_f64(-sNaN:0x1, -0x1.0) == 0
|
||||
; run: %fcmp_gt_f64(+sNaN:0x1, 0x1.0) == 0
|
||||
; run: %fcmp_gt_f64(-sNaN:0x1, 0x1.0) == 0
|
||||
; run: %fcmp_gt_f64(+sNaN:0x1, -0x0.0) == 0
|
||||
; run: %fcmp_gt_f64(-sNaN:0x1, -0x0.0) == 0
|
||||
; run: %fcmp_gt_f64(+sNaN:0x1, 0x0.0) == 0
|
||||
; run: %fcmp_gt_f64(-sNaN:0x1, 0x0.0) == 0
|
||||
; run: %fcmp_gt_f64(+sNaN:0x1, -Inf) == 0
|
||||
; run: %fcmp_gt_f64(-sNaN:0x1, -Inf) == 0
|
||||
; run: %fcmp_gt_f64(+sNaN:0x1, Inf) == 0
|
||||
; run: %fcmp_gt_f64(-sNaN:0x1, Inf) == 0
|
||||
; run: %fcmp_gt_f64(-0x0.0, +sNaN:0x1) == 0
|
||||
; run: %fcmp_gt_f64(-0x0.0, -sNaN:0x1) == 0
|
||||
; run: %fcmp_gt_f64(0x0.0, +sNaN:0x1) == 0
|
||||
; run: %fcmp_gt_f64(0x0.0, -sNaN:0x1) == 0
|
||||
; run: %fcmp_gt_f64(-Inf, +sNaN:0x1) == 0
|
||||
; run: %fcmp_gt_f64(-Inf, -sNaN:0x1) == 0
|
||||
; run: %fcmp_gt_f64(Inf, +sNaN:0x1) == 0
|
||||
; run: %fcmp_gt_f64(Inf, -sNaN:0x1) == 0
|
||||
|
||||
; run: %fcmp_gt_f64(+sNaN:0x1, +NaN:0x1) == false
|
||||
; run: %fcmp_gt_f64(-sNaN:0x1, -NaN:0x1) == false
|
||||
; run: %fcmp_gt_f64(+sNaN:0x1, -NaN:0x1) == false
|
||||
; run: %fcmp_gt_f64(-sNaN:0x1, +NaN:0x1) == false
|
||||
; run: %fcmp_gt_f64(+NaN:0x1, +sNaN:0x1) == false
|
||||
; run: %fcmp_gt_f64(-NaN:0x1, -sNaN:0x1) == false
|
||||
; run: %fcmp_gt_f64(-NaN:0x1, +sNaN:0x1) == false
|
||||
; run: %fcmp_gt_f64(+NaN:0x1, -sNaN:0x1) == false
|
||||
; run: %fcmp_gt_f64(+sNaN:0x1, +NaN:0x1) == 0
|
||||
; run: %fcmp_gt_f64(-sNaN:0x1, -NaN:0x1) == 0
|
||||
; run: %fcmp_gt_f64(+sNaN:0x1, -NaN:0x1) == 0
|
||||
; run: %fcmp_gt_f64(-sNaN:0x1, +NaN:0x1) == 0
|
||||
; run: %fcmp_gt_f64(+NaN:0x1, +sNaN:0x1) == 0
|
||||
; run: %fcmp_gt_f64(-NaN:0x1, -sNaN:0x1) == 0
|
||||
; run: %fcmp_gt_f64(-NaN:0x1, +sNaN:0x1) == 0
|
||||
; run: %fcmp_gt_f64(+NaN:0x1, -sNaN:0x1) == 0
|
||||
|
||||
; run: %fcmp_gt_f64(+sNaN:0x800000000001, +sNaN:0x800000000001) == false
|
||||
; run: %fcmp_gt_f64(-sNaN:0x800000000001, -sNaN:0x800000000001) == false
|
||||
; run: %fcmp_gt_f64(+sNaN:0x800000000001, -sNaN:0x800000000001) == false
|
||||
; run: %fcmp_gt_f64(-sNaN:0x800000000001, +sNaN:0x800000000001) == false
|
||||
; run: %fcmp_gt_f64(+sNaN:0x800000000001, +sNaN:0x1) == false
|
||||
; run: %fcmp_gt_f64(+sNaN:0x800000000001, -sNaN:0x1) == false
|
||||
; run: %fcmp_gt_f64(-sNaN:0x800000000001, -sNaN:0x1) == false
|
||||
; run: %fcmp_gt_f64(-sNaN:0x800000000001, +sNaN:0x1) == false
|
||||
; run: %fcmp_gt_f64(+sNaN:0x800000000001, +sNaN:0x800000000001) == 0
|
||||
; run: %fcmp_gt_f64(-sNaN:0x800000000001, -sNaN:0x800000000001) == 0
|
||||
; run: %fcmp_gt_f64(+sNaN:0x800000000001, -sNaN:0x800000000001) == 0
|
||||
; run: %fcmp_gt_f64(-sNaN:0x800000000001, +sNaN:0x800000000001) == 0
|
||||
; run: %fcmp_gt_f64(+sNaN:0x800000000001, +sNaN:0x1) == 0
|
||||
; run: %fcmp_gt_f64(+sNaN:0x800000000001, -sNaN:0x1) == 0
|
||||
; run: %fcmp_gt_f64(-sNaN:0x800000000001, -sNaN:0x1) == 0
|
||||
; run: %fcmp_gt_f64(-sNaN:0x800000000001, +sNaN:0x1) == 0
|
||||
|
||||
@@ -5,316 +5,316 @@ target aarch64
|
||||
target s390x
|
||||
target riscv64
|
||||
|
||||
function %fcmp_le_f32(f32, f32) -> b1 {
|
||||
function %fcmp_le_f32(f32, f32) -> i8 {
|
||||
block0(v0: f32, v1: f32):
|
||||
v2 = fcmp le v0, v1
|
||||
return v2
|
||||
}
|
||||
; run: %fcmp_le_f32(0x0.5, 0x0.5) == true
|
||||
; run: %fcmp_le_f32(0x1.0, 0x1.0) == true
|
||||
; run: %fcmp_le_f32(-0x1.0, 0x1.0) == true
|
||||
; run: %fcmp_le_f32(0x1.0, -0x1.0) == false
|
||||
; run: %fcmp_le_f32(0x0.5, 0x1.0) == true
|
||||
; run: %fcmp_le_f32(0x1.5, 0x2.9) == true
|
||||
; run: %fcmp_le_f32(0x1.1p10, 0x1.4p1) == false
|
||||
; run: %fcmp_le_f32(0x1.4cccccp0, 0x1.8p0) == true
|
||||
; run: %fcmp_le_f32(0x1.b33334p0, 0x1.99999ap-2) == false
|
||||
; run: %fcmp_le_f32(0x1.333334p-1, 0x1.666666p1) == true
|
||||
; run: %fcmp_le_f32(-0x0.5, -0x1.0) == false
|
||||
; run: %fcmp_le_f32(-0x1.5, -0x2.9) == false
|
||||
; run: %fcmp_le_f32(-0x1.1p10, -0x1.333334p-1) == true
|
||||
; run: %fcmp_le_f32(-0x1.99999ap-2, -0x1.4cccccp0) == false
|
||||
; run: %fcmp_le_f32(-0x1.8p0, -0x1.b33334p0) == false
|
||||
; run: %fcmp_le_f32(-0x1.4p1, -0x1.666666p1) == false
|
||||
; run: %fcmp_le_f32(0x0.5, -0x1.0) == false
|
||||
; run: %fcmp_le_f32(0x1.b33334p0, -0x1.b33334p0) == false
|
||||
; run: %fcmp_le_f32(0x0.5, 0x0.5) == 1
|
||||
; run: %fcmp_le_f32(0x1.0, 0x1.0) == 1
|
||||
; run: %fcmp_le_f32(-0x1.0, 0x1.0) == 1
|
||||
; run: %fcmp_le_f32(0x1.0, -0x1.0) == 0
|
||||
; run: %fcmp_le_f32(0x0.5, 0x1.0) == 1
|
||||
; run: %fcmp_le_f32(0x1.5, 0x2.9) == 1
|
||||
; run: %fcmp_le_f32(0x1.1p10, 0x1.4p1) == 0
|
||||
; run: %fcmp_le_f32(0x1.4cccccp0, 0x1.8p0) == 1
|
||||
; run: %fcmp_le_f32(0x1.b33334p0, 0x1.99999ap-2) == 0
|
||||
; run: %fcmp_le_f32(0x1.333334p-1, 0x1.666666p1) == 1
|
||||
; run: %fcmp_le_f32(-0x0.5, -0x1.0) == 0
|
||||
; run: %fcmp_le_f32(-0x1.5, -0x2.9) == 0
|
||||
; run: %fcmp_le_f32(-0x1.1p10, -0x1.333334p-1) == 1
|
||||
; run: %fcmp_le_f32(-0x1.99999ap-2, -0x1.4cccccp0) == 0
|
||||
; run: %fcmp_le_f32(-0x1.8p0, -0x1.b33334p0) == 0
|
||||
; run: %fcmp_le_f32(-0x1.4p1, -0x1.666666p1) == 0
|
||||
; run: %fcmp_le_f32(0x0.5, -0x1.0) == 0
|
||||
; run: %fcmp_le_f32(0x1.b33334p0, -0x1.b33334p0) == 0
|
||||
|
||||
; Zeroes
|
||||
; run: %fcmp_le_f32(0x0.0, 0x0.0) == true
|
||||
; run: %fcmp_le_f32(-0x0.0, -0x0.0) == true
|
||||
; run: %fcmp_le_f32(0x0.0, -0x0.0) == true
|
||||
; run: %fcmp_le_f32(-0x0.0, 0x0.0) == true
|
||||
; run: %fcmp_le_f32(0x0.0, 0x0.0) == 1
|
||||
; run: %fcmp_le_f32(-0x0.0, -0x0.0) == 1
|
||||
; run: %fcmp_le_f32(0x0.0, -0x0.0) == 1
|
||||
; run: %fcmp_le_f32(-0x0.0, 0x0.0) == 1
|
||||
|
||||
; Infinities
|
||||
; run: %fcmp_le_f32(Inf, Inf) == true
|
||||
; run: %fcmp_le_f32(-Inf, -Inf) == true
|
||||
; run: %fcmp_le_f32(Inf, -Inf) == false
|
||||
; run: %fcmp_le_f32(-Inf, Inf) == true
|
||||
; run: %fcmp_le_f32(Inf, Inf) == 1
|
||||
; run: %fcmp_le_f32(-Inf, -Inf) == 1
|
||||
; run: %fcmp_le_f32(Inf, -Inf) == 0
|
||||
; run: %fcmp_le_f32(-Inf, Inf) == 1
|
||||
|
||||
; Inf/Zero
|
||||
; run: %fcmp_le_f32(0x0.0, Inf) == true
|
||||
; run: %fcmp_le_f32(-0x0.0, Inf) == true
|
||||
; run: %fcmp_le_f32(0x0.0, -Inf) == false
|
||||
; run: %fcmp_le_f32(-0x0.0, -Inf) == false
|
||||
; run: %fcmp_le_f32(Inf, 0x0.0) == false
|
||||
; run: %fcmp_le_f32(Inf, -0x0.0) == false
|
||||
; run: %fcmp_le_f32(-Inf, 0x0.0) == true
|
||||
; run: %fcmp_le_f32(-Inf, -0x0.0) == true
|
||||
; run: %fcmp_le_f32(0x0.0, Inf) == 1
|
||||
; run: %fcmp_le_f32(-0x0.0, Inf) == 1
|
||||
; run: %fcmp_le_f32(0x0.0, -Inf) == 0
|
||||
; run: %fcmp_le_f32(-0x0.0, -Inf) == 0
|
||||
; run: %fcmp_le_f32(Inf, 0x0.0) == 0
|
||||
; run: %fcmp_le_f32(Inf, -0x0.0) == 0
|
||||
; run: %fcmp_le_f32(-Inf, 0x0.0) == 1
|
||||
; run: %fcmp_le_f32(-Inf, -0x0.0) == 1
|
||||
|
||||
; Epsilon / Max / Min Positive
|
||||
; run: %fcmp_le_f32(0x1.0p-23, 0x1.0p-23) == true
|
||||
; run: %fcmp_le_f32(0x1.fffffep127, 0x1.fffffep127) == true
|
||||
; run: %fcmp_le_f32(0x1.0p-126, 0x1.0p-126) == true
|
||||
; run: %fcmp_le_f32(0x1.0p-23, 0x1.fffffep127) == true
|
||||
; run: %fcmp_le_f32(0x1.0p-23, 0x1.0p-126) == false
|
||||
; run: %fcmp_le_f32(0x1.0p-126, 0x1.fffffep127) == true
|
||||
; run: %fcmp_le_f32(0x1.0p-23, 0x1.0p-23) == 1
|
||||
; run: %fcmp_le_f32(0x1.fffffep127, 0x1.fffffep127) == 1
|
||||
; run: %fcmp_le_f32(0x1.0p-126, 0x1.0p-126) == 1
|
||||
; run: %fcmp_le_f32(0x1.0p-23, 0x1.fffffep127) == 1
|
||||
; run: %fcmp_le_f32(0x1.0p-23, 0x1.0p-126) == 0
|
||||
; run: %fcmp_le_f32(0x1.0p-126, 0x1.fffffep127) == 1
|
||||
|
||||
; Subnormals
|
||||
; run: %fcmp_le_f32(0x0.800002p-126, -0x0.800002p-126) == false
|
||||
; run: %fcmp_le_f32(-0x0.800002p-126, 0x0.800002p-126) == true
|
||||
; run: %fcmp_le_f32(0x0.800002p-126, 0x0.0) == false
|
||||
; run: %fcmp_le_f32(-0x0.800002p-126, 0x0.0) == true
|
||||
; run: %fcmp_le_f32(0x0.800002p-126, -0x0.0) == false
|
||||
; run: %fcmp_le_f32(-0x0.800002p-126, -0x0.0) == true
|
||||
; run: %fcmp_le_f32(0x0.0, 0x0.800002p-126) == true
|
||||
; run: %fcmp_le_f32(0x0.0, -0x0.800002p-126) == false
|
||||
; run: %fcmp_le_f32(-0x0.0, 0x0.800002p-126) == true
|
||||
; run: %fcmp_le_f32(-0x0.0, -0x0.800002p-126) == false
|
||||
; run: %fcmp_le_f32(0x0.800002p-126, -0x0.800002p-126) == 0
|
||||
; run: %fcmp_le_f32(-0x0.800002p-126, 0x0.800002p-126) == 1
|
||||
; run: %fcmp_le_f32(0x0.800002p-126, 0x0.0) == 0
|
||||
; run: %fcmp_le_f32(-0x0.800002p-126, 0x0.0) == 1
|
||||
; run: %fcmp_le_f32(0x0.800002p-126, -0x0.0) == 0
|
||||
; run: %fcmp_le_f32(-0x0.800002p-126, -0x0.0) == 1
|
||||
; run: %fcmp_le_f32(0x0.0, 0x0.800002p-126) == 1
|
||||
; run: %fcmp_le_f32(0x0.0, -0x0.800002p-126) == 0
|
||||
; run: %fcmp_le_f32(-0x0.0, 0x0.800002p-126) == 1
|
||||
; run: %fcmp_le_f32(-0x0.0, -0x0.800002p-126) == 0
|
||||
|
||||
; NaN's
|
||||
; run: %fcmp_le_f32(+NaN, +NaN) == false
|
||||
; run: %fcmp_le_f32(-NaN, -NaN) == false
|
||||
; run: %fcmp_le_f32(+NaN, -NaN) == false
|
||||
; run: %fcmp_le_f32(-NaN, +NaN) == false
|
||||
; run: %fcmp_le_f32(+NaN, +NaN) == 0
|
||||
; run: %fcmp_le_f32(-NaN, -NaN) == 0
|
||||
; run: %fcmp_le_f32(+NaN, -NaN) == 0
|
||||
; run: %fcmp_le_f32(-NaN, +NaN) == 0
|
||||
|
||||
; run: %fcmp_le_f32(+NaN, -0x1.0) == false
|
||||
; run: %fcmp_le_f32(-NaN, -0x1.0) == false
|
||||
; run: %fcmp_le_f32(+NaN, 0x1.0) == false
|
||||
; run: %fcmp_le_f32(-NaN, 0x1.0) == false
|
||||
; run: %fcmp_le_f32(+NaN, -0x0.0) == false
|
||||
; run: %fcmp_le_f32(-NaN, -0x0.0) == false
|
||||
; run: %fcmp_le_f32(+NaN, 0x0.0) == false
|
||||
; run: %fcmp_le_f32(-NaN, 0x0.0) == false
|
||||
; run: %fcmp_le_f32(+NaN, -Inf) == false
|
||||
; run: %fcmp_le_f32(-NaN, -Inf) == false
|
||||
; run: %fcmp_le_f32(+NaN, Inf) == false
|
||||
; run: %fcmp_le_f32(-NaN, Inf) == false
|
||||
; run: %fcmp_le_f32(-0x0.0, +NaN) == false
|
||||
; run: %fcmp_le_f32(-0x0.0, -NaN) == false
|
||||
; run: %fcmp_le_f32(0x0.0, +NaN) == false
|
||||
; run: %fcmp_le_f32(0x0.0, -NaN) == false
|
||||
; run: %fcmp_le_f32(-Inf, +NaN) == false
|
||||
; run: %fcmp_le_f32(-Inf, -NaN) == false
|
||||
; run: %fcmp_le_f32(Inf, +NaN) == false
|
||||
; run: %fcmp_le_f32(Inf, -NaN) == false
|
||||
; run: %fcmp_le_f32(+NaN, -0x1.0) == 0
|
||||
; run: %fcmp_le_f32(-NaN, -0x1.0) == 0
|
||||
; run: %fcmp_le_f32(+NaN, 0x1.0) == 0
|
||||
; run: %fcmp_le_f32(-NaN, 0x1.0) == 0
|
||||
; run: %fcmp_le_f32(+NaN, -0x0.0) == 0
|
||||
; run: %fcmp_le_f32(-NaN, -0x0.0) == 0
|
||||
; run: %fcmp_le_f32(+NaN, 0x0.0) == 0
|
||||
; run: %fcmp_le_f32(-NaN, 0x0.0) == 0
|
||||
; run: %fcmp_le_f32(+NaN, -Inf) == 0
|
||||
; run: %fcmp_le_f32(-NaN, -Inf) == 0
|
||||
; run: %fcmp_le_f32(+NaN, Inf) == 0
|
||||
; run: %fcmp_le_f32(-NaN, Inf) == 0
|
||||
; run: %fcmp_le_f32(-0x0.0, +NaN) == 0
|
||||
; run: %fcmp_le_f32(-0x0.0, -NaN) == 0
|
||||
; run: %fcmp_le_f32(0x0.0, +NaN) == 0
|
||||
; run: %fcmp_le_f32(0x0.0, -NaN) == 0
|
||||
; run: %fcmp_le_f32(-Inf, +NaN) == 0
|
||||
; run: %fcmp_le_f32(-Inf, -NaN) == 0
|
||||
; run: %fcmp_le_f32(Inf, +NaN) == 0
|
||||
; run: %fcmp_le_f32(Inf, -NaN) == 0
|
||||
|
||||
; run: %fcmp_le_f32(+NaN:0x1, +NaN:0x1) == false
|
||||
; run: %fcmp_le_f32(-NaN:0x1, -NaN:0x1) == false
|
||||
; run: %fcmp_le_f32(+NaN:0x1, -NaN:0x1) == false
|
||||
; run: %fcmp_le_f32(-NaN:0x1, +NaN:0x1) == false
|
||||
; run: %fcmp_le_f32(+NaN:0x1, +NaN) == false
|
||||
; run: %fcmp_le_f32(+NaN:0x1, -NaN) == false
|
||||
; run: %fcmp_le_f32(-NaN:0x1, -NaN) == false
|
||||
; run: %fcmp_le_f32(-NaN:0x1, +NaN) == false
|
||||
; run: %fcmp_le_f32(+NaN:0x1, +NaN:0x1) == 0
|
||||
; run: %fcmp_le_f32(-NaN:0x1, -NaN:0x1) == 0
|
||||
; run: %fcmp_le_f32(+NaN:0x1, -NaN:0x1) == 0
|
||||
; run: %fcmp_le_f32(-NaN:0x1, +NaN:0x1) == 0
|
||||
; run: %fcmp_le_f32(+NaN:0x1, +NaN) == 0
|
||||
; run: %fcmp_le_f32(+NaN:0x1, -NaN) == 0
|
||||
; run: %fcmp_le_f32(-NaN:0x1, -NaN) == 0
|
||||
; run: %fcmp_le_f32(-NaN:0x1, +NaN) == 0
|
||||
|
||||
; run: %fcmp_le_f32(+NaN:0x80001, +NaN:0x80001) == false
|
||||
; run: %fcmp_le_f32(-NaN:0x80001, -NaN:0x80001) == false
|
||||
; run: %fcmp_le_f32(+NaN:0x80001, -NaN:0x80001) == false
|
||||
; run: %fcmp_le_f32(-NaN:0x80001, +NaN:0x80001) == false
|
||||
; run: %fcmp_le_f32(+NaN:0x80001, +NaN) == false
|
||||
; run: %fcmp_le_f32(+NaN:0x80001, -NaN) == false
|
||||
; run: %fcmp_le_f32(-NaN:0x80001, -NaN) == false
|
||||
; run: %fcmp_le_f32(-NaN:0x80001, +NaN) == false
|
||||
; run: %fcmp_le_f32(+NaN:0x80001, +NaN:0x80001) == 0
|
||||
; run: %fcmp_le_f32(-NaN:0x80001, -NaN:0x80001) == 0
|
||||
; run: %fcmp_le_f32(+NaN:0x80001, -NaN:0x80001) == 0
|
||||
; run: %fcmp_le_f32(-NaN:0x80001, +NaN:0x80001) == 0
|
||||
; run: %fcmp_le_f32(+NaN:0x80001, +NaN) == 0
|
||||
; run: %fcmp_le_f32(+NaN:0x80001, -NaN) == 0
|
||||
; run: %fcmp_le_f32(-NaN:0x80001, -NaN) == 0
|
||||
; run: %fcmp_le_f32(-NaN:0x80001, +NaN) == 0
|
||||
|
||||
; sNaN's
|
||||
; run: %fcmp_le_f32(+sNaN:0x1, +sNaN:0x1) == false
|
||||
; run: %fcmp_le_f32(-sNaN:0x1, -sNaN:0x1) == false
|
||||
; run: %fcmp_le_f32(+sNaN:0x1, -sNaN:0x1) == false
|
||||
; run: %fcmp_le_f32(-sNaN:0x1, +sNaN:0x1) == false
|
||||
; run: %fcmp_le_f32(+sNaN:0x1, +sNaN:0x1) == 0
|
||||
; run: %fcmp_le_f32(-sNaN:0x1, -sNaN:0x1) == 0
|
||||
; run: %fcmp_le_f32(+sNaN:0x1, -sNaN:0x1) == 0
|
||||
; run: %fcmp_le_f32(-sNaN:0x1, +sNaN:0x1) == 0
|
||||
|
||||
; run: %fcmp_le_f32(+sNaN:0x1, -0x1.0) == false
|
||||
; run: %fcmp_le_f32(-sNaN:0x1, -0x1.0) == false
|
||||
; run: %fcmp_le_f32(+sNaN:0x1, 0x1.0) == false
|
||||
; run: %fcmp_le_f32(-sNaN:0x1, 0x1.0) == false
|
||||
; run: %fcmp_le_f32(+sNaN:0x1, -0x0.0) == false
|
||||
; run: %fcmp_le_f32(-sNaN:0x1, -0x0.0) == false
|
||||
; run: %fcmp_le_f32(+sNaN:0x1, 0x0.0) == false
|
||||
; run: %fcmp_le_f32(-sNaN:0x1, 0x0.0) == false
|
||||
; run: %fcmp_le_f32(+sNaN:0x1, -Inf) == false
|
||||
; run: %fcmp_le_f32(-sNaN:0x1, -Inf) == false
|
||||
; run: %fcmp_le_f32(+sNaN:0x1, Inf) == false
|
||||
; run: %fcmp_le_f32(-sNaN:0x1, Inf) == false
|
||||
; run: %fcmp_le_f32(-0x0.0, +sNaN:0x1) == false
|
||||
; run: %fcmp_le_f32(-0x0.0, -sNaN:0x1) == false
|
||||
; run: %fcmp_le_f32(0x0.0, +sNaN:0x1) == false
|
||||
; run: %fcmp_le_f32(0x0.0, -sNaN:0x1) == false
|
||||
; run: %fcmp_le_f32(-Inf, +sNaN:0x1) == false
|
||||
; run: %fcmp_le_f32(-Inf, -sNaN:0x1) == false
|
||||
; run: %fcmp_le_f32(Inf, +sNaN:0x1) == false
|
||||
; run: %fcmp_le_f32(Inf, -sNaN:0x1) == false
|
||||
; run: %fcmp_le_f32(+sNaN:0x1, -0x1.0) == 0
|
||||
; run: %fcmp_le_f32(-sNaN:0x1, -0x1.0) == 0
|
||||
; run: %fcmp_le_f32(+sNaN:0x1, 0x1.0) == 0
|
||||
; run: %fcmp_le_f32(-sNaN:0x1, 0x1.0) == 0
|
||||
; run: %fcmp_le_f32(+sNaN:0x1, -0x0.0) == 0
|
||||
; run: %fcmp_le_f32(-sNaN:0x1, -0x0.0) == 0
|
||||
; run: %fcmp_le_f32(+sNaN:0x1, 0x0.0) == 0
|
||||
; run: %fcmp_le_f32(-sNaN:0x1, 0x0.0) == 0
|
||||
; run: %fcmp_le_f32(+sNaN:0x1, -Inf) == 0
|
||||
; run: %fcmp_le_f32(-sNaN:0x1, -Inf) == 0
|
||||
; run: %fcmp_le_f32(+sNaN:0x1, Inf) == 0
|
||||
; run: %fcmp_le_f32(-sNaN:0x1, Inf) == 0
|
||||
; run: %fcmp_le_f32(-0x0.0, +sNaN:0x1) == 0
|
||||
; run: %fcmp_le_f32(-0x0.0, -sNaN:0x1) == 0
|
||||
; run: %fcmp_le_f32(0x0.0, +sNaN:0x1) == 0
|
||||
; run: %fcmp_le_f32(0x0.0, -sNaN:0x1) == 0
|
||||
; run: %fcmp_le_f32(-Inf, +sNaN:0x1) == 0
|
||||
; run: %fcmp_le_f32(-Inf, -sNaN:0x1) == 0
|
||||
; run: %fcmp_le_f32(Inf, +sNaN:0x1) == 0
|
||||
; run: %fcmp_le_f32(Inf, -sNaN:0x1) == 0
|
||||
|
||||
; run: %fcmp_le_f32(+sNaN:0x1, +NaN:0x1) == false
|
||||
; run: %fcmp_le_f32(-sNaN:0x1, -NaN:0x1) == false
|
||||
; run: %fcmp_le_f32(+sNaN:0x1, -NaN:0x1) == false
|
||||
; run: %fcmp_le_f32(-sNaN:0x1, +NaN:0x1) == false
|
||||
; run: %fcmp_le_f32(+NaN:0x1, +sNaN:0x1) == false
|
||||
; run: %fcmp_le_f32(-NaN:0x1, -sNaN:0x1) == false
|
||||
; run: %fcmp_le_f32(-NaN:0x1, +sNaN:0x1) == false
|
||||
; run: %fcmp_le_f32(+NaN:0x1, -sNaN:0x1) == false
|
||||
; run: %fcmp_le_f32(+sNaN:0x1, +NaN:0x1) == 0
|
||||
; run: %fcmp_le_f32(-sNaN:0x1, -NaN:0x1) == 0
|
||||
; run: %fcmp_le_f32(+sNaN:0x1, -NaN:0x1) == 0
|
||||
; run: %fcmp_le_f32(-sNaN:0x1, +NaN:0x1) == 0
|
||||
; run: %fcmp_le_f32(+NaN:0x1, +sNaN:0x1) == 0
|
||||
; run: %fcmp_le_f32(-NaN:0x1, -sNaN:0x1) == 0
|
||||
; run: %fcmp_le_f32(-NaN:0x1, +sNaN:0x1) == 0
|
||||
; run: %fcmp_le_f32(+NaN:0x1, -sNaN:0x1) == 0
|
||||
|
||||
; run: %fcmp_le_f32(+sNaN:0x80001, +sNaN:0x80001) == false
|
||||
; run: %fcmp_le_f32(-sNaN:0x80001, -sNaN:0x80001) == false
|
||||
; run: %fcmp_le_f32(+sNaN:0x80001, -sNaN:0x80001) == false
|
||||
; run: %fcmp_le_f32(-sNaN:0x80001, +sNaN:0x80001) == false
|
||||
; run: %fcmp_le_f32(+sNaN:0x80001, +sNaN:0x1) == false
|
||||
; run: %fcmp_le_f32(+sNaN:0x80001, -sNaN:0x1) == false
|
||||
; run: %fcmp_le_f32(-sNaN:0x80001, -sNaN:0x1) == false
|
||||
; run: %fcmp_le_f32(-sNaN:0x80001, +sNaN:0x1) == false
|
||||
; run: %fcmp_le_f32(+sNaN:0x80001, +sNaN:0x80001) == 0
|
||||
; run: %fcmp_le_f32(-sNaN:0x80001, -sNaN:0x80001) == 0
|
||||
; run: %fcmp_le_f32(+sNaN:0x80001, -sNaN:0x80001) == 0
|
||||
; run: %fcmp_le_f32(-sNaN:0x80001, +sNaN:0x80001) == 0
|
||||
; run: %fcmp_le_f32(+sNaN:0x80001, +sNaN:0x1) == 0
|
||||
; run: %fcmp_le_f32(+sNaN:0x80001, -sNaN:0x1) == 0
|
||||
; run: %fcmp_le_f32(-sNaN:0x80001, -sNaN:0x1) == 0
|
||||
; run: %fcmp_le_f32(-sNaN:0x80001, +sNaN:0x1) == 0
|
||||
|
||||
|
||||
function %fcmp_le_f64(f64, f64) -> b1 {
|
||||
function %fcmp_le_f64(f64, f64) -> i8 {
|
||||
block0(v0: f64, v1: f64):
|
||||
v2 = fcmp le v0, v1
|
||||
return v2
|
||||
}
|
||||
; run: %fcmp_le_f64(0x0.5, 0x0.5) == true
|
||||
; run: %fcmp_le_f64(0x1.0, 0x1.0) == true
|
||||
; run: %fcmp_le_f64(-0x1.0, 0x1.0) == true
|
||||
; run: %fcmp_le_f64(0x1.0, -0x1.0) == false
|
||||
; run: %fcmp_le_f64(0x0.5, 0x1.0) == true
|
||||
; run: %fcmp_le_f64(0x1.5, 0x2.9) == true
|
||||
; run: %fcmp_le_f64(0x1.1p10, 0x1.4p1) == false
|
||||
; run: %fcmp_le_f64(0x1.4cccccccccccdp0, 0x1.8p0) == true
|
||||
; run: %fcmp_le_f64(0x1.b333333333333p0, 0x1.999999999999ap-2) == false
|
||||
; run: %fcmp_le_f64(0x1.3333333333333p-1, 0x1.6666666666666p1) == true
|
||||
; run: %fcmp_le_f64(-0x0.5, -0x1.0) == false
|
||||
; run: %fcmp_le_f64(-0x1.5, -0x2.9) == false
|
||||
; run: %fcmp_le_f64(-0x1.1p10, -0x1.3333333333333p-1) == true
|
||||
; run: %fcmp_le_f64(-0x1.999999999999ap-2, -0x1.4cccccccccccdp0) == false
|
||||
; run: %fcmp_le_f64(-0x1.8p0, -0x1.b333333333333p0) == false
|
||||
; run: %fcmp_le_f64(-0x1.4p1, -0x1.6666666666666p1) == false
|
||||
; run: %fcmp_le_f64(0x0.5, -0x1.0) == false
|
||||
; run: %fcmp_le_f64(0x1.b333333333333p0, -0x1.b333333333333p0) == false
|
||||
; run: %fcmp_le_f64(0x0.5, 0x0.5) == 1
|
||||
; run: %fcmp_le_f64(0x1.0, 0x1.0) == 1
|
||||
; run: %fcmp_le_f64(-0x1.0, 0x1.0) == 1
|
||||
; run: %fcmp_le_f64(0x1.0, -0x1.0) == 0
|
||||
; run: %fcmp_le_f64(0x0.5, 0x1.0) == 1
|
||||
; run: %fcmp_le_f64(0x1.5, 0x2.9) == 1
|
||||
; run: %fcmp_le_f64(0x1.1p10, 0x1.4p1) == 0
|
||||
; run: %fcmp_le_f64(0x1.4cccccccccccdp0, 0x1.8p0) == 1
|
||||
; run: %fcmp_le_f64(0x1.b333333333333p0, 0x1.999999999999ap-2) == 0
|
||||
; run: %fcmp_le_f64(0x1.3333333333333p-1, 0x1.6666666666666p1) == 1
|
||||
; run: %fcmp_le_f64(-0x0.5, -0x1.0) == 0
|
||||
; run: %fcmp_le_f64(-0x1.5, -0x2.9) == 0
|
||||
; run: %fcmp_le_f64(-0x1.1p10, -0x1.3333333333333p-1) == 1
|
||||
; run: %fcmp_le_f64(-0x1.999999999999ap-2, -0x1.4cccccccccccdp0) == 0
|
||||
; run: %fcmp_le_f64(-0x1.8p0, -0x1.b333333333333p0) == 0
|
||||
; run: %fcmp_le_f64(-0x1.4p1, -0x1.6666666666666p1) == 0
|
||||
; run: %fcmp_le_f64(0x0.5, -0x1.0) == 0
|
||||
; run: %fcmp_le_f64(0x1.b333333333333p0, -0x1.b333333333333p0) == 0
|
||||
|
||||
|
||||
; Zeroes
|
||||
; run: %fcmp_le_f64(0x0.0, 0x0.0) == true
|
||||
; run: %fcmp_le_f64(-0x0.0, -0x0.0) == true
|
||||
; run: %fcmp_le_f64(0x0.0, -0x0.0) == true
|
||||
; run: %fcmp_le_f64(-0x0.0, 0x0.0) == true
|
||||
; run: %fcmp_le_f64(0x0.0, 0x0.0) == 1
|
||||
; run: %fcmp_le_f64(-0x0.0, -0x0.0) == 1
|
||||
; run: %fcmp_le_f64(0x0.0, -0x0.0) == 1
|
||||
; run: %fcmp_le_f64(-0x0.0, 0x0.0) == 1
|
||||
|
||||
; Infinities
|
||||
; run: %fcmp_le_f64(Inf, Inf) == true
|
||||
; run: %fcmp_le_f64(-Inf, -Inf) == true
|
||||
; run: %fcmp_le_f64(Inf, -Inf) == false
|
||||
; run: %fcmp_le_f64(-Inf, Inf) == true
|
||||
; run: %fcmp_le_f64(Inf, Inf) == 1
|
||||
; run: %fcmp_le_f64(-Inf, -Inf) == 1
|
||||
; run: %fcmp_le_f64(Inf, -Inf) == 0
|
||||
; run: %fcmp_le_f64(-Inf, Inf) == 1
|
||||
|
||||
; Inf/Zero
|
||||
; run: %fcmp_le_f64(0x0.0, Inf) == true
|
||||
; run: %fcmp_le_f64(-0x0.0, Inf) == true
|
||||
; run: %fcmp_le_f64(0x0.0, -Inf) == false
|
||||
; run: %fcmp_le_f64(-0x0.0, -Inf) == false
|
||||
; run: %fcmp_le_f64(Inf, 0x0.0) == false
|
||||
; run: %fcmp_le_f64(Inf, -0x0.0) == false
|
||||
; run: %fcmp_le_f64(-Inf, 0x0.0) == true
|
||||
; run: %fcmp_le_f64(-Inf, -0x0.0) == true
|
||||
; run: %fcmp_le_f64(0x0.0, Inf) == 1
|
||||
; run: %fcmp_le_f64(-0x0.0, Inf) == 1
|
||||
; run: %fcmp_le_f64(0x0.0, -Inf) == 0
|
||||
; run: %fcmp_le_f64(-0x0.0, -Inf) == 0
|
||||
; run: %fcmp_le_f64(Inf, 0x0.0) == 0
|
||||
; run: %fcmp_le_f64(Inf, -0x0.0) == 0
|
||||
; run: %fcmp_le_f64(-Inf, 0x0.0) == 1
|
||||
; run: %fcmp_le_f64(-Inf, -0x0.0) == 1
|
||||
|
||||
; Epsilon / Max / Min Positive
|
||||
; run: %fcmp_le_f64(0x1.0p-52, 0x1.0p-52) == true
|
||||
; run: %fcmp_le_f64(0x1.fffffffffffffp1023, 0x1.fffffffffffffp1023) == true
|
||||
; run: %fcmp_le_f64(0x1.0p-1022, 0x1.0p-1022) == true
|
||||
; run: %fcmp_le_f64(0x1.0p-52, 0x1.fffffffffffffp1023) == true
|
||||
; run: %fcmp_le_f64(0x1.0p-52, 0x1.0p-1022) == false
|
||||
; run: %fcmp_le_f64(0x1.0p-1022, 0x1.fffffffffffffp1023) == true
|
||||
; run: %fcmp_le_f64(0x1.0p-52, 0x1.0p-52) == 1
|
||||
; run: %fcmp_le_f64(0x1.fffffffffffffp1023, 0x1.fffffffffffffp1023) == 1
|
||||
; run: %fcmp_le_f64(0x1.0p-1022, 0x1.0p-1022) == 1
|
||||
; run: %fcmp_le_f64(0x1.0p-52, 0x1.fffffffffffffp1023) == 1
|
||||
; run: %fcmp_le_f64(0x1.0p-52, 0x1.0p-1022) == 0
|
||||
; run: %fcmp_le_f64(0x1.0p-1022, 0x1.fffffffffffffp1023) == 1
|
||||
|
||||
; Subnormals
|
||||
; run: %fcmp_le_f64(0x0.8p-1022, -0x0.8p-1022) == false
|
||||
; run: %fcmp_le_f64(-0x0.8p-1022, 0x0.8p-1022) == true
|
||||
; run: %fcmp_le_f64(0x0.8p-1022, 0x0.0) == false
|
||||
; run: %fcmp_le_f64(-0x0.8p-1022, 0x0.0) == true
|
||||
; run: %fcmp_le_f64(0x0.8p-1022, -0x0.0) == false
|
||||
; run: %fcmp_le_f64(-0x0.8p-1022, -0x0.0) == true
|
||||
; run: %fcmp_le_f64(0x0.0, 0x0.8p-1022) == true
|
||||
; run: %fcmp_le_f64(0x0.0, -0x0.8p-1022) == false
|
||||
; run: %fcmp_le_f64(-0x0.0, 0x0.8p-1022) == true
|
||||
; run: %fcmp_le_f64(-0x0.0, -0x0.8p-1022) == false
|
||||
; run: %fcmp_le_f64(0x0.8p-1022, -0x0.8p-1022) == 0
|
||||
; run: %fcmp_le_f64(-0x0.8p-1022, 0x0.8p-1022) == 1
|
||||
; run: %fcmp_le_f64(0x0.8p-1022, 0x0.0) == 0
|
||||
; run: %fcmp_le_f64(-0x0.8p-1022, 0x0.0) == 1
|
||||
; run: %fcmp_le_f64(0x0.8p-1022, -0x0.0) == 0
|
||||
; run: %fcmp_le_f64(-0x0.8p-1022, -0x0.0) == 1
|
||||
; run: %fcmp_le_f64(0x0.0, 0x0.8p-1022) == 1
|
||||
; run: %fcmp_le_f64(0x0.0, -0x0.8p-1022) == 0
|
||||
; run: %fcmp_le_f64(-0x0.0, 0x0.8p-1022) == 1
|
||||
; run: %fcmp_le_f64(-0x0.0, -0x0.8p-1022) == 0
|
||||
|
||||
; NaN's
|
||||
; run: %fcmp_le_f64(+NaN, +NaN) == false
|
||||
; run: %fcmp_le_f64(-NaN, -NaN) == false
|
||||
; run: %fcmp_le_f64(+NaN, -NaN) == false
|
||||
; run: %fcmp_le_f64(-NaN, +NaN) == false
|
||||
; run: %fcmp_le_f64(+NaN, +NaN) == 0
|
||||
; run: %fcmp_le_f64(-NaN, -NaN) == 0
|
||||
; run: %fcmp_le_f64(+NaN, -NaN) == 0
|
||||
; run: %fcmp_le_f64(-NaN, +NaN) == 0
|
||||
|
||||
; run: %fcmp_le_f64(+NaN, -0x1.0) == false
|
||||
; run: %fcmp_le_f64(-NaN, -0x1.0) == false
|
||||
; run: %fcmp_le_f64(+NaN, 0x1.0) == false
|
||||
; run: %fcmp_le_f64(-NaN, 0x1.0) == false
|
||||
; run: %fcmp_le_f64(+NaN, -0x0.0) == false
|
||||
; run: %fcmp_le_f64(-NaN, -0x0.0) == false
|
||||
; run: %fcmp_le_f64(+NaN, 0x0.0) == false
|
||||
; run: %fcmp_le_f64(-NaN, 0x0.0) == false
|
||||
; run: %fcmp_le_f64(+NaN, -Inf) == false
|
||||
; run: %fcmp_le_f64(-NaN, -Inf) == false
|
||||
; run: %fcmp_le_f64(+NaN, Inf) == false
|
||||
; run: %fcmp_le_f64(-NaN, Inf) == false
|
||||
; run: %fcmp_le_f64(-0x0.0, +NaN) == false
|
||||
; run: %fcmp_le_f64(-0x0.0, -NaN) == false
|
||||
; run: %fcmp_le_f64(0x0.0, +NaN) == false
|
||||
; run: %fcmp_le_f64(0x0.0, -NaN) == false
|
||||
; run: %fcmp_le_f64(-Inf, +NaN) == false
|
||||
; run: %fcmp_le_f64(-Inf, -NaN) == false
|
||||
; run: %fcmp_le_f64(Inf, +NaN) == false
|
||||
; run: %fcmp_le_f64(Inf, -NaN) == false
|
||||
; run: %fcmp_le_f64(+NaN, -0x1.0) == 0
|
||||
; run: %fcmp_le_f64(-NaN, -0x1.0) == 0
|
||||
; run: %fcmp_le_f64(+NaN, 0x1.0) == 0
|
||||
; run: %fcmp_le_f64(-NaN, 0x1.0) == 0
|
||||
; run: %fcmp_le_f64(+NaN, -0x0.0) == 0
|
||||
; run: %fcmp_le_f64(-NaN, -0x0.0) == 0
|
||||
; run: %fcmp_le_f64(+NaN, 0x0.0) == 0
|
||||
; run: %fcmp_le_f64(-NaN, 0x0.0) == 0
|
||||
; run: %fcmp_le_f64(+NaN, -Inf) == 0
|
||||
; run: %fcmp_le_f64(-NaN, -Inf) == 0
|
||||
; run: %fcmp_le_f64(+NaN, Inf) == 0
|
||||
; run: %fcmp_le_f64(-NaN, Inf) == 0
|
||||
; run: %fcmp_le_f64(-0x0.0, +NaN) == 0
|
||||
; run: %fcmp_le_f64(-0x0.0, -NaN) == 0
|
||||
; run: %fcmp_le_f64(0x0.0, +NaN) == 0
|
||||
; run: %fcmp_le_f64(0x0.0, -NaN) == 0
|
||||
; run: %fcmp_le_f64(-Inf, +NaN) == 0
|
||||
; run: %fcmp_le_f64(-Inf, -NaN) == 0
|
||||
; run: %fcmp_le_f64(Inf, +NaN) == 0
|
||||
; run: %fcmp_le_f64(Inf, -NaN) == 0
|
||||
|
||||
; run: %fcmp_le_f64(+NaN:0x1, +NaN:0x1) == false
|
||||
; run: %fcmp_le_f64(-NaN:0x1, -NaN:0x1) == false
|
||||
; run: %fcmp_le_f64(+NaN:0x1, -NaN:0x1) == false
|
||||
; run: %fcmp_le_f64(-NaN:0x1, +NaN:0x1) == false
|
||||
; run: %fcmp_le_f64(+NaN:0x1, +NaN) == false
|
||||
; run: %fcmp_le_f64(+NaN:0x1, -NaN) == false
|
||||
; run: %fcmp_le_f64(-NaN:0x1, -NaN) == false
|
||||
; run: %fcmp_le_f64(-NaN:0x1, +NaN) == false
|
||||
; run: %fcmp_le_f64(+NaN:0x1, +NaN:0x1) == 0
|
||||
; run: %fcmp_le_f64(-NaN:0x1, -NaN:0x1) == 0
|
||||
; run: %fcmp_le_f64(+NaN:0x1, -NaN:0x1) == 0
|
||||
; run: %fcmp_le_f64(-NaN:0x1, +NaN:0x1) == 0
|
||||
; run: %fcmp_le_f64(+NaN:0x1, +NaN) == 0
|
||||
; run: %fcmp_le_f64(+NaN:0x1, -NaN) == 0
|
||||
; run: %fcmp_le_f64(-NaN:0x1, -NaN) == 0
|
||||
; run: %fcmp_le_f64(-NaN:0x1, +NaN) == 0
|
||||
|
||||
; run: %fcmp_le_f64(+NaN:0x800000000001, +NaN:0x800000000001) == false
|
||||
; run: %fcmp_le_f64(-NaN:0x800000000001, -NaN:0x800000000001) == false
|
||||
; run: %fcmp_le_f64(+NaN:0x800000000001, -NaN:0x800000000001) == false
|
||||
; run: %fcmp_le_f64(-NaN:0x800000000001, +NaN:0x800000000001) == false
|
||||
; run: %fcmp_le_f64(+NaN:0x800000000001, +NaN) == false
|
||||
; run: %fcmp_le_f64(+NaN:0x800000000001, -NaN) == false
|
||||
; run: %fcmp_le_f64(-NaN:0x800000000001, -NaN) == false
|
||||
; run: %fcmp_le_f64(-NaN:0x800000000001, +NaN) == false
|
||||
; run: %fcmp_le_f64(+NaN:0x800000000001, +NaN:0x800000000001) == 0
|
||||
; run: %fcmp_le_f64(-NaN:0x800000000001, -NaN:0x800000000001) == 0
|
||||
; run: %fcmp_le_f64(+NaN:0x800000000001, -NaN:0x800000000001) == 0
|
||||
; run: %fcmp_le_f64(-NaN:0x800000000001, +NaN:0x800000000001) == 0
|
||||
; run: %fcmp_le_f64(+NaN:0x800000000001, +NaN) == 0
|
||||
; run: %fcmp_le_f64(+NaN:0x800000000001, -NaN) == 0
|
||||
; run: %fcmp_le_f64(-NaN:0x800000000001, -NaN) == 0
|
||||
; run: %fcmp_le_f64(-NaN:0x800000000001, +NaN) == 0
|
||||
|
||||
; sNaN's
|
||||
; run: %fcmp_le_f64(+sNaN:0x1, +sNaN:0x1) == false
|
||||
; run: %fcmp_le_f64(-sNaN:0x1, -sNaN:0x1) == false
|
||||
; run: %fcmp_le_f64(+sNaN:0x1, -sNaN:0x1) == false
|
||||
; run: %fcmp_le_f64(-sNaN:0x1, +sNaN:0x1) == false
|
||||
; run: %fcmp_le_f64(+sNaN:0x1, +sNaN:0x1) == 0
|
||||
; run: %fcmp_le_f64(-sNaN:0x1, -sNaN:0x1) == 0
|
||||
; run: %fcmp_le_f64(+sNaN:0x1, -sNaN:0x1) == 0
|
||||
; run: %fcmp_le_f64(-sNaN:0x1, +sNaN:0x1) == 0
|
||||
|
||||
; run: %fcmp_le_f64(+sNaN:0x1, -0x1.0) == false
|
||||
; run: %fcmp_le_f64(-sNaN:0x1, -0x1.0) == false
|
||||
; run: %fcmp_le_f64(+sNaN:0x1, 0x1.0) == false
|
||||
; run: %fcmp_le_f64(-sNaN:0x1, 0x1.0) == false
|
||||
; run: %fcmp_le_f64(+sNaN:0x1, -0x0.0) == false
|
||||
; run: %fcmp_le_f64(-sNaN:0x1, -0x0.0) == false
|
||||
; run: %fcmp_le_f64(+sNaN:0x1, 0x0.0) == false
|
||||
; run: %fcmp_le_f64(-sNaN:0x1, 0x0.0) == false
|
||||
; run: %fcmp_le_f64(+sNaN:0x1, -Inf) == false
|
||||
; run: %fcmp_le_f64(-sNaN:0x1, -Inf) == false
|
||||
; run: %fcmp_le_f64(+sNaN:0x1, Inf) == false
|
||||
; run: %fcmp_le_f64(-sNaN:0x1, Inf) == false
|
||||
; run: %fcmp_le_f64(-0x0.0, +sNaN:0x1) == false
|
||||
; run: %fcmp_le_f64(-0x0.0, -sNaN:0x1) == false
|
||||
; run: %fcmp_le_f64(0x0.0, +sNaN:0x1) == false
|
||||
; run: %fcmp_le_f64(0x0.0, -sNaN:0x1) == false
|
||||
; run: %fcmp_le_f64(-Inf, +sNaN:0x1) == false
|
||||
; run: %fcmp_le_f64(-Inf, -sNaN:0x1) == false
|
||||
; run: %fcmp_le_f64(Inf, +sNaN:0x1) == false
|
||||
; run: %fcmp_le_f64(Inf, -sNaN:0x1) == false
|
||||
; run: %fcmp_le_f64(+sNaN:0x1, -0x1.0) == 0
|
||||
; run: %fcmp_le_f64(-sNaN:0x1, -0x1.0) == 0
|
||||
; run: %fcmp_le_f64(+sNaN:0x1, 0x1.0) == 0
|
||||
; run: %fcmp_le_f64(-sNaN:0x1, 0x1.0) == 0
|
||||
; run: %fcmp_le_f64(+sNaN:0x1, -0x0.0) == 0
|
||||
; run: %fcmp_le_f64(-sNaN:0x1, -0x0.0) == 0
|
||||
; run: %fcmp_le_f64(+sNaN:0x1, 0x0.0) == 0
|
||||
; run: %fcmp_le_f64(-sNaN:0x1, 0x0.0) == 0
|
||||
; run: %fcmp_le_f64(+sNaN:0x1, -Inf) == 0
|
||||
; run: %fcmp_le_f64(-sNaN:0x1, -Inf) == 0
|
||||
; run: %fcmp_le_f64(+sNaN:0x1, Inf) == 0
|
||||
; run: %fcmp_le_f64(-sNaN:0x1, Inf) == 0
|
||||
; run: %fcmp_le_f64(-0x0.0, +sNaN:0x1) == 0
|
||||
; run: %fcmp_le_f64(-0x0.0, -sNaN:0x1) == 0
|
||||
; run: %fcmp_le_f64(0x0.0, +sNaN:0x1) == 0
|
||||
; run: %fcmp_le_f64(0x0.0, -sNaN:0x1) == 0
|
||||
; run: %fcmp_le_f64(-Inf, +sNaN:0x1) == 0
|
||||
; run: %fcmp_le_f64(-Inf, -sNaN:0x1) == 0
|
||||
; run: %fcmp_le_f64(Inf, +sNaN:0x1) == 0
|
||||
; run: %fcmp_le_f64(Inf, -sNaN:0x1) == 0
|
||||
|
||||
; run: %fcmp_le_f64(+sNaN:0x1, +NaN:0x1) == false
|
||||
; run: %fcmp_le_f64(-sNaN:0x1, -NaN:0x1) == false
|
||||
; run: %fcmp_le_f64(+sNaN:0x1, -NaN:0x1) == false
|
||||
; run: %fcmp_le_f64(-sNaN:0x1, +NaN:0x1) == false
|
||||
; run: %fcmp_le_f64(+NaN:0x1, +sNaN:0x1) == false
|
||||
; run: %fcmp_le_f64(-NaN:0x1, -sNaN:0x1) == false
|
||||
; run: %fcmp_le_f64(-NaN:0x1, +sNaN:0x1) == false
|
||||
; run: %fcmp_le_f64(+NaN:0x1, -sNaN:0x1) == false
|
||||
; run: %fcmp_le_f64(+sNaN:0x1, +NaN:0x1) == 0
|
||||
; run: %fcmp_le_f64(-sNaN:0x1, -NaN:0x1) == 0
|
||||
; run: %fcmp_le_f64(+sNaN:0x1, -NaN:0x1) == 0
|
||||
; run: %fcmp_le_f64(-sNaN:0x1, +NaN:0x1) == 0
|
||||
; run: %fcmp_le_f64(+NaN:0x1, +sNaN:0x1) == 0
|
||||
; run: %fcmp_le_f64(-NaN:0x1, -sNaN:0x1) == 0
|
||||
; run: %fcmp_le_f64(-NaN:0x1, +sNaN:0x1) == 0
|
||||
; run: %fcmp_le_f64(+NaN:0x1, -sNaN:0x1) == 0
|
||||
|
||||
; run: %fcmp_le_f64(+sNaN:0x800000000001, +sNaN:0x800000000001) == false
|
||||
; run: %fcmp_le_f64(-sNaN:0x800000000001, -sNaN:0x800000000001) == false
|
||||
; run: %fcmp_le_f64(+sNaN:0x800000000001, -sNaN:0x800000000001) == false
|
||||
; run: %fcmp_le_f64(-sNaN:0x800000000001, +sNaN:0x800000000001) == false
|
||||
; run: %fcmp_le_f64(+sNaN:0x800000000001, +sNaN:0x1) == false
|
||||
; run: %fcmp_le_f64(+sNaN:0x800000000001, -sNaN:0x1) == false
|
||||
; run: %fcmp_le_f64(-sNaN:0x800000000001, -sNaN:0x1) == false
|
||||
; run: %fcmp_le_f64(-sNaN:0x800000000001, +sNaN:0x1) == false
|
||||
; run: %fcmp_le_f64(+sNaN:0x800000000001, +sNaN:0x800000000001) == 0
|
||||
; run: %fcmp_le_f64(-sNaN:0x800000000001, -sNaN:0x800000000001) == 0
|
||||
; run: %fcmp_le_f64(+sNaN:0x800000000001, -sNaN:0x800000000001) == 0
|
||||
; run: %fcmp_le_f64(-sNaN:0x800000000001, +sNaN:0x800000000001) == 0
|
||||
; run: %fcmp_le_f64(+sNaN:0x800000000001, +sNaN:0x1) == 0
|
||||
; run: %fcmp_le_f64(+sNaN:0x800000000001, -sNaN:0x1) == 0
|
||||
; run: %fcmp_le_f64(-sNaN:0x800000000001, -sNaN:0x1) == 0
|
||||
; run: %fcmp_le_f64(-sNaN:0x800000000001, +sNaN:0x1) == 0
|
||||
|
||||
@@ -5,316 +5,316 @@ target aarch64
|
||||
target s390x
|
||||
target riscv64
|
||||
|
||||
function %fcmp_lt_f32(f32, f32) -> b1 {
|
||||
function %fcmp_lt_f32(f32, f32) -> i8 {
|
||||
block0(v0: f32, v1: f32):
|
||||
v2 = fcmp lt v0, v1
|
||||
return v2
|
||||
}
|
||||
; run: %fcmp_lt_f32(0x0.5, 0x0.5) == false
|
||||
; run: %fcmp_lt_f32(0x1.0, 0x1.0) == false
|
||||
; run: %fcmp_lt_f32(-0x1.0, 0x1.0) == true
|
||||
; run: %fcmp_lt_f32(0x1.0, -0x1.0) == false
|
||||
; run: %fcmp_lt_f32(0x0.5, 0x1.0) == true
|
||||
; run: %fcmp_lt_f32(0x1.5, 0x2.9) == true
|
||||
; run: %fcmp_lt_f32(0x1.1p10, 0x1.4p1) == false
|
||||
; run: %fcmp_lt_f32(0x1.4cccccp0, 0x1.8p0) == true
|
||||
; run: %fcmp_lt_f32(0x1.b33334p0, 0x1.99999ap-2) == false
|
||||
; run: %fcmp_lt_f32(0x1.333334p-1, 0x1.666666p1) == true
|
||||
; run: %fcmp_lt_f32(-0x0.5, -0x1.0) == false
|
||||
; run: %fcmp_lt_f32(-0x1.5, -0x2.9) == false
|
||||
; run: %fcmp_lt_f32(-0x1.1p10, -0x1.333334p-1) == true
|
||||
; run: %fcmp_lt_f32(-0x1.99999ap-2, -0x1.4cccccp0) == false
|
||||
; run: %fcmp_lt_f32(-0x1.8p0, -0x1.b33334p0) == false
|
||||
; run: %fcmp_lt_f32(-0x1.4p1, -0x1.666666p1) == false
|
||||
; run: %fcmp_lt_f32(0x0.5, -0x1.0) == false
|
||||
; run: %fcmp_lt_f32(0x1.b33334p0, -0x1.b33334p0) == false
|
||||
; run: %fcmp_lt_f32(0x0.5, 0x0.5) == 0
|
||||
; run: %fcmp_lt_f32(0x1.0, 0x1.0) == 0
|
||||
; run: %fcmp_lt_f32(-0x1.0, 0x1.0) == 1
|
||||
; run: %fcmp_lt_f32(0x1.0, -0x1.0) == 0
|
||||
; run: %fcmp_lt_f32(0x0.5, 0x1.0) == 1
|
||||
; run: %fcmp_lt_f32(0x1.5, 0x2.9) == 1
|
||||
; run: %fcmp_lt_f32(0x1.1p10, 0x1.4p1) == 0
|
||||
; run: %fcmp_lt_f32(0x1.4cccccp0, 0x1.8p0) == 1
|
||||
; run: %fcmp_lt_f32(0x1.b33334p0, 0x1.99999ap-2) == 0
|
||||
; run: %fcmp_lt_f32(0x1.333334p-1, 0x1.666666p1) == 1
|
||||
; run: %fcmp_lt_f32(-0x0.5, -0x1.0) == 0
|
||||
; run: %fcmp_lt_f32(-0x1.5, -0x2.9) == 0
|
||||
; run: %fcmp_lt_f32(-0x1.1p10, -0x1.333334p-1) == 1
|
||||
; run: %fcmp_lt_f32(-0x1.99999ap-2, -0x1.4cccccp0) == 0
|
||||
; run: %fcmp_lt_f32(-0x1.8p0, -0x1.b33334p0) == 0
|
||||
; run: %fcmp_lt_f32(-0x1.4p1, -0x1.666666p1) == 0
|
||||
; run: %fcmp_lt_f32(0x0.5, -0x1.0) == 0
|
||||
; run: %fcmp_lt_f32(0x1.b33334p0, -0x1.b33334p0) == 0
|
||||
|
||||
; Zeroes
|
||||
; run: %fcmp_lt_f32(0x0.0, 0x0.0) == false
|
||||
; run: %fcmp_lt_f32(-0x0.0, -0x0.0) == false
|
||||
; run: %fcmp_lt_f32(0x0.0, -0x0.0) == false
|
||||
; run: %fcmp_lt_f32(-0x0.0, 0x0.0) == false
|
||||
; run: %fcmp_lt_f32(0x0.0, 0x0.0) == 0
|
||||
; run: %fcmp_lt_f32(-0x0.0, -0x0.0) == 0
|
||||
; run: %fcmp_lt_f32(0x0.0, -0x0.0) == 0
|
||||
; run: %fcmp_lt_f32(-0x0.0, 0x0.0) == 0
|
||||
|
||||
; Infinities
|
||||
; run: %fcmp_lt_f32(Inf, Inf) == false
|
||||
; run: %fcmp_lt_f32(-Inf, -Inf) == false
|
||||
; run: %fcmp_lt_f32(Inf, -Inf) == false
|
||||
; run: %fcmp_lt_f32(-Inf, Inf) == true
|
||||
; run: %fcmp_lt_f32(Inf, Inf) == 0
|
||||
; run: %fcmp_lt_f32(-Inf, -Inf) == 0
|
||||
; run: %fcmp_lt_f32(Inf, -Inf) == 0
|
||||
; run: %fcmp_lt_f32(-Inf, Inf) == 1
|
||||
|
||||
; Inf/Zero
|
||||
; run: %fcmp_lt_f32(0x0.0, Inf) == true
|
||||
; run: %fcmp_lt_f32(-0x0.0, Inf) == true
|
||||
; run: %fcmp_lt_f32(0x0.0, -Inf) == false
|
||||
; run: %fcmp_lt_f32(-0x0.0, -Inf) == false
|
||||
; run: %fcmp_lt_f32(Inf, 0x0.0) == false
|
||||
; run: %fcmp_lt_f32(Inf, -0x0.0) == false
|
||||
; run: %fcmp_lt_f32(-Inf, 0x0.0) == true
|
||||
; run: %fcmp_lt_f32(-Inf, -0x0.0) == true
|
||||
; run: %fcmp_lt_f32(0x0.0, Inf) == 1
|
||||
; run: %fcmp_lt_f32(-0x0.0, Inf) == 1
|
||||
; run: %fcmp_lt_f32(0x0.0, -Inf) == 0
|
||||
; run: %fcmp_lt_f32(-0x0.0, -Inf) == 0
|
||||
; run: %fcmp_lt_f32(Inf, 0x0.0) == 0
|
||||
; run: %fcmp_lt_f32(Inf, -0x0.0) == 0
|
||||
; run: %fcmp_lt_f32(-Inf, 0x0.0) == 1
|
||||
; run: %fcmp_lt_f32(-Inf, -0x0.0) == 1
|
||||
|
||||
; Epsilon / Max / Min Positive
|
||||
; run: %fcmp_lt_f32(0x1.0p-23, 0x1.0p-23) == false
|
||||
; run: %fcmp_lt_f32(0x1.fffffep127, 0x1.fffffep127) == false
|
||||
; run: %fcmp_lt_f32(0x1.0p-126, 0x1.0p-126) == false
|
||||
; run: %fcmp_lt_f32(0x1.0p-23, 0x1.fffffep127) == true
|
||||
; run: %fcmp_lt_f32(0x1.0p-23, 0x1.0p-126) == false
|
||||
; run: %fcmp_lt_f32(0x1.0p-126, 0x1.fffffep127) == true
|
||||
; run: %fcmp_lt_f32(0x1.0p-23, 0x1.0p-23) == 0
|
||||
; run: %fcmp_lt_f32(0x1.fffffep127, 0x1.fffffep127) == 0
|
||||
; run: %fcmp_lt_f32(0x1.0p-126, 0x1.0p-126) == 0
|
||||
; run: %fcmp_lt_f32(0x1.0p-23, 0x1.fffffep127) == 1
|
||||
; run: %fcmp_lt_f32(0x1.0p-23, 0x1.0p-126) == 0
|
||||
; run: %fcmp_lt_f32(0x1.0p-126, 0x1.fffffep127) == 1
|
||||
|
||||
; Subnormals
|
||||
; run: %fcmp_lt_f32(0x0.800002p-126, -0x0.800002p-126) == false
|
||||
; run: %fcmp_lt_f32(-0x0.800002p-126, 0x0.800002p-126) == true
|
||||
; run: %fcmp_lt_f32(0x0.800002p-126, 0x0.0) == false
|
||||
; run: %fcmp_lt_f32(-0x0.800002p-126, 0x0.0) == true
|
||||
; run: %fcmp_lt_f32(0x0.800002p-126, -0x0.0) == false
|
||||
; run: %fcmp_lt_f32(-0x0.800002p-126, -0x0.0) == true
|
||||
; run: %fcmp_lt_f32(0x0.0, 0x0.800002p-126) == true
|
||||
; run: %fcmp_lt_f32(0x0.0, -0x0.800002p-126) == false
|
||||
; run: %fcmp_lt_f32(-0x0.0, 0x0.800002p-126) == true
|
||||
; run: %fcmp_lt_f32(-0x0.0, -0x0.800002p-126) == false
|
||||
; run: %fcmp_lt_f32(0x0.800002p-126, -0x0.800002p-126) == 0
|
||||
; run: %fcmp_lt_f32(-0x0.800002p-126, 0x0.800002p-126) == 1
|
||||
; run: %fcmp_lt_f32(0x0.800002p-126, 0x0.0) == 0
|
||||
; run: %fcmp_lt_f32(-0x0.800002p-126, 0x0.0) == 1
|
||||
; run: %fcmp_lt_f32(0x0.800002p-126, -0x0.0) == 0
|
||||
; run: %fcmp_lt_f32(-0x0.800002p-126, -0x0.0) == 1
|
||||
; run: %fcmp_lt_f32(0x0.0, 0x0.800002p-126) == 1
|
||||
; run: %fcmp_lt_f32(0x0.0, -0x0.800002p-126) == 0
|
||||
; run: %fcmp_lt_f32(-0x0.0, 0x0.800002p-126) == 1
|
||||
; run: %fcmp_lt_f32(-0x0.0, -0x0.800002p-126) == 0
|
||||
|
||||
; NaN's
|
||||
; run: %fcmp_lt_f32(+NaN, +NaN) == false
|
||||
; run: %fcmp_lt_f32(-NaN, -NaN) == false
|
||||
; run: %fcmp_lt_f32(+NaN, -NaN) == false
|
||||
; run: %fcmp_lt_f32(-NaN, +NaN) == false
|
||||
; run: %fcmp_lt_f32(+NaN, +NaN) == 0
|
||||
; run: %fcmp_lt_f32(-NaN, -NaN) == 0
|
||||
; run: %fcmp_lt_f32(+NaN, -NaN) == 0
|
||||
; run: %fcmp_lt_f32(-NaN, +NaN) == 0
|
||||
|
||||
; run: %fcmp_lt_f32(+NaN, -0x1.0) == false
|
||||
; run: %fcmp_lt_f32(-NaN, -0x1.0) == false
|
||||
; run: %fcmp_lt_f32(+NaN, 0x1.0) == false
|
||||
; run: %fcmp_lt_f32(-NaN, 0x1.0) == false
|
||||
; run: %fcmp_lt_f32(+NaN, -0x0.0) == false
|
||||
; run: %fcmp_lt_f32(-NaN, -0x0.0) == false
|
||||
; run: %fcmp_lt_f32(+NaN, 0x0.0) == false
|
||||
; run: %fcmp_lt_f32(-NaN, 0x0.0) == false
|
||||
; run: %fcmp_lt_f32(+NaN, -Inf) == false
|
||||
; run: %fcmp_lt_f32(-NaN, -Inf) == false
|
||||
; run: %fcmp_lt_f32(+NaN, Inf) == false
|
||||
; run: %fcmp_lt_f32(-NaN, Inf) == false
|
||||
; run: %fcmp_lt_f32(-0x0.0, +NaN) == false
|
||||
; run: %fcmp_lt_f32(-0x0.0, -NaN) == false
|
||||
; run: %fcmp_lt_f32(0x0.0, +NaN) == false
|
||||
; run: %fcmp_lt_f32(0x0.0, -NaN) == false
|
||||
; run: %fcmp_lt_f32(-Inf, +NaN) == false
|
||||
; run: %fcmp_lt_f32(-Inf, -NaN) == false
|
||||
; run: %fcmp_lt_f32(Inf, +NaN) == false
|
||||
; run: %fcmp_lt_f32(Inf, -NaN) == false
|
||||
; run: %fcmp_lt_f32(+NaN, -0x1.0) == 0
|
||||
; run: %fcmp_lt_f32(-NaN, -0x1.0) == 0
|
||||
; run: %fcmp_lt_f32(+NaN, 0x1.0) == 0
|
||||
; run: %fcmp_lt_f32(-NaN, 0x1.0) == 0
|
||||
; run: %fcmp_lt_f32(+NaN, -0x0.0) == 0
|
||||
; run: %fcmp_lt_f32(-NaN, -0x0.0) == 0
|
||||
; run: %fcmp_lt_f32(+NaN, 0x0.0) == 0
|
||||
; run: %fcmp_lt_f32(-NaN, 0x0.0) == 0
|
||||
; run: %fcmp_lt_f32(+NaN, -Inf) == 0
|
||||
; run: %fcmp_lt_f32(-NaN, -Inf) == 0
|
||||
; run: %fcmp_lt_f32(+NaN, Inf) == 0
|
||||
; run: %fcmp_lt_f32(-NaN, Inf) == 0
|
||||
; run: %fcmp_lt_f32(-0x0.0, +NaN) == 0
|
||||
; run: %fcmp_lt_f32(-0x0.0, -NaN) == 0
|
||||
; run: %fcmp_lt_f32(0x0.0, +NaN) == 0
|
||||
; run: %fcmp_lt_f32(0x0.0, -NaN) == 0
|
||||
; run: %fcmp_lt_f32(-Inf, +NaN) == 0
|
||||
; run: %fcmp_lt_f32(-Inf, -NaN) == 0
|
||||
; run: %fcmp_lt_f32(Inf, +NaN) == 0
|
||||
; run: %fcmp_lt_f32(Inf, -NaN) == 0
|
||||
|
||||
; run: %fcmp_lt_f32(+NaN:0x1, +NaN:0x1) == false
|
||||
; run: %fcmp_lt_f32(-NaN:0x1, -NaN:0x1) == false
|
||||
; run: %fcmp_lt_f32(+NaN:0x1, -NaN:0x1) == false
|
||||
; run: %fcmp_lt_f32(-NaN:0x1, +NaN:0x1) == false
|
||||
; run: %fcmp_lt_f32(+NaN:0x1, +NaN) == false
|
||||
; run: %fcmp_lt_f32(+NaN:0x1, -NaN) == false
|
||||
; run: %fcmp_lt_f32(-NaN:0x1, -NaN) == false
|
||||
; run: %fcmp_lt_f32(-NaN:0x1, +NaN) == false
|
||||
; run: %fcmp_lt_f32(+NaN:0x1, +NaN:0x1) == 0
|
||||
; run: %fcmp_lt_f32(-NaN:0x1, -NaN:0x1) == 0
|
||||
; run: %fcmp_lt_f32(+NaN:0x1, -NaN:0x1) == 0
|
||||
; run: %fcmp_lt_f32(-NaN:0x1, +NaN:0x1) == 0
|
||||
; run: %fcmp_lt_f32(+NaN:0x1, +NaN) == 0
|
||||
; run: %fcmp_lt_f32(+NaN:0x1, -NaN) == 0
|
||||
; run: %fcmp_lt_f32(-NaN:0x1, -NaN) == 0
|
||||
; run: %fcmp_lt_f32(-NaN:0x1, +NaN) == 0
|
||||
|
||||
; run: %fcmp_lt_f32(+NaN:0x80001, +NaN:0x80001) == false
|
||||
; run: %fcmp_lt_f32(-NaN:0x80001, -NaN:0x80001) == false
|
||||
; run: %fcmp_lt_f32(+NaN:0x80001, -NaN:0x80001) == false
|
||||
; run: %fcmp_lt_f32(-NaN:0x80001, +NaN:0x80001) == false
|
||||
; run: %fcmp_lt_f32(+NaN:0x80001, +NaN) == false
|
||||
; run: %fcmp_lt_f32(+NaN:0x80001, -NaN) == false
|
||||
; run: %fcmp_lt_f32(-NaN:0x80001, -NaN) == false
|
||||
; run: %fcmp_lt_f32(-NaN:0x80001, +NaN) == false
|
||||
; run: %fcmp_lt_f32(+NaN:0x80001, +NaN:0x80001) == 0
|
||||
; run: %fcmp_lt_f32(-NaN:0x80001, -NaN:0x80001) == 0
|
||||
; run: %fcmp_lt_f32(+NaN:0x80001, -NaN:0x80001) == 0
|
||||
; run: %fcmp_lt_f32(-NaN:0x80001, +NaN:0x80001) == 0
|
||||
; run: %fcmp_lt_f32(+NaN:0x80001, +NaN) == 0
|
||||
; run: %fcmp_lt_f32(+NaN:0x80001, -NaN) == 0
|
||||
; run: %fcmp_lt_f32(-NaN:0x80001, -NaN) == 0
|
||||
; run: %fcmp_lt_f32(-NaN:0x80001, +NaN) == 0
|
||||
|
||||
; sNaN's
|
||||
; run: %fcmp_lt_f32(+sNaN:0x1, +sNaN:0x1) == false
|
||||
; run: %fcmp_lt_f32(-sNaN:0x1, -sNaN:0x1) == false
|
||||
; run: %fcmp_lt_f32(+sNaN:0x1, -sNaN:0x1) == false
|
||||
; run: %fcmp_lt_f32(-sNaN:0x1, +sNaN:0x1) == false
|
||||
; run: %fcmp_lt_f32(+sNaN:0x1, +sNaN:0x1) == 0
|
||||
; run: %fcmp_lt_f32(-sNaN:0x1, -sNaN:0x1) == 0
|
||||
; run: %fcmp_lt_f32(+sNaN:0x1, -sNaN:0x1) == 0
|
||||
; run: %fcmp_lt_f32(-sNaN:0x1, +sNaN:0x1) == 0
|
||||
|
||||
; run: %fcmp_lt_f32(+sNaN:0x1, -0x1.0) == false
|
||||
; run: %fcmp_lt_f32(-sNaN:0x1, -0x1.0) == false
|
||||
; run: %fcmp_lt_f32(+sNaN:0x1, 0x1.0) == false
|
||||
; run: %fcmp_lt_f32(-sNaN:0x1, 0x1.0) == false
|
||||
; run: %fcmp_lt_f32(+sNaN:0x1, -0x0.0) == false
|
||||
; run: %fcmp_lt_f32(-sNaN:0x1, -0x0.0) == false
|
||||
; run: %fcmp_lt_f32(+sNaN:0x1, 0x0.0) == false
|
||||
; run: %fcmp_lt_f32(-sNaN:0x1, 0x0.0) == false
|
||||
; run: %fcmp_lt_f32(+sNaN:0x1, -Inf) == false
|
||||
; run: %fcmp_lt_f32(-sNaN:0x1, -Inf) == false
|
||||
; run: %fcmp_lt_f32(+sNaN:0x1, Inf) == false
|
||||
; run: %fcmp_lt_f32(-sNaN:0x1, Inf) == false
|
||||
; run: %fcmp_lt_f32(-0x0.0, +sNaN:0x1) == false
|
||||
; run: %fcmp_lt_f32(-0x0.0, -sNaN:0x1) == false
|
||||
; run: %fcmp_lt_f32(0x0.0, +sNaN:0x1) == false
|
||||
; run: %fcmp_lt_f32(0x0.0, -sNaN:0x1) == false
|
||||
; run: %fcmp_lt_f32(-Inf, +sNaN:0x1) == false
|
||||
; run: %fcmp_lt_f32(-Inf, -sNaN:0x1) == false
|
||||
; run: %fcmp_lt_f32(Inf, +sNaN:0x1) == false
|
||||
; run: %fcmp_lt_f32(Inf, -sNaN:0x1) == false
|
||||
; run: %fcmp_lt_f32(+sNaN:0x1, -0x1.0) == 0
|
||||
; run: %fcmp_lt_f32(-sNaN:0x1, -0x1.0) == 0
|
||||
; run: %fcmp_lt_f32(+sNaN:0x1, 0x1.0) == 0
|
||||
; run: %fcmp_lt_f32(-sNaN:0x1, 0x1.0) == 0
|
||||
; run: %fcmp_lt_f32(+sNaN:0x1, -0x0.0) == 0
|
||||
; run: %fcmp_lt_f32(-sNaN:0x1, -0x0.0) == 0
|
||||
; run: %fcmp_lt_f32(+sNaN:0x1, 0x0.0) == 0
|
||||
; run: %fcmp_lt_f32(-sNaN:0x1, 0x0.0) == 0
|
||||
; run: %fcmp_lt_f32(+sNaN:0x1, -Inf) == 0
|
||||
; run: %fcmp_lt_f32(-sNaN:0x1, -Inf) == 0
|
||||
; run: %fcmp_lt_f32(+sNaN:0x1, Inf) == 0
|
||||
; run: %fcmp_lt_f32(-sNaN:0x1, Inf) == 0
|
||||
; run: %fcmp_lt_f32(-0x0.0, +sNaN:0x1) == 0
|
||||
; run: %fcmp_lt_f32(-0x0.0, -sNaN:0x1) == 0
|
||||
; run: %fcmp_lt_f32(0x0.0, +sNaN:0x1) == 0
|
||||
; run: %fcmp_lt_f32(0x0.0, -sNaN:0x1) == 0
|
||||
; run: %fcmp_lt_f32(-Inf, +sNaN:0x1) == 0
|
||||
; run: %fcmp_lt_f32(-Inf, -sNaN:0x1) == 0
|
||||
; run: %fcmp_lt_f32(Inf, +sNaN:0x1) == 0
|
||||
; run: %fcmp_lt_f32(Inf, -sNaN:0x1) == 0
|
||||
|
||||
; run: %fcmp_lt_f32(+sNaN:0x1, +NaN:0x1) == false
|
||||
; run: %fcmp_lt_f32(-sNaN:0x1, -NaN:0x1) == false
|
||||
; run: %fcmp_lt_f32(+sNaN:0x1, -NaN:0x1) == false
|
||||
; run: %fcmp_lt_f32(-sNaN:0x1, +NaN:0x1) == false
|
||||
; run: %fcmp_lt_f32(+NaN:0x1, +sNaN:0x1) == false
|
||||
; run: %fcmp_lt_f32(-NaN:0x1, -sNaN:0x1) == false
|
||||
; run: %fcmp_lt_f32(-NaN:0x1, +sNaN:0x1) == false
|
||||
; run: %fcmp_lt_f32(+NaN:0x1, -sNaN:0x1) == false
|
||||
; run: %fcmp_lt_f32(+sNaN:0x1, +NaN:0x1) == 0
|
||||
; run: %fcmp_lt_f32(-sNaN:0x1, -NaN:0x1) == 0
|
||||
; run: %fcmp_lt_f32(+sNaN:0x1, -NaN:0x1) == 0
|
||||
; run: %fcmp_lt_f32(-sNaN:0x1, +NaN:0x1) == 0
|
||||
; run: %fcmp_lt_f32(+NaN:0x1, +sNaN:0x1) == 0
|
||||
; run: %fcmp_lt_f32(-NaN:0x1, -sNaN:0x1) == 0
|
||||
; run: %fcmp_lt_f32(-NaN:0x1, +sNaN:0x1) == 0
|
||||
; run: %fcmp_lt_f32(+NaN:0x1, -sNaN:0x1) == 0
|
||||
|
||||
; run: %fcmp_lt_f32(+sNaN:0x80001, +sNaN:0x80001) == false
|
||||
; run: %fcmp_lt_f32(-sNaN:0x80001, -sNaN:0x80001) == false
|
||||
; run: %fcmp_lt_f32(+sNaN:0x80001, -sNaN:0x80001) == false
|
||||
; run: %fcmp_lt_f32(-sNaN:0x80001, +sNaN:0x80001) == false
|
||||
; run: %fcmp_lt_f32(+sNaN:0x80001, +sNaN:0x1) == false
|
||||
; run: %fcmp_lt_f32(+sNaN:0x80001, -sNaN:0x1) == false
|
||||
; run: %fcmp_lt_f32(-sNaN:0x80001, -sNaN:0x1) == false
|
||||
; run: %fcmp_lt_f32(-sNaN:0x80001, +sNaN:0x1) == false
|
||||
; run: %fcmp_lt_f32(+sNaN:0x80001, +sNaN:0x80001) == 0
|
||||
; run: %fcmp_lt_f32(-sNaN:0x80001, -sNaN:0x80001) == 0
|
||||
; run: %fcmp_lt_f32(+sNaN:0x80001, -sNaN:0x80001) == 0
|
||||
; run: %fcmp_lt_f32(-sNaN:0x80001, +sNaN:0x80001) == 0
|
||||
; run: %fcmp_lt_f32(+sNaN:0x80001, +sNaN:0x1) == 0
|
||||
; run: %fcmp_lt_f32(+sNaN:0x80001, -sNaN:0x1) == 0
|
||||
; run: %fcmp_lt_f32(-sNaN:0x80001, -sNaN:0x1) == 0
|
||||
; run: %fcmp_lt_f32(-sNaN:0x80001, +sNaN:0x1) == 0
|
||||
|
||||
|
||||
function %fcmp_lt_f64(f64, f64) -> b1 {
|
||||
function %fcmp_lt_f64(f64, f64) -> i8 {
|
||||
block0(v0: f64, v1: f64):
|
||||
v2 = fcmp lt v0, v1
|
||||
return v2
|
||||
}
|
||||
; run: %fcmp_lt_f64(0x0.5, 0x0.5) == false
|
||||
; run: %fcmp_lt_f64(0x1.0, 0x1.0) == false
|
||||
; run: %fcmp_lt_f64(-0x1.0, 0x1.0) == true
|
||||
; run: %fcmp_lt_f64(0x1.0, -0x1.0) == false
|
||||
; run: %fcmp_lt_f64(0x0.5, 0x1.0) == true
|
||||
; run: %fcmp_lt_f64(0x1.5, 0x2.9) == true
|
||||
; run: %fcmp_lt_f64(0x1.1p10, 0x1.4p1) == false
|
||||
; run: %fcmp_lt_f64(0x1.4cccccccccccdp0, 0x1.8p0) == true
|
||||
; run: %fcmp_lt_f64(0x1.b333333333333p0, 0x1.999999999999ap-2) == false
|
||||
; run: %fcmp_lt_f64(0x1.3333333333333p-1, 0x1.6666666666666p1) == true
|
||||
; run: %fcmp_lt_f64(-0x0.5, -0x1.0) == false
|
||||
; run: %fcmp_lt_f64(-0x1.5, -0x2.9) == false
|
||||
; run: %fcmp_lt_f64(-0x1.1p10, -0x1.3333333333333p-1) == true
|
||||
; run: %fcmp_lt_f64(-0x1.999999999999ap-2, -0x1.4cccccccccccdp0) == false
|
||||
; run: %fcmp_lt_f64(-0x1.8p0, -0x1.b333333333333p0) == false
|
||||
; run: %fcmp_lt_f64(-0x1.4p1, -0x1.6666666666666p1) == false
|
||||
; run: %fcmp_lt_f64(0x0.5, -0x1.0) == false
|
||||
; run: %fcmp_lt_f64(0x1.b333333333333p0, -0x1.b333333333333p0) == false
|
||||
; run: %fcmp_lt_f64(0x0.5, 0x0.5) == 0
|
||||
; run: %fcmp_lt_f64(0x1.0, 0x1.0) == 0
|
||||
; run: %fcmp_lt_f64(-0x1.0, 0x1.0) == 1
|
||||
; run: %fcmp_lt_f64(0x1.0, -0x1.0) == 0
|
||||
; run: %fcmp_lt_f64(0x0.5, 0x1.0) == 1
|
||||
; run: %fcmp_lt_f64(0x1.5, 0x2.9) == 1
|
||||
; run: %fcmp_lt_f64(0x1.1p10, 0x1.4p1) == 0
|
||||
; run: %fcmp_lt_f64(0x1.4cccccccccccdp0, 0x1.8p0) == 1
|
||||
; run: %fcmp_lt_f64(0x1.b333333333333p0, 0x1.999999999999ap-2) == 0
|
||||
; run: %fcmp_lt_f64(0x1.3333333333333p-1, 0x1.6666666666666p1) == 1
|
||||
; run: %fcmp_lt_f64(-0x0.5, -0x1.0) == 0
|
||||
; run: %fcmp_lt_f64(-0x1.5, -0x2.9) == 0
|
||||
; run: %fcmp_lt_f64(-0x1.1p10, -0x1.3333333333333p-1) == 1
|
||||
; run: %fcmp_lt_f64(-0x1.999999999999ap-2, -0x1.4cccccccccccdp0) == 0
|
||||
; run: %fcmp_lt_f64(-0x1.8p0, -0x1.b333333333333p0) == 0
|
||||
; run: %fcmp_lt_f64(-0x1.4p1, -0x1.6666666666666p1) == 0
|
||||
; run: %fcmp_lt_f64(0x0.5, -0x1.0) == 0
|
||||
; run: %fcmp_lt_f64(0x1.b333333333333p0, -0x1.b333333333333p0) == 0
|
||||
|
||||
|
||||
; Zeroes
|
||||
; run: %fcmp_lt_f64(0x0.0, 0x0.0) == false
|
||||
; run: %fcmp_lt_f64(-0x0.0, -0x0.0) == false
|
||||
; run: %fcmp_lt_f64(0x0.0, -0x0.0) == false
|
||||
; run: %fcmp_lt_f64(-0x0.0, 0x0.0) == false
|
||||
; run: %fcmp_lt_f64(0x0.0, 0x0.0) == 0
|
||||
; run: %fcmp_lt_f64(-0x0.0, -0x0.0) == 0
|
||||
; run: %fcmp_lt_f64(0x0.0, -0x0.0) == 0
|
||||
; run: %fcmp_lt_f64(-0x0.0, 0x0.0) == 0
|
||||
|
||||
; Infinities
|
||||
; run: %fcmp_lt_f64(Inf, Inf) == false
|
||||
; run: %fcmp_lt_f64(-Inf, -Inf) == false
|
||||
; run: %fcmp_lt_f64(Inf, -Inf) == false
|
||||
; run: %fcmp_lt_f64(-Inf, Inf) == true
|
||||
; run: %fcmp_lt_f64(Inf, Inf) == 0
|
||||
; run: %fcmp_lt_f64(-Inf, -Inf) == 0
|
||||
; run: %fcmp_lt_f64(Inf, -Inf) == 0
|
||||
; run: %fcmp_lt_f64(-Inf, Inf) == 1
|
||||
|
||||
; Inf/Zero
|
||||
; run: %fcmp_lt_f64(0x0.0, Inf) == true
|
||||
; run: %fcmp_lt_f64(-0x0.0, Inf) == true
|
||||
; run: %fcmp_lt_f64(0x0.0, -Inf) == false
|
||||
; run: %fcmp_lt_f64(-0x0.0, -Inf) == false
|
||||
; run: %fcmp_lt_f64(Inf, 0x0.0) == false
|
||||
; run: %fcmp_lt_f64(Inf, -0x0.0) == false
|
||||
; run: %fcmp_lt_f64(-Inf, 0x0.0) == true
|
||||
; run: %fcmp_lt_f64(-Inf, -0x0.0) == true
|
||||
; run: %fcmp_lt_f64(0x0.0, Inf) == 1
|
||||
; run: %fcmp_lt_f64(-0x0.0, Inf) == 1
|
||||
; run: %fcmp_lt_f64(0x0.0, -Inf) == 0
|
||||
; run: %fcmp_lt_f64(-0x0.0, -Inf) == 0
|
||||
; run: %fcmp_lt_f64(Inf, 0x0.0) == 0
|
||||
; run: %fcmp_lt_f64(Inf, -0x0.0) == 0
|
||||
; run: %fcmp_lt_f64(-Inf, 0x0.0) == 1
|
||||
; run: %fcmp_lt_f64(-Inf, -0x0.0) == 1
|
||||
|
||||
; Epsilon / Max / Min Positive
|
||||
; run: %fcmp_lt_f64(0x1.0p-52, 0x1.0p-52) == false
|
||||
; run: %fcmp_lt_f64(0x1.fffffffffffffp1023, 0x1.fffffffffffffp1023) == false
|
||||
; run: %fcmp_lt_f64(0x1.0p-1022, 0x1.0p-1022) == false
|
||||
; run: %fcmp_lt_f64(0x1.0p-52, 0x1.fffffffffffffp1023) == true
|
||||
; run: %fcmp_lt_f64(0x1.0p-52, 0x1.0p-1022) == false
|
||||
; run: %fcmp_lt_f64(0x1.0p-1022, 0x1.fffffffffffffp1023) == true
|
||||
; run: %fcmp_lt_f64(0x1.0p-52, 0x1.0p-52) == 0
|
||||
; run: %fcmp_lt_f64(0x1.fffffffffffffp1023, 0x1.fffffffffffffp1023) == 0
|
||||
; run: %fcmp_lt_f64(0x1.0p-1022, 0x1.0p-1022) == 0
|
||||
; run: %fcmp_lt_f64(0x1.0p-52, 0x1.fffffffffffffp1023) == 1
|
||||
; run: %fcmp_lt_f64(0x1.0p-52, 0x1.0p-1022) == 0
|
||||
; run: %fcmp_lt_f64(0x1.0p-1022, 0x1.fffffffffffffp1023) == 1
|
||||
|
||||
; Subnormals
|
||||
; run: %fcmp_lt_f64(0x0.8p-1022, -0x0.8p-1022) == false
|
||||
; run: %fcmp_lt_f64(-0x0.8p-1022, 0x0.8p-1022) == true
|
||||
; run: %fcmp_lt_f64(0x0.8p-1022, 0x0.0) == false
|
||||
; run: %fcmp_lt_f64(-0x0.8p-1022, 0x0.0) == true
|
||||
; run: %fcmp_lt_f64(0x0.8p-1022, -0x0.0) == false
|
||||
; run: %fcmp_lt_f64(-0x0.8p-1022, -0x0.0) == true
|
||||
; run: %fcmp_lt_f64(0x0.0, 0x0.8p-1022) == true
|
||||
; run: %fcmp_lt_f64(0x0.0, -0x0.8p-1022) == false
|
||||
; run: %fcmp_lt_f64(-0x0.0, 0x0.8p-1022) == true
|
||||
; run: %fcmp_lt_f64(-0x0.0, -0x0.8p-1022) == false
|
||||
; run: %fcmp_lt_f64(0x0.8p-1022, -0x0.8p-1022) == 0
|
||||
; run: %fcmp_lt_f64(-0x0.8p-1022, 0x0.8p-1022) == 1
|
||||
; run: %fcmp_lt_f64(0x0.8p-1022, 0x0.0) == 0
|
||||
; run: %fcmp_lt_f64(-0x0.8p-1022, 0x0.0) == 1
|
||||
; run: %fcmp_lt_f64(0x0.8p-1022, -0x0.0) == 0
|
||||
; run: %fcmp_lt_f64(-0x0.8p-1022, -0x0.0) == 1
|
||||
; run: %fcmp_lt_f64(0x0.0, 0x0.8p-1022) == 1
|
||||
; run: %fcmp_lt_f64(0x0.0, -0x0.8p-1022) == 0
|
||||
; run: %fcmp_lt_f64(-0x0.0, 0x0.8p-1022) == 1
|
||||
; run: %fcmp_lt_f64(-0x0.0, -0x0.8p-1022) == 0
|
||||
|
||||
; NaN's
|
||||
; run: %fcmp_lt_f64(+NaN, +NaN) == false
|
||||
; run: %fcmp_lt_f64(-NaN, -NaN) == false
|
||||
; run: %fcmp_lt_f64(+NaN, -NaN) == false
|
||||
; run: %fcmp_lt_f64(-NaN, +NaN) == false
|
||||
; run: %fcmp_lt_f64(+NaN, +NaN) == 0
|
||||
; run: %fcmp_lt_f64(-NaN, -NaN) == 0
|
||||
; run: %fcmp_lt_f64(+NaN, -NaN) == 0
|
||||
; run: %fcmp_lt_f64(-NaN, +NaN) == 0
|
||||
|
||||
; run: %fcmp_lt_f64(+NaN, -0x1.0) == false
|
||||
; run: %fcmp_lt_f64(-NaN, -0x1.0) == false
|
||||
; run: %fcmp_lt_f64(+NaN, 0x1.0) == false
|
||||
; run: %fcmp_lt_f64(-NaN, 0x1.0) == false
|
||||
; run: %fcmp_lt_f64(+NaN, -0x0.0) == false
|
||||
; run: %fcmp_lt_f64(-NaN, -0x0.0) == false
|
||||
; run: %fcmp_lt_f64(+NaN, 0x0.0) == false
|
||||
; run: %fcmp_lt_f64(-NaN, 0x0.0) == false
|
||||
; run: %fcmp_lt_f64(+NaN, -Inf) == false
|
||||
; run: %fcmp_lt_f64(-NaN, -Inf) == false
|
||||
; run: %fcmp_lt_f64(+NaN, Inf) == false
|
||||
; run: %fcmp_lt_f64(-NaN, Inf) == false
|
||||
; run: %fcmp_lt_f64(-0x0.0, +NaN) == false
|
||||
; run: %fcmp_lt_f64(-0x0.0, -NaN) == false
|
||||
; run: %fcmp_lt_f64(0x0.0, +NaN) == false
|
||||
; run: %fcmp_lt_f64(0x0.0, -NaN) == false
|
||||
; run: %fcmp_lt_f64(-Inf, +NaN) == false
|
||||
; run: %fcmp_lt_f64(-Inf, -NaN) == false
|
||||
; run: %fcmp_lt_f64(Inf, +NaN) == false
|
||||
; run: %fcmp_lt_f64(Inf, -NaN) == false
|
||||
; run: %fcmp_lt_f64(+NaN, -0x1.0) == 0
|
||||
; run: %fcmp_lt_f64(-NaN, -0x1.0) == 0
|
||||
; run: %fcmp_lt_f64(+NaN, 0x1.0) == 0
|
||||
; run: %fcmp_lt_f64(-NaN, 0x1.0) == 0
|
||||
; run: %fcmp_lt_f64(+NaN, -0x0.0) == 0
|
||||
; run: %fcmp_lt_f64(-NaN, -0x0.0) == 0
|
||||
; run: %fcmp_lt_f64(+NaN, 0x0.0) == 0
|
||||
; run: %fcmp_lt_f64(-NaN, 0x0.0) == 0
|
||||
; run: %fcmp_lt_f64(+NaN, -Inf) == 0
|
||||
; run: %fcmp_lt_f64(-NaN, -Inf) == 0
|
||||
; run: %fcmp_lt_f64(+NaN, Inf) == 0
|
||||
; run: %fcmp_lt_f64(-NaN, Inf) == 0
|
||||
; run: %fcmp_lt_f64(-0x0.0, +NaN) == 0
|
||||
; run: %fcmp_lt_f64(-0x0.0, -NaN) == 0
|
||||
; run: %fcmp_lt_f64(0x0.0, +NaN) == 0
|
||||
; run: %fcmp_lt_f64(0x0.0, -NaN) == 0
|
||||
; run: %fcmp_lt_f64(-Inf, +NaN) == 0
|
||||
; run: %fcmp_lt_f64(-Inf, -NaN) == 0
|
||||
; run: %fcmp_lt_f64(Inf, +NaN) == 0
|
||||
; run: %fcmp_lt_f64(Inf, -NaN) == 0
|
||||
|
||||
; run: %fcmp_lt_f64(+NaN:0x1, +NaN:0x1) == false
|
||||
; run: %fcmp_lt_f64(-NaN:0x1, -NaN:0x1) == false
|
||||
; run: %fcmp_lt_f64(+NaN:0x1, -NaN:0x1) == false
|
||||
; run: %fcmp_lt_f64(-NaN:0x1, +NaN:0x1) == false
|
||||
; run: %fcmp_lt_f64(+NaN:0x1, +NaN) == false
|
||||
; run: %fcmp_lt_f64(+NaN:0x1, -NaN) == false
|
||||
; run: %fcmp_lt_f64(-NaN:0x1, -NaN) == false
|
||||
; run: %fcmp_lt_f64(-NaN:0x1, +NaN) == false
|
||||
; run: %fcmp_lt_f64(+NaN:0x1, +NaN:0x1) == 0
|
||||
; run: %fcmp_lt_f64(-NaN:0x1, -NaN:0x1) == 0
|
||||
; run: %fcmp_lt_f64(+NaN:0x1, -NaN:0x1) == 0
|
||||
; run: %fcmp_lt_f64(-NaN:0x1, +NaN:0x1) == 0
|
||||
; run: %fcmp_lt_f64(+NaN:0x1, +NaN) == 0
|
||||
; run: %fcmp_lt_f64(+NaN:0x1, -NaN) == 0
|
||||
; run: %fcmp_lt_f64(-NaN:0x1, -NaN) == 0
|
||||
; run: %fcmp_lt_f64(-NaN:0x1, +NaN) == 0
|
||||
|
||||
; run: %fcmp_lt_f64(+NaN:0x800000000001, +NaN:0x800000000001) == false
|
||||
; run: %fcmp_lt_f64(-NaN:0x800000000001, -NaN:0x800000000001) == false
|
||||
; run: %fcmp_lt_f64(+NaN:0x800000000001, -NaN:0x800000000001) == false
|
||||
; run: %fcmp_lt_f64(-NaN:0x800000000001, +NaN:0x800000000001) == false
|
||||
; run: %fcmp_lt_f64(+NaN:0x800000000001, +NaN) == false
|
||||
; run: %fcmp_lt_f64(+NaN:0x800000000001, -NaN) == false
|
||||
; run: %fcmp_lt_f64(-NaN:0x800000000001, -NaN) == false
|
||||
; run: %fcmp_lt_f64(-NaN:0x800000000001, +NaN) == false
|
||||
; run: %fcmp_lt_f64(+NaN:0x800000000001, +NaN:0x800000000001) == 0
|
||||
; run: %fcmp_lt_f64(-NaN:0x800000000001, -NaN:0x800000000001) == 0
|
||||
; run: %fcmp_lt_f64(+NaN:0x800000000001, -NaN:0x800000000001) == 0
|
||||
; run: %fcmp_lt_f64(-NaN:0x800000000001, +NaN:0x800000000001) == 0
|
||||
; run: %fcmp_lt_f64(+NaN:0x800000000001, +NaN) == 0
|
||||
; run: %fcmp_lt_f64(+NaN:0x800000000001, -NaN) == 0
|
||||
; run: %fcmp_lt_f64(-NaN:0x800000000001, -NaN) == 0
|
||||
; run: %fcmp_lt_f64(-NaN:0x800000000001, +NaN) == 0
|
||||
|
||||
; sNaN's
|
||||
; run: %fcmp_lt_f64(+sNaN:0x1, +sNaN:0x1) == false
|
||||
; run: %fcmp_lt_f64(-sNaN:0x1, -sNaN:0x1) == false
|
||||
; run: %fcmp_lt_f64(+sNaN:0x1, -sNaN:0x1) == false
|
||||
; run: %fcmp_lt_f64(-sNaN:0x1, +sNaN:0x1) == false
|
||||
; run: %fcmp_lt_f64(+sNaN:0x1, +sNaN:0x1) == 0
|
||||
; run: %fcmp_lt_f64(-sNaN:0x1, -sNaN:0x1) == 0
|
||||
; run: %fcmp_lt_f64(+sNaN:0x1, -sNaN:0x1) == 0
|
||||
; run: %fcmp_lt_f64(-sNaN:0x1, +sNaN:0x1) == 0
|
||||
|
||||
; run: %fcmp_lt_f64(+sNaN:0x1, -0x1.0) == false
|
||||
; run: %fcmp_lt_f64(-sNaN:0x1, -0x1.0) == false
|
||||
; run: %fcmp_lt_f64(+sNaN:0x1, 0x1.0) == false
|
||||
; run: %fcmp_lt_f64(-sNaN:0x1, 0x1.0) == false
|
||||
; run: %fcmp_lt_f64(+sNaN:0x1, -0x0.0) == false
|
||||
; run: %fcmp_lt_f64(-sNaN:0x1, -0x0.0) == false
|
||||
; run: %fcmp_lt_f64(+sNaN:0x1, 0x0.0) == false
|
||||
; run: %fcmp_lt_f64(-sNaN:0x1, 0x0.0) == false
|
||||
; run: %fcmp_lt_f64(+sNaN:0x1, -Inf) == false
|
||||
; run: %fcmp_lt_f64(-sNaN:0x1, -Inf) == false
|
||||
; run: %fcmp_lt_f64(+sNaN:0x1, Inf) == false
|
||||
; run: %fcmp_lt_f64(-sNaN:0x1, Inf) == false
|
||||
; run: %fcmp_lt_f64(-0x0.0, +sNaN:0x1) == false
|
||||
; run: %fcmp_lt_f64(-0x0.0, -sNaN:0x1) == false
|
||||
; run: %fcmp_lt_f64(0x0.0, +sNaN:0x1) == false
|
||||
; run: %fcmp_lt_f64(0x0.0, -sNaN:0x1) == false
|
||||
; run: %fcmp_lt_f64(-Inf, +sNaN:0x1) == false
|
||||
; run: %fcmp_lt_f64(-Inf, -sNaN:0x1) == false
|
||||
; run: %fcmp_lt_f64(Inf, +sNaN:0x1) == false
|
||||
; run: %fcmp_lt_f64(Inf, -sNaN:0x1) == false
|
||||
; run: %fcmp_lt_f64(+sNaN:0x1, -0x1.0) == 0
|
||||
; run: %fcmp_lt_f64(-sNaN:0x1, -0x1.0) == 0
|
||||
; run: %fcmp_lt_f64(+sNaN:0x1, 0x1.0) == 0
|
||||
; run: %fcmp_lt_f64(-sNaN:0x1, 0x1.0) == 0
|
||||
; run: %fcmp_lt_f64(+sNaN:0x1, -0x0.0) == 0
|
||||
; run: %fcmp_lt_f64(-sNaN:0x1, -0x0.0) == 0
|
||||
; run: %fcmp_lt_f64(+sNaN:0x1, 0x0.0) == 0
|
||||
; run: %fcmp_lt_f64(-sNaN:0x1, 0x0.0) == 0
|
||||
; run: %fcmp_lt_f64(+sNaN:0x1, -Inf) == 0
|
||||
; run: %fcmp_lt_f64(-sNaN:0x1, -Inf) == 0
|
||||
; run: %fcmp_lt_f64(+sNaN:0x1, Inf) == 0
|
||||
; run: %fcmp_lt_f64(-sNaN:0x1, Inf) == 0
|
||||
; run: %fcmp_lt_f64(-0x0.0, +sNaN:0x1) == 0
|
||||
; run: %fcmp_lt_f64(-0x0.0, -sNaN:0x1) == 0
|
||||
; run: %fcmp_lt_f64(0x0.0, +sNaN:0x1) == 0
|
||||
; run: %fcmp_lt_f64(0x0.0, -sNaN:0x1) == 0
|
||||
; run: %fcmp_lt_f64(-Inf, +sNaN:0x1) == 0
|
||||
; run: %fcmp_lt_f64(-Inf, -sNaN:0x1) == 0
|
||||
; run: %fcmp_lt_f64(Inf, +sNaN:0x1) == 0
|
||||
; run: %fcmp_lt_f64(Inf, -sNaN:0x1) == 0
|
||||
|
||||
; run: %fcmp_lt_f64(+sNaN:0x1, +NaN:0x1) == false
|
||||
; run: %fcmp_lt_f64(-sNaN:0x1, -NaN:0x1) == false
|
||||
; run: %fcmp_lt_f64(+sNaN:0x1, -NaN:0x1) == false
|
||||
; run: %fcmp_lt_f64(-sNaN:0x1, +NaN:0x1) == false
|
||||
; run: %fcmp_lt_f64(+NaN:0x1, +sNaN:0x1) == false
|
||||
; run: %fcmp_lt_f64(-NaN:0x1, -sNaN:0x1) == false
|
||||
; run: %fcmp_lt_f64(-NaN:0x1, +sNaN:0x1) == false
|
||||
; run: %fcmp_lt_f64(+NaN:0x1, -sNaN:0x1) == false
|
||||
; run: %fcmp_lt_f64(+sNaN:0x1, +NaN:0x1) == 0
|
||||
; run: %fcmp_lt_f64(-sNaN:0x1, -NaN:0x1) == 0
|
||||
; run: %fcmp_lt_f64(+sNaN:0x1, -NaN:0x1) == 0
|
||||
; run: %fcmp_lt_f64(-sNaN:0x1, +NaN:0x1) == 0
|
||||
; run: %fcmp_lt_f64(+NaN:0x1, +sNaN:0x1) == 0
|
||||
; run: %fcmp_lt_f64(-NaN:0x1, -sNaN:0x1) == 0
|
||||
; run: %fcmp_lt_f64(-NaN:0x1, +sNaN:0x1) == 0
|
||||
; run: %fcmp_lt_f64(+NaN:0x1, -sNaN:0x1) == 0
|
||||
|
||||
; run: %fcmp_lt_f64(+sNaN:0x800000000001, +sNaN:0x800000000001) == false
|
||||
; run: %fcmp_lt_f64(-sNaN:0x800000000001, -sNaN:0x800000000001) == false
|
||||
; run: %fcmp_lt_f64(+sNaN:0x800000000001, -sNaN:0x800000000001) == false
|
||||
; run: %fcmp_lt_f64(-sNaN:0x800000000001, +sNaN:0x800000000001) == false
|
||||
; run: %fcmp_lt_f64(+sNaN:0x800000000001, +sNaN:0x1) == false
|
||||
; run: %fcmp_lt_f64(+sNaN:0x800000000001, -sNaN:0x1) == false
|
||||
; run: %fcmp_lt_f64(-sNaN:0x800000000001, -sNaN:0x1) == false
|
||||
; run: %fcmp_lt_f64(-sNaN:0x800000000001, +sNaN:0x1) == false
|
||||
; run: %fcmp_lt_f64(+sNaN:0x800000000001, +sNaN:0x800000000001) == 0
|
||||
; run: %fcmp_lt_f64(-sNaN:0x800000000001, -sNaN:0x800000000001) == 0
|
||||
; run: %fcmp_lt_f64(+sNaN:0x800000000001, -sNaN:0x800000000001) == 0
|
||||
; run: %fcmp_lt_f64(-sNaN:0x800000000001, +sNaN:0x800000000001) == 0
|
||||
; run: %fcmp_lt_f64(+sNaN:0x800000000001, +sNaN:0x1) == 0
|
||||
; run: %fcmp_lt_f64(+sNaN:0x800000000001, -sNaN:0x1) == 0
|
||||
; run: %fcmp_lt_f64(-sNaN:0x800000000001, -sNaN:0x1) == 0
|
||||
; run: %fcmp_lt_f64(-sNaN:0x800000000001, +sNaN:0x1) == 0
|
||||
|
||||
@@ -5,316 +5,316 @@ target aarch64
|
||||
target s390x
|
||||
target riscv64
|
||||
|
||||
function %fcmp_ne_f32(f32, f32) -> b1 {
|
||||
function %fcmp_ne_f32(f32, f32) -> i8 {
|
||||
block0(v0: f32, v1: f32):
|
||||
v2 = fcmp ne v0, v1
|
||||
return v2
|
||||
}
|
||||
; run: %fcmp_ne_f32(0x0.5, 0x0.5) == false
|
||||
; run: %fcmp_ne_f32(0x1.0, 0x1.0) == false
|
||||
; run: %fcmp_ne_f32(-0x1.0, 0x1.0) == true
|
||||
; run: %fcmp_ne_f32(0x1.0, -0x1.0) == true
|
||||
; run: %fcmp_ne_f32(0x0.5, 0x1.0) == true
|
||||
; run: %fcmp_ne_f32(0x1.5, 0x2.9) == true
|
||||
; run: %fcmp_ne_f32(0x1.1p10, 0x1.4p1) == true
|
||||
; run: %fcmp_ne_f32(0x1.4cccccp0, 0x1.8p0) == true
|
||||
; run: %fcmp_ne_f32(0x1.b33334p0, 0x1.99999ap-2) == true
|
||||
; run: %fcmp_ne_f32(0x1.333334p-1, 0x1.666666p1) == true
|
||||
; run: %fcmp_ne_f32(-0x0.5, -0x1.0) == true
|
||||
; run: %fcmp_ne_f32(-0x1.5, -0x2.9) == true
|
||||
; run: %fcmp_ne_f32(-0x1.1p10, -0x1.333334p-1) == true
|
||||
; run: %fcmp_ne_f32(-0x1.99999ap-2, -0x1.4cccccp0) == true
|
||||
; run: %fcmp_ne_f32(-0x1.8p0, -0x1.b33334p0) == true
|
||||
; run: %fcmp_ne_f32(-0x1.4p1, -0x1.666666p1) == true
|
||||
; run: %fcmp_ne_f32(0x0.5, -0x1.0) == true
|
||||
; run: %fcmp_ne_f32(0x1.b33334p0, -0x1.b33334p0) == true
|
||||
; run: %fcmp_ne_f32(0x0.5, 0x0.5) == 0
|
||||
; run: %fcmp_ne_f32(0x1.0, 0x1.0) == 0
|
||||
; run: %fcmp_ne_f32(-0x1.0, 0x1.0) == 1
|
||||
; run: %fcmp_ne_f32(0x1.0, -0x1.0) == 1
|
||||
; run: %fcmp_ne_f32(0x0.5, 0x1.0) == 1
|
||||
; run: %fcmp_ne_f32(0x1.5, 0x2.9) == 1
|
||||
; run: %fcmp_ne_f32(0x1.1p10, 0x1.4p1) == 1
|
||||
; run: %fcmp_ne_f32(0x1.4cccccp0, 0x1.8p0) == 1
|
||||
; run: %fcmp_ne_f32(0x1.b33334p0, 0x1.99999ap-2) == 1
|
||||
; run: %fcmp_ne_f32(0x1.333334p-1, 0x1.666666p1) == 1
|
||||
; run: %fcmp_ne_f32(-0x0.5, -0x1.0) == 1
|
||||
; run: %fcmp_ne_f32(-0x1.5, -0x2.9) == 1
|
||||
; run: %fcmp_ne_f32(-0x1.1p10, -0x1.333334p-1) == 1
|
||||
; run: %fcmp_ne_f32(-0x1.99999ap-2, -0x1.4cccccp0) == 1
|
||||
; run: %fcmp_ne_f32(-0x1.8p0, -0x1.b33334p0) == 1
|
||||
; run: %fcmp_ne_f32(-0x1.4p1, -0x1.666666p1) == 1
|
||||
; run: %fcmp_ne_f32(0x0.5, -0x1.0) == 1
|
||||
; run: %fcmp_ne_f32(0x1.b33334p0, -0x1.b33334p0) == 1
|
||||
|
||||
; Zeroes
|
||||
; run: %fcmp_ne_f32(0x0.0, 0x0.0) == false
|
||||
; run: %fcmp_ne_f32(-0x0.0, -0x0.0) == false
|
||||
; run: %fcmp_ne_f32(0x0.0, -0x0.0) == false
|
||||
; run: %fcmp_ne_f32(-0x0.0, 0x0.0) == false
|
||||
; run: %fcmp_ne_f32(0x0.0, 0x0.0) == 0
|
||||
; run: %fcmp_ne_f32(-0x0.0, -0x0.0) == 0
|
||||
; run: %fcmp_ne_f32(0x0.0, -0x0.0) == 0
|
||||
; run: %fcmp_ne_f32(-0x0.0, 0x0.0) == 0
|
||||
|
||||
; Infinities
|
||||
; run: %fcmp_ne_f32(Inf, Inf) == false
|
||||
; run: %fcmp_ne_f32(-Inf, -Inf) == false
|
||||
; run: %fcmp_ne_f32(Inf, -Inf) == true
|
||||
; run: %fcmp_ne_f32(-Inf, Inf) == true
|
||||
; run: %fcmp_ne_f32(Inf, Inf) == 0
|
||||
; run: %fcmp_ne_f32(-Inf, -Inf) == 0
|
||||
; run: %fcmp_ne_f32(Inf, -Inf) == 1
|
||||
; run: %fcmp_ne_f32(-Inf, Inf) == 1
|
||||
|
||||
; Inf/Zero
|
||||
; run: %fcmp_ne_f32(0x0.0, Inf) == true
|
||||
; run: %fcmp_ne_f32(-0x0.0, Inf) == true
|
||||
; run: %fcmp_ne_f32(0x0.0, -Inf) == true
|
||||
; run: %fcmp_ne_f32(-0x0.0, -Inf) == true
|
||||
; run: %fcmp_ne_f32(Inf, 0x0.0) == true
|
||||
; run: %fcmp_ne_f32(Inf, -0x0.0) == true
|
||||
; run: %fcmp_ne_f32(-Inf, 0x0.0) == true
|
||||
; run: %fcmp_ne_f32(-Inf, -0x0.0) == true
|
||||
; run: %fcmp_ne_f32(0x0.0, Inf) == 1
|
||||
; run: %fcmp_ne_f32(-0x0.0, Inf) == 1
|
||||
; run: %fcmp_ne_f32(0x0.0, -Inf) == 1
|
||||
; run: %fcmp_ne_f32(-0x0.0, -Inf) == 1
|
||||
; run: %fcmp_ne_f32(Inf, 0x0.0) == 1
|
||||
; run: %fcmp_ne_f32(Inf, -0x0.0) == 1
|
||||
; run: %fcmp_ne_f32(-Inf, 0x0.0) == 1
|
||||
; run: %fcmp_ne_f32(-Inf, -0x0.0) == 1
|
||||
|
||||
; Epsilon / Max / Min Positive
|
||||
; run: %fcmp_ne_f32(0x1.0p-23, 0x1.0p-23) == false
|
||||
; run: %fcmp_ne_f32(0x1.fffffep127, 0x1.fffffep127) == false
|
||||
; run: %fcmp_ne_f32(0x1.0p-126, 0x1.0p-126) == false
|
||||
; run: %fcmp_ne_f32(0x1.0p-23, 0x1.fffffep127) == true
|
||||
; run: %fcmp_ne_f32(0x1.0p-23, 0x1.0p-126) == true
|
||||
; run: %fcmp_ne_f32(0x1.0p-126, 0x1.fffffep127) == true
|
||||
; run: %fcmp_ne_f32(0x1.0p-23, 0x1.0p-23) == 0
|
||||
; run: %fcmp_ne_f32(0x1.fffffep127, 0x1.fffffep127) == 0
|
||||
; run: %fcmp_ne_f32(0x1.0p-126, 0x1.0p-126) == 0
|
||||
; run: %fcmp_ne_f32(0x1.0p-23, 0x1.fffffep127) == 1
|
||||
; run: %fcmp_ne_f32(0x1.0p-23, 0x1.0p-126) == 1
|
||||
; run: %fcmp_ne_f32(0x1.0p-126, 0x1.fffffep127) == 1
|
||||
|
||||
; Subnormals
|
||||
; run: %fcmp_ne_f32(0x0.800002p-126, -0x0.800002p-126) == true
|
||||
; run: %fcmp_ne_f32(-0x0.800002p-126, 0x0.800002p-126) == true
|
||||
; run: %fcmp_ne_f32(0x0.800002p-126, 0x0.0) == true
|
||||
; run: %fcmp_ne_f32(-0x0.800002p-126, 0x0.0) == true
|
||||
; run: %fcmp_ne_f32(0x0.800002p-126, -0x0.0) == true
|
||||
; run: %fcmp_ne_f32(-0x0.800002p-126, -0x0.0) == true
|
||||
; run: %fcmp_ne_f32(0x0.0, 0x0.800002p-126) == true
|
||||
; run: %fcmp_ne_f32(0x0.0, -0x0.800002p-126) == true
|
||||
; run: %fcmp_ne_f32(-0x0.0, 0x0.800002p-126) == true
|
||||
; run: %fcmp_ne_f32(-0x0.0, -0x0.800002p-126) == true
|
||||
; run: %fcmp_ne_f32(0x0.800002p-126, -0x0.800002p-126) == 1
|
||||
; run: %fcmp_ne_f32(-0x0.800002p-126, 0x0.800002p-126) == 1
|
||||
; run: %fcmp_ne_f32(0x0.800002p-126, 0x0.0) == 1
|
||||
; run: %fcmp_ne_f32(-0x0.800002p-126, 0x0.0) == 1
|
||||
; run: %fcmp_ne_f32(0x0.800002p-126, -0x0.0) == 1
|
||||
; run: %fcmp_ne_f32(-0x0.800002p-126, -0x0.0) == 1
|
||||
; run: %fcmp_ne_f32(0x0.0, 0x0.800002p-126) == 1
|
||||
; run: %fcmp_ne_f32(0x0.0, -0x0.800002p-126) == 1
|
||||
; run: %fcmp_ne_f32(-0x0.0, 0x0.800002p-126) == 1
|
||||
; run: %fcmp_ne_f32(-0x0.0, -0x0.800002p-126) == 1
|
||||
|
||||
; NaN's
|
||||
; run: %fcmp_ne_f32(+NaN, +NaN) == true
|
||||
; run: %fcmp_ne_f32(-NaN, -NaN) == true
|
||||
; run: %fcmp_ne_f32(+NaN, -NaN) == true
|
||||
; run: %fcmp_ne_f32(-NaN, +NaN) == true
|
||||
; run: %fcmp_ne_f32(+NaN, +NaN) == 1
|
||||
; run: %fcmp_ne_f32(-NaN, -NaN) == 1
|
||||
; run: %fcmp_ne_f32(+NaN, -NaN) == 1
|
||||
; run: %fcmp_ne_f32(-NaN, +NaN) == 1
|
||||
|
||||
; run: %fcmp_ne_f32(+NaN, -0x1.0) == true
|
||||
; run: %fcmp_ne_f32(-NaN, -0x1.0) == true
|
||||
; run: %fcmp_ne_f32(+NaN, 0x1.0) == true
|
||||
; run: %fcmp_ne_f32(-NaN, 0x1.0) == true
|
||||
; run: %fcmp_ne_f32(+NaN, -0x0.0) == true
|
||||
; run: %fcmp_ne_f32(-NaN, -0x0.0) == true
|
||||
; run: %fcmp_ne_f32(+NaN, 0x0.0) == true
|
||||
; run: %fcmp_ne_f32(-NaN, 0x0.0) == true
|
||||
; run: %fcmp_ne_f32(+NaN, -Inf) == true
|
||||
; run: %fcmp_ne_f32(-NaN, -Inf) == true
|
||||
; run: %fcmp_ne_f32(+NaN, Inf) == true
|
||||
; run: %fcmp_ne_f32(-NaN, Inf) == true
|
||||
; run: %fcmp_ne_f32(-0x0.0, +NaN) == true
|
||||
; run: %fcmp_ne_f32(-0x0.0, -NaN) == true
|
||||
; run: %fcmp_ne_f32(0x0.0, +NaN) == true
|
||||
; run: %fcmp_ne_f32(0x0.0, -NaN) == true
|
||||
; run: %fcmp_ne_f32(-Inf, +NaN) == true
|
||||
; run: %fcmp_ne_f32(-Inf, -NaN) == true
|
||||
; run: %fcmp_ne_f32(Inf, +NaN) == true
|
||||
; run: %fcmp_ne_f32(Inf, -NaN) == true
|
||||
; run: %fcmp_ne_f32(+NaN, -0x1.0) == 1
|
||||
; run: %fcmp_ne_f32(-NaN, -0x1.0) == 1
|
||||
; run: %fcmp_ne_f32(+NaN, 0x1.0) == 1
|
||||
; run: %fcmp_ne_f32(-NaN, 0x1.0) == 1
|
||||
; run: %fcmp_ne_f32(+NaN, -0x0.0) == 1
|
||||
; run: %fcmp_ne_f32(-NaN, -0x0.0) == 1
|
||||
; run: %fcmp_ne_f32(+NaN, 0x0.0) == 1
|
||||
; run: %fcmp_ne_f32(-NaN, 0x0.0) == 1
|
||||
; run: %fcmp_ne_f32(+NaN, -Inf) == 1
|
||||
; run: %fcmp_ne_f32(-NaN, -Inf) == 1
|
||||
; run: %fcmp_ne_f32(+NaN, Inf) == 1
|
||||
; run: %fcmp_ne_f32(-NaN, Inf) == 1
|
||||
; run: %fcmp_ne_f32(-0x0.0, +NaN) == 1
|
||||
; run: %fcmp_ne_f32(-0x0.0, -NaN) == 1
|
||||
; run: %fcmp_ne_f32(0x0.0, +NaN) == 1
|
||||
; run: %fcmp_ne_f32(0x0.0, -NaN) == 1
|
||||
; run: %fcmp_ne_f32(-Inf, +NaN) == 1
|
||||
; run: %fcmp_ne_f32(-Inf, -NaN) == 1
|
||||
; run: %fcmp_ne_f32(Inf, +NaN) == 1
|
||||
; run: %fcmp_ne_f32(Inf, -NaN) == 1
|
||||
|
||||
; run: %fcmp_ne_f32(+NaN:0x1, +NaN:0x1) == true
|
||||
; run: %fcmp_ne_f32(-NaN:0x1, -NaN:0x1) == true
|
||||
; run: %fcmp_ne_f32(+NaN:0x1, -NaN:0x1) == true
|
||||
; run: %fcmp_ne_f32(-NaN:0x1, +NaN:0x1) == true
|
||||
; run: %fcmp_ne_f32(+NaN:0x1, +NaN) == true
|
||||
; run: %fcmp_ne_f32(+NaN:0x1, -NaN) == true
|
||||
; run: %fcmp_ne_f32(-NaN:0x1, -NaN) == true
|
||||
; run: %fcmp_ne_f32(-NaN:0x1, +NaN) == true
|
||||
; run: %fcmp_ne_f32(+NaN:0x1, +NaN:0x1) == 1
|
||||
; run: %fcmp_ne_f32(-NaN:0x1, -NaN:0x1) == 1
|
||||
; run: %fcmp_ne_f32(+NaN:0x1, -NaN:0x1) == 1
|
||||
; run: %fcmp_ne_f32(-NaN:0x1, +NaN:0x1) == 1
|
||||
; run: %fcmp_ne_f32(+NaN:0x1, +NaN) == 1
|
||||
; run: %fcmp_ne_f32(+NaN:0x1, -NaN) == 1
|
||||
; run: %fcmp_ne_f32(-NaN:0x1, -NaN) == 1
|
||||
; run: %fcmp_ne_f32(-NaN:0x1, +NaN) == 1
|
||||
|
||||
; run: %fcmp_ne_f32(+NaN:0x80001, +NaN:0x80001) == true
|
||||
; run: %fcmp_ne_f32(-NaN:0x80001, -NaN:0x80001) == true
|
||||
; run: %fcmp_ne_f32(+NaN:0x80001, -NaN:0x80001) == true
|
||||
; run: %fcmp_ne_f32(-NaN:0x80001, +NaN:0x80001) == true
|
||||
; run: %fcmp_ne_f32(+NaN:0x80001, +NaN) == true
|
||||
; run: %fcmp_ne_f32(+NaN:0x80001, -NaN) == true
|
||||
; run: %fcmp_ne_f32(-NaN:0x80001, -NaN) == true
|
||||
; run: %fcmp_ne_f32(-NaN:0x80001, +NaN) == true
|
||||
; run: %fcmp_ne_f32(+NaN:0x80001, +NaN:0x80001) == 1
|
||||
; run: %fcmp_ne_f32(-NaN:0x80001, -NaN:0x80001) == 1
|
||||
; run: %fcmp_ne_f32(+NaN:0x80001, -NaN:0x80001) == 1
|
||||
; run: %fcmp_ne_f32(-NaN:0x80001, +NaN:0x80001) == 1
|
||||
; run: %fcmp_ne_f32(+NaN:0x80001, +NaN) == 1
|
||||
; run: %fcmp_ne_f32(+NaN:0x80001, -NaN) == 1
|
||||
; run: %fcmp_ne_f32(-NaN:0x80001, -NaN) == 1
|
||||
; run: %fcmp_ne_f32(-NaN:0x80001, +NaN) == 1
|
||||
|
||||
; sNaN's
|
||||
; run: %fcmp_ne_f32(+sNaN:0x1, +sNaN:0x1) == true
|
||||
; run: %fcmp_ne_f32(-sNaN:0x1, -sNaN:0x1) == true
|
||||
; run: %fcmp_ne_f32(+sNaN:0x1, -sNaN:0x1) == true
|
||||
; run: %fcmp_ne_f32(-sNaN:0x1, +sNaN:0x1) == true
|
||||
; run: %fcmp_ne_f32(+sNaN:0x1, +sNaN:0x1) == 1
|
||||
; run: %fcmp_ne_f32(-sNaN:0x1, -sNaN:0x1) == 1
|
||||
; run: %fcmp_ne_f32(+sNaN:0x1, -sNaN:0x1) == 1
|
||||
; run: %fcmp_ne_f32(-sNaN:0x1, +sNaN:0x1) == 1
|
||||
|
||||
; run: %fcmp_ne_f32(+sNaN:0x1, -0x1.0) == true
|
||||
; run: %fcmp_ne_f32(-sNaN:0x1, -0x1.0) == true
|
||||
; run: %fcmp_ne_f32(+sNaN:0x1, 0x1.0) == true
|
||||
; run: %fcmp_ne_f32(-sNaN:0x1, 0x1.0) == true
|
||||
; run: %fcmp_ne_f32(+sNaN:0x1, -0x0.0) == true
|
||||
; run: %fcmp_ne_f32(-sNaN:0x1, -0x0.0) == true
|
||||
; run: %fcmp_ne_f32(+sNaN:0x1, 0x0.0) == true
|
||||
; run: %fcmp_ne_f32(-sNaN:0x1, 0x0.0) == true
|
||||
; run: %fcmp_ne_f32(+sNaN:0x1, -Inf) == true
|
||||
; run: %fcmp_ne_f32(-sNaN:0x1, -Inf) == true
|
||||
; run: %fcmp_ne_f32(+sNaN:0x1, Inf) == true
|
||||
; run: %fcmp_ne_f32(-sNaN:0x1, Inf) == true
|
||||
; run: %fcmp_ne_f32(-0x0.0, +sNaN:0x1) == true
|
||||
; run: %fcmp_ne_f32(-0x0.0, -sNaN:0x1) == true
|
||||
; run: %fcmp_ne_f32(0x0.0, +sNaN:0x1) == true
|
||||
; run: %fcmp_ne_f32(0x0.0, -sNaN:0x1) == true
|
||||
; run: %fcmp_ne_f32(-Inf, +sNaN:0x1) == true
|
||||
; run: %fcmp_ne_f32(-Inf, -sNaN:0x1) == true
|
||||
; run: %fcmp_ne_f32(Inf, +sNaN:0x1) == true
|
||||
; run: %fcmp_ne_f32(Inf, -sNaN:0x1) == true
|
||||
; run: %fcmp_ne_f32(+sNaN:0x1, -0x1.0) == 1
|
||||
; run: %fcmp_ne_f32(-sNaN:0x1, -0x1.0) == 1
|
||||
; run: %fcmp_ne_f32(+sNaN:0x1, 0x1.0) == 1
|
||||
; run: %fcmp_ne_f32(-sNaN:0x1, 0x1.0) == 1
|
||||
; run: %fcmp_ne_f32(+sNaN:0x1, -0x0.0) == 1
|
||||
; run: %fcmp_ne_f32(-sNaN:0x1, -0x0.0) == 1
|
||||
; run: %fcmp_ne_f32(+sNaN:0x1, 0x0.0) == 1
|
||||
; run: %fcmp_ne_f32(-sNaN:0x1, 0x0.0) == 1
|
||||
; run: %fcmp_ne_f32(+sNaN:0x1, -Inf) == 1
|
||||
; run: %fcmp_ne_f32(-sNaN:0x1, -Inf) == 1
|
||||
; run: %fcmp_ne_f32(+sNaN:0x1, Inf) == 1
|
||||
; run: %fcmp_ne_f32(-sNaN:0x1, Inf) == 1
|
||||
; run: %fcmp_ne_f32(-0x0.0, +sNaN:0x1) == 1
|
||||
; run: %fcmp_ne_f32(-0x0.0, -sNaN:0x1) == 1
|
||||
; run: %fcmp_ne_f32(0x0.0, +sNaN:0x1) == 1
|
||||
; run: %fcmp_ne_f32(0x0.0, -sNaN:0x1) == 1
|
||||
; run: %fcmp_ne_f32(-Inf, +sNaN:0x1) == 1
|
||||
; run: %fcmp_ne_f32(-Inf, -sNaN:0x1) == 1
|
||||
; run: %fcmp_ne_f32(Inf, +sNaN:0x1) == 1
|
||||
; run: %fcmp_ne_f32(Inf, -sNaN:0x1) == 1
|
||||
|
||||
; run: %fcmp_ne_f32(+sNaN:0x1, +NaN:0x1) == true
|
||||
; run: %fcmp_ne_f32(-sNaN:0x1, -NaN:0x1) == true
|
||||
; run: %fcmp_ne_f32(+sNaN:0x1, -NaN:0x1) == true
|
||||
; run: %fcmp_ne_f32(-sNaN:0x1, +NaN:0x1) == true
|
||||
; run: %fcmp_ne_f32(+NaN:0x1, +sNaN:0x1) == true
|
||||
; run: %fcmp_ne_f32(-NaN:0x1, -sNaN:0x1) == true
|
||||
; run: %fcmp_ne_f32(-NaN:0x1, +sNaN:0x1) == true
|
||||
; run: %fcmp_ne_f32(+NaN:0x1, -sNaN:0x1) == true
|
||||
; run: %fcmp_ne_f32(+sNaN:0x1, +NaN:0x1) == 1
|
||||
; run: %fcmp_ne_f32(-sNaN:0x1, -NaN:0x1) == 1
|
||||
; run: %fcmp_ne_f32(+sNaN:0x1, -NaN:0x1) == 1
|
||||
; run: %fcmp_ne_f32(-sNaN:0x1, +NaN:0x1) == 1
|
||||
; run: %fcmp_ne_f32(+NaN:0x1, +sNaN:0x1) == 1
|
||||
; run: %fcmp_ne_f32(-NaN:0x1, -sNaN:0x1) == 1
|
||||
; run: %fcmp_ne_f32(-NaN:0x1, +sNaN:0x1) == 1
|
||||
; run: %fcmp_ne_f32(+NaN:0x1, -sNaN:0x1) == 1
|
||||
|
||||
; run: %fcmp_ne_f32(+sNaN:0x80001, +sNaN:0x80001) == true
|
||||
; run: %fcmp_ne_f32(-sNaN:0x80001, -sNaN:0x80001) == true
|
||||
; run: %fcmp_ne_f32(+sNaN:0x80001, -sNaN:0x80001) == true
|
||||
; run: %fcmp_ne_f32(-sNaN:0x80001, +sNaN:0x80001) == true
|
||||
; run: %fcmp_ne_f32(+sNaN:0x80001, +sNaN:0x1) == true
|
||||
; run: %fcmp_ne_f32(+sNaN:0x80001, -sNaN:0x1) == true
|
||||
; run: %fcmp_ne_f32(-sNaN:0x80001, -sNaN:0x1) == true
|
||||
; run: %fcmp_ne_f32(-sNaN:0x80001, +sNaN:0x1) == true
|
||||
; run: %fcmp_ne_f32(+sNaN:0x80001, +sNaN:0x80001) == 1
|
||||
; run: %fcmp_ne_f32(-sNaN:0x80001, -sNaN:0x80001) == 1
|
||||
; run: %fcmp_ne_f32(+sNaN:0x80001, -sNaN:0x80001) == 1
|
||||
; run: %fcmp_ne_f32(-sNaN:0x80001, +sNaN:0x80001) == 1
|
||||
; run: %fcmp_ne_f32(+sNaN:0x80001, +sNaN:0x1) == 1
|
||||
; run: %fcmp_ne_f32(+sNaN:0x80001, -sNaN:0x1) == 1
|
||||
; run: %fcmp_ne_f32(-sNaN:0x80001, -sNaN:0x1) == 1
|
||||
; run: %fcmp_ne_f32(-sNaN:0x80001, +sNaN:0x1) == 1
|
||||
|
||||
|
||||
function %fcmp_ne_f64(f64, f64) -> b1 {
|
||||
function %fcmp_ne_f64(f64, f64) -> i8 {
|
||||
block0(v0: f64, v1: f64):
|
||||
v2 = fcmp ne v0, v1
|
||||
return v2
|
||||
}
|
||||
; run: %fcmp_ne_f64(0x0.5, 0x0.5) == false
|
||||
; run: %fcmp_ne_f64(0x1.0, 0x1.0) == false
|
||||
; run: %fcmp_ne_f64(-0x1.0, 0x1.0) == true
|
||||
; run: %fcmp_ne_f64(0x1.0, -0x1.0) == true
|
||||
; run: %fcmp_ne_f64(0x0.5, 0x1.0) == true
|
||||
; run: %fcmp_ne_f64(0x1.5, 0x2.9) == true
|
||||
; run: %fcmp_ne_f64(0x1.1p10, 0x1.4p1) == true
|
||||
; run: %fcmp_ne_f64(0x1.4cccccccccccdp0, 0x1.8p0) == true
|
||||
; run: %fcmp_ne_f64(0x1.b333333333333p0, 0x1.999999999999ap-2) == true
|
||||
; run: %fcmp_ne_f64(0x1.3333333333333p-1, 0x1.6666666666666p1) == true
|
||||
; run: %fcmp_ne_f64(-0x0.5, -0x1.0) == true
|
||||
; run: %fcmp_ne_f64(-0x1.5, -0x2.9) == true
|
||||
; run: %fcmp_ne_f64(-0x1.1p10, -0x1.3333333333333p-1) == true
|
||||
; run: %fcmp_ne_f64(-0x1.999999999999ap-2, -0x1.4cccccccccccdp0) == true
|
||||
; run: %fcmp_ne_f64(-0x1.8p0, -0x1.b333333333333p0) == true
|
||||
; run: %fcmp_ne_f64(-0x1.4p1, -0x1.6666666666666p1) == true
|
||||
; run: %fcmp_ne_f64(0x0.5, -0x1.0) == true
|
||||
; run: %fcmp_ne_f64(0x1.b333333333333p0, -0x1.b333333333333p0) == true
|
||||
; run: %fcmp_ne_f64(0x0.5, 0x0.5) == 0
|
||||
; run: %fcmp_ne_f64(0x1.0, 0x1.0) == 0
|
||||
; run: %fcmp_ne_f64(-0x1.0, 0x1.0) == 1
|
||||
; run: %fcmp_ne_f64(0x1.0, -0x1.0) == 1
|
||||
; run: %fcmp_ne_f64(0x0.5, 0x1.0) == 1
|
||||
; run: %fcmp_ne_f64(0x1.5, 0x2.9) == 1
|
||||
; run: %fcmp_ne_f64(0x1.1p10, 0x1.4p1) == 1
|
||||
; run: %fcmp_ne_f64(0x1.4cccccccccccdp0, 0x1.8p0) == 1
|
||||
; run: %fcmp_ne_f64(0x1.b333333333333p0, 0x1.999999999999ap-2) == 1
|
||||
; run: %fcmp_ne_f64(0x1.3333333333333p-1, 0x1.6666666666666p1) == 1
|
||||
; run: %fcmp_ne_f64(-0x0.5, -0x1.0) == 1
|
||||
; run: %fcmp_ne_f64(-0x1.5, -0x2.9) == 1
|
||||
; run: %fcmp_ne_f64(-0x1.1p10, -0x1.3333333333333p-1) == 1
|
||||
; run: %fcmp_ne_f64(-0x1.999999999999ap-2, -0x1.4cccccccccccdp0) == 1
|
||||
; run: %fcmp_ne_f64(-0x1.8p0, -0x1.b333333333333p0) == 1
|
||||
; run: %fcmp_ne_f64(-0x1.4p1, -0x1.6666666666666p1) == 1
|
||||
; run: %fcmp_ne_f64(0x0.5, -0x1.0) == 1
|
||||
; run: %fcmp_ne_f64(0x1.b333333333333p0, -0x1.b333333333333p0) == 1
|
||||
|
||||
|
||||
; Zeroes
|
||||
; run: %fcmp_ne_f64(0x0.0, 0x0.0) == false
|
||||
; run: %fcmp_ne_f64(-0x0.0, -0x0.0) == false
|
||||
; run: %fcmp_ne_f64(0x0.0, -0x0.0) == false
|
||||
; run: %fcmp_ne_f64(-0x0.0, 0x0.0) == false
|
||||
; run: %fcmp_ne_f64(0x0.0, 0x0.0) == 0
|
||||
; run: %fcmp_ne_f64(-0x0.0, -0x0.0) == 0
|
||||
; run: %fcmp_ne_f64(0x0.0, -0x0.0) == 0
|
||||
; run: %fcmp_ne_f64(-0x0.0, 0x0.0) == 0
|
||||
|
||||
; Infinities
|
||||
; run: %fcmp_ne_f64(Inf, Inf) == false
|
||||
; run: %fcmp_ne_f64(-Inf, -Inf) == false
|
||||
; run: %fcmp_ne_f64(Inf, -Inf) == true
|
||||
; run: %fcmp_ne_f64(-Inf, Inf) == true
|
||||
; run: %fcmp_ne_f64(Inf, Inf) == 0
|
||||
; run: %fcmp_ne_f64(-Inf, -Inf) == 0
|
||||
; run: %fcmp_ne_f64(Inf, -Inf) == 1
|
||||
; run: %fcmp_ne_f64(-Inf, Inf) == 1
|
||||
|
||||
; Inf/Zero
|
||||
; run: %fcmp_ne_f64(0x0.0, Inf) == true
|
||||
; run: %fcmp_ne_f64(-0x0.0, Inf) == true
|
||||
; run: %fcmp_ne_f64(0x0.0, -Inf) == true
|
||||
; run: %fcmp_ne_f64(-0x0.0, -Inf) == true
|
||||
; run: %fcmp_ne_f64(Inf, 0x0.0) == true
|
||||
; run: %fcmp_ne_f64(Inf, -0x0.0) == true
|
||||
; run: %fcmp_ne_f64(-Inf, 0x0.0) == true
|
||||
; run: %fcmp_ne_f64(-Inf, -0x0.0) == true
|
||||
; run: %fcmp_ne_f64(0x0.0, Inf) == 1
|
||||
; run: %fcmp_ne_f64(-0x0.0, Inf) == 1
|
||||
; run: %fcmp_ne_f64(0x0.0, -Inf) == 1
|
||||
; run: %fcmp_ne_f64(-0x0.0, -Inf) == 1
|
||||
; run: %fcmp_ne_f64(Inf, 0x0.0) == 1
|
||||
; run: %fcmp_ne_f64(Inf, -0x0.0) == 1
|
||||
; run: %fcmp_ne_f64(-Inf, 0x0.0) == 1
|
||||
; run: %fcmp_ne_f64(-Inf, -0x0.0) == 1
|
||||
|
||||
; Epsilon / Max / Min Positive
|
||||
; run: %fcmp_ne_f64(0x1.0p-52, 0x1.0p-52) == false
|
||||
; run: %fcmp_ne_f64(0x1.fffffffffffffp1023, 0x1.fffffffffffffp1023) == false
|
||||
; run: %fcmp_ne_f64(0x1.0p-1022, 0x1.0p-1022) == false
|
||||
; run: %fcmp_ne_f64(0x1.0p-52, 0x1.fffffffffffffp1023) == true
|
||||
; run: %fcmp_ne_f64(0x1.0p-52, 0x1.0p-1022) == true
|
||||
; run: %fcmp_ne_f64(0x1.0p-1022, 0x1.fffffffffffffp1023) == true
|
||||
; run: %fcmp_ne_f64(0x1.0p-52, 0x1.0p-52) == 0
|
||||
; run: %fcmp_ne_f64(0x1.fffffffffffffp1023, 0x1.fffffffffffffp1023) == 0
|
||||
; run: %fcmp_ne_f64(0x1.0p-1022, 0x1.0p-1022) == 0
|
||||
; run: %fcmp_ne_f64(0x1.0p-52, 0x1.fffffffffffffp1023) == 1
|
||||
; run: %fcmp_ne_f64(0x1.0p-52, 0x1.0p-1022) == 1
|
||||
; run: %fcmp_ne_f64(0x1.0p-1022, 0x1.fffffffffffffp1023) == 1
|
||||
|
||||
; Subnormals
|
||||
; run: %fcmp_ne_f64(0x0.8p-1022, -0x0.8p-1022) == true
|
||||
; run: %fcmp_ne_f64(-0x0.8p-1022, 0x0.8p-1022) == true
|
||||
; run: %fcmp_ne_f64(0x0.8p-1022, 0x0.0) == true
|
||||
; run: %fcmp_ne_f64(-0x0.8p-1022, 0x0.0) == true
|
||||
; run: %fcmp_ne_f64(0x0.8p-1022, -0x0.0) == true
|
||||
; run: %fcmp_ne_f64(-0x0.8p-1022, -0x0.0) == true
|
||||
; run: %fcmp_ne_f64(0x0.0, 0x0.8p-1022) == true
|
||||
; run: %fcmp_ne_f64(0x0.0, -0x0.8p-1022) == true
|
||||
; run: %fcmp_ne_f64(-0x0.0, 0x0.8p-1022) == true
|
||||
; run: %fcmp_ne_f64(-0x0.0, -0x0.8p-1022) == true
|
||||
; run: %fcmp_ne_f64(0x0.8p-1022, -0x0.8p-1022) == 1
|
||||
; run: %fcmp_ne_f64(-0x0.8p-1022, 0x0.8p-1022) == 1
|
||||
; run: %fcmp_ne_f64(0x0.8p-1022, 0x0.0) == 1
|
||||
; run: %fcmp_ne_f64(-0x0.8p-1022, 0x0.0) == 1
|
||||
; run: %fcmp_ne_f64(0x0.8p-1022, -0x0.0) == 1
|
||||
; run: %fcmp_ne_f64(-0x0.8p-1022, -0x0.0) == 1
|
||||
; run: %fcmp_ne_f64(0x0.0, 0x0.8p-1022) == 1
|
||||
; run: %fcmp_ne_f64(0x0.0, -0x0.8p-1022) == 1
|
||||
; run: %fcmp_ne_f64(-0x0.0, 0x0.8p-1022) == 1
|
||||
; run: %fcmp_ne_f64(-0x0.0, -0x0.8p-1022) == 1
|
||||
|
||||
; NaN's
|
||||
; run: %fcmp_ne_f64(+NaN, +NaN) == true
|
||||
; run: %fcmp_ne_f64(-NaN, -NaN) == true
|
||||
; run: %fcmp_ne_f64(+NaN, -NaN) == true
|
||||
; run: %fcmp_ne_f64(-NaN, +NaN) == true
|
||||
; run: %fcmp_ne_f64(+NaN, +NaN) == 1
|
||||
; run: %fcmp_ne_f64(-NaN, -NaN) == 1
|
||||
; run: %fcmp_ne_f64(+NaN, -NaN) == 1
|
||||
; run: %fcmp_ne_f64(-NaN, +NaN) == 1
|
||||
|
||||
; run: %fcmp_ne_f64(+NaN, -0x1.0) == true
|
||||
; run: %fcmp_ne_f64(-NaN, -0x1.0) == true
|
||||
; run: %fcmp_ne_f64(+NaN, 0x1.0) == true
|
||||
; run: %fcmp_ne_f64(-NaN, 0x1.0) == true
|
||||
; run: %fcmp_ne_f64(+NaN, -0x0.0) == true
|
||||
; run: %fcmp_ne_f64(-NaN, -0x0.0) == true
|
||||
; run: %fcmp_ne_f64(+NaN, 0x0.0) == true
|
||||
; run: %fcmp_ne_f64(-NaN, 0x0.0) == true
|
||||
; run: %fcmp_ne_f64(+NaN, -Inf) == true
|
||||
; run: %fcmp_ne_f64(-NaN, -Inf) == true
|
||||
; run: %fcmp_ne_f64(+NaN, Inf) == true
|
||||
; run: %fcmp_ne_f64(-NaN, Inf) == true
|
||||
; run: %fcmp_ne_f64(-0x0.0, +NaN) == true
|
||||
; run: %fcmp_ne_f64(-0x0.0, -NaN) == true
|
||||
; run: %fcmp_ne_f64(0x0.0, +NaN) == true
|
||||
; run: %fcmp_ne_f64(0x0.0, -NaN) == true
|
||||
; run: %fcmp_ne_f64(-Inf, +NaN) == true
|
||||
; run: %fcmp_ne_f64(-Inf, -NaN) == true
|
||||
; run: %fcmp_ne_f64(Inf, +NaN) == true
|
||||
; run: %fcmp_ne_f64(Inf, -NaN) == true
|
||||
; run: %fcmp_ne_f64(+NaN, -0x1.0) == 1
|
||||
; run: %fcmp_ne_f64(-NaN, -0x1.0) == 1
|
||||
; run: %fcmp_ne_f64(+NaN, 0x1.0) == 1
|
||||
; run: %fcmp_ne_f64(-NaN, 0x1.0) == 1
|
||||
; run: %fcmp_ne_f64(+NaN, -0x0.0) == 1
|
||||
; run: %fcmp_ne_f64(-NaN, -0x0.0) == 1
|
||||
; run: %fcmp_ne_f64(+NaN, 0x0.0) == 1
|
||||
; run: %fcmp_ne_f64(-NaN, 0x0.0) == 1
|
||||
; run: %fcmp_ne_f64(+NaN, -Inf) == 1
|
||||
; run: %fcmp_ne_f64(-NaN, -Inf) == 1
|
||||
; run: %fcmp_ne_f64(+NaN, Inf) == 1
|
||||
; run: %fcmp_ne_f64(-NaN, Inf) == 1
|
||||
; run: %fcmp_ne_f64(-0x0.0, +NaN) == 1
|
||||
; run: %fcmp_ne_f64(-0x0.0, -NaN) == 1
|
||||
; run: %fcmp_ne_f64(0x0.0, +NaN) == 1
|
||||
; run: %fcmp_ne_f64(0x0.0, -NaN) == 1
|
||||
; run: %fcmp_ne_f64(-Inf, +NaN) == 1
|
||||
; run: %fcmp_ne_f64(-Inf, -NaN) == 1
|
||||
; run: %fcmp_ne_f64(Inf, +NaN) == 1
|
||||
; run: %fcmp_ne_f64(Inf, -NaN) == 1
|
||||
|
||||
; run: %fcmp_ne_f64(+NaN:0x1, +NaN:0x1) == true
|
||||
; run: %fcmp_ne_f64(-NaN:0x1, -NaN:0x1) == true
|
||||
; run: %fcmp_ne_f64(+NaN:0x1, -NaN:0x1) == true
|
||||
; run: %fcmp_ne_f64(-NaN:0x1, +NaN:0x1) == true
|
||||
; run: %fcmp_ne_f64(+NaN:0x1, +NaN) == true
|
||||
; run: %fcmp_ne_f64(+NaN:0x1, -NaN) == true
|
||||
; run: %fcmp_ne_f64(-NaN:0x1, -NaN) == true
|
||||
; run: %fcmp_ne_f64(-NaN:0x1, +NaN) == true
|
||||
; run: %fcmp_ne_f64(+NaN:0x1, +NaN:0x1) == 1
|
||||
; run: %fcmp_ne_f64(-NaN:0x1, -NaN:0x1) == 1
|
||||
; run: %fcmp_ne_f64(+NaN:0x1, -NaN:0x1) == 1
|
||||
; run: %fcmp_ne_f64(-NaN:0x1, +NaN:0x1) == 1
|
||||
; run: %fcmp_ne_f64(+NaN:0x1, +NaN) == 1
|
||||
; run: %fcmp_ne_f64(+NaN:0x1, -NaN) == 1
|
||||
; run: %fcmp_ne_f64(-NaN:0x1, -NaN) == 1
|
||||
; run: %fcmp_ne_f64(-NaN:0x1, +NaN) == 1
|
||||
|
||||
; run: %fcmp_ne_f64(+NaN:0x800000000001, +NaN:0x800000000001) == true
|
||||
; run: %fcmp_ne_f64(-NaN:0x800000000001, -NaN:0x800000000001) == true
|
||||
; run: %fcmp_ne_f64(+NaN:0x800000000001, -NaN:0x800000000001) == true
|
||||
; run: %fcmp_ne_f64(-NaN:0x800000000001, +NaN:0x800000000001) == true
|
||||
; run: %fcmp_ne_f64(+NaN:0x800000000001, +NaN) == true
|
||||
; run: %fcmp_ne_f64(+NaN:0x800000000001, -NaN) == true
|
||||
; run: %fcmp_ne_f64(-NaN:0x800000000001, -NaN) == true
|
||||
; run: %fcmp_ne_f64(-NaN:0x800000000001, +NaN) == true
|
||||
; run: %fcmp_ne_f64(+NaN:0x800000000001, +NaN:0x800000000001) == 1
|
||||
; run: %fcmp_ne_f64(-NaN:0x800000000001, -NaN:0x800000000001) == 1
|
||||
; run: %fcmp_ne_f64(+NaN:0x800000000001, -NaN:0x800000000001) == 1
|
||||
; run: %fcmp_ne_f64(-NaN:0x800000000001, +NaN:0x800000000001) == 1
|
||||
; run: %fcmp_ne_f64(+NaN:0x800000000001, +NaN) == 1
|
||||
; run: %fcmp_ne_f64(+NaN:0x800000000001, -NaN) == 1
|
||||
; run: %fcmp_ne_f64(-NaN:0x800000000001, -NaN) == 1
|
||||
; run: %fcmp_ne_f64(-NaN:0x800000000001, +NaN) == 1
|
||||
|
||||
; sNaN's
|
||||
; run: %fcmp_ne_f64(+sNaN:0x1, +sNaN:0x1) == true
|
||||
; run: %fcmp_ne_f64(-sNaN:0x1, -sNaN:0x1) == true
|
||||
; run: %fcmp_ne_f64(+sNaN:0x1, -sNaN:0x1) == true
|
||||
; run: %fcmp_ne_f64(-sNaN:0x1, +sNaN:0x1) == true
|
||||
; run: %fcmp_ne_f64(+sNaN:0x1, +sNaN:0x1) == 1
|
||||
; run: %fcmp_ne_f64(-sNaN:0x1, -sNaN:0x1) == 1
|
||||
; run: %fcmp_ne_f64(+sNaN:0x1, -sNaN:0x1) == 1
|
||||
; run: %fcmp_ne_f64(-sNaN:0x1, +sNaN:0x1) == 1
|
||||
|
||||
; run: %fcmp_ne_f64(+sNaN:0x1, -0x1.0) == true
|
||||
; run: %fcmp_ne_f64(-sNaN:0x1, -0x1.0) == true
|
||||
; run: %fcmp_ne_f64(+sNaN:0x1, 0x1.0) == true
|
||||
; run: %fcmp_ne_f64(-sNaN:0x1, 0x1.0) == true
|
||||
; run: %fcmp_ne_f64(+sNaN:0x1, -0x0.0) == true
|
||||
; run: %fcmp_ne_f64(-sNaN:0x1, -0x0.0) == true
|
||||
; run: %fcmp_ne_f64(+sNaN:0x1, 0x0.0) == true
|
||||
; run: %fcmp_ne_f64(-sNaN:0x1, 0x0.0) == true
|
||||
; run: %fcmp_ne_f64(+sNaN:0x1, -Inf) == true
|
||||
; run: %fcmp_ne_f64(-sNaN:0x1, -Inf) == true
|
||||
; run: %fcmp_ne_f64(+sNaN:0x1, Inf) == true
|
||||
; run: %fcmp_ne_f64(-sNaN:0x1, Inf) == true
|
||||
; run: %fcmp_ne_f64(-0x0.0, +sNaN:0x1) == true
|
||||
; run: %fcmp_ne_f64(-0x0.0, -sNaN:0x1) == true
|
||||
; run: %fcmp_ne_f64(0x0.0, +sNaN:0x1) == true
|
||||
; run: %fcmp_ne_f64(0x0.0, -sNaN:0x1) == true
|
||||
; run: %fcmp_ne_f64(-Inf, +sNaN:0x1) == true
|
||||
; run: %fcmp_ne_f64(-Inf, -sNaN:0x1) == true
|
||||
; run: %fcmp_ne_f64(Inf, +sNaN:0x1) == true
|
||||
; run: %fcmp_ne_f64(Inf, -sNaN:0x1) == true
|
||||
; run: %fcmp_ne_f64(+sNaN:0x1, -0x1.0) == 1
|
||||
; run: %fcmp_ne_f64(-sNaN:0x1, -0x1.0) == 1
|
||||
; run: %fcmp_ne_f64(+sNaN:0x1, 0x1.0) == 1
|
||||
; run: %fcmp_ne_f64(-sNaN:0x1, 0x1.0) == 1
|
||||
; run: %fcmp_ne_f64(+sNaN:0x1, -0x0.0) == 1
|
||||
; run: %fcmp_ne_f64(-sNaN:0x1, -0x0.0) == 1
|
||||
; run: %fcmp_ne_f64(+sNaN:0x1, 0x0.0) == 1
|
||||
; run: %fcmp_ne_f64(-sNaN:0x1, 0x0.0) == 1
|
||||
; run: %fcmp_ne_f64(+sNaN:0x1, -Inf) == 1
|
||||
; run: %fcmp_ne_f64(-sNaN:0x1, -Inf) == 1
|
||||
; run: %fcmp_ne_f64(+sNaN:0x1, Inf) == 1
|
||||
; run: %fcmp_ne_f64(-sNaN:0x1, Inf) == 1
|
||||
; run: %fcmp_ne_f64(-0x0.0, +sNaN:0x1) == 1
|
||||
; run: %fcmp_ne_f64(-0x0.0, -sNaN:0x1) == 1
|
||||
; run: %fcmp_ne_f64(0x0.0, +sNaN:0x1) == 1
|
||||
; run: %fcmp_ne_f64(0x0.0, -sNaN:0x1) == 1
|
||||
; run: %fcmp_ne_f64(-Inf, +sNaN:0x1) == 1
|
||||
; run: %fcmp_ne_f64(-Inf, -sNaN:0x1) == 1
|
||||
; run: %fcmp_ne_f64(Inf, +sNaN:0x1) == 1
|
||||
; run: %fcmp_ne_f64(Inf, -sNaN:0x1) == 1
|
||||
|
||||
; run: %fcmp_ne_f64(+sNaN:0x1, +NaN:0x1) == true
|
||||
; run: %fcmp_ne_f64(-sNaN:0x1, -NaN:0x1) == true
|
||||
; run: %fcmp_ne_f64(+sNaN:0x1, -NaN:0x1) == true
|
||||
; run: %fcmp_ne_f64(-sNaN:0x1, +NaN:0x1) == true
|
||||
; run: %fcmp_ne_f64(+NaN:0x1, +sNaN:0x1) == true
|
||||
; run: %fcmp_ne_f64(-NaN:0x1, -sNaN:0x1) == true
|
||||
; run: %fcmp_ne_f64(-NaN:0x1, +sNaN:0x1) == true
|
||||
; run: %fcmp_ne_f64(+NaN:0x1, -sNaN:0x1) == true
|
||||
; run: %fcmp_ne_f64(+sNaN:0x1, +NaN:0x1) == 1
|
||||
; run: %fcmp_ne_f64(-sNaN:0x1, -NaN:0x1) == 1
|
||||
; run: %fcmp_ne_f64(+sNaN:0x1, -NaN:0x1) == 1
|
||||
; run: %fcmp_ne_f64(-sNaN:0x1, +NaN:0x1) == 1
|
||||
; run: %fcmp_ne_f64(+NaN:0x1, +sNaN:0x1) == 1
|
||||
; run: %fcmp_ne_f64(-NaN:0x1, -sNaN:0x1) == 1
|
||||
; run: %fcmp_ne_f64(-NaN:0x1, +sNaN:0x1) == 1
|
||||
; run: %fcmp_ne_f64(+NaN:0x1, -sNaN:0x1) == 1
|
||||
|
||||
; run: %fcmp_ne_f64(+sNaN:0x800000000001, +sNaN:0x800000000001) == true
|
||||
; run: %fcmp_ne_f64(-sNaN:0x800000000001, -sNaN:0x800000000001) == true
|
||||
; run: %fcmp_ne_f64(+sNaN:0x800000000001, -sNaN:0x800000000001) == true
|
||||
; run: %fcmp_ne_f64(-sNaN:0x800000000001, +sNaN:0x800000000001) == true
|
||||
; run: %fcmp_ne_f64(+sNaN:0x800000000001, +sNaN:0x1) == true
|
||||
; run: %fcmp_ne_f64(+sNaN:0x800000000001, -sNaN:0x1) == true
|
||||
; run: %fcmp_ne_f64(-sNaN:0x800000000001, -sNaN:0x1) == true
|
||||
; run: %fcmp_ne_f64(-sNaN:0x800000000001, +sNaN:0x1) == true
|
||||
; run: %fcmp_ne_f64(+sNaN:0x800000000001, +sNaN:0x800000000001) == 1
|
||||
; run: %fcmp_ne_f64(-sNaN:0x800000000001, -sNaN:0x800000000001) == 1
|
||||
; run: %fcmp_ne_f64(+sNaN:0x800000000001, -sNaN:0x800000000001) == 1
|
||||
; run: %fcmp_ne_f64(-sNaN:0x800000000001, +sNaN:0x800000000001) == 1
|
||||
; run: %fcmp_ne_f64(+sNaN:0x800000000001, +sNaN:0x1) == 1
|
||||
; run: %fcmp_ne_f64(+sNaN:0x800000000001, -sNaN:0x1) == 1
|
||||
; run: %fcmp_ne_f64(-sNaN:0x800000000001, -sNaN:0x1) == 1
|
||||
; run: %fcmp_ne_f64(-sNaN:0x800000000001, +sNaN:0x1) == 1
|
||||
|
||||
@@ -4,316 +4,316 @@ target x86_64
|
||||
target s390x
|
||||
target riscv64
|
||||
|
||||
function %fcmp_one_f32(f32, f32) -> b1 {
|
||||
function %fcmp_one_f32(f32, f32) -> i8 {
|
||||
block0(v0: f32, v1: f32):
|
||||
v2 = fcmp one v0, v1
|
||||
return v2
|
||||
}
|
||||
; run: %fcmp_one_f32(0x0.5, 0x0.5) == false
|
||||
; run: %fcmp_one_f32(0x1.0, 0x1.0) == false
|
||||
; run: %fcmp_one_f32(-0x1.0, 0x1.0) == true
|
||||
; run: %fcmp_one_f32(0x1.0, -0x1.0) == true
|
||||
; run: %fcmp_one_f32(0x0.5, 0x1.0) == true
|
||||
; run: %fcmp_one_f32(0x1.5, 0x2.9) == true
|
||||
; run: %fcmp_one_f32(0x1.1p10, 0x1.4p1) == true
|
||||
; run: %fcmp_one_f32(0x1.4cccccp0, 0x1.8p0) == true
|
||||
; run: %fcmp_one_f32(0x1.b33334p0, 0x1.99999ap-2) == true
|
||||
; run: %fcmp_one_f32(0x1.333334p-1, 0x1.666666p1) == true
|
||||
; run: %fcmp_one_f32(-0x0.5, -0x1.0) == true
|
||||
; run: %fcmp_one_f32(-0x1.5, -0x2.9) == true
|
||||
; run: %fcmp_one_f32(-0x1.1p10, -0x1.333334p-1) == true
|
||||
; run: %fcmp_one_f32(-0x1.99999ap-2, -0x1.4cccccp0) == true
|
||||
; run: %fcmp_one_f32(-0x1.8p0, -0x1.b33334p0) == true
|
||||
; run: %fcmp_one_f32(-0x1.4p1, -0x1.666666p1) == true
|
||||
; run: %fcmp_one_f32(0x0.5, -0x1.0) == true
|
||||
; run: %fcmp_one_f32(0x1.b33334p0, -0x1.b33334p0) == true
|
||||
; run: %fcmp_one_f32(0x0.5, 0x0.5) == 0
|
||||
; run: %fcmp_one_f32(0x1.0, 0x1.0) == 0
|
||||
; run: %fcmp_one_f32(-0x1.0, 0x1.0) == 1
|
||||
; run: %fcmp_one_f32(0x1.0, -0x1.0) == 1
|
||||
; run: %fcmp_one_f32(0x0.5, 0x1.0) == 1
|
||||
; run: %fcmp_one_f32(0x1.5, 0x2.9) == 1
|
||||
; run: %fcmp_one_f32(0x1.1p10, 0x1.4p1) == 1
|
||||
; run: %fcmp_one_f32(0x1.4cccccp0, 0x1.8p0) == 1
|
||||
; run: %fcmp_one_f32(0x1.b33334p0, 0x1.99999ap-2) == 1
|
||||
; run: %fcmp_one_f32(0x1.333334p-1, 0x1.666666p1) == 1
|
||||
; run: %fcmp_one_f32(-0x0.5, -0x1.0) == 1
|
||||
; run: %fcmp_one_f32(-0x1.5, -0x2.9) == 1
|
||||
; run: %fcmp_one_f32(-0x1.1p10, -0x1.333334p-1) == 1
|
||||
; run: %fcmp_one_f32(-0x1.99999ap-2, -0x1.4cccccp0) == 1
|
||||
; run: %fcmp_one_f32(-0x1.8p0, -0x1.b33334p0) == 1
|
||||
; run: %fcmp_one_f32(-0x1.4p1, -0x1.666666p1) == 1
|
||||
; run: %fcmp_one_f32(0x0.5, -0x1.0) == 1
|
||||
; run: %fcmp_one_f32(0x1.b33334p0, -0x1.b33334p0) == 1
|
||||
|
||||
; Zeroes
|
||||
; run: %fcmp_one_f32(0x0.0, 0x0.0) == false
|
||||
; run: %fcmp_one_f32(-0x0.0, -0x0.0) == false
|
||||
; run: %fcmp_one_f32(0x0.0, -0x0.0) == false
|
||||
; run: %fcmp_one_f32(-0x0.0, 0x0.0) == false
|
||||
; run: %fcmp_one_f32(0x0.0, 0x0.0) == 0
|
||||
; run: %fcmp_one_f32(-0x0.0, -0x0.0) == 0
|
||||
; run: %fcmp_one_f32(0x0.0, -0x0.0) == 0
|
||||
; run: %fcmp_one_f32(-0x0.0, 0x0.0) == 0
|
||||
|
||||
; Infinities
|
||||
; run: %fcmp_one_f32(Inf, Inf) == false
|
||||
; run: %fcmp_one_f32(-Inf, -Inf) == false
|
||||
; run: %fcmp_one_f32(Inf, -Inf) == true
|
||||
; run: %fcmp_one_f32(-Inf, Inf) == true
|
||||
; run: %fcmp_one_f32(Inf, Inf) == 0
|
||||
; run: %fcmp_one_f32(-Inf, -Inf) == 0
|
||||
; run: %fcmp_one_f32(Inf, -Inf) == 1
|
||||
; run: %fcmp_one_f32(-Inf, Inf) == 1
|
||||
|
||||
; Inf/Zero
|
||||
; run: %fcmp_one_f32(0x0.0, Inf) == true
|
||||
; run: %fcmp_one_f32(-0x0.0, Inf) == true
|
||||
; run: %fcmp_one_f32(0x0.0, -Inf) == true
|
||||
; run: %fcmp_one_f32(-0x0.0, -Inf) == true
|
||||
; run: %fcmp_one_f32(Inf, 0x0.0) == true
|
||||
; run: %fcmp_one_f32(Inf, -0x0.0) == true
|
||||
; run: %fcmp_one_f32(-Inf, 0x0.0) == true
|
||||
; run: %fcmp_one_f32(-Inf, -0x0.0) == true
|
||||
; run: %fcmp_one_f32(0x0.0, Inf) == 1
|
||||
; run: %fcmp_one_f32(-0x0.0, Inf) == 1
|
||||
; run: %fcmp_one_f32(0x0.0, -Inf) == 1
|
||||
; run: %fcmp_one_f32(-0x0.0, -Inf) == 1
|
||||
; run: %fcmp_one_f32(Inf, 0x0.0) == 1
|
||||
; run: %fcmp_one_f32(Inf, -0x0.0) == 1
|
||||
; run: %fcmp_one_f32(-Inf, 0x0.0) == 1
|
||||
; run: %fcmp_one_f32(-Inf, -0x0.0) == 1
|
||||
|
||||
; Epsilon / Max / Min Positive
|
||||
; run: %fcmp_one_f32(0x1.0p-23, 0x1.0p-23) == false
|
||||
; run: %fcmp_one_f32(0x1.fffffep127, 0x1.fffffep127) == false
|
||||
; run: %fcmp_one_f32(0x1.0p-126, 0x1.0p-126) == false
|
||||
; run: %fcmp_one_f32(0x1.0p-23, 0x1.fffffep127) == true
|
||||
; run: %fcmp_one_f32(0x1.0p-23, 0x1.0p-126) == true
|
||||
; run: %fcmp_one_f32(0x1.0p-126, 0x1.fffffep127) == true
|
||||
; run: %fcmp_one_f32(0x1.0p-23, 0x1.0p-23) == 0
|
||||
; run: %fcmp_one_f32(0x1.fffffep127, 0x1.fffffep127) == 0
|
||||
; run: %fcmp_one_f32(0x1.0p-126, 0x1.0p-126) == 0
|
||||
; run: %fcmp_one_f32(0x1.0p-23, 0x1.fffffep127) == 1
|
||||
; run: %fcmp_one_f32(0x1.0p-23, 0x1.0p-126) == 1
|
||||
; run: %fcmp_one_f32(0x1.0p-126, 0x1.fffffep127) == 1
|
||||
|
||||
; Subnormals
|
||||
; run: %fcmp_one_f32(0x0.800002p-126, -0x0.800002p-126) == true
|
||||
; run: %fcmp_one_f32(-0x0.800002p-126, 0x0.800002p-126) == true
|
||||
; run: %fcmp_one_f32(0x0.800002p-126, 0x0.0) == true
|
||||
; run: %fcmp_one_f32(-0x0.800002p-126, 0x0.0) == true
|
||||
; run: %fcmp_one_f32(0x0.800002p-126, -0x0.0) == true
|
||||
; run: %fcmp_one_f32(-0x0.800002p-126, -0x0.0) == true
|
||||
; run: %fcmp_one_f32(0x0.0, 0x0.800002p-126) == true
|
||||
; run: %fcmp_one_f32(0x0.0, -0x0.800002p-126) == true
|
||||
; run: %fcmp_one_f32(-0x0.0, 0x0.800002p-126) == true
|
||||
; run: %fcmp_one_f32(-0x0.0, -0x0.800002p-126) == true
|
||||
; run: %fcmp_one_f32(0x0.800002p-126, -0x0.800002p-126) == 1
|
||||
; run: %fcmp_one_f32(-0x0.800002p-126, 0x0.800002p-126) == 1
|
||||
; run: %fcmp_one_f32(0x0.800002p-126, 0x0.0) == 1
|
||||
; run: %fcmp_one_f32(-0x0.800002p-126, 0x0.0) == 1
|
||||
; run: %fcmp_one_f32(0x0.800002p-126, -0x0.0) == 1
|
||||
; run: %fcmp_one_f32(-0x0.800002p-126, -0x0.0) == 1
|
||||
; run: %fcmp_one_f32(0x0.0, 0x0.800002p-126) == 1
|
||||
; run: %fcmp_one_f32(0x0.0, -0x0.800002p-126) == 1
|
||||
; run: %fcmp_one_f32(-0x0.0, 0x0.800002p-126) == 1
|
||||
; run: %fcmp_one_f32(-0x0.0, -0x0.800002p-126) == 1
|
||||
|
||||
; NaN's
|
||||
; run: %fcmp_one_f32(+NaN, +NaN) == false
|
||||
; run: %fcmp_one_f32(-NaN, -NaN) == false
|
||||
; run: %fcmp_one_f32(+NaN, -NaN) == false
|
||||
; run: %fcmp_one_f32(-NaN, +NaN) == false
|
||||
; run: %fcmp_one_f32(+NaN, +NaN) == 0
|
||||
; run: %fcmp_one_f32(-NaN, -NaN) == 0
|
||||
; run: %fcmp_one_f32(+NaN, -NaN) == 0
|
||||
; run: %fcmp_one_f32(-NaN, +NaN) == 0
|
||||
|
||||
; run: %fcmp_one_f32(+NaN, -0x1.0) == false
|
||||
; run: %fcmp_one_f32(-NaN, -0x1.0) == false
|
||||
; run: %fcmp_one_f32(+NaN, 0x1.0) == false
|
||||
; run: %fcmp_one_f32(-NaN, 0x1.0) == false
|
||||
; run: %fcmp_one_f32(+NaN, -0x0.0) == false
|
||||
; run: %fcmp_one_f32(-NaN, -0x0.0) == false
|
||||
; run: %fcmp_one_f32(+NaN, 0x0.0) == false
|
||||
; run: %fcmp_one_f32(-NaN, 0x0.0) == false
|
||||
; run: %fcmp_one_f32(+NaN, -Inf) == false
|
||||
; run: %fcmp_one_f32(-NaN, -Inf) == false
|
||||
; run: %fcmp_one_f32(+NaN, Inf) == false
|
||||
; run: %fcmp_one_f32(-NaN, Inf) == false
|
||||
; run: %fcmp_one_f32(-0x0.0, +NaN) == false
|
||||
; run: %fcmp_one_f32(-0x0.0, -NaN) == false
|
||||
; run: %fcmp_one_f32(0x0.0, +NaN) == false
|
||||
; run: %fcmp_one_f32(0x0.0, -NaN) == false
|
||||
; run: %fcmp_one_f32(-Inf, +NaN) == false
|
||||
; run: %fcmp_one_f32(-Inf, -NaN) == false
|
||||
; run: %fcmp_one_f32(Inf, +NaN) == false
|
||||
; run: %fcmp_one_f32(Inf, -NaN) == false
|
||||
; run: %fcmp_one_f32(+NaN, -0x1.0) == 0
|
||||
; run: %fcmp_one_f32(-NaN, -0x1.0) == 0
|
||||
; run: %fcmp_one_f32(+NaN, 0x1.0) == 0
|
||||
; run: %fcmp_one_f32(-NaN, 0x1.0) == 0
|
||||
; run: %fcmp_one_f32(+NaN, -0x0.0) == 0
|
||||
; run: %fcmp_one_f32(-NaN, -0x0.0) == 0
|
||||
; run: %fcmp_one_f32(+NaN, 0x0.0) == 0
|
||||
; run: %fcmp_one_f32(-NaN, 0x0.0) == 0
|
||||
; run: %fcmp_one_f32(+NaN, -Inf) == 0
|
||||
; run: %fcmp_one_f32(-NaN, -Inf) == 0
|
||||
; run: %fcmp_one_f32(+NaN, Inf) == 0
|
||||
; run: %fcmp_one_f32(-NaN, Inf) == 0
|
||||
; run: %fcmp_one_f32(-0x0.0, +NaN) == 0
|
||||
; run: %fcmp_one_f32(-0x0.0, -NaN) == 0
|
||||
; run: %fcmp_one_f32(0x0.0, +NaN) == 0
|
||||
; run: %fcmp_one_f32(0x0.0, -NaN) == 0
|
||||
; run: %fcmp_one_f32(-Inf, +NaN) == 0
|
||||
; run: %fcmp_one_f32(-Inf, -NaN) == 0
|
||||
; run: %fcmp_one_f32(Inf, +NaN) == 0
|
||||
; run: %fcmp_one_f32(Inf, -NaN) == 0
|
||||
|
||||
; run: %fcmp_one_f32(+NaN:0x1, +NaN:0x1) == false
|
||||
; run: %fcmp_one_f32(-NaN:0x1, -NaN:0x1) == false
|
||||
; run: %fcmp_one_f32(+NaN:0x1, -NaN:0x1) == false
|
||||
; run: %fcmp_one_f32(-NaN:0x1, +NaN:0x1) == false
|
||||
; run: %fcmp_one_f32(+NaN:0x1, +NaN) == false
|
||||
; run: %fcmp_one_f32(+NaN:0x1, -NaN) == false
|
||||
; run: %fcmp_one_f32(-NaN:0x1, -NaN) == false
|
||||
; run: %fcmp_one_f32(-NaN:0x1, +NaN) == false
|
||||
; run: %fcmp_one_f32(+NaN:0x1, +NaN:0x1) == 0
|
||||
; run: %fcmp_one_f32(-NaN:0x1, -NaN:0x1) == 0
|
||||
; run: %fcmp_one_f32(+NaN:0x1, -NaN:0x1) == 0
|
||||
; run: %fcmp_one_f32(-NaN:0x1, +NaN:0x1) == 0
|
||||
; run: %fcmp_one_f32(+NaN:0x1, +NaN) == 0
|
||||
; run: %fcmp_one_f32(+NaN:0x1, -NaN) == 0
|
||||
; run: %fcmp_one_f32(-NaN:0x1, -NaN) == 0
|
||||
; run: %fcmp_one_f32(-NaN:0x1, +NaN) == 0
|
||||
|
||||
; run: %fcmp_one_f32(+NaN:0x80001, +NaN:0x80001) == false
|
||||
; run: %fcmp_one_f32(-NaN:0x80001, -NaN:0x80001) == false
|
||||
; run: %fcmp_one_f32(+NaN:0x80001, -NaN:0x80001) == false
|
||||
; run: %fcmp_one_f32(-NaN:0x80001, +NaN:0x80001) == false
|
||||
; run: %fcmp_one_f32(+NaN:0x80001, +NaN) == false
|
||||
; run: %fcmp_one_f32(+NaN:0x80001, -NaN) == false
|
||||
; run: %fcmp_one_f32(-NaN:0x80001, -NaN) == false
|
||||
; run: %fcmp_one_f32(-NaN:0x80001, +NaN) == false
|
||||
; run: %fcmp_one_f32(+NaN:0x80001, +NaN:0x80001) == 0
|
||||
; run: %fcmp_one_f32(-NaN:0x80001, -NaN:0x80001) == 0
|
||||
; run: %fcmp_one_f32(+NaN:0x80001, -NaN:0x80001) == 0
|
||||
; run: %fcmp_one_f32(-NaN:0x80001, +NaN:0x80001) == 0
|
||||
; run: %fcmp_one_f32(+NaN:0x80001, +NaN) == 0
|
||||
; run: %fcmp_one_f32(+NaN:0x80001, -NaN) == 0
|
||||
; run: %fcmp_one_f32(-NaN:0x80001, -NaN) == 0
|
||||
; run: %fcmp_one_f32(-NaN:0x80001, +NaN) == 0
|
||||
|
||||
; sNaN's
|
||||
; run: %fcmp_one_f32(+sNaN:0x1, +sNaN:0x1) == false
|
||||
; run: %fcmp_one_f32(-sNaN:0x1, -sNaN:0x1) == false
|
||||
; run: %fcmp_one_f32(+sNaN:0x1, -sNaN:0x1) == false
|
||||
; run: %fcmp_one_f32(-sNaN:0x1, +sNaN:0x1) == false
|
||||
; run: %fcmp_one_f32(+sNaN:0x1, +sNaN:0x1) == 0
|
||||
; run: %fcmp_one_f32(-sNaN:0x1, -sNaN:0x1) == 0
|
||||
; run: %fcmp_one_f32(+sNaN:0x1, -sNaN:0x1) == 0
|
||||
; run: %fcmp_one_f32(-sNaN:0x1, +sNaN:0x1) == 0
|
||||
|
||||
; run: %fcmp_one_f32(+sNaN:0x1, -0x1.0) == false
|
||||
; run: %fcmp_one_f32(-sNaN:0x1, -0x1.0) == false
|
||||
; run: %fcmp_one_f32(+sNaN:0x1, 0x1.0) == false
|
||||
; run: %fcmp_one_f32(-sNaN:0x1, 0x1.0) == false
|
||||
; run: %fcmp_one_f32(+sNaN:0x1, -0x0.0) == false
|
||||
; run: %fcmp_one_f32(-sNaN:0x1, -0x0.0) == false
|
||||
; run: %fcmp_one_f32(+sNaN:0x1, 0x0.0) == false
|
||||
; run: %fcmp_one_f32(-sNaN:0x1, 0x0.0) == false
|
||||
; run: %fcmp_one_f32(+sNaN:0x1, -Inf) == false
|
||||
; run: %fcmp_one_f32(-sNaN:0x1, -Inf) == false
|
||||
; run: %fcmp_one_f32(+sNaN:0x1, Inf) == false
|
||||
; run: %fcmp_one_f32(-sNaN:0x1, Inf) == false
|
||||
; run: %fcmp_one_f32(-0x0.0, +sNaN:0x1) == false
|
||||
; run: %fcmp_one_f32(-0x0.0, -sNaN:0x1) == false
|
||||
; run: %fcmp_one_f32(0x0.0, +sNaN:0x1) == false
|
||||
; run: %fcmp_one_f32(0x0.0, -sNaN:0x1) == false
|
||||
; run: %fcmp_one_f32(-Inf, +sNaN:0x1) == false
|
||||
; run: %fcmp_one_f32(-Inf, -sNaN:0x1) == false
|
||||
; run: %fcmp_one_f32(Inf, +sNaN:0x1) == false
|
||||
; run: %fcmp_one_f32(Inf, -sNaN:0x1) == false
|
||||
; run: %fcmp_one_f32(+sNaN:0x1, -0x1.0) == 0
|
||||
; run: %fcmp_one_f32(-sNaN:0x1, -0x1.0) == 0
|
||||
; run: %fcmp_one_f32(+sNaN:0x1, 0x1.0) == 0
|
||||
; run: %fcmp_one_f32(-sNaN:0x1, 0x1.0) == 0
|
||||
; run: %fcmp_one_f32(+sNaN:0x1, -0x0.0) == 0
|
||||
; run: %fcmp_one_f32(-sNaN:0x1, -0x0.0) == 0
|
||||
; run: %fcmp_one_f32(+sNaN:0x1, 0x0.0) == 0
|
||||
; run: %fcmp_one_f32(-sNaN:0x1, 0x0.0) == 0
|
||||
; run: %fcmp_one_f32(+sNaN:0x1, -Inf) == 0
|
||||
; run: %fcmp_one_f32(-sNaN:0x1, -Inf) == 0
|
||||
; run: %fcmp_one_f32(+sNaN:0x1, Inf) == 0
|
||||
; run: %fcmp_one_f32(-sNaN:0x1, Inf) == 0
|
||||
; run: %fcmp_one_f32(-0x0.0, +sNaN:0x1) == 0
|
||||
; run: %fcmp_one_f32(-0x0.0, -sNaN:0x1) == 0
|
||||
; run: %fcmp_one_f32(0x0.0, +sNaN:0x1) == 0
|
||||
; run: %fcmp_one_f32(0x0.0, -sNaN:0x1) == 0
|
||||
; run: %fcmp_one_f32(-Inf, +sNaN:0x1) == 0
|
||||
; run: %fcmp_one_f32(-Inf, -sNaN:0x1) == 0
|
||||
; run: %fcmp_one_f32(Inf, +sNaN:0x1) == 0
|
||||
; run: %fcmp_one_f32(Inf, -sNaN:0x1) == 0
|
||||
|
||||
; run: %fcmp_one_f32(+sNaN:0x1, +NaN:0x1) == false
|
||||
; run: %fcmp_one_f32(-sNaN:0x1, -NaN:0x1) == false
|
||||
; run: %fcmp_one_f32(+sNaN:0x1, -NaN:0x1) == false
|
||||
; run: %fcmp_one_f32(-sNaN:0x1, +NaN:0x1) == false
|
||||
; run: %fcmp_one_f32(+NaN:0x1, +sNaN:0x1) == false
|
||||
; run: %fcmp_one_f32(-NaN:0x1, -sNaN:0x1) == false
|
||||
; run: %fcmp_one_f32(-NaN:0x1, +sNaN:0x1) == false
|
||||
; run: %fcmp_one_f32(+NaN:0x1, -sNaN:0x1) == false
|
||||
; run: %fcmp_one_f32(+sNaN:0x1, +NaN:0x1) == 0
|
||||
; run: %fcmp_one_f32(-sNaN:0x1, -NaN:0x1) == 0
|
||||
; run: %fcmp_one_f32(+sNaN:0x1, -NaN:0x1) == 0
|
||||
; run: %fcmp_one_f32(-sNaN:0x1, +NaN:0x1) == 0
|
||||
; run: %fcmp_one_f32(+NaN:0x1, +sNaN:0x1) == 0
|
||||
; run: %fcmp_one_f32(-NaN:0x1, -sNaN:0x1) == 0
|
||||
; run: %fcmp_one_f32(-NaN:0x1, +sNaN:0x1) == 0
|
||||
; run: %fcmp_one_f32(+NaN:0x1, -sNaN:0x1) == 0
|
||||
|
||||
; run: %fcmp_one_f32(+sNaN:0x80001, +sNaN:0x80001) == false
|
||||
; run: %fcmp_one_f32(-sNaN:0x80001, -sNaN:0x80001) == false
|
||||
; run: %fcmp_one_f32(+sNaN:0x80001, -sNaN:0x80001) == false
|
||||
; run: %fcmp_one_f32(-sNaN:0x80001, +sNaN:0x80001) == false
|
||||
; run: %fcmp_one_f32(+sNaN:0x80001, +sNaN:0x1) == false
|
||||
; run: %fcmp_one_f32(+sNaN:0x80001, -sNaN:0x1) == false
|
||||
; run: %fcmp_one_f32(-sNaN:0x80001, -sNaN:0x1) == false
|
||||
; run: %fcmp_one_f32(-sNaN:0x80001, +sNaN:0x1) == false
|
||||
; run: %fcmp_one_f32(+sNaN:0x80001, +sNaN:0x80001) == 0
|
||||
; run: %fcmp_one_f32(-sNaN:0x80001, -sNaN:0x80001) == 0
|
||||
; run: %fcmp_one_f32(+sNaN:0x80001, -sNaN:0x80001) == 0
|
||||
; run: %fcmp_one_f32(-sNaN:0x80001, +sNaN:0x80001) == 0
|
||||
; run: %fcmp_one_f32(+sNaN:0x80001, +sNaN:0x1) == 0
|
||||
; run: %fcmp_one_f32(+sNaN:0x80001, -sNaN:0x1) == 0
|
||||
; run: %fcmp_one_f32(-sNaN:0x80001, -sNaN:0x1) == 0
|
||||
; run: %fcmp_one_f32(-sNaN:0x80001, +sNaN:0x1) == 0
|
||||
|
||||
|
||||
function %fcmp_one_f64(f64, f64) -> b1 {
|
||||
function %fcmp_one_f64(f64, f64) -> i8 {
|
||||
block0(v0: f64, v1: f64):
|
||||
v2 = fcmp one v0, v1
|
||||
return v2
|
||||
}
|
||||
; run: %fcmp_one_f64(0x0.5, 0x0.5) == false
|
||||
; run: %fcmp_one_f64(0x1.0, 0x1.0) == false
|
||||
; run: %fcmp_one_f64(-0x1.0, 0x1.0) == true
|
||||
; run: %fcmp_one_f64(0x1.0, -0x1.0) == true
|
||||
; run: %fcmp_one_f64(0x0.5, 0x1.0) == true
|
||||
; run: %fcmp_one_f64(0x1.5, 0x2.9) == true
|
||||
; run: %fcmp_one_f64(0x1.1p10, 0x1.4p1) == true
|
||||
; run: %fcmp_one_f64(0x1.4cccccccccccdp0, 0x1.8p0) == true
|
||||
; run: %fcmp_one_f64(0x1.b333333333333p0, 0x1.999999999999ap-2) == true
|
||||
; run: %fcmp_one_f64(0x1.3333333333333p-1, 0x1.6666666666666p1) == true
|
||||
; run: %fcmp_one_f64(-0x0.5, -0x1.0) == true
|
||||
; run: %fcmp_one_f64(-0x1.5, -0x2.9) == true
|
||||
; run: %fcmp_one_f64(-0x1.1p10, -0x1.3333333333333p-1) == true
|
||||
; run: %fcmp_one_f64(-0x1.999999999999ap-2, -0x1.4cccccccccccdp0) == true
|
||||
; run: %fcmp_one_f64(-0x1.8p0, -0x1.b333333333333p0) == true
|
||||
; run: %fcmp_one_f64(-0x1.4p1, -0x1.6666666666666p1) == true
|
||||
; run: %fcmp_one_f64(0x0.5, -0x1.0) == true
|
||||
; run: %fcmp_one_f64(0x1.b333333333333p0, -0x1.b333333333333p0) == true
|
||||
; run: %fcmp_one_f64(0x0.5, 0x0.5) == 0
|
||||
; run: %fcmp_one_f64(0x1.0, 0x1.0) == 0
|
||||
; run: %fcmp_one_f64(-0x1.0, 0x1.0) == 1
|
||||
; run: %fcmp_one_f64(0x1.0, -0x1.0) == 1
|
||||
; run: %fcmp_one_f64(0x0.5, 0x1.0) == 1
|
||||
; run: %fcmp_one_f64(0x1.5, 0x2.9) == 1
|
||||
; run: %fcmp_one_f64(0x1.1p10, 0x1.4p1) == 1
|
||||
; run: %fcmp_one_f64(0x1.4cccccccccccdp0, 0x1.8p0) == 1
|
||||
; run: %fcmp_one_f64(0x1.b333333333333p0, 0x1.999999999999ap-2) == 1
|
||||
; run: %fcmp_one_f64(0x1.3333333333333p-1, 0x1.6666666666666p1) == 1
|
||||
; run: %fcmp_one_f64(-0x0.5, -0x1.0) == 1
|
||||
; run: %fcmp_one_f64(-0x1.5, -0x2.9) == 1
|
||||
; run: %fcmp_one_f64(-0x1.1p10, -0x1.3333333333333p-1) == 1
|
||||
; run: %fcmp_one_f64(-0x1.999999999999ap-2, -0x1.4cccccccccccdp0) == 1
|
||||
; run: %fcmp_one_f64(-0x1.8p0, -0x1.b333333333333p0) == 1
|
||||
; run: %fcmp_one_f64(-0x1.4p1, -0x1.6666666666666p1) == 1
|
||||
; run: %fcmp_one_f64(0x0.5, -0x1.0) == 1
|
||||
; run: %fcmp_one_f64(0x1.b333333333333p0, -0x1.b333333333333p0) == 1
|
||||
|
||||
|
||||
; Zeroes
|
||||
; run: %fcmp_one_f64(0x0.0, 0x0.0) == false
|
||||
; run: %fcmp_one_f64(-0x0.0, -0x0.0) == false
|
||||
; run: %fcmp_one_f64(0x0.0, -0x0.0) == false
|
||||
; run: %fcmp_one_f64(-0x0.0, 0x0.0) == false
|
||||
; run: %fcmp_one_f64(0x0.0, 0x0.0) == 0
|
||||
; run: %fcmp_one_f64(-0x0.0, -0x0.0) == 0
|
||||
; run: %fcmp_one_f64(0x0.0, -0x0.0) == 0
|
||||
; run: %fcmp_one_f64(-0x0.0, 0x0.0) == 0
|
||||
|
||||
; Infinities
|
||||
; run: %fcmp_one_f64(Inf, Inf) == false
|
||||
; run: %fcmp_one_f64(-Inf, -Inf) == false
|
||||
; run: %fcmp_one_f64(Inf, -Inf) == true
|
||||
; run: %fcmp_one_f64(-Inf, Inf) == true
|
||||
; run: %fcmp_one_f64(Inf, Inf) == 0
|
||||
; run: %fcmp_one_f64(-Inf, -Inf) == 0
|
||||
; run: %fcmp_one_f64(Inf, -Inf) == 1
|
||||
; run: %fcmp_one_f64(-Inf, Inf) == 1
|
||||
|
||||
; Inf/Zero
|
||||
; run: %fcmp_one_f64(0x0.0, Inf) == true
|
||||
; run: %fcmp_one_f64(-0x0.0, Inf) == true
|
||||
; run: %fcmp_one_f64(0x0.0, -Inf) == true
|
||||
; run: %fcmp_one_f64(-0x0.0, -Inf) == true
|
||||
; run: %fcmp_one_f64(Inf, 0x0.0) == true
|
||||
; run: %fcmp_one_f64(Inf, -0x0.0) == true
|
||||
; run: %fcmp_one_f64(-Inf, 0x0.0) == true
|
||||
; run: %fcmp_one_f64(-Inf, -0x0.0) == true
|
||||
; run: %fcmp_one_f64(0x0.0, Inf) == 1
|
||||
; run: %fcmp_one_f64(-0x0.0, Inf) == 1
|
||||
; run: %fcmp_one_f64(0x0.0, -Inf) == 1
|
||||
; run: %fcmp_one_f64(-0x0.0, -Inf) == 1
|
||||
; run: %fcmp_one_f64(Inf, 0x0.0) == 1
|
||||
; run: %fcmp_one_f64(Inf, -0x0.0) == 1
|
||||
; run: %fcmp_one_f64(-Inf, 0x0.0) == 1
|
||||
; run: %fcmp_one_f64(-Inf, -0x0.0) == 1
|
||||
|
||||
; Epsilon / Max / Min Positive
|
||||
; run: %fcmp_one_f64(0x1.0p-52, 0x1.0p-52) == false
|
||||
; run: %fcmp_one_f64(0x1.fffffffffffffp1023, 0x1.fffffffffffffp1023) == false
|
||||
; run: %fcmp_one_f64(0x1.0p-1022, 0x1.0p-1022) == false
|
||||
; run: %fcmp_one_f64(0x1.0p-52, 0x1.fffffffffffffp1023) == true
|
||||
; run: %fcmp_one_f64(0x1.0p-52, 0x1.0p-1022) == true
|
||||
; run: %fcmp_one_f64(0x1.0p-1022, 0x1.fffffffffffffp1023) == true
|
||||
; run: %fcmp_one_f64(0x1.0p-52, 0x1.0p-52) == 0
|
||||
; run: %fcmp_one_f64(0x1.fffffffffffffp1023, 0x1.fffffffffffffp1023) == 0
|
||||
; run: %fcmp_one_f64(0x1.0p-1022, 0x1.0p-1022) == 0
|
||||
; run: %fcmp_one_f64(0x1.0p-52, 0x1.fffffffffffffp1023) == 1
|
||||
; run: %fcmp_one_f64(0x1.0p-52, 0x1.0p-1022) == 1
|
||||
; run: %fcmp_one_f64(0x1.0p-1022, 0x1.fffffffffffffp1023) == 1
|
||||
|
||||
; Subnormals
|
||||
; run: %fcmp_one_f64(0x0.8p-1022, -0x0.8p-1022) == true
|
||||
; run: %fcmp_one_f64(-0x0.8p-1022, 0x0.8p-1022) == true
|
||||
; run: %fcmp_one_f64(0x0.8p-1022, 0x0.0) == true
|
||||
; run: %fcmp_one_f64(-0x0.8p-1022, 0x0.0) == true
|
||||
; run: %fcmp_one_f64(0x0.8p-1022, -0x0.0) == true
|
||||
; run: %fcmp_one_f64(-0x0.8p-1022, -0x0.0) == true
|
||||
; run: %fcmp_one_f64(0x0.0, 0x0.8p-1022) == true
|
||||
; run: %fcmp_one_f64(0x0.0, -0x0.8p-1022) == true
|
||||
; run: %fcmp_one_f64(-0x0.0, 0x0.8p-1022) == true
|
||||
; run: %fcmp_one_f64(-0x0.0, -0x0.8p-1022) == true
|
||||
; run: %fcmp_one_f64(0x0.8p-1022, -0x0.8p-1022) == 1
|
||||
; run: %fcmp_one_f64(-0x0.8p-1022, 0x0.8p-1022) == 1
|
||||
; run: %fcmp_one_f64(0x0.8p-1022, 0x0.0) == 1
|
||||
; run: %fcmp_one_f64(-0x0.8p-1022, 0x0.0) == 1
|
||||
; run: %fcmp_one_f64(0x0.8p-1022, -0x0.0) == 1
|
||||
; run: %fcmp_one_f64(-0x0.8p-1022, -0x0.0) == 1
|
||||
; run: %fcmp_one_f64(0x0.0, 0x0.8p-1022) == 1
|
||||
; run: %fcmp_one_f64(0x0.0, -0x0.8p-1022) == 1
|
||||
; run: %fcmp_one_f64(-0x0.0, 0x0.8p-1022) == 1
|
||||
; run: %fcmp_one_f64(-0x0.0, -0x0.8p-1022) == 1
|
||||
|
||||
; NaN's
|
||||
; run: %fcmp_one_f64(+NaN, +NaN) == false
|
||||
; run: %fcmp_one_f64(-NaN, -NaN) == false
|
||||
; run: %fcmp_one_f64(+NaN, -NaN) == false
|
||||
; run: %fcmp_one_f64(-NaN, +NaN) == false
|
||||
; run: %fcmp_one_f64(+NaN, +NaN) == 0
|
||||
; run: %fcmp_one_f64(-NaN, -NaN) == 0
|
||||
; run: %fcmp_one_f64(+NaN, -NaN) == 0
|
||||
; run: %fcmp_one_f64(-NaN, +NaN) == 0
|
||||
|
||||
; run: %fcmp_one_f64(+NaN, -0x1.0) == false
|
||||
; run: %fcmp_one_f64(-NaN, -0x1.0) == false
|
||||
; run: %fcmp_one_f64(+NaN, 0x1.0) == false
|
||||
; run: %fcmp_one_f64(-NaN, 0x1.0) == false
|
||||
; run: %fcmp_one_f64(+NaN, -0x0.0) == false
|
||||
; run: %fcmp_one_f64(-NaN, -0x0.0) == false
|
||||
; run: %fcmp_one_f64(+NaN, 0x0.0) == false
|
||||
; run: %fcmp_one_f64(-NaN, 0x0.0) == false
|
||||
; run: %fcmp_one_f64(+NaN, -Inf) == false
|
||||
; run: %fcmp_one_f64(-NaN, -Inf) == false
|
||||
; run: %fcmp_one_f64(+NaN, Inf) == false
|
||||
; run: %fcmp_one_f64(-NaN, Inf) == false
|
||||
; run: %fcmp_one_f64(-0x0.0, +NaN) == false
|
||||
; run: %fcmp_one_f64(-0x0.0, -NaN) == false
|
||||
; run: %fcmp_one_f64(0x0.0, +NaN) == false
|
||||
; run: %fcmp_one_f64(0x0.0, -NaN) == false
|
||||
; run: %fcmp_one_f64(-Inf, +NaN) == false
|
||||
; run: %fcmp_one_f64(-Inf, -NaN) == false
|
||||
; run: %fcmp_one_f64(Inf, +NaN) == false
|
||||
; run: %fcmp_one_f64(Inf, -NaN) == false
|
||||
; run: %fcmp_one_f64(+NaN, -0x1.0) == 0
|
||||
; run: %fcmp_one_f64(-NaN, -0x1.0) == 0
|
||||
; run: %fcmp_one_f64(+NaN, 0x1.0) == 0
|
||||
; run: %fcmp_one_f64(-NaN, 0x1.0) == 0
|
||||
; run: %fcmp_one_f64(+NaN, -0x0.0) == 0
|
||||
; run: %fcmp_one_f64(-NaN, -0x0.0) == 0
|
||||
; run: %fcmp_one_f64(+NaN, 0x0.0) == 0
|
||||
; run: %fcmp_one_f64(-NaN, 0x0.0) == 0
|
||||
; run: %fcmp_one_f64(+NaN, -Inf) == 0
|
||||
; run: %fcmp_one_f64(-NaN, -Inf) == 0
|
||||
; run: %fcmp_one_f64(+NaN, Inf) == 0
|
||||
; run: %fcmp_one_f64(-NaN, Inf) == 0
|
||||
; run: %fcmp_one_f64(-0x0.0, +NaN) == 0
|
||||
; run: %fcmp_one_f64(-0x0.0, -NaN) == 0
|
||||
; run: %fcmp_one_f64(0x0.0, +NaN) == 0
|
||||
; run: %fcmp_one_f64(0x0.0, -NaN) == 0
|
||||
; run: %fcmp_one_f64(-Inf, +NaN) == 0
|
||||
; run: %fcmp_one_f64(-Inf, -NaN) == 0
|
||||
; run: %fcmp_one_f64(Inf, +NaN) == 0
|
||||
; run: %fcmp_one_f64(Inf, -NaN) == 0
|
||||
|
||||
; run: %fcmp_one_f64(+NaN:0x1, +NaN:0x1) == false
|
||||
; run: %fcmp_one_f64(-NaN:0x1, -NaN:0x1) == false
|
||||
; run: %fcmp_one_f64(+NaN:0x1, -NaN:0x1) == false
|
||||
; run: %fcmp_one_f64(-NaN:0x1, +NaN:0x1) == false
|
||||
; run: %fcmp_one_f64(+NaN:0x1, +NaN) == false
|
||||
; run: %fcmp_one_f64(+NaN:0x1, -NaN) == false
|
||||
; run: %fcmp_one_f64(-NaN:0x1, -NaN) == false
|
||||
; run: %fcmp_one_f64(-NaN:0x1, +NaN) == false
|
||||
; run: %fcmp_one_f64(+NaN:0x1, +NaN:0x1) == 0
|
||||
; run: %fcmp_one_f64(-NaN:0x1, -NaN:0x1) == 0
|
||||
; run: %fcmp_one_f64(+NaN:0x1, -NaN:0x1) == 0
|
||||
; run: %fcmp_one_f64(-NaN:0x1, +NaN:0x1) == 0
|
||||
; run: %fcmp_one_f64(+NaN:0x1, +NaN) == 0
|
||||
; run: %fcmp_one_f64(+NaN:0x1, -NaN) == 0
|
||||
; run: %fcmp_one_f64(-NaN:0x1, -NaN) == 0
|
||||
; run: %fcmp_one_f64(-NaN:0x1, +NaN) == 0
|
||||
|
||||
; run: %fcmp_one_f64(+NaN:0x800000000001, +NaN:0x800000000001) == false
|
||||
; run: %fcmp_one_f64(-NaN:0x800000000001, -NaN:0x800000000001) == false
|
||||
; run: %fcmp_one_f64(+NaN:0x800000000001, -NaN:0x800000000001) == false
|
||||
; run: %fcmp_one_f64(-NaN:0x800000000001, +NaN:0x800000000001) == false
|
||||
; run: %fcmp_one_f64(+NaN:0x800000000001, +NaN) == false
|
||||
; run: %fcmp_one_f64(+NaN:0x800000000001, -NaN) == false
|
||||
; run: %fcmp_one_f64(-NaN:0x800000000001, -NaN) == false
|
||||
; run: %fcmp_one_f64(-NaN:0x800000000001, +NaN) == false
|
||||
; run: %fcmp_one_f64(+NaN:0x800000000001, +NaN:0x800000000001) == 0
|
||||
; run: %fcmp_one_f64(-NaN:0x800000000001, -NaN:0x800000000001) == 0
|
||||
; run: %fcmp_one_f64(+NaN:0x800000000001, -NaN:0x800000000001) == 0
|
||||
; run: %fcmp_one_f64(-NaN:0x800000000001, +NaN:0x800000000001) == 0
|
||||
; run: %fcmp_one_f64(+NaN:0x800000000001, +NaN) == 0
|
||||
; run: %fcmp_one_f64(+NaN:0x800000000001, -NaN) == 0
|
||||
; run: %fcmp_one_f64(-NaN:0x800000000001, -NaN) == 0
|
||||
; run: %fcmp_one_f64(-NaN:0x800000000001, +NaN) == 0
|
||||
|
||||
; sNaN's
|
||||
; run: %fcmp_one_f64(+sNaN:0x1, +sNaN:0x1) == false
|
||||
; run: %fcmp_one_f64(-sNaN:0x1, -sNaN:0x1) == false
|
||||
; run: %fcmp_one_f64(+sNaN:0x1, -sNaN:0x1) == false
|
||||
; run: %fcmp_one_f64(-sNaN:0x1, +sNaN:0x1) == false
|
||||
; run: %fcmp_one_f64(+sNaN:0x1, +sNaN:0x1) == 0
|
||||
; run: %fcmp_one_f64(-sNaN:0x1, -sNaN:0x1) == 0
|
||||
; run: %fcmp_one_f64(+sNaN:0x1, -sNaN:0x1) == 0
|
||||
; run: %fcmp_one_f64(-sNaN:0x1, +sNaN:0x1) == 0
|
||||
|
||||
; run: %fcmp_one_f64(+sNaN:0x1, -0x1.0) == false
|
||||
; run: %fcmp_one_f64(-sNaN:0x1, -0x1.0) == false
|
||||
; run: %fcmp_one_f64(+sNaN:0x1, 0x1.0) == false
|
||||
; run: %fcmp_one_f64(-sNaN:0x1, 0x1.0) == false
|
||||
; run: %fcmp_one_f64(+sNaN:0x1, -0x0.0) == false
|
||||
; run: %fcmp_one_f64(-sNaN:0x1, -0x0.0) == false
|
||||
; run: %fcmp_one_f64(+sNaN:0x1, 0x0.0) == false
|
||||
; run: %fcmp_one_f64(-sNaN:0x1, 0x0.0) == false
|
||||
; run: %fcmp_one_f64(+sNaN:0x1, -Inf) == false
|
||||
; run: %fcmp_one_f64(-sNaN:0x1, -Inf) == false
|
||||
; run: %fcmp_one_f64(+sNaN:0x1, Inf) == false
|
||||
; run: %fcmp_one_f64(-sNaN:0x1, Inf) == false
|
||||
; run: %fcmp_one_f64(-0x0.0, +sNaN:0x1) == false
|
||||
; run: %fcmp_one_f64(-0x0.0, -sNaN:0x1) == false
|
||||
; run: %fcmp_one_f64(0x0.0, +sNaN:0x1) == false
|
||||
; run: %fcmp_one_f64(0x0.0, -sNaN:0x1) == false
|
||||
; run: %fcmp_one_f64(-Inf, +sNaN:0x1) == false
|
||||
; run: %fcmp_one_f64(-Inf, -sNaN:0x1) == false
|
||||
; run: %fcmp_one_f64(Inf, +sNaN:0x1) == false
|
||||
; run: %fcmp_one_f64(Inf, -sNaN:0x1) == false
|
||||
; run: %fcmp_one_f64(+sNaN:0x1, -0x1.0) == 0
|
||||
; run: %fcmp_one_f64(-sNaN:0x1, -0x1.0) == 0
|
||||
; run: %fcmp_one_f64(+sNaN:0x1, 0x1.0) == 0
|
||||
; run: %fcmp_one_f64(-sNaN:0x1, 0x1.0) == 0
|
||||
; run: %fcmp_one_f64(+sNaN:0x1, -0x0.0) == 0
|
||||
; run: %fcmp_one_f64(-sNaN:0x1, -0x0.0) == 0
|
||||
; run: %fcmp_one_f64(+sNaN:0x1, 0x0.0) == 0
|
||||
; run: %fcmp_one_f64(-sNaN:0x1, 0x0.0) == 0
|
||||
; run: %fcmp_one_f64(+sNaN:0x1, -Inf) == 0
|
||||
; run: %fcmp_one_f64(-sNaN:0x1, -Inf) == 0
|
||||
; run: %fcmp_one_f64(+sNaN:0x1, Inf) == 0
|
||||
; run: %fcmp_one_f64(-sNaN:0x1, Inf) == 0
|
||||
; run: %fcmp_one_f64(-0x0.0, +sNaN:0x1) == 0
|
||||
; run: %fcmp_one_f64(-0x0.0, -sNaN:0x1) == 0
|
||||
; run: %fcmp_one_f64(0x0.0, +sNaN:0x1) == 0
|
||||
; run: %fcmp_one_f64(0x0.0, -sNaN:0x1) == 0
|
||||
; run: %fcmp_one_f64(-Inf, +sNaN:0x1) == 0
|
||||
; run: %fcmp_one_f64(-Inf, -sNaN:0x1) == 0
|
||||
; run: %fcmp_one_f64(Inf, +sNaN:0x1) == 0
|
||||
; run: %fcmp_one_f64(Inf, -sNaN:0x1) == 0
|
||||
|
||||
; run: %fcmp_one_f64(+sNaN:0x1, +NaN:0x1) == false
|
||||
; run: %fcmp_one_f64(-sNaN:0x1, -NaN:0x1) == false
|
||||
; run: %fcmp_one_f64(+sNaN:0x1, -NaN:0x1) == false
|
||||
; run: %fcmp_one_f64(-sNaN:0x1, +NaN:0x1) == false
|
||||
; run: %fcmp_one_f64(+NaN:0x1, +sNaN:0x1) == false
|
||||
; run: %fcmp_one_f64(-NaN:0x1, -sNaN:0x1) == false
|
||||
; run: %fcmp_one_f64(-NaN:0x1, +sNaN:0x1) == false
|
||||
; run: %fcmp_one_f64(+NaN:0x1, -sNaN:0x1) == false
|
||||
; run: %fcmp_one_f64(+sNaN:0x1, +NaN:0x1) == 0
|
||||
; run: %fcmp_one_f64(-sNaN:0x1, -NaN:0x1) == 0
|
||||
; run: %fcmp_one_f64(+sNaN:0x1, -NaN:0x1) == 0
|
||||
; run: %fcmp_one_f64(-sNaN:0x1, +NaN:0x1) == 0
|
||||
; run: %fcmp_one_f64(+NaN:0x1, +sNaN:0x1) == 0
|
||||
; run: %fcmp_one_f64(-NaN:0x1, -sNaN:0x1) == 0
|
||||
; run: %fcmp_one_f64(-NaN:0x1, +sNaN:0x1) == 0
|
||||
; run: %fcmp_one_f64(+NaN:0x1, -sNaN:0x1) == 0
|
||||
|
||||
; run: %fcmp_one_f64(+sNaN:0x800000000001, +sNaN:0x800000000001) == false
|
||||
; run: %fcmp_one_f64(-sNaN:0x800000000001, -sNaN:0x800000000001) == false
|
||||
; run: %fcmp_one_f64(+sNaN:0x800000000001, -sNaN:0x800000000001) == false
|
||||
; run: %fcmp_one_f64(-sNaN:0x800000000001, +sNaN:0x800000000001) == false
|
||||
; run: %fcmp_one_f64(+sNaN:0x800000000001, +sNaN:0x1) == false
|
||||
; run: %fcmp_one_f64(+sNaN:0x800000000001, -sNaN:0x1) == false
|
||||
; run: %fcmp_one_f64(-sNaN:0x800000000001, -sNaN:0x1) == false
|
||||
; run: %fcmp_one_f64(-sNaN:0x800000000001, +sNaN:0x1) == false
|
||||
; run: %fcmp_one_f64(+sNaN:0x800000000001, +sNaN:0x800000000001) == 0
|
||||
; run: %fcmp_one_f64(-sNaN:0x800000000001, -sNaN:0x800000000001) == 0
|
||||
; run: %fcmp_one_f64(+sNaN:0x800000000001, -sNaN:0x800000000001) == 0
|
||||
; run: %fcmp_one_f64(-sNaN:0x800000000001, +sNaN:0x800000000001) == 0
|
||||
; run: %fcmp_one_f64(+sNaN:0x800000000001, +sNaN:0x1) == 0
|
||||
; run: %fcmp_one_f64(+sNaN:0x800000000001, -sNaN:0x1) == 0
|
||||
; run: %fcmp_one_f64(-sNaN:0x800000000001, -sNaN:0x1) == 0
|
||||
; run: %fcmp_one_f64(-sNaN:0x800000000001, +sNaN:0x1) == 0
|
||||
|
||||
@@ -4,316 +4,316 @@ target x86_64
|
||||
target s390x
|
||||
target riscv64
|
||||
|
||||
function %fcmp_ord_f32(f32, f32) -> b1 {
|
||||
function %fcmp_ord_f32(f32, f32) -> i8 {
|
||||
block0(v0: f32, v1: f32):
|
||||
v2 = fcmp ord v0, v1
|
||||
return v2
|
||||
}
|
||||
; run: %fcmp_ord_f32(0x0.5, 0x0.5) == true
|
||||
; run: %fcmp_ord_f32(0x1.0, 0x1.0) == true
|
||||
; run: %fcmp_ord_f32(-0x1.0, 0x1.0) == true
|
||||
; run: %fcmp_ord_f32(0x1.0, -0x1.0) == true
|
||||
; run: %fcmp_ord_f32(0x0.5, 0x1.0) == true
|
||||
; run: %fcmp_ord_f32(0x1.5, 0x2.9) == true
|
||||
; run: %fcmp_ord_f32(0x1.1p10, 0x1.4p1) == true
|
||||
; run: %fcmp_ord_f32(0x1.4cccccp0, 0x1.8p0) == true
|
||||
; run: %fcmp_ord_f32(0x1.b33334p0, 0x1.99999ap-2) == true
|
||||
; run: %fcmp_ord_f32(0x1.333334p-1, 0x1.666666p1) == true
|
||||
; run: %fcmp_ord_f32(-0x0.5, -0x1.0) == true
|
||||
; run: %fcmp_ord_f32(-0x1.5, -0x2.9) == true
|
||||
; run: %fcmp_ord_f32(-0x1.1p10, -0x1.333334p-1) == true
|
||||
; run: %fcmp_ord_f32(-0x1.99999ap-2, -0x1.4cccccp0) == true
|
||||
; run: %fcmp_ord_f32(-0x1.8p0, -0x1.b33334p0) == true
|
||||
; run: %fcmp_ord_f32(-0x1.4p1, -0x1.666666p1) == true
|
||||
; run: %fcmp_ord_f32(0x0.5, -0x1.0) == true
|
||||
; run: %fcmp_ord_f32(0x1.b33334p0, -0x1.b33334p0) == true
|
||||
; run: %fcmp_ord_f32(0x0.5, 0x0.5) == 1
|
||||
; run: %fcmp_ord_f32(0x1.0, 0x1.0) == 1
|
||||
; run: %fcmp_ord_f32(-0x1.0, 0x1.0) == 1
|
||||
; run: %fcmp_ord_f32(0x1.0, -0x1.0) == 1
|
||||
; run: %fcmp_ord_f32(0x0.5, 0x1.0) == 1
|
||||
; run: %fcmp_ord_f32(0x1.5, 0x2.9) == 1
|
||||
; run: %fcmp_ord_f32(0x1.1p10, 0x1.4p1) == 1
|
||||
; run: %fcmp_ord_f32(0x1.4cccccp0, 0x1.8p0) == 1
|
||||
; run: %fcmp_ord_f32(0x1.b33334p0, 0x1.99999ap-2) == 1
|
||||
; run: %fcmp_ord_f32(0x1.333334p-1, 0x1.666666p1) == 1
|
||||
; run: %fcmp_ord_f32(-0x0.5, -0x1.0) == 1
|
||||
; run: %fcmp_ord_f32(-0x1.5, -0x2.9) == 1
|
||||
; run: %fcmp_ord_f32(-0x1.1p10, -0x1.333334p-1) == 1
|
||||
; run: %fcmp_ord_f32(-0x1.99999ap-2, -0x1.4cccccp0) == 1
|
||||
; run: %fcmp_ord_f32(-0x1.8p0, -0x1.b33334p0) == 1
|
||||
; run: %fcmp_ord_f32(-0x1.4p1, -0x1.666666p1) == 1
|
||||
; run: %fcmp_ord_f32(0x0.5, -0x1.0) == 1
|
||||
; run: %fcmp_ord_f32(0x1.b33334p0, -0x1.b33334p0) == 1
|
||||
|
||||
; Zeroes
|
||||
; run: %fcmp_ord_f32(0x0.0, 0x0.0) == true
|
||||
; run: %fcmp_ord_f32(-0x0.0, -0x0.0) == true
|
||||
; run: %fcmp_ord_f32(0x0.0, -0x0.0) == true
|
||||
; run: %fcmp_ord_f32(-0x0.0, 0x0.0) == true
|
||||
; run: %fcmp_ord_f32(0x0.0, 0x0.0) == 1
|
||||
; run: %fcmp_ord_f32(-0x0.0, -0x0.0) == 1
|
||||
; run: %fcmp_ord_f32(0x0.0, -0x0.0) == 1
|
||||
; run: %fcmp_ord_f32(-0x0.0, 0x0.0) == 1
|
||||
|
||||
; Infinities
|
||||
; run: %fcmp_ord_f32(Inf, Inf) == true
|
||||
; run: %fcmp_ord_f32(-Inf, -Inf) == true
|
||||
; run: %fcmp_ord_f32(Inf, -Inf) == true
|
||||
; run: %fcmp_ord_f32(-Inf, Inf) == true
|
||||
; run: %fcmp_ord_f32(Inf, Inf) == 1
|
||||
; run: %fcmp_ord_f32(-Inf, -Inf) == 1
|
||||
; run: %fcmp_ord_f32(Inf, -Inf) == 1
|
||||
; run: %fcmp_ord_f32(-Inf, Inf) == 1
|
||||
|
||||
; Inf/Zero
|
||||
; run: %fcmp_ord_f32(0x0.0, Inf) == true
|
||||
; run: %fcmp_ord_f32(-0x0.0, Inf) == true
|
||||
; run: %fcmp_ord_f32(0x0.0, -Inf) == true
|
||||
; run: %fcmp_ord_f32(-0x0.0, -Inf) == true
|
||||
; run: %fcmp_ord_f32(Inf, 0x0.0) == true
|
||||
; run: %fcmp_ord_f32(Inf, -0x0.0) == true
|
||||
; run: %fcmp_ord_f32(-Inf, 0x0.0) == true
|
||||
; run: %fcmp_ord_f32(-Inf, -0x0.0) == true
|
||||
; run: %fcmp_ord_f32(0x0.0, Inf) == 1
|
||||
; run: %fcmp_ord_f32(-0x0.0, Inf) == 1
|
||||
; run: %fcmp_ord_f32(0x0.0, -Inf) == 1
|
||||
; run: %fcmp_ord_f32(-0x0.0, -Inf) == 1
|
||||
; run: %fcmp_ord_f32(Inf, 0x0.0) == 1
|
||||
; run: %fcmp_ord_f32(Inf, -0x0.0) == 1
|
||||
; run: %fcmp_ord_f32(-Inf, 0x0.0) == 1
|
||||
; run: %fcmp_ord_f32(-Inf, -0x0.0) == 1
|
||||
|
||||
; Epsilon / Max / Min Positive
|
||||
; run: %fcmp_ord_f32(0x1.0p-23, 0x1.0p-23) == true
|
||||
; run: %fcmp_ord_f32(0x1.fffffep127, 0x1.fffffep127) == true
|
||||
; run: %fcmp_ord_f32(0x1.0p-126, 0x1.0p-126) == true
|
||||
; run: %fcmp_ord_f32(0x1.0p-23, 0x1.fffffep127) == true
|
||||
; run: %fcmp_ord_f32(0x1.0p-23, 0x1.0p-126) == true
|
||||
; run: %fcmp_ord_f32(0x1.0p-126, 0x1.fffffep127) == true
|
||||
; run: %fcmp_ord_f32(0x1.0p-23, 0x1.0p-23) == 1
|
||||
; run: %fcmp_ord_f32(0x1.fffffep127, 0x1.fffffep127) == 1
|
||||
; run: %fcmp_ord_f32(0x1.0p-126, 0x1.0p-126) == 1
|
||||
; run: %fcmp_ord_f32(0x1.0p-23, 0x1.fffffep127) == 1
|
||||
; run: %fcmp_ord_f32(0x1.0p-23, 0x1.0p-126) == 1
|
||||
; run: %fcmp_ord_f32(0x1.0p-126, 0x1.fffffep127) == 1
|
||||
|
||||
; Subnormals
|
||||
; run: %fcmp_ord_f32(0x0.800002p-126, -0x0.800002p-126) == true
|
||||
; run: %fcmp_ord_f32(-0x0.800002p-126, 0x0.800002p-126) == true
|
||||
; run: %fcmp_ord_f32(0x0.800002p-126, 0x0.0) == true
|
||||
; run: %fcmp_ord_f32(-0x0.800002p-126, 0x0.0) == true
|
||||
; run: %fcmp_ord_f32(0x0.800002p-126, -0x0.0) == true
|
||||
; run: %fcmp_ord_f32(-0x0.800002p-126, -0x0.0) == true
|
||||
; run: %fcmp_ord_f32(0x0.0, 0x0.800002p-126) == true
|
||||
; run: %fcmp_ord_f32(0x0.0, -0x0.800002p-126) == true
|
||||
; run: %fcmp_ord_f32(-0x0.0, 0x0.800002p-126) == true
|
||||
; run: %fcmp_ord_f32(-0x0.0, -0x0.800002p-126) == true
|
||||
; run: %fcmp_ord_f32(0x0.800002p-126, -0x0.800002p-126) == 1
|
||||
; run: %fcmp_ord_f32(-0x0.800002p-126, 0x0.800002p-126) == 1
|
||||
; run: %fcmp_ord_f32(0x0.800002p-126, 0x0.0) == 1
|
||||
; run: %fcmp_ord_f32(-0x0.800002p-126, 0x0.0) == 1
|
||||
; run: %fcmp_ord_f32(0x0.800002p-126, -0x0.0) == 1
|
||||
; run: %fcmp_ord_f32(-0x0.800002p-126, -0x0.0) == 1
|
||||
; run: %fcmp_ord_f32(0x0.0, 0x0.800002p-126) == 1
|
||||
; run: %fcmp_ord_f32(0x0.0, -0x0.800002p-126) == 1
|
||||
; run: %fcmp_ord_f32(-0x0.0, 0x0.800002p-126) == 1
|
||||
; run: %fcmp_ord_f32(-0x0.0, -0x0.800002p-126) == 1
|
||||
|
||||
; NaN's
|
||||
; run: %fcmp_ord_f32(+NaN, +NaN) == false
|
||||
; run: %fcmp_ord_f32(-NaN, -NaN) == false
|
||||
; run: %fcmp_ord_f32(+NaN, -NaN) == false
|
||||
; run: %fcmp_ord_f32(-NaN, +NaN) == false
|
||||
; run: %fcmp_ord_f32(+NaN, +NaN) == 0
|
||||
; run: %fcmp_ord_f32(-NaN, -NaN) == 0
|
||||
; run: %fcmp_ord_f32(+NaN, -NaN) == 0
|
||||
; run: %fcmp_ord_f32(-NaN, +NaN) == 0
|
||||
|
||||
; run: %fcmp_ord_f32(+NaN, -0x1.0) == false
|
||||
; run: %fcmp_ord_f32(-NaN, -0x1.0) == false
|
||||
; run: %fcmp_ord_f32(+NaN, 0x1.0) == false
|
||||
; run: %fcmp_ord_f32(-NaN, 0x1.0) == false
|
||||
; run: %fcmp_ord_f32(+NaN, -0x0.0) == false
|
||||
; run: %fcmp_ord_f32(-NaN, -0x0.0) == false
|
||||
; run: %fcmp_ord_f32(+NaN, 0x0.0) == false
|
||||
; run: %fcmp_ord_f32(-NaN, 0x0.0) == false
|
||||
; run: %fcmp_ord_f32(+NaN, -Inf) == false
|
||||
; run: %fcmp_ord_f32(-NaN, -Inf) == false
|
||||
; run: %fcmp_ord_f32(+NaN, Inf) == false
|
||||
; run: %fcmp_ord_f32(-NaN, Inf) == false
|
||||
; run: %fcmp_ord_f32(-0x0.0, +NaN) == false
|
||||
; run: %fcmp_ord_f32(-0x0.0, -NaN) == false
|
||||
; run: %fcmp_ord_f32(0x0.0, +NaN) == false
|
||||
; run: %fcmp_ord_f32(0x0.0, -NaN) == false
|
||||
; run: %fcmp_ord_f32(-Inf, +NaN) == false
|
||||
; run: %fcmp_ord_f32(-Inf, -NaN) == false
|
||||
; run: %fcmp_ord_f32(Inf, +NaN) == false
|
||||
; run: %fcmp_ord_f32(Inf, -NaN) == false
|
||||
; run: %fcmp_ord_f32(+NaN, -0x1.0) == 0
|
||||
; run: %fcmp_ord_f32(-NaN, -0x1.0) == 0
|
||||
; run: %fcmp_ord_f32(+NaN, 0x1.0) == 0
|
||||
; run: %fcmp_ord_f32(-NaN, 0x1.0) == 0
|
||||
; run: %fcmp_ord_f32(+NaN, -0x0.0) == 0
|
||||
; run: %fcmp_ord_f32(-NaN, -0x0.0) == 0
|
||||
; run: %fcmp_ord_f32(+NaN, 0x0.0) == 0
|
||||
; run: %fcmp_ord_f32(-NaN, 0x0.0) == 0
|
||||
; run: %fcmp_ord_f32(+NaN, -Inf) == 0
|
||||
; run: %fcmp_ord_f32(-NaN, -Inf) == 0
|
||||
; run: %fcmp_ord_f32(+NaN, Inf) == 0
|
||||
; run: %fcmp_ord_f32(-NaN, Inf) == 0
|
||||
; run: %fcmp_ord_f32(-0x0.0, +NaN) == 0
|
||||
; run: %fcmp_ord_f32(-0x0.0, -NaN) == 0
|
||||
; run: %fcmp_ord_f32(0x0.0, +NaN) == 0
|
||||
; run: %fcmp_ord_f32(0x0.0, -NaN) == 0
|
||||
; run: %fcmp_ord_f32(-Inf, +NaN) == 0
|
||||
; run: %fcmp_ord_f32(-Inf, -NaN) == 0
|
||||
; run: %fcmp_ord_f32(Inf, +NaN) == 0
|
||||
; run: %fcmp_ord_f32(Inf, -NaN) == 0
|
||||
|
||||
; run: %fcmp_ord_f32(+NaN:0x1, +NaN:0x1) == false
|
||||
; run: %fcmp_ord_f32(-NaN:0x1, -NaN:0x1) == false
|
||||
; run: %fcmp_ord_f32(+NaN:0x1, -NaN:0x1) == false
|
||||
; run: %fcmp_ord_f32(-NaN:0x1, +NaN:0x1) == false
|
||||
; run: %fcmp_ord_f32(+NaN:0x1, +NaN) == false
|
||||
; run: %fcmp_ord_f32(+NaN:0x1, -NaN) == false
|
||||
; run: %fcmp_ord_f32(-NaN:0x1, -NaN) == false
|
||||
; run: %fcmp_ord_f32(-NaN:0x1, +NaN) == false
|
||||
; run: %fcmp_ord_f32(+NaN:0x1, +NaN:0x1) == 0
|
||||
; run: %fcmp_ord_f32(-NaN:0x1, -NaN:0x1) == 0
|
||||
; run: %fcmp_ord_f32(+NaN:0x1, -NaN:0x1) == 0
|
||||
; run: %fcmp_ord_f32(-NaN:0x1, +NaN:0x1) == 0
|
||||
; run: %fcmp_ord_f32(+NaN:0x1, +NaN) == 0
|
||||
; run: %fcmp_ord_f32(+NaN:0x1, -NaN) == 0
|
||||
; run: %fcmp_ord_f32(-NaN:0x1, -NaN) == 0
|
||||
; run: %fcmp_ord_f32(-NaN:0x1, +NaN) == 0
|
||||
|
||||
; run: %fcmp_ord_f32(+NaN:0x80001, +NaN:0x80001) == false
|
||||
; run: %fcmp_ord_f32(-NaN:0x80001, -NaN:0x80001) == false
|
||||
; run: %fcmp_ord_f32(+NaN:0x80001, -NaN:0x80001) == false
|
||||
; run: %fcmp_ord_f32(-NaN:0x80001, +NaN:0x80001) == false
|
||||
; run: %fcmp_ord_f32(+NaN:0x80001, +NaN) == false
|
||||
; run: %fcmp_ord_f32(+NaN:0x80001, -NaN) == false
|
||||
; run: %fcmp_ord_f32(-NaN:0x80001, -NaN) == false
|
||||
; run: %fcmp_ord_f32(-NaN:0x80001, +NaN) == false
|
||||
; run: %fcmp_ord_f32(+NaN:0x80001, +NaN:0x80001) == 0
|
||||
; run: %fcmp_ord_f32(-NaN:0x80001, -NaN:0x80001) == 0
|
||||
; run: %fcmp_ord_f32(+NaN:0x80001, -NaN:0x80001) == 0
|
||||
; run: %fcmp_ord_f32(-NaN:0x80001, +NaN:0x80001) == 0
|
||||
; run: %fcmp_ord_f32(+NaN:0x80001, +NaN) == 0
|
||||
; run: %fcmp_ord_f32(+NaN:0x80001, -NaN) == 0
|
||||
; run: %fcmp_ord_f32(-NaN:0x80001, -NaN) == 0
|
||||
; run: %fcmp_ord_f32(-NaN:0x80001, +NaN) == 0
|
||||
|
||||
; sNaN's
|
||||
; run: %fcmp_ord_f32(+sNaN:0x1, +sNaN:0x1) == false
|
||||
; run: %fcmp_ord_f32(-sNaN:0x1, -sNaN:0x1) == false
|
||||
; run: %fcmp_ord_f32(+sNaN:0x1, -sNaN:0x1) == false
|
||||
; run: %fcmp_ord_f32(-sNaN:0x1, +sNaN:0x1) == false
|
||||
; run: %fcmp_ord_f32(+sNaN:0x1, +sNaN:0x1) == 0
|
||||
; run: %fcmp_ord_f32(-sNaN:0x1, -sNaN:0x1) == 0
|
||||
; run: %fcmp_ord_f32(+sNaN:0x1, -sNaN:0x1) == 0
|
||||
; run: %fcmp_ord_f32(-sNaN:0x1, +sNaN:0x1) == 0
|
||||
|
||||
; run: %fcmp_ord_f32(+sNaN:0x1, -0x1.0) == false
|
||||
; run: %fcmp_ord_f32(-sNaN:0x1, -0x1.0) == false
|
||||
; run: %fcmp_ord_f32(+sNaN:0x1, 0x1.0) == false
|
||||
; run: %fcmp_ord_f32(-sNaN:0x1, 0x1.0) == false
|
||||
; run: %fcmp_ord_f32(+sNaN:0x1, -0x0.0) == false
|
||||
; run: %fcmp_ord_f32(-sNaN:0x1, -0x0.0) == false
|
||||
; run: %fcmp_ord_f32(+sNaN:0x1, 0x0.0) == false
|
||||
; run: %fcmp_ord_f32(-sNaN:0x1, 0x0.0) == false
|
||||
; run: %fcmp_ord_f32(+sNaN:0x1, -Inf) == false
|
||||
; run: %fcmp_ord_f32(-sNaN:0x1, -Inf) == false
|
||||
; run: %fcmp_ord_f32(+sNaN:0x1, Inf) == false
|
||||
; run: %fcmp_ord_f32(-sNaN:0x1, Inf) == false
|
||||
; run: %fcmp_ord_f32(-0x0.0, +sNaN:0x1) == false
|
||||
; run: %fcmp_ord_f32(-0x0.0, -sNaN:0x1) == false
|
||||
; run: %fcmp_ord_f32(0x0.0, +sNaN:0x1) == false
|
||||
; run: %fcmp_ord_f32(0x0.0, -sNaN:0x1) == false
|
||||
; run: %fcmp_ord_f32(-Inf, +sNaN:0x1) == false
|
||||
; run: %fcmp_ord_f32(-Inf, -sNaN:0x1) == false
|
||||
; run: %fcmp_ord_f32(Inf, +sNaN:0x1) == false
|
||||
; run: %fcmp_ord_f32(Inf, -sNaN:0x1) == false
|
||||
; run: %fcmp_ord_f32(+sNaN:0x1, -0x1.0) == 0
|
||||
; run: %fcmp_ord_f32(-sNaN:0x1, -0x1.0) == 0
|
||||
; run: %fcmp_ord_f32(+sNaN:0x1, 0x1.0) == 0
|
||||
; run: %fcmp_ord_f32(-sNaN:0x1, 0x1.0) == 0
|
||||
; run: %fcmp_ord_f32(+sNaN:0x1, -0x0.0) == 0
|
||||
; run: %fcmp_ord_f32(-sNaN:0x1, -0x0.0) == 0
|
||||
; run: %fcmp_ord_f32(+sNaN:0x1, 0x0.0) == 0
|
||||
; run: %fcmp_ord_f32(-sNaN:0x1, 0x0.0) == 0
|
||||
; run: %fcmp_ord_f32(+sNaN:0x1, -Inf) == 0
|
||||
; run: %fcmp_ord_f32(-sNaN:0x1, -Inf) == 0
|
||||
; run: %fcmp_ord_f32(+sNaN:0x1, Inf) == 0
|
||||
; run: %fcmp_ord_f32(-sNaN:0x1, Inf) == 0
|
||||
; run: %fcmp_ord_f32(-0x0.0, +sNaN:0x1) == 0
|
||||
; run: %fcmp_ord_f32(-0x0.0, -sNaN:0x1) == 0
|
||||
; run: %fcmp_ord_f32(0x0.0, +sNaN:0x1) == 0
|
||||
; run: %fcmp_ord_f32(0x0.0, -sNaN:0x1) == 0
|
||||
; run: %fcmp_ord_f32(-Inf, +sNaN:0x1) == 0
|
||||
; run: %fcmp_ord_f32(-Inf, -sNaN:0x1) == 0
|
||||
; run: %fcmp_ord_f32(Inf, +sNaN:0x1) == 0
|
||||
; run: %fcmp_ord_f32(Inf, -sNaN:0x1) == 0
|
||||
|
||||
; run: %fcmp_ord_f32(+sNaN:0x1, +NaN:0x1) == false
|
||||
; run: %fcmp_ord_f32(-sNaN:0x1, -NaN:0x1) == false
|
||||
; run: %fcmp_ord_f32(+sNaN:0x1, -NaN:0x1) == false
|
||||
; run: %fcmp_ord_f32(-sNaN:0x1, +NaN:0x1) == false
|
||||
; run: %fcmp_ord_f32(+NaN:0x1, +sNaN:0x1) == false
|
||||
; run: %fcmp_ord_f32(-NaN:0x1, -sNaN:0x1) == false
|
||||
; run: %fcmp_ord_f32(-NaN:0x1, +sNaN:0x1) == false
|
||||
; run: %fcmp_ord_f32(+NaN:0x1, -sNaN:0x1) == false
|
||||
; run: %fcmp_ord_f32(+sNaN:0x1, +NaN:0x1) == 0
|
||||
; run: %fcmp_ord_f32(-sNaN:0x1, -NaN:0x1) == 0
|
||||
; run: %fcmp_ord_f32(+sNaN:0x1, -NaN:0x1) == 0
|
||||
; run: %fcmp_ord_f32(-sNaN:0x1, +NaN:0x1) == 0
|
||||
; run: %fcmp_ord_f32(+NaN:0x1, +sNaN:0x1) == 0
|
||||
; run: %fcmp_ord_f32(-NaN:0x1, -sNaN:0x1) == 0
|
||||
; run: %fcmp_ord_f32(-NaN:0x1, +sNaN:0x1) == 0
|
||||
; run: %fcmp_ord_f32(+NaN:0x1, -sNaN:0x1) == 0
|
||||
|
||||
; run: %fcmp_ord_f32(+sNaN:0x80001, +sNaN:0x80001) == false
|
||||
; run: %fcmp_ord_f32(-sNaN:0x80001, -sNaN:0x80001) == false
|
||||
; run: %fcmp_ord_f32(+sNaN:0x80001, -sNaN:0x80001) == false
|
||||
; run: %fcmp_ord_f32(-sNaN:0x80001, +sNaN:0x80001) == false
|
||||
; run: %fcmp_ord_f32(+sNaN:0x80001, +sNaN:0x1) == false
|
||||
; run: %fcmp_ord_f32(+sNaN:0x80001, -sNaN:0x1) == false
|
||||
; run: %fcmp_ord_f32(-sNaN:0x80001, -sNaN:0x1) == false
|
||||
; run: %fcmp_ord_f32(-sNaN:0x80001, +sNaN:0x1) == false
|
||||
; run: %fcmp_ord_f32(+sNaN:0x80001, +sNaN:0x80001) == 0
|
||||
; run: %fcmp_ord_f32(-sNaN:0x80001, -sNaN:0x80001) == 0
|
||||
; run: %fcmp_ord_f32(+sNaN:0x80001, -sNaN:0x80001) == 0
|
||||
; run: %fcmp_ord_f32(-sNaN:0x80001, +sNaN:0x80001) == 0
|
||||
; run: %fcmp_ord_f32(+sNaN:0x80001, +sNaN:0x1) == 0
|
||||
; run: %fcmp_ord_f32(+sNaN:0x80001, -sNaN:0x1) == 0
|
||||
; run: %fcmp_ord_f32(-sNaN:0x80001, -sNaN:0x1) == 0
|
||||
; run: %fcmp_ord_f32(-sNaN:0x80001, +sNaN:0x1) == 0
|
||||
|
||||
|
||||
function %fcmp_ord_f64(f64, f64) -> b1 {
|
||||
function %fcmp_ord_f64(f64, f64) -> i8 {
|
||||
block0(v0: f64, v1: f64):
|
||||
v2 = fcmp ord v0, v1
|
||||
return v2
|
||||
}
|
||||
; run: %fcmp_ord_f64(0x0.5, 0x0.5) == true
|
||||
; run: %fcmp_ord_f64(0x1.0, 0x1.0) == true
|
||||
; run: %fcmp_ord_f64(-0x1.0, 0x1.0) == true
|
||||
; run: %fcmp_ord_f64(0x1.0, -0x1.0) == true
|
||||
; run: %fcmp_ord_f64(0x0.5, 0x1.0) == true
|
||||
; run: %fcmp_ord_f64(0x1.5, 0x2.9) == true
|
||||
; run: %fcmp_ord_f64(0x1.1p10, 0x1.4p1) == true
|
||||
; run: %fcmp_ord_f64(0x1.4cccccccccccdp0, 0x1.8p0) == true
|
||||
; run: %fcmp_ord_f64(0x1.b333333333333p0, 0x1.999999999999ap-2) == true
|
||||
; run: %fcmp_ord_f64(0x1.3333333333333p-1, 0x1.6666666666666p1) == true
|
||||
; run: %fcmp_ord_f64(-0x0.5, -0x1.0) == true
|
||||
; run: %fcmp_ord_f64(-0x1.5, -0x2.9) == true
|
||||
; run: %fcmp_ord_f64(-0x1.1p10, -0x1.3333333333333p-1) == true
|
||||
; run: %fcmp_ord_f64(-0x1.999999999999ap-2, -0x1.4cccccccccccdp0) == true
|
||||
; run: %fcmp_ord_f64(-0x1.8p0, -0x1.b333333333333p0) == true
|
||||
; run: %fcmp_ord_f64(-0x1.4p1, -0x1.6666666666666p1) == true
|
||||
; run: %fcmp_ord_f64(0x0.5, -0x1.0) == true
|
||||
; run: %fcmp_ord_f64(0x1.b333333333333p0, -0x1.b333333333333p0) == true
|
||||
; run: %fcmp_ord_f64(0x0.5, 0x0.5) == 1
|
||||
; run: %fcmp_ord_f64(0x1.0, 0x1.0) == 1
|
||||
; run: %fcmp_ord_f64(-0x1.0, 0x1.0) == 1
|
||||
; run: %fcmp_ord_f64(0x1.0, -0x1.0) == 1
|
||||
; run: %fcmp_ord_f64(0x0.5, 0x1.0) == 1
|
||||
; run: %fcmp_ord_f64(0x1.5, 0x2.9) == 1
|
||||
; run: %fcmp_ord_f64(0x1.1p10, 0x1.4p1) == 1
|
||||
; run: %fcmp_ord_f64(0x1.4cccccccccccdp0, 0x1.8p0) == 1
|
||||
; run: %fcmp_ord_f64(0x1.b333333333333p0, 0x1.999999999999ap-2) == 1
|
||||
; run: %fcmp_ord_f64(0x1.3333333333333p-1, 0x1.6666666666666p1) == 1
|
||||
; run: %fcmp_ord_f64(-0x0.5, -0x1.0) == 1
|
||||
; run: %fcmp_ord_f64(-0x1.5, -0x2.9) == 1
|
||||
; run: %fcmp_ord_f64(-0x1.1p10, -0x1.3333333333333p-1) == 1
|
||||
; run: %fcmp_ord_f64(-0x1.999999999999ap-2, -0x1.4cccccccccccdp0) == 1
|
||||
; run: %fcmp_ord_f64(-0x1.8p0, -0x1.b333333333333p0) == 1
|
||||
; run: %fcmp_ord_f64(-0x1.4p1, -0x1.6666666666666p1) == 1
|
||||
; run: %fcmp_ord_f64(0x0.5, -0x1.0) == 1
|
||||
; run: %fcmp_ord_f64(0x1.b333333333333p0, -0x1.b333333333333p0) == 1
|
||||
|
||||
|
||||
; Zeroes
|
||||
; run: %fcmp_ord_f64(0x0.0, 0x0.0) == true
|
||||
; run: %fcmp_ord_f64(-0x0.0, -0x0.0) == true
|
||||
; run: %fcmp_ord_f64(0x0.0, -0x0.0) == true
|
||||
; run: %fcmp_ord_f64(-0x0.0, 0x0.0) == true
|
||||
; run: %fcmp_ord_f64(0x0.0, 0x0.0) == 1
|
||||
; run: %fcmp_ord_f64(-0x0.0, -0x0.0) == 1
|
||||
; run: %fcmp_ord_f64(0x0.0, -0x0.0) == 1
|
||||
; run: %fcmp_ord_f64(-0x0.0, 0x0.0) == 1
|
||||
|
||||
; Infinities
|
||||
; run: %fcmp_ord_f64(Inf, Inf) == true
|
||||
; run: %fcmp_ord_f64(-Inf, -Inf) == true
|
||||
; run: %fcmp_ord_f64(Inf, -Inf) == true
|
||||
; run: %fcmp_ord_f64(-Inf, Inf) == true
|
||||
; run: %fcmp_ord_f64(Inf, Inf) == 1
|
||||
; run: %fcmp_ord_f64(-Inf, -Inf) == 1
|
||||
; run: %fcmp_ord_f64(Inf, -Inf) == 1
|
||||
; run: %fcmp_ord_f64(-Inf, Inf) == 1
|
||||
|
||||
; Inf/Zero
|
||||
; run: %fcmp_ord_f64(0x0.0, Inf) == true
|
||||
; run: %fcmp_ord_f64(-0x0.0, Inf) == true
|
||||
; run: %fcmp_ord_f64(0x0.0, -Inf) == true
|
||||
; run: %fcmp_ord_f64(-0x0.0, -Inf) == true
|
||||
; run: %fcmp_ord_f64(Inf, 0x0.0) == true
|
||||
; run: %fcmp_ord_f64(Inf, -0x0.0) == true
|
||||
; run: %fcmp_ord_f64(-Inf, 0x0.0) == true
|
||||
; run: %fcmp_ord_f64(-Inf, -0x0.0) == true
|
||||
; run: %fcmp_ord_f64(0x0.0, Inf) == 1
|
||||
; run: %fcmp_ord_f64(-0x0.0, Inf) == 1
|
||||
; run: %fcmp_ord_f64(0x0.0, -Inf) == 1
|
||||
; run: %fcmp_ord_f64(-0x0.0, -Inf) == 1
|
||||
; run: %fcmp_ord_f64(Inf, 0x0.0) == 1
|
||||
; run: %fcmp_ord_f64(Inf, -0x0.0) == 1
|
||||
; run: %fcmp_ord_f64(-Inf, 0x0.0) == 1
|
||||
; run: %fcmp_ord_f64(-Inf, -0x0.0) == 1
|
||||
|
||||
; Epsilon / Max / Min Positive
|
||||
; run: %fcmp_ord_f64(0x1.0p-52, 0x1.0p-52) == true
|
||||
; run: %fcmp_ord_f64(0x1.fffffffffffffp1023, 0x1.fffffffffffffp1023) == true
|
||||
; run: %fcmp_ord_f64(0x1.0p-1022, 0x1.0p-1022) == true
|
||||
; run: %fcmp_ord_f64(0x1.0p-52, 0x1.fffffffffffffp1023) == true
|
||||
; run: %fcmp_ord_f64(0x1.0p-52, 0x1.0p-1022) == true
|
||||
; run: %fcmp_ord_f64(0x1.0p-1022, 0x1.fffffffffffffp1023) == true
|
||||
; run: %fcmp_ord_f64(0x1.0p-52, 0x1.0p-52) == 1
|
||||
; run: %fcmp_ord_f64(0x1.fffffffffffffp1023, 0x1.fffffffffffffp1023) == 1
|
||||
; run: %fcmp_ord_f64(0x1.0p-1022, 0x1.0p-1022) == 1
|
||||
; run: %fcmp_ord_f64(0x1.0p-52, 0x1.fffffffffffffp1023) == 1
|
||||
; run: %fcmp_ord_f64(0x1.0p-52, 0x1.0p-1022) == 1
|
||||
; run: %fcmp_ord_f64(0x1.0p-1022, 0x1.fffffffffffffp1023) == 1
|
||||
|
||||
; Subnormals
|
||||
; run: %fcmp_ord_f64(0x0.8p-1022, -0x0.8p-1022) == true
|
||||
; run: %fcmp_ord_f64(-0x0.8p-1022, 0x0.8p-1022) == true
|
||||
; run: %fcmp_ord_f64(0x0.8p-1022, 0x0.0) == true
|
||||
; run: %fcmp_ord_f64(-0x0.8p-1022, 0x0.0) == true
|
||||
; run: %fcmp_ord_f64(0x0.8p-1022, -0x0.0) == true
|
||||
; run: %fcmp_ord_f64(-0x0.8p-1022, -0x0.0) == true
|
||||
; run: %fcmp_ord_f64(0x0.0, 0x0.8p-1022) == true
|
||||
; run: %fcmp_ord_f64(0x0.0, -0x0.8p-1022) == true
|
||||
; run: %fcmp_ord_f64(-0x0.0, 0x0.8p-1022) == true
|
||||
; run: %fcmp_ord_f64(-0x0.0, -0x0.8p-1022) == true
|
||||
; run: %fcmp_ord_f64(0x0.8p-1022, -0x0.8p-1022) == 1
|
||||
; run: %fcmp_ord_f64(-0x0.8p-1022, 0x0.8p-1022) == 1
|
||||
; run: %fcmp_ord_f64(0x0.8p-1022, 0x0.0) == 1
|
||||
; run: %fcmp_ord_f64(-0x0.8p-1022, 0x0.0) == 1
|
||||
; run: %fcmp_ord_f64(0x0.8p-1022, -0x0.0) == 1
|
||||
; run: %fcmp_ord_f64(-0x0.8p-1022, -0x0.0) == 1
|
||||
; run: %fcmp_ord_f64(0x0.0, 0x0.8p-1022) == 1
|
||||
; run: %fcmp_ord_f64(0x0.0, -0x0.8p-1022) == 1
|
||||
; run: %fcmp_ord_f64(-0x0.0, 0x0.8p-1022) == 1
|
||||
; run: %fcmp_ord_f64(-0x0.0, -0x0.8p-1022) == 1
|
||||
|
||||
; NaN's
|
||||
; run: %fcmp_ord_f64(+NaN, +NaN) == false
|
||||
; run: %fcmp_ord_f64(-NaN, -NaN) == false
|
||||
; run: %fcmp_ord_f64(+NaN, -NaN) == false
|
||||
; run: %fcmp_ord_f64(-NaN, +NaN) == false
|
||||
; run: %fcmp_ord_f64(+NaN, +NaN) == 0
|
||||
; run: %fcmp_ord_f64(-NaN, -NaN) == 0
|
||||
; run: %fcmp_ord_f64(+NaN, -NaN) == 0
|
||||
; run: %fcmp_ord_f64(-NaN, +NaN) == 0
|
||||
|
||||
; run: %fcmp_ord_f64(+NaN, -0x1.0) == false
|
||||
; run: %fcmp_ord_f64(-NaN, -0x1.0) == false
|
||||
; run: %fcmp_ord_f64(+NaN, 0x1.0) == false
|
||||
; run: %fcmp_ord_f64(-NaN, 0x1.0) == false
|
||||
; run: %fcmp_ord_f64(+NaN, -0x0.0) == false
|
||||
; run: %fcmp_ord_f64(-NaN, -0x0.0) == false
|
||||
; run: %fcmp_ord_f64(+NaN, 0x0.0) == false
|
||||
; run: %fcmp_ord_f64(-NaN, 0x0.0) == false
|
||||
; run: %fcmp_ord_f64(+NaN, -Inf) == false
|
||||
; run: %fcmp_ord_f64(-NaN, -Inf) == false
|
||||
; run: %fcmp_ord_f64(+NaN, Inf) == false
|
||||
; run: %fcmp_ord_f64(-NaN, Inf) == false
|
||||
; run: %fcmp_ord_f64(-0x0.0, +NaN) == false
|
||||
; run: %fcmp_ord_f64(-0x0.0, -NaN) == false
|
||||
; run: %fcmp_ord_f64(0x0.0, +NaN) == false
|
||||
; run: %fcmp_ord_f64(0x0.0, -NaN) == false
|
||||
; run: %fcmp_ord_f64(-Inf, +NaN) == false
|
||||
; run: %fcmp_ord_f64(-Inf, -NaN) == false
|
||||
; run: %fcmp_ord_f64(Inf, +NaN) == false
|
||||
; run: %fcmp_ord_f64(Inf, -NaN) == false
|
||||
; run: %fcmp_ord_f64(+NaN, -0x1.0) == 0
|
||||
; run: %fcmp_ord_f64(-NaN, -0x1.0) == 0
|
||||
; run: %fcmp_ord_f64(+NaN, 0x1.0) == 0
|
||||
; run: %fcmp_ord_f64(-NaN, 0x1.0) == 0
|
||||
; run: %fcmp_ord_f64(+NaN, -0x0.0) == 0
|
||||
; run: %fcmp_ord_f64(-NaN, -0x0.0) == 0
|
||||
; run: %fcmp_ord_f64(+NaN, 0x0.0) == 0
|
||||
; run: %fcmp_ord_f64(-NaN, 0x0.0) == 0
|
||||
; run: %fcmp_ord_f64(+NaN, -Inf) == 0
|
||||
; run: %fcmp_ord_f64(-NaN, -Inf) == 0
|
||||
; run: %fcmp_ord_f64(+NaN, Inf) == 0
|
||||
; run: %fcmp_ord_f64(-NaN, Inf) == 0
|
||||
; run: %fcmp_ord_f64(-0x0.0, +NaN) == 0
|
||||
; run: %fcmp_ord_f64(-0x0.0, -NaN) == 0
|
||||
; run: %fcmp_ord_f64(0x0.0, +NaN) == 0
|
||||
; run: %fcmp_ord_f64(0x0.0, -NaN) == 0
|
||||
; run: %fcmp_ord_f64(-Inf, +NaN) == 0
|
||||
; run: %fcmp_ord_f64(-Inf, -NaN) == 0
|
||||
; run: %fcmp_ord_f64(Inf, +NaN) == 0
|
||||
; run: %fcmp_ord_f64(Inf, -NaN) == 0
|
||||
|
||||
; run: %fcmp_ord_f64(+NaN:0x1, +NaN:0x1) == false
|
||||
; run: %fcmp_ord_f64(-NaN:0x1, -NaN:0x1) == false
|
||||
; run: %fcmp_ord_f64(+NaN:0x1, -NaN:0x1) == false
|
||||
; run: %fcmp_ord_f64(-NaN:0x1, +NaN:0x1) == false
|
||||
; run: %fcmp_ord_f64(+NaN:0x1, +NaN) == false
|
||||
; run: %fcmp_ord_f64(+NaN:0x1, -NaN) == false
|
||||
; run: %fcmp_ord_f64(-NaN:0x1, -NaN) == false
|
||||
; run: %fcmp_ord_f64(-NaN:0x1, +NaN) == false
|
||||
; run: %fcmp_ord_f64(+NaN:0x1, +NaN:0x1) == 0
|
||||
; run: %fcmp_ord_f64(-NaN:0x1, -NaN:0x1) == 0
|
||||
; run: %fcmp_ord_f64(+NaN:0x1, -NaN:0x1) == 0
|
||||
; run: %fcmp_ord_f64(-NaN:0x1, +NaN:0x1) == 0
|
||||
; run: %fcmp_ord_f64(+NaN:0x1, +NaN) == 0
|
||||
; run: %fcmp_ord_f64(+NaN:0x1, -NaN) == 0
|
||||
; run: %fcmp_ord_f64(-NaN:0x1, -NaN) == 0
|
||||
; run: %fcmp_ord_f64(-NaN:0x1, +NaN) == 0
|
||||
|
||||
; run: %fcmp_ord_f64(+NaN:0x800000000001, +NaN:0x800000000001) == false
|
||||
; run: %fcmp_ord_f64(-NaN:0x800000000001, -NaN:0x800000000001) == false
|
||||
; run: %fcmp_ord_f64(+NaN:0x800000000001, -NaN:0x800000000001) == false
|
||||
; run: %fcmp_ord_f64(-NaN:0x800000000001, +NaN:0x800000000001) == false
|
||||
; run: %fcmp_ord_f64(+NaN:0x800000000001, +NaN) == false
|
||||
; run: %fcmp_ord_f64(+NaN:0x800000000001, -NaN) == false
|
||||
; run: %fcmp_ord_f64(-NaN:0x800000000001, -NaN) == false
|
||||
; run: %fcmp_ord_f64(-NaN:0x800000000001, +NaN) == false
|
||||
; run: %fcmp_ord_f64(+NaN:0x800000000001, +NaN:0x800000000001) == 0
|
||||
; run: %fcmp_ord_f64(-NaN:0x800000000001, -NaN:0x800000000001) == 0
|
||||
; run: %fcmp_ord_f64(+NaN:0x800000000001, -NaN:0x800000000001) == 0
|
||||
; run: %fcmp_ord_f64(-NaN:0x800000000001, +NaN:0x800000000001) == 0
|
||||
; run: %fcmp_ord_f64(+NaN:0x800000000001, +NaN) == 0
|
||||
; run: %fcmp_ord_f64(+NaN:0x800000000001, -NaN) == 0
|
||||
; run: %fcmp_ord_f64(-NaN:0x800000000001, -NaN) == 0
|
||||
; run: %fcmp_ord_f64(-NaN:0x800000000001, +NaN) == 0
|
||||
|
||||
; sNaN's
|
||||
; run: %fcmp_ord_f64(+sNaN:0x1, +sNaN:0x1) == false
|
||||
; run: %fcmp_ord_f64(-sNaN:0x1, -sNaN:0x1) == false
|
||||
; run: %fcmp_ord_f64(+sNaN:0x1, -sNaN:0x1) == false
|
||||
; run: %fcmp_ord_f64(-sNaN:0x1, +sNaN:0x1) == false
|
||||
; run: %fcmp_ord_f64(+sNaN:0x1, +sNaN:0x1) == 0
|
||||
; run: %fcmp_ord_f64(-sNaN:0x1, -sNaN:0x1) == 0
|
||||
; run: %fcmp_ord_f64(+sNaN:0x1, -sNaN:0x1) == 0
|
||||
; run: %fcmp_ord_f64(-sNaN:0x1, +sNaN:0x1) == 0
|
||||
|
||||
; run: %fcmp_ord_f64(+sNaN:0x1, -0x1.0) == false
|
||||
; run: %fcmp_ord_f64(-sNaN:0x1, -0x1.0) == false
|
||||
; run: %fcmp_ord_f64(+sNaN:0x1, 0x1.0) == false
|
||||
; run: %fcmp_ord_f64(-sNaN:0x1, 0x1.0) == false
|
||||
; run: %fcmp_ord_f64(+sNaN:0x1, -0x0.0) == false
|
||||
; run: %fcmp_ord_f64(-sNaN:0x1, -0x0.0) == false
|
||||
; run: %fcmp_ord_f64(+sNaN:0x1, 0x0.0) == false
|
||||
; run: %fcmp_ord_f64(-sNaN:0x1, 0x0.0) == false
|
||||
; run: %fcmp_ord_f64(+sNaN:0x1, -Inf) == false
|
||||
; run: %fcmp_ord_f64(-sNaN:0x1, -Inf) == false
|
||||
; run: %fcmp_ord_f64(+sNaN:0x1, Inf) == false
|
||||
; run: %fcmp_ord_f64(-sNaN:0x1, Inf) == false
|
||||
; run: %fcmp_ord_f64(-0x0.0, +sNaN:0x1) == false
|
||||
; run: %fcmp_ord_f64(-0x0.0, -sNaN:0x1) == false
|
||||
; run: %fcmp_ord_f64(0x0.0, +sNaN:0x1) == false
|
||||
; run: %fcmp_ord_f64(0x0.0, -sNaN:0x1) == false
|
||||
; run: %fcmp_ord_f64(-Inf, +sNaN:0x1) == false
|
||||
; run: %fcmp_ord_f64(-Inf, -sNaN:0x1) == false
|
||||
; run: %fcmp_ord_f64(Inf, +sNaN:0x1) == false
|
||||
; run: %fcmp_ord_f64(Inf, -sNaN:0x1) == false
|
||||
; run: %fcmp_ord_f64(+sNaN:0x1, -0x1.0) == 0
|
||||
; run: %fcmp_ord_f64(-sNaN:0x1, -0x1.0) == 0
|
||||
; run: %fcmp_ord_f64(+sNaN:0x1, 0x1.0) == 0
|
||||
; run: %fcmp_ord_f64(-sNaN:0x1, 0x1.0) == 0
|
||||
; run: %fcmp_ord_f64(+sNaN:0x1, -0x0.0) == 0
|
||||
; run: %fcmp_ord_f64(-sNaN:0x1, -0x0.0) == 0
|
||||
; run: %fcmp_ord_f64(+sNaN:0x1, 0x0.0) == 0
|
||||
; run: %fcmp_ord_f64(-sNaN:0x1, 0x0.0) == 0
|
||||
; run: %fcmp_ord_f64(+sNaN:0x1, -Inf) == 0
|
||||
; run: %fcmp_ord_f64(-sNaN:0x1, -Inf) == 0
|
||||
; run: %fcmp_ord_f64(+sNaN:0x1, Inf) == 0
|
||||
; run: %fcmp_ord_f64(-sNaN:0x1, Inf) == 0
|
||||
; run: %fcmp_ord_f64(-0x0.0, +sNaN:0x1) == 0
|
||||
; run: %fcmp_ord_f64(-0x0.0, -sNaN:0x1) == 0
|
||||
; run: %fcmp_ord_f64(0x0.0, +sNaN:0x1) == 0
|
||||
; run: %fcmp_ord_f64(0x0.0, -sNaN:0x1) == 0
|
||||
; run: %fcmp_ord_f64(-Inf, +sNaN:0x1) == 0
|
||||
; run: %fcmp_ord_f64(-Inf, -sNaN:0x1) == 0
|
||||
; run: %fcmp_ord_f64(Inf, +sNaN:0x1) == 0
|
||||
; run: %fcmp_ord_f64(Inf, -sNaN:0x1) == 0
|
||||
|
||||
; run: %fcmp_ord_f64(+sNaN:0x1, +NaN:0x1) == false
|
||||
; run: %fcmp_ord_f64(-sNaN:0x1, -NaN:0x1) == false
|
||||
; run: %fcmp_ord_f64(+sNaN:0x1, -NaN:0x1) == false
|
||||
; run: %fcmp_ord_f64(-sNaN:0x1, +NaN:0x1) == false
|
||||
; run: %fcmp_ord_f64(+NaN:0x1, +sNaN:0x1) == false
|
||||
; run: %fcmp_ord_f64(-NaN:0x1, -sNaN:0x1) == false
|
||||
; run: %fcmp_ord_f64(-NaN:0x1, +sNaN:0x1) == false
|
||||
; run: %fcmp_ord_f64(+NaN:0x1, -sNaN:0x1) == false
|
||||
; run: %fcmp_ord_f64(+sNaN:0x1, +NaN:0x1) == 0
|
||||
; run: %fcmp_ord_f64(-sNaN:0x1, -NaN:0x1) == 0
|
||||
; run: %fcmp_ord_f64(+sNaN:0x1, -NaN:0x1) == 0
|
||||
; run: %fcmp_ord_f64(-sNaN:0x1, +NaN:0x1) == 0
|
||||
; run: %fcmp_ord_f64(+NaN:0x1, +sNaN:0x1) == 0
|
||||
; run: %fcmp_ord_f64(-NaN:0x1, -sNaN:0x1) == 0
|
||||
; run: %fcmp_ord_f64(-NaN:0x1, +sNaN:0x1) == 0
|
||||
; run: %fcmp_ord_f64(+NaN:0x1, -sNaN:0x1) == 0
|
||||
|
||||
; run: %fcmp_ord_f64(+sNaN:0x800000000001, +sNaN:0x800000000001) == false
|
||||
; run: %fcmp_ord_f64(-sNaN:0x800000000001, -sNaN:0x800000000001) == false
|
||||
; run: %fcmp_ord_f64(+sNaN:0x800000000001, -sNaN:0x800000000001) == false
|
||||
; run: %fcmp_ord_f64(-sNaN:0x800000000001, +sNaN:0x800000000001) == false
|
||||
; run: %fcmp_ord_f64(+sNaN:0x800000000001, +sNaN:0x1) == false
|
||||
; run: %fcmp_ord_f64(+sNaN:0x800000000001, -sNaN:0x1) == false
|
||||
; run: %fcmp_ord_f64(-sNaN:0x800000000001, -sNaN:0x1) == false
|
||||
; run: %fcmp_ord_f64(-sNaN:0x800000000001, +sNaN:0x1) == false
|
||||
; run: %fcmp_ord_f64(+sNaN:0x800000000001, +sNaN:0x800000000001) == 0
|
||||
; run: %fcmp_ord_f64(-sNaN:0x800000000001, -sNaN:0x800000000001) == 0
|
||||
; run: %fcmp_ord_f64(+sNaN:0x800000000001, -sNaN:0x800000000001) == 0
|
||||
; run: %fcmp_ord_f64(-sNaN:0x800000000001, +sNaN:0x800000000001) == 0
|
||||
; run: %fcmp_ord_f64(+sNaN:0x800000000001, +sNaN:0x1) == 0
|
||||
; run: %fcmp_ord_f64(+sNaN:0x800000000001, -sNaN:0x1) == 0
|
||||
; run: %fcmp_ord_f64(-sNaN:0x800000000001, -sNaN:0x1) == 0
|
||||
; run: %fcmp_ord_f64(-sNaN:0x800000000001, +sNaN:0x1) == 0
|
||||
|
||||
@@ -4,316 +4,316 @@ target x86_64
|
||||
target s390x
|
||||
target riscv64
|
||||
|
||||
function %fcmp_ueq_f32(f32, f32) -> b1 {
|
||||
function %fcmp_ueq_f32(f32, f32) -> i8 {
|
||||
block0(v0: f32, v1: f32):
|
||||
v2 = fcmp ueq v0, v1
|
||||
return v2
|
||||
}
|
||||
; run: %fcmp_ueq_f32(0x0.5, 0x0.5) == true
|
||||
; run: %fcmp_ueq_f32(0x1.0, 0x1.0) == true
|
||||
; run: %fcmp_ueq_f32(-0x1.0, 0x1.0) == false
|
||||
; run: %fcmp_ueq_f32(0x1.0, -0x1.0) == false
|
||||
; run: %fcmp_ueq_f32(0x0.5, 0x1.0) == false
|
||||
; run: %fcmp_ueq_f32(0x1.5, 0x2.9) == false
|
||||
; run: %fcmp_ueq_f32(0x1.1p10, 0x1.4p1) == false
|
||||
; run: %fcmp_ueq_f32(0x1.4cccccp0, 0x1.8p0) == false
|
||||
; run: %fcmp_ueq_f32(0x1.b33334p0, 0x1.99999ap-2) == false
|
||||
; run: %fcmp_ueq_f32(0x1.333334p-1, 0x1.666666p1) == false
|
||||
; run: %fcmp_ueq_f32(-0x0.5, -0x1.0) == false
|
||||
; run: %fcmp_ueq_f32(-0x1.5, -0x2.9) == false
|
||||
; run: %fcmp_ueq_f32(-0x1.1p10, -0x1.333334p-1) == false
|
||||
; run: %fcmp_ueq_f32(-0x1.99999ap-2, -0x1.4cccccp0) == false
|
||||
; run: %fcmp_ueq_f32(-0x1.8p0, -0x1.b33334p0) == false
|
||||
; run: %fcmp_ueq_f32(-0x1.4p1, -0x1.666666p1) == false
|
||||
; run: %fcmp_ueq_f32(0x0.5, -0x1.0) == false
|
||||
; run: %fcmp_ueq_f32(0x1.b33334p0, -0x1.b33334p0) == false
|
||||
; run: %fcmp_ueq_f32(0x0.5, 0x0.5) == 1
|
||||
; run: %fcmp_ueq_f32(0x1.0, 0x1.0) == 1
|
||||
; run: %fcmp_ueq_f32(-0x1.0, 0x1.0) == 0
|
||||
; run: %fcmp_ueq_f32(0x1.0, -0x1.0) == 0
|
||||
; run: %fcmp_ueq_f32(0x0.5, 0x1.0) == 0
|
||||
; run: %fcmp_ueq_f32(0x1.5, 0x2.9) == 0
|
||||
; run: %fcmp_ueq_f32(0x1.1p10, 0x1.4p1) == 0
|
||||
; run: %fcmp_ueq_f32(0x1.4cccccp0, 0x1.8p0) == 0
|
||||
; run: %fcmp_ueq_f32(0x1.b33334p0, 0x1.99999ap-2) == 0
|
||||
; run: %fcmp_ueq_f32(0x1.333334p-1, 0x1.666666p1) == 0
|
||||
; run: %fcmp_ueq_f32(-0x0.5, -0x1.0) == 0
|
||||
; run: %fcmp_ueq_f32(-0x1.5, -0x2.9) == 0
|
||||
; run: %fcmp_ueq_f32(-0x1.1p10, -0x1.333334p-1) == 0
|
||||
; run: %fcmp_ueq_f32(-0x1.99999ap-2, -0x1.4cccccp0) == 0
|
||||
; run: %fcmp_ueq_f32(-0x1.8p0, -0x1.b33334p0) == 0
|
||||
; run: %fcmp_ueq_f32(-0x1.4p1, -0x1.666666p1) == 0
|
||||
; run: %fcmp_ueq_f32(0x0.5, -0x1.0) == 0
|
||||
; run: %fcmp_ueq_f32(0x1.b33334p0, -0x1.b33334p0) == 0
|
||||
|
||||
; Zeroes
|
||||
; run: %fcmp_ueq_f32(0x0.0, 0x0.0) == true
|
||||
; run: %fcmp_ueq_f32(-0x0.0, -0x0.0) == true
|
||||
; run: %fcmp_ueq_f32(0x0.0, -0x0.0) == true
|
||||
; run: %fcmp_ueq_f32(-0x0.0, 0x0.0) == true
|
||||
; run: %fcmp_ueq_f32(0x0.0, 0x0.0) == 1
|
||||
; run: %fcmp_ueq_f32(-0x0.0, -0x0.0) == 1
|
||||
; run: %fcmp_ueq_f32(0x0.0, -0x0.0) == 1
|
||||
; run: %fcmp_ueq_f32(-0x0.0, 0x0.0) == 1
|
||||
|
||||
; Infinities
|
||||
; run: %fcmp_ueq_f32(Inf, Inf) == true
|
||||
; run: %fcmp_ueq_f32(-Inf, -Inf) == true
|
||||
; run: %fcmp_ueq_f32(Inf, -Inf) == false
|
||||
; run: %fcmp_ueq_f32(-Inf, Inf) == false
|
||||
; run: %fcmp_ueq_f32(Inf, Inf) == 1
|
||||
; run: %fcmp_ueq_f32(-Inf, -Inf) == 1
|
||||
; run: %fcmp_ueq_f32(Inf, -Inf) == 0
|
||||
; run: %fcmp_ueq_f32(-Inf, Inf) == 0
|
||||
|
||||
; Inf/Zero
|
||||
; run: %fcmp_ueq_f32(0x0.0, Inf) == false
|
||||
; run: %fcmp_ueq_f32(-0x0.0, Inf) == false
|
||||
; run: %fcmp_ueq_f32(0x0.0, -Inf) == false
|
||||
; run: %fcmp_ueq_f32(-0x0.0, -Inf) == false
|
||||
; run: %fcmp_ueq_f32(Inf, 0x0.0) == false
|
||||
; run: %fcmp_ueq_f32(Inf, -0x0.0) == false
|
||||
; run: %fcmp_ueq_f32(-Inf, 0x0.0) == false
|
||||
; run: %fcmp_ueq_f32(-Inf, -0x0.0) == false
|
||||
; run: %fcmp_ueq_f32(0x0.0, Inf) == 0
|
||||
; run: %fcmp_ueq_f32(-0x0.0, Inf) == 0
|
||||
; run: %fcmp_ueq_f32(0x0.0, -Inf) == 0
|
||||
; run: %fcmp_ueq_f32(-0x0.0, -Inf) == 0
|
||||
; run: %fcmp_ueq_f32(Inf, 0x0.0) == 0
|
||||
; run: %fcmp_ueq_f32(Inf, -0x0.0) == 0
|
||||
; run: %fcmp_ueq_f32(-Inf, 0x0.0) == 0
|
||||
; run: %fcmp_ueq_f32(-Inf, -0x0.0) == 0
|
||||
|
||||
; Epsilon / Max / Min Positive
|
||||
; run: %fcmp_ueq_f32(0x1.0p-23, 0x1.0p-23) == true
|
||||
; run: %fcmp_ueq_f32(0x1.fffffep127, 0x1.fffffep127) == true
|
||||
; run: %fcmp_ueq_f32(0x1.0p-126, 0x1.0p-126) == true
|
||||
; run: %fcmp_ueq_f32(0x1.0p-23, 0x1.fffffep127) == false
|
||||
; run: %fcmp_ueq_f32(0x1.0p-23, 0x1.0p-126) == false
|
||||
; run: %fcmp_ueq_f32(0x1.0p-126, 0x1.fffffep127) == false
|
||||
; run: %fcmp_ueq_f32(0x1.0p-23, 0x1.0p-23) == 1
|
||||
; run: %fcmp_ueq_f32(0x1.fffffep127, 0x1.fffffep127) == 1
|
||||
; run: %fcmp_ueq_f32(0x1.0p-126, 0x1.0p-126) == 1
|
||||
; run: %fcmp_ueq_f32(0x1.0p-23, 0x1.fffffep127) == 0
|
||||
; run: %fcmp_ueq_f32(0x1.0p-23, 0x1.0p-126) == 0
|
||||
; run: %fcmp_ueq_f32(0x1.0p-126, 0x1.fffffep127) == 0
|
||||
|
||||
; Subnormals
|
||||
; run: %fcmp_ueq_f32(0x0.800002p-126, -0x0.800002p-126) == false
|
||||
; run: %fcmp_ueq_f32(-0x0.800002p-126, 0x0.800002p-126) == false
|
||||
; run: %fcmp_ueq_f32(0x0.800002p-126, 0x0.0) == false
|
||||
; run: %fcmp_ueq_f32(-0x0.800002p-126, 0x0.0) == false
|
||||
; run: %fcmp_ueq_f32(0x0.800002p-126, -0x0.0) == false
|
||||
; run: %fcmp_ueq_f32(-0x0.800002p-126, -0x0.0) == false
|
||||
; run: %fcmp_ueq_f32(0x0.0, 0x0.800002p-126) == false
|
||||
; run: %fcmp_ueq_f32(0x0.0, -0x0.800002p-126) == false
|
||||
; run: %fcmp_ueq_f32(-0x0.0, 0x0.800002p-126) == false
|
||||
; run: %fcmp_ueq_f32(-0x0.0, -0x0.800002p-126) == false
|
||||
; run: %fcmp_ueq_f32(0x0.800002p-126, -0x0.800002p-126) == 0
|
||||
; run: %fcmp_ueq_f32(-0x0.800002p-126, 0x0.800002p-126) == 0
|
||||
; run: %fcmp_ueq_f32(0x0.800002p-126, 0x0.0) == 0
|
||||
; run: %fcmp_ueq_f32(-0x0.800002p-126, 0x0.0) == 0
|
||||
; run: %fcmp_ueq_f32(0x0.800002p-126, -0x0.0) == 0
|
||||
; run: %fcmp_ueq_f32(-0x0.800002p-126, -0x0.0) == 0
|
||||
; run: %fcmp_ueq_f32(0x0.0, 0x0.800002p-126) == 0
|
||||
; run: %fcmp_ueq_f32(0x0.0, -0x0.800002p-126) == 0
|
||||
; run: %fcmp_ueq_f32(-0x0.0, 0x0.800002p-126) == 0
|
||||
; run: %fcmp_ueq_f32(-0x0.0, -0x0.800002p-126) == 0
|
||||
|
||||
; NaN's
|
||||
; run: %fcmp_ueq_f32(+NaN, +NaN) == true
|
||||
; run: %fcmp_ueq_f32(-NaN, -NaN) == true
|
||||
; run: %fcmp_ueq_f32(+NaN, -NaN) == true
|
||||
; run: %fcmp_ueq_f32(-NaN, +NaN) == true
|
||||
; run: %fcmp_ueq_f32(+NaN, +NaN) == 1
|
||||
; run: %fcmp_ueq_f32(-NaN, -NaN) == 1
|
||||
; run: %fcmp_ueq_f32(+NaN, -NaN) == 1
|
||||
; run: %fcmp_ueq_f32(-NaN, +NaN) == 1
|
||||
|
||||
; run: %fcmp_ueq_f32(+NaN, -0x1.0) == true
|
||||
; run: %fcmp_ueq_f32(-NaN, -0x1.0) == true
|
||||
; run: %fcmp_ueq_f32(+NaN, 0x1.0) == true
|
||||
; run: %fcmp_ueq_f32(-NaN, 0x1.0) == true
|
||||
; run: %fcmp_ueq_f32(+NaN, -0x0.0) == true
|
||||
; run: %fcmp_ueq_f32(-NaN, -0x0.0) == true
|
||||
; run: %fcmp_ueq_f32(+NaN, 0x0.0) == true
|
||||
; run: %fcmp_ueq_f32(-NaN, 0x0.0) == true
|
||||
; run: %fcmp_ueq_f32(+NaN, -Inf) == true
|
||||
; run: %fcmp_ueq_f32(-NaN, -Inf) == true
|
||||
; run: %fcmp_ueq_f32(+NaN, Inf) == true
|
||||
; run: %fcmp_ueq_f32(-NaN, Inf) == true
|
||||
; run: %fcmp_ueq_f32(-0x0.0, +NaN) == true
|
||||
; run: %fcmp_ueq_f32(-0x0.0, -NaN) == true
|
||||
; run: %fcmp_ueq_f32(0x0.0, +NaN) == true
|
||||
; run: %fcmp_ueq_f32(0x0.0, -NaN) == true
|
||||
; run: %fcmp_ueq_f32(-Inf, +NaN) == true
|
||||
; run: %fcmp_ueq_f32(-Inf, -NaN) == true
|
||||
; run: %fcmp_ueq_f32(Inf, +NaN) == true
|
||||
; run: %fcmp_ueq_f32(Inf, -NaN) == true
|
||||
; run: %fcmp_ueq_f32(+NaN, -0x1.0) == 1
|
||||
; run: %fcmp_ueq_f32(-NaN, -0x1.0) == 1
|
||||
; run: %fcmp_ueq_f32(+NaN, 0x1.0) == 1
|
||||
; run: %fcmp_ueq_f32(-NaN, 0x1.0) == 1
|
||||
; run: %fcmp_ueq_f32(+NaN, -0x0.0) == 1
|
||||
; run: %fcmp_ueq_f32(-NaN, -0x0.0) == 1
|
||||
; run: %fcmp_ueq_f32(+NaN, 0x0.0) == 1
|
||||
; run: %fcmp_ueq_f32(-NaN, 0x0.0) == 1
|
||||
; run: %fcmp_ueq_f32(+NaN, -Inf) == 1
|
||||
; run: %fcmp_ueq_f32(-NaN, -Inf) == 1
|
||||
; run: %fcmp_ueq_f32(+NaN, Inf) == 1
|
||||
; run: %fcmp_ueq_f32(-NaN, Inf) == 1
|
||||
; run: %fcmp_ueq_f32(-0x0.0, +NaN) == 1
|
||||
; run: %fcmp_ueq_f32(-0x0.0, -NaN) == 1
|
||||
; run: %fcmp_ueq_f32(0x0.0, +NaN) == 1
|
||||
; run: %fcmp_ueq_f32(0x0.0, -NaN) == 1
|
||||
; run: %fcmp_ueq_f32(-Inf, +NaN) == 1
|
||||
; run: %fcmp_ueq_f32(-Inf, -NaN) == 1
|
||||
; run: %fcmp_ueq_f32(Inf, +NaN) == 1
|
||||
; run: %fcmp_ueq_f32(Inf, -NaN) == 1
|
||||
|
||||
; run: %fcmp_ueq_f32(+NaN:0x1, +NaN:0x1) == true
|
||||
; run: %fcmp_ueq_f32(-NaN:0x1, -NaN:0x1) == true
|
||||
; run: %fcmp_ueq_f32(+NaN:0x1, -NaN:0x1) == true
|
||||
; run: %fcmp_ueq_f32(-NaN:0x1, +NaN:0x1) == true
|
||||
; run: %fcmp_ueq_f32(+NaN:0x1, +NaN) == true
|
||||
; run: %fcmp_ueq_f32(+NaN:0x1, -NaN) == true
|
||||
; run: %fcmp_ueq_f32(-NaN:0x1, -NaN) == true
|
||||
; run: %fcmp_ueq_f32(-NaN:0x1, +NaN) == true
|
||||
; run: %fcmp_ueq_f32(+NaN:0x1, +NaN:0x1) == 1
|
||||
; run: %fcmp_ueq_f32(-NaN:0x1, -NaN:0x1) == 1
|
||||
; run: %fcmp_ueq_f32(+NaN:0x1, -NaN:0x1) == 1
|
||||
; run: %fcmp_ueq_f32(-NaN:0x1, +NaN:0x1) == 1
|
||||
; run: %fcmp_ueq_f32(+NaN:0x1, +NaN) == 1
|
||||
; run: %fcmp_ueq_f32(+NaN:0x1, -NaN) == 1
|
||||
; run: %fcmp_ueq_f32(-NaN:0x1, -NaN) == 1
|
||||
; run: %fcmp_ueq_f32(-NaN:0x1, +NaN) == 1
|
||||
|
||||
; run: %fcmp_ueq_f32(+NaN:0x80001, +NaN:0x80001) == true
|
||||
; run: %fcmp_ueq_f32(-NaN:0x80001, -NaN:0x80001) == true
|
||||
; run: %fcmp_ueq_f32(+NaN:0x80001, -NaN:0x80001) == true
|
||||
; run: %fcmp_ueq_f32(-NaN:0x80001, +NaN:0x80001) == true
|
||||
; run: %fcmp_ueq_f32(+NaN:0x80001, +NaN) == true
|
||||
; run: %fcmp_ueq_f32(+NaN:0x80001, -NaN) == true
|
||||
; run: %fcmp_ueq_f32(-NaN:0x80001, -NaN) == true
|
||||
; run: %fcmp_ueq_f32(-NaN:0x80001, +NaN) == true
|
||||
; run: %fcmp_ueq_f32(+NaN:0x80001, +NaN:0x80001) == 1
|
||||
; run: %fcmp_ueq_f32(-NaN:0x80001, -NaN:0x80001) == 1
|
||||
; run: %fcmp_ueq_f32(+NaN:0x80001, -NaN:0x80001) == 1
|
||||
; run: %fcmp_ueq_f32(-NaN:0x80001, +NaN:0x80001) == 1
|
||||
; run: %fcmp_ueq_f32(+NaN:0x80001, +NaN) == 1
|
||||
; run: %fcmp_ueq_f32(+NaN:0x80001, -NaN) == 1
|
||||
; run: %fcmp_ueq_f32(-NaN:0x80001, -NaN) == 1
|
||||
; run: %fcmp_ueq_f32(-NaN:0x80001, +NaN) == 1
|
||||
|
||||
; sNaN's
|
||||
; run: %fcmp_ueq_f32(+sNaN:0x1, +sNaN:0x1) == true
|
||||
; run: %fcmp_ueq_f32(-sNaN:0x1, -sNaN:0x1) == true
|
||||
; run: %fcmp_ueq_f32(+sNaN:0x1, -sNaN:0x1) == true
|
||||
; run: %fcmp_ueq_f32(-sNaN:0x1, +sNaN:0x1) == true
|
||||
; run: %fcmp_ueq_f32(+sNaN:0x1, +sNaN:0x1) == 1
|
||||
; run: %fcmp_ueq_f32(-sNaN:0x1, -sNaN:0x1) == 1
|
||||
; run: %fcmp_ueq_f32(+sNaN:0x1, -sNaN:0x1) == 1
|
||||
; run: %fcmp_ueq_f32(-sNaN:0x1, +sNaN:0x1) == 1
|
||||
|
||||
; run: %fcmp_ueq_f32(+sNaN:0x1, -0x1.0) == true
|
||||
; run: %fcmp_ueq_f32(-sNaN:0x1, -0x1.0) == true
|
||||
; run: %fcmp_ueq_f32(+sNaN:0x1, 0x1.0) == true
|
||||
; run: %fcmp_ueq_f32(-sNaN:0x1, 0x1.0) == true
|
||||
; run: %fcmp_ueq_f32(+sNaN:0x1, -0x0.0) == true
|
||||
; run: %fcmp_ueq_f32(-sNaN:0x1, -0x0.0) == true
|
||||
; run: %fcmp_ueq_f32(+sNaN:0x1, 0x0.0) == true
|
||||
; run: %fcmp_ueq_f32(-sNaN:0x1, 0x0.0) == true
|
||||
; run: %fcmp_ueq_f32(+sNaN:0x1, -Inf) == true
|
||||
; run: %fcmp_ueq_f32(-sNaN:0x1, -Inf) == true
|
||||
; run: %fcmp_ueq_f32(+sNaN:0x1, Inf) == true
|
||||
; run: %fcmp_ueq_f32(-sNaN:0x1, Inf) == true
|
||||
; run: %fcmp_ueq_f32(-0x0.0, +sNaN:0x1) == true
|
||||
; run: %fcmp_ueq_f32(-0x0.0, -sNaN:0x1) == true
|
||||
; run: %fcmp_ueq_f32(0x0.0, +sNaN:0x1) == true
|
||||
; run: %fcmp_ueq_f32(0x0.0, -sNaN:0x1) == true
|
||||
; run: %fcmp_ueq_f32(-Inf, +sNaN:0x1) == true
|
||||
; run: %fcmp_ueq_f32(-Inf, -sNaN:0x1) == true
|
||||
; run: %fcmp_ueq_f32(Inf, +sNaN:0x1) == true
|
||||
; run: %fcmp_ueq_f32(Inf, -sNaN:0x1) == true
|
||||
; run: %fcmp_ueq_f32(+sNaN:0x1, -0x1.0) == 1
|
||||
; run: %fcmp_ueq_f32(-sNaN:0x1, -0x1.0) == 1
|
||||
; run: %fcmp_ueq_f32(+sNaN:0x1, 0x1.0) == 1
|
||||
; run: %fcmp_ueq_f32(-sNaN:0x1, 0x1.0) == 1
|
||||
; run: %fcmp_ueq_f32(+sNaN:0x1, -0x0.0) == 1
|
||||
; run: %fcmp_ueq_f32(-sNaN:0x1, -0x0.0) == 1
|
||||
; run: %fcmp_ueq_f32(+sNaN:0x1, 0x0.0) == 1
|
||||
; run: %fcmp_ueq_f32(-sNaN:0x1, 0x0.0) == 1
|
||||
; run: %fcmp_ueq_f32(+sNaN:0x1, -Inf) == 1
|
||||
; run: %fcmp_ueq_f32(-sNaN:0x1, -Inf) == 1
|
||||
; run: %fcmp_ueq_f32(+sNaN:0x1, Inf) == 1
|
||||
; run: %fcmp_ueq_f32(-sNaN:0x1, Inf) == 1
|
||||
; run: %fcmp_ueq_f32(-0x0.0, +sNaN:0x1) == 1
|
||||
; run: %fcmp_ueq_f32(-0x0.0, -sNaN:0x1) == 1
|
||||
; run: %fcmp_ueq_f32(0x0.0, +sNaN:0x1) == 1
|
||||
; run: %fcmp_ueq_f32(0x0.0, -sNaN:0x1) == 1
|
||||
; run: %fcmp_ueq_f32(-Inf, +sNaN:0x1) == 1
|
||||
; run: %fcmp_ueq_f32(-Inf, -sNaN:0x1) == 1
|
||||
; run: %fcmp_ueq_f32(Inf, +sNaN:0x1) == 1
|
||||
; run: %fcmp_ueq_f32(Inf, -sNaN:0x1) == 1
|
||||
|
||||
; run: %fcmp_ueq_f32(+sNaN:0x1, +NaN:0x1) == true
|
||||
; run: %fcmp_ueq_f32(-sNaN:0x1, -NaN:0x1) == true
|
||||
; run: %fcmp_ueq_f32(+sNaN:0x1, -NaN:0x1) == true
|
||||
; run: %fcmp_ueq_f32(-sNaN:0x1, +NaN:0x1) == true
|
||||
; run: %fcmp_ueq_f32(+NaN:0x1, +sNaN:0x1) == true
|
||||
; run: %fcmp_ueq_f32(-NaN:0x1, -sNaN:0x1) == true
|
||||
; run: %fcmp_ueq_f32(-NaN:0x1, +sNaN:0x1) == true
|
||||
; run: %fcmp_ueq_f32(+NaN:0x1, -sNaN:0x1) == true
|
||||
; run: %fcmp_ueq_f32(+sNaN:0x1, +NaN:0x1) == 1
|
||||
; run: %fcmp_ueq_f32(-sNaN:0x1, -NaN:0x1) == 1
|
||||
; run: %fcmp_ueq_f32(+sNaN:0x1, -NaN:0x1) == 1
|
||||
; run: %fcmp_ueq_f32(-sNaN:0x1, +NaN:0x1) == 1
|
||||
; run: %fcmp_ueq_f32(+NaN:0x1, +sNaN:0x1) == 1
|
||||
; run: %fcmp_ueq_f32(-NaN:0x1, -sNaN:0x1) == 1
|
||||
; run: %fcmp_ueq_f32(-NaN:0x1, +sNaN:0x1) == 1
|
||||
; run: %fcmp_ueq_f32(+NaN:0x1, -sNaN:0x1) == 1
|
||||
|
||||
; run: %fcmp_ueq_f32(+sNaN:0x80001, +sNaN:0x80001) == true
|
||||
; run: %fcmp_ueq_f32(-sNaN:0x80001, -sNaN:0x80001) == true
|
||||
; run: %fcmp_ueq_f32(+sNaN:0x80001, -sNaN:0x80001) == true
|
||||
; run: %fcmp_ueq_f32(-sNaN:0x80001, +sNaN:0x80001) == true
|
||||
; run: %fcmp_ueq_f32(+sNaN:0x80001, +sNaN:0x1) == true
|
||||
; run: %fcmp_ueq_f32(+sNaN:0x80001, -sNaN:0x1) == true
|
||||
; run: %fcmp_ueq_f32(-sNaN:0x80001, -sNaN:0x1) == true
|
||||
; run: %fcmp_ueq_f32(-sNaN:0x80001, +sNaN:0x1) == true
|
||||
; run: %fcmp_ueq_f32(+sNaN:0x80001, +sNaN:0x80001) == 1
|
||||
; run: %fcmp_ueq_f32(-sNaN:0x80001, -sNaN:0x80001) == 1
|
||||
; run: %fcmp_ueq_f32(+sNaN:0x80001, -sNaN:0x80001) == 1
|
||||
; run: %fcmp_ueq_f32(-sNaN:0x80001, +sNaN:0x80001) == 1
|
||||
; run: %fcmp_ueq_f32(+sNaN:0x80001, +sNaN:0x1) == 1
|
||||
; run: %fcmp_ueq_f32(+sNaN:0x80001, -sNaN:0x1) == 1
|
||||
; run: %fcmp_ueq_f32(-sNaN:0x80001, -sNaN:0x1) == 1
|
||||
; run: %fcmp_ueq_f32(-sNaN:0x80001, +sNaN:0x1) == 1
|
||||
|
||||
|
||||
function %fcmp_ueq_f64(f64, f64) -> b1 {
|
||||
function %fcmp_ueq_f64(f64, f64) -> i8 {
|
||||
block0(v0: f64, v1: f64):
|
||||
v2 = fcmp ueq v0, v1
|
||||
return v2
|
||||
}
|
||||
; run: %fcmp_ueq_f64(0x0.5, 0x0.5) == true
|
||||
; run: %fcmp_ueq_f64(0x1.0, 0x1.0) == true
|
||||
; run: %fcmp_ueq_f64(-0x1.0, 0x1.0) == false
|
||||
; run: %fcmp_ueq_f64(0x1.0, -0x1.0) == false
|
||||
; run: %fcmp_ueq_f64(0x0.5, 0x1.0) == false
|
||||
; run: %fcmp_ueq_f64(0x1.5, 0x2.9) == false
|
||||
; run: %fcmp_ueq_f64(0x1.1p10, 0x1.4p1) == false
|
||||
; run: %fcmp_ueq_f64(0x1.4cccccccccccdp0, 0x1.8p0) == false
|
||||
; run: %fcmp_ueq_f64(0x1.b333333333333p0, 0x1.999999999999ap-2) == false
|
||||
; run: %fcmp_ueq_f64(0x1.3333333333333p-1, 0x1.6666666666666p1) == false
|
||||
; run: %fcmp_ueq_f64(-0x0.5, -0x1.0) == false
|
||||
; run: %fcmp_ueq_f64(-0x1.5, -0x2.9) == false
|
||||
; run: %fcmp_ueq_f64(-0x1.1p10, -0x1.3333333333333p-1) == false
|
||||
; run: %fcmp_ueq_f64(-0x1.999999999999ap-2, -0x1.4cccccccccccdp0) == false
|
||||
; run: %fcmp_ueq_f64(-0x1.8p0, -0x1.b333333333333p0) == false
|
||||
; run: %fcmp_ueq_f64(-0x1.4p1, -0x1.6666666666666p1) == false
|
||||
; run: %fcmp_ueq_f64(0x0.5, -0x1.0) == false
|
||||
; run: %fcmp_ueq_f64(0x1.b333333333333p0, -0x1.b333333333333p0) == false
|
||||
; run: %fcmp_ueq_f64(0x0.5, 0x0.5) == 1
|
||||
; run: %fcmp_ueq_f64(0x1.0, 0x1.0) == 1
|
||||
; run: %fcmp_ueq_f64(-0x1.0, 0x1.0) == 0
|
||||
; run: %fcmp_ueq_f64(0x1.0, -0x1.0) == 0
|
||||
; run: %fcmp_ueq_f64(0x0.5, 0x1.0) == 0
|
||||
; run: %fcmp_ueq_f64(0x1.5, 0x2.9) == 0
|
||||
; run: %fcmp_ueq_f64(0x1.1p10, 0x1.4p1) == 0
|
||||
; run: %fcmp_ueq_f64(0x1.4cccccccccccdp0, 0x1.8p0) == 0
|
||||
; run: %fcmp_ueq_f64(0x1.b333333333333p0, 0x1.999999999999ap-2) == 0
|
||||
; run: %fcmp_ueq_f64(0x1.3333333333333p-1, 0x1.6666666666666p1) == 0
|
||||
; run: %fcmp_ueq_f64(-0x0.5, -0x1.0) == 0
|
||||
; run: %fcmp_ueq_f64(-0x1.5, -0x2.9) == 0
|
||||
; run: %fcmp_ueq_f64(-0x1.1p10, -0x1.3333333333333p-1) == 0
|
||||
; run: %fcmp_ueq_f64(-0x1.999999999999ap-2, -0x1.4cccccccccccdp0) == 0
|
||||
; run: %fcmp_ueq_f64(-0x1.8p0, -0x1.b333333333333p0) == 0
|
||||
; run: %fcmp_ueq_f64(-0x1.4p1, -0x1.6666666666666p1) == 0
|
||||
; run: %fcmp_ueq_f64(0x0.5, -0x1.0) == 0
|
||||
; run: %fcmp_ueq_f64(0x1.b333333333333p0, -0x1.b333333333333p0) == 0
|
||||
|
||||
|
||||
; Zeroes
|
||||
; run: %fcmp_ueq_f64(0x0.0, 0x0.0) == true
|
||||
; run: %fcmp_ueq_f64(-0x0.0, -0x0.0) == true
|
||||
; run: %fcmp_ueq_f64(0x0.0, -0x0.0) == true
|
||||
; run: %fcmp_ueq_f64(-0x0.0, 0x0.0) == true
|
||||
; run: %fcmp_ueq_f64(0x0.0, 0x0.0) == 1
|
||||
; run: %fcmp_ueq_f64(-0x0.0, -0x0.0) == 1
|
||||
; run: %fcmp_ueq_f64(0x0.0, -0x0.0) == 1
|
||||
; run: %fcmp_ueq_f64(-0x0.0, 0x0.0) == 1
|
||||
|
||||
; Infinities
|
||||
; run: %fcmp_ueq_f64(Inf, Inf) == true
|
||||
; run: %fcmp_ueq_f64(-Inf, -Inf) == true
|
||||
; run: %fcmp_ueq_f64(Inf, -Inf) == false
|
||||
; run: %fcmp_ueq_f64(-Inf, Inf) == false
|
||||
; run: %fcmp_ueq_f64(Inf, Inf) == 1
|
||||
; run: %fcmp_ueq_f64(-Inf, -Inf) == 1
|
||||
; run: %fcmp_ueq_f64(Inf, -Inf) == 0
|
||||
; run: %fcmp_ueq_f64(-Inf, Inf) == 0
|
||||
|
||||
; Inf/Zero
|
||||
; run: %fcmp_ueq_f64(0x0.0, Inf) == false
|
||||
; run: %fcmp_ueq_f64(-0x0.0, Inf) == false
|
||||
; run: %fcmp_ueq_f64(0x0.0, -Inf) == false
|
||||
; run: %fcmp_ueq_f64(-0x0.0, -Inf) == false
|
||||
; run: %fcmp_ueq_f64(Inf, 0x0.0) == false
|
||||
; run: %fcmp_ueq_f64(Inf, -0x0.0) == false
|
||||
; run: %fcmp_ueq_f64(-Inf, 0x0.0) == false
|
||||
; run: %fcmp_ueq_f64(-Inf, -0x0.0) == false
|
||||
; run: %fcmp_ueq_f64(0x0.0, Inf) == 0
|
||||
; run: %fcmp_ueq_f64(-0x0.0, Inf) == 0
|
||||
; run: %fcmp_ueq_f64(0x0.0, -Inf) == 0
|
||||
; run: %fcmp_ueq_f64(-0x0.0, -Inf) == 0
|
||||
; run: %fcmp_ueq_f64(Inf, 0x0.0) == 0
|
||||
; run: %fcmp_ueq_f64(Inf, -0x0.0) == 0
|
||||
; run: %fcmp_ueq_f64(-Inf, 0x0.0) == 0
|
||||
; run: %fcmp_ueq_f64(-Inf, -0x0.0) == 0
|
||||
|
||||
; Epsilon / Max / Min Positive
|
||||
; run: %fcmp_ueq_f64(0x1.0p-52, 0x1.0p-52) == true
|
||||
; run: %fcmp_ueq_f64(0x1.fffffffffffffp1023, 0x1.fffffffffffffp1023) == true
|
||||
; run: %fcmp_ueq_f64(0x1.0p-1022, 0x1.0p-1022) == true
|
||||
; run: %fcmp_ueq_f64(0x1.0p-52, 0x1.fffffffffffffp1023) == false
|
||||
; run: %fcmp_ueq_f64(0x1.0p-52, 0x1.0p-1022) == false
|
||||
; run: %fcmp_ueq_f64(0x1.0p-1022, 0x1.fffffffffffffp1023) == false
|
||||
; run: %fcmp_ueq_f64(0x1.0p-52, 0x1.0p-52) == 1
|
||||
; run: %fcmp_ueq_f64(0x1.fffffffffffffp1023, 0x1.fffffffffffffp1023) == 1
|
||||
; run: %fcmp_ueq_f64(0x1.0p-1022, 0x1.0p-1022) == 1
|
||||
; run: %fcmp_ueq_f64(0x1.0p-52, 0x1.fffffffffffffp1023) == 0
|
||||
; run: %fcmp_ueq_f64(0x1.0p-52, 0x1.0p-1022) == 0
|
||||
; run: %fcmp_ueq_f64(0x1.0p-1022, 0x1.fffffffffffffp1023) == 0
|
||||
|
||||
; Subnormals
|
||||
; run: %fcmp_ueq_f64(0x0.8p-1022, -0x0.8p-1022) == false
|
||||
; run: %fcmp_ueq_f64(-0x0.8p-1022, 0x0.8p-1022) == false
|
||||
; run: %fcmp_ueq_f64(0x0.8p-1022, 0x0.0) == false
|
||||
; run: %fcmp_ueq_f64(-0x0.8p-1022, 0x0.0) == false
|
||||
; run: %fcmp_ueq_f64(0x0.8p-1022, -0x0.0) == false
|
||||
; run: %fcmp_ueq_f64(-0x0.8p-1022, -0x0.0) == false
|
||||
; run: %fcmp_ueq_f64(0x0.0, 0x0.8p-1022) == false
|
||||
; run: %fcmp_ueq_f64(0x0.0, -0x0.8p-1022) == false
|
||||
; run: %fcmp_ueq_f64(-0x0.0, 0x0.8p-1022) == false
|
||||
; run: %fcmp_ueq_f64(-0x0.0, -0x0.8p-1022) == false
|
||||
; run: %fcmp_ueq_f64(0x0.8p-1022, -0x0.8p-1022) == 0
|
||||
; run: %fcmp_ueq_f64(-0x0.8p-1022, 0x0.8p-1022) == 0
|
||||
; run: %fcmp_ueq_f64(0x0.8p-1022, 0x0.0) == 0
|
||||
; run: %fcmp_ueq_f64(-0x0.8p-1022, 0x0.0) == 0
|
||||
; run: %fcmp_ueq_f64(0x0.8p-1022, -0x0.0) == 0
|
||||
; run: %fcmp_ueq_f64(-0x0.8p-1022, -0x0.0) == 0
|
||||
; run: %fcmp_ueq_f64(0x0.0, 0x0.8p-1022) == 0
|
||||
; run: %fcmp_ueq_f64(0x0.0, -0x0.8p-1022) == 0
|
||||
; run: %fcmp_ueq_f64(-0x0.0, 0x0.8p-1022) == 0
|
||||
; run: %fcmp_ueq_f64(-0x0.0, -0x0.8p-1022) == 0
|
||||
|
||||
; NaN's
|
||||
; run: %fcmp_ueq_f64(+NaN, +NaN) == true
|
||||
; run: %fcmp_ueq_f64(-NaN, -NaN) == true
|
||||
; run: %fcmp_ueq_f64(+NaN, -NaN) == true
|
||||
; run: %fcmp_ueq_f64(-NaN, +NaN) == true
|
||||
; run: %fcmp_ueq_f64(+NaN, +NaN) == 1
|
||||
; run: %fcmp_ueq_f64(-NaN, -NaN) == 1
|
||||
; run: %fcmp_ueq_f64(+NaN, -NaN) == 1
|
||||
; run: %fcmp_ueq_f64(-NaN, +NaN) == 1
|
||||
|
||||
; run: %fcmp_ueq_f64(+NaN, -0x1.0) == true
|
||||
; run: %fcmp_ueq_f64(-NaN, -0x1.0) == true
|
||||
; run: %fcmp_ueq_f64(+NaN, 0x1.0) == true
|
||||
; run: %fcmp_ueq_f64(-NaN, 0x1.0) == true
|
||||
; run: %fcmp_ueq_f64(+NaN, -0x0.0) == true
|
||||
; run: %fcmp_ueq_f64(-NaN, -0x0.0) == true
|
||||
; run: %fcmp_ueq_f64(+NaN, 0x0.0) == true
|
||||
; run: %fcmp_ueq_f64(-NaN, 0x0.0) == true
|
||||
; run: %fcmp_ueq_f64(+NaN, -Inf) == true
|
||||
; run: %fcmp_ueq_f64(-NaN, -Inf) == true
|
||||
; run: %fcmp_ueq_f64(+NaN, Inf) == true
|
||||
; run: %fcmp_ueq_f64(-NaN, Inf) == true
|
||||
; run: %fcmp_ueq_f64(-0x0.0, +NaN) == true
|
||||
; run: %fcmp_ueq_f64(-0x0.0, -NaN) == true
|
||||
; run: %fcmp_ueq_f64(0x0.0, +NaN) == true
|
||||
; run: %fcmp_ueq_f64(0x0.0, -NaN) == true
|
||||
; run: %fcmp_ueq_f64(-Inf, +NaN) == true
|
||||
; run: %fcmp_ueq_f64(-Inf, -NaN) == true
|
||||
; run: %fcmp_ueq_f64(Inf, +NaN) == true
|
||||
; run: %fcmp_ueq_f64(Inf, -NaN) == true
|
||||
; run: %fcmp_ueq_f64(+NaN, -0x1.0) == 1
|
||||
; run: %fcmp_ueq_f64(-NaN, -0x1.0) == 1
|
||||
; run: %fcmp_ueq_f64(+NaN, 0x1.0) == 1
|
||||
; run: %fcmp_ueq_f64(-NaN, 0x1.0) == 1
|
||||
; run: %fcmp_ueq_f64(+NaN, -0x0.0) == 1
|
||||
; run: %fcmp_ueq_f64(-NaN, -0x0.0) == 1
|
||||
; run: %fcmp_ueq_f64(+NaN, 0x0.0) == 1
|
||||
; run: %fcmp_ueq_f64(-NaN, 0x0.0) == 1
|
||||
; run: %fcmp_ueq_f64(+NaN, -Inf) == 1
|
||||
; run: %fcmp_ueq_f64(-NaN, -Inf) == 1
|
||||
; run: %fcmp_ueq_f64(+NaN, Inf) == 1
|
||||
; run: %fcmp_ueq_f64(-NaN, Inf) == 1
|
||||
; run: %fcmp_ueq_f64(-0x0.0, +NaN) == 1
|
||||
; run: %fcmp_ueq_f64(-0x0.0, -NaN) == 1
|
||||
; run: %fcmp_ueq_f64(0x0.0, +NaN) == 1
|
||||
; run: %fcmp_ueq_f64(0x0.0, -NaN) == 1
|
||||
; run: %fcmp_ueq_f64(-Inf, +NaN) == 1
|
||||
; run: %fcmp_ueq_f64(-Inf, -NaN) == 1
|
||||
; run: %fcmp_ueq_f64(Inf, +NaN) == 1
|
||||
; run: %fcmp_ueq_f64(Inf, -NaN) == 1
|
||||
|
||||
; run: %fcmp_ueq_f64(+NaN:0x1, +NaN:0x1) == true
|
||||
; run: %fcmp_ueq_f64(-NaN:0x1, -NaN:0x1) == true
|
||||
; run: %fcmp_ueq_f64(+NaN:0x1, -NaN:0x1) == true
|
||||
; run: %fcmp_ueq_f64(-NaN:0x1, +NaN:0x1) == true
|
||||
; run: %fcmp_ueq_f64(+NaN:0x1, +NaN) == true
|
||||
; run: %fcmp_ueq_f64(+NaN:0x1, -NaN) == true
|
||||
; run: %fcmp_ueq_f64(-NaN:0x1, -NaN) == true
|
||||
; run: %fcmp_ueq_f64(-NaN:0x1, +NaN) == true
|
||||
; run: %fcmp_ueq_f64(+NaN:0x1, +NaN:0x1) == 1
|
||||
; run: %fcmp_ueq_f64(-NaN:0x1, -NaN:0x1) == 1
|
||||
; run: %fcmp_ueq_f64(+NaN:0x1, -NaN:0x1) == 1
|
||||
; run: %fcmp_ueq_f64(-NaN:0x1, +NaN:0x1) == 1
|
||||
; run: %fcmp_ueq_f64(+NaN:0x1, +NaN) == 1
|
||||
; run: %fcmp_ueq_f64(+NaN:0x1, -NaN) == 1
|
||||
; run: %fcmp_ueq_f64(-NaN:0x1, -NaN) == 1
|
||||
; run: %fcmp_ueq_f64(-NaN:0x1, +NaN) == 1
|
||||
|
||||
; run: %fcmp_ueq_f64(+NaN:0x800000000001, +NaN:0x800000000001) == true
|
||||
; run: %fcmp_ueq_f64(-NaN:0x800000000001, -NaN:0x800000000001) == true
|
||||
; run: %fcmp_ueq_f64(+NaN:0x800000000001, -NaN:0x800000000001) == true
|
||||
; run: %fcmp_ueq_f64(-NaN:0x800000000001, +NaN:0x800000000001) == true
|
||||
; run: %fcmp_ueq_f64(+NaN:0x800000000001, +NaN) == true
|
||||
; run: %fcmp_ueq_f64(+NaN:0x800000000001, -NaN) == true
|
||||
; run: %fcmp_ueq_f64(-NaN:0x800000000001, -NaN) == true
|
||||
; run: %fcmp_ueq_f64(-NaN:0x800000000001, +NaN) == true
|
||||
; run: %fcmp_ueq_f64(+NaN:0x800000000001, +NaN:0x800000000001) == 1
|
||||
; run: %fcmp_ueq_f64(-NaN:0x800000000001, -NaN:0x800000000001) == 1
|
||||
; run: %fcmp_ueq_f64(+NaN:0x800000000001, -NaN:0x800000000001) == 1
|
||||
; run: %fcmp_ueq_f64(-NaN:0x800000000001, +NaN:0x800000000001) == 1
|
||||
; run: %fcmp_ueq_f64(+NaN:0x800000000001, +NaN) == 1
|
||||
; run: %fcmp_ueq_f64(+NaN:0x800000000001, -NaN) == 1
|
||||
; run: %fcmp_ueq_f64(-NaN:0x800000000001, -NaN) == 1
|
||||
; run: %fcmp_ueq_f64(-NaN:0x800000000001, +NaN) == 1
|
||||
|
||||
; sNaN's
|
||||
; run: %fcmp_ueq_f64(+sNaN:0x1, +sNaN:0x1) == true
|
||||
; run: %fcmp_ueq_f64(-sNaN:0x1, -sNaN:0x1) == true
|
||||
; run: %fcmp_ueq_f64(+sNaN:0x1, -sNaN:0x1) == true
|
||||
; run: %fcmp_ueq_f64(-sNaN:0x1, +sNaN:0x1) == true
|
||||
; run: %fcmp_ueq_f64(+sNaN:0x1, +sNaN:0x1) == 1
|
||||
; run: %fcmp_ueq_f64(-sNaN:0x1, -sNaN:0x1) == 1
|
||||
; run: %fcmp_ueq_f64(+sNaN:0x1, -sNaN:0x1) == 1
|
||||
; run: %fcmp_ueq_f64(-sNaN:0x1, +sNaN:0x1) == 1
|
||||
|
||||
; run: %fcmp_ueq_f64(+sNaN:0x1, -0x1.0) == true
|
||||
; run: %fcmp_ueq_f64(-sNaN:0x1, -0x1.0) == true
|
||||
; run: %fcmp_ueq_f64(+sNaN:0x1, 0x1.0) == true
|
||||
; run: %fcmp_ueq_f64(-sNaN:0x1, 0x1.0) == true
|
||||
; run: %fcmp_ueq_f64(+sNaN:0x1, -0x0.0) == true
|
||||
; run: %fcmp_ueq_f64(-sNaN:0x1, -0x0.0) == true
|
||||
; run: %fcmp_ueq_f64(+sNaN:0x1, 0x0.0) == true
|
||||
; run: %fcmp_ueq_f64(-sNaN:0x1, 0x0.0) == true
|
||||
; run: %fcmp_ueq_f64(+sNaN:0x1, -Inf) == true
|
||||
; run: %fcmp_ueq_f64(-sNaN:0x1, -Inf) == true
|
||||
; run: %fcmp_ueq_f64(+sNaN:0x1, Inf) == true
|
||||
; run: %fcmp_ueq_f64(-sNaN:0x1, Inf) == true
|
||||
; run: %fcmp_ueq_f64(-0x0.0, +sNaN:0x1) == true
|
||||
; run: %fcmp_ueq_f64(-0x0.0, -sNaN:0x1) == true
|
||||
; run: %fcmp_ueq_f64(0x0.0, +sNaN:0x1) == true
|
||||
; run: %fcmp_ueq_f64(0x0.0, -sNaN:0x1) == true
|
||||
; run: %fcmp_ueq_f64(-Inf, +sNaN:0x1) == true
|
||||
; run: %fcmp_ueq_f64(-Inf, -sNaN:0x1) == true
|
||||
; run: %fcmp_ueq_f64(Inf, +sNaN:0x1) == true
|
||||
; run: %fcmp_ueq_f64(Inf, -sNaN:0x1) == true
|
||||
; run: %fcmp_ueq_f64(+sNaN:0x1, -0x1.0) == 1
|
||||
; run: %fcmp_ueq_f64(-sNaN:0x1, -0x1.0) == 1
|
||||
; run: %fcmp_ueq_f64(+sNaN:0x1, 0x1.0) == 1
|
||||
; run: %fcmp_ueq_f64(-sNaN:0x1, 0x1.0) == 1
|
||||
; run: %fcmp_ueq_f64(+sNaN:0x1, -0x0.0) == 1
|
||||
; run: %fcmp_ueq_f64(-sNaN:0x1, -0x0.0) == 1
|
||||
; run: %fcmp_ueq_f64(+sNaN:0x1, 0x0.0) == 1
|
||||
; run: %fcmp_ueq_f64(-sNaN:0x1, 0x0.0) == 1
|
||||
; run: %fcmp_ueq_f64(+sNaN:0x1, -Inf) == 1
|
||||
; run: %fcmp_ueq_f64(-sNaN:0x1, -Inf) == 1
|
||||
; run: %fcmp_ueq_f64(+sNaN:0x1, Inf) == 1
|
||||
; run: %fcmp_ueq_f64(-sNaN:0x1, Inf) == 1
|
||||
; run: %fcmp_ueq_f64(-0x0.0, +sNaN:0x1) == 1
|
||||
; run: %fcmp_ueq_f64(-0x0.0, -sNaN:0x1) == 1
|
||||
; run: %fcmp_ueq_f64(0x0.0, +sNaN:0x1) == 1
|
||||
; run: %fcmp_ueq_f64(0x0.0, -sNaN:0x1) == 1
|
||||
; run: %fcmp_ueq_f64(-Inf, +sNaN:0x1) == 1
|
||||
; run: %fcmp_ueq_f64(-Inf, -sNaN:0x1) == 1
|
||||
; run: %fcmp_ueq_f64(Inf, +sNaN:0x1) == 1
|
||||
; run: %fcmp_ueq_f64(Inf, -sNaN:0x1) == 1
|
||||
|
||||
; run: %fcmp_ueq_f64(+sNaN:0x1, +NaN:0x1) == true
|
||||
; run: %fcmp_ueq_f64(-sNaN:0x1, -NaN:0x1) == true
|
||||
; run: %fcmp_ueq_f64(+sNaN:0x1, -NaN:0x1) == true
|
||||
; run: %fcmp_ueq_f64(-sNaN:0x1, +NaN:0x1) == true
|
||||
; run: %fcmp_ueq_f64(+NaN:0x1, +sNaN:0x1) == true
|
||||
; run: %fcmp_ueq_f64(-NaN:0x1, -sNaN:0x1) == true
|
||||
; run: %fcmp_ueq_f64(-NaN:0x1, +sNaN:0x1) == true
|
||||
; run: %fcmp_ueq_f64(+NaN:0x1, -sNaN:0x1) == true
|
||||
; run: %fcmp_ueq_f64(+sNaN:0x1, +NaN:0x1) == 1
|
||||
; run: %fcmp_ueq_f64(-sNaN:0x1, -NaN:0x1) == 1
|
||||
; run: %fcmp_ueq_f64(+sNaN:0x1, -NaN:0x1) == 1
|
||||
; run: %fcmp_ueq_f64(-sNaN:0x1, +NaN:0x1) == 1
|
||||
; run: %fcmp_ueq_f64(+NaN:0x1, +sNaN:0x1) == 1
|
||||
; run: %fcmp_ueq_f64(-NaN:0x1, -sNaN:0x1) == 1
|
||||
; run: %fcmp_ueq_f64(-NaN:0x1, +sNaN:0x1) == 1
|
||||
; run: %fcmp_ueq_f64(+NaN:0x1, -sNaN:0x1) == 1
|
||||
|
||||
; run: %fcmp_ueq_f64(+sNaN:0x800000000001, +sNaN:0x800000000001) == true
|
||||
; run: %fcmp_ueq_f64(-sNaN:0x800000000001, -sNaN:0x800000000001) == true
|
||||
; run: %fcmp_ueq_f64(+sNaN:0x800000000001, -sNaN:0x800000000001) == true
|
||||
; run: %fcmp_ueq_f64(-sNaN:0x800000000001, +sNaN:0x800000000001) == true
|
||||
; run: %fcmp_ueq_f64(+sNaN:0x800000000001, +sNaN:0x1) == true
|
||||
; run: %fcmp_ueq_f64(+sNaN:0x800000000001, -sNaN:0x1) == true
|
||||
; run: %fcmp_ueq_f64(-sNaN:0x800000000001, -sNaN:0x1) == true
|
||||
; run: %fcmp_ueq_f64(-sNaN:0x800000000001, +sNaN:0x1) == true
|
||||
; run: %fcmp_ueq_f64(+sNaN:0x800000000001, +sNaN:0x800000000001) == 1
|
||||
; run: %fcmp_ueq_f64(-sNaN:0x800000000001, -sNaN:0x800000000001) == 1
|
||||
; run: %fcmp_ueq_f64(+sNaN:0x800000000001, -sNaN:0x800000000001) == 1
|
||||
; run: %fcmp_ueq_f64(-sNaN:0x800000000001, +sNaN:0x800000000001) == 1
|
||||
; run: %fcmp_ueq_f64(+sNaN:0x800000000001, +sNaN:0x1) == 1
|
||||
; run: %fcmp_ueq_f64(+sNaN:0x800000000001, -sNaN:0x1) == 1
|
||||
; run: %fcmp_ueq_f64(-sNaN:0x800000000001, -sNaN:0x1) == 1
|
||||
; run: %fcmp_ueq_f64(-sNaN:0x800000000001, +sNaN:0x1) == 1
|
||||
|
||||
@@ -4,316 +4,316 @@ target x86_64
|
||||
target s390x
|
||||
target riscv64
|
||||
|
||||
function %fcmp_uge_f32(f32, f32) -> b1 {
|
||||
function %fcmp_uge_f32(f32, f32) -> i8 {
|
||||
block0(v0: f32, v1: f32):
|
||||
v2 = fcmp uge v0, v1
|
||||
return v2
|
||||
}
|
||||
; run: %fcmp_uge_f32(0x0.5, 0x0.5) == true
|
||||
; run: %fcmp_uge_f32(0x1.0, 0x1.0) == true
|
||||
; run: %fcmp_uge_f32(-0x1.0, 0x1.0) == false
|
||||
; run: %fcmp_uge_f32(0x1.0, -0x1.0) == true
|
||||
; run: %fcmp_uge_f32(0x0.5, 0x1.0) == false
|
||||
; run: %fcmp_uge_f32(0x1.5, 0x2.9) == false
|
||||
; run: %fcmp_uge_f32(0x1.1p10, 0x1.4p1) == true
|
||||
; run: %fcmp_uge_f32(0x1.4cccccp0, 0x1.8p0) == false
|
||||
; run: %fcmp_uge_f32(0x1.b33334p0, 0x1.99999ap-2) == true
|
||||
; run: %fcmp_uge_f32(0x1.333334p-1, 0x1.666666p1) == false
|
||||
; run: %fcmp_uge_f32(-0x0.5, -0x1.0) == true
|
||||
; run: %fcmp_uge_f32(-0x1.5, -0x2.9) == true
|
||||
; run: %fcmp_uge_f32(-0x1.1p10, -0x1.333334p-1) == false
|
||||
; run: %fcmp_uge_f32(-0x1.99999ap-2, -0x1.4cccccp0) == true
|
||||
; run: %fcmp_uge_f32(-0x1.8p0, -0x1.b33334p0) == true
|
||||
; run: %fcmp_uge_f32(-0x1.4p1, -0x1.666666p1) == true
|
||||
; run: %fcmp_uge_f32(0x0.5, -0x1.0) == true
|
||||
; run: %fcmp_uge_f32(0x1.b33334p0, -0x1.b33334p0) == true
|
||||
; run: %fcmp_uge_f32(0x0.5, 0x0.5) == 1
|
||||
; run: %fcmp_uge_f32(0x1.0, 0x1.0) == 1
|
||||
; run: %fcmp_uge_f32(-0x1.0, 0x1.0) == 0
|
||||
; run: %fcmp_uge_f32(0x1.0, -0x1.0) == 1
|
||||
; run: %fcmp_uge_f32(0x0.5, 0x1.0) == 0
|
||||
; run: %fcmp_uge_f32(0x1.5, 0x2.9) == 0
|
||||
; run: %fcmp_uge_f32(0x1.1p10, 0x1.4p1) == 1
|
||||
; run: %fcmp_uge_f32(0x1.4cccccp0, 0x1.8p0) == 0
|
||||
; run: %fcmp_uge_f32(0x1.b33334p0, 0x1.99999ap-2) == 1
|
||||
; run: %fcmp_uge_f32(0x1.333334p-1, 0x1.666666p1) == 0
|
||||
; run: %fcmp_uge_f32(-0x0.5, -0x1.0) == 1
|
||||
; run: %fcmp_uge_f32(-0x1.5, -0x2.9) == 1
|
||||
; run: %fcmp_uge_f32(-0x1.1p10, -0x1.333334p-1) == 0
|
||||
; run: %fcmp_uge_f32(-0x1.99999ap-2, -0x1.4cccccp0) == 1
|
||||
; run: %fcmp_uge_f32(-0x1.8p0, -0x1.b33334p0) == 1
|
||||
; run: %fcmp_uge_f32(-0x1.4p1, -0x1.666666p1) == 1
|
||||
; run: %fcmp_uge_f32(0x0.5, -0x1.0) == 1
|
||||
; run: %fcmp_uge_f32(0x1.b33334p0, -0x1.b33334p0) == 1
|
||||
|
||||
; Zeroes
|
||||
; run: %fcmp_uge_f32(0x0.0, 0x0.0) == true
|
||||
; run: %fcmp_uge_f32(-0x0.0, -0x0.0) == true
|
||||
; run: %fcmp_uge_f32(0x0.0, -0x0.0) == true
|
||||
; run: %fcmp_uge_f32(-0x0.0, 0x0.0) == true
|
||||
; run: %fcmp_uge_f32(0x0.0, 0x0.0) == 1
|
||||
; run: %fcmp_uge_f32(-0x0.0, -0x0.0) == 1
|
||||
; run: %fcmp_uge_f32(0x0.0, -0x0.0) == 1
|
||||
; run: %fcmp_uge_f32(-0x0.0, 0x0.0) == 1
|
||||
|
||||
; Infinities
|
||||
; run: %fcmp_uge_f32(Inf, Inf) == true
|
||||
; run: %fcmp_uge_f32(-Inf, -Inf) == true
|
||||
; run: %fcmp_uge_f32(Inf, -Inf) == true
|
||||
; run: %fcmp_uge_f32(-Inf, Inf) == false
|
||||
; run: %fcmp_uge_f32(Inf, Inf) == 1
|
||||
; run: %fcmp_uge_f32(-Inf, -Inf) == 1
|
||||
; run: %fcmp_uge_f32(Inf, -Inf) == 1
|
||||
; run: %fcmp_uge_f32(-Inf, Inf) == 0
|
||||
|
||||
; Inf/Zero
|
||||
; run: %fcmp_uge_f32(0x0.0, Inf) == false
|
||||
; run: %fcmp_uge_f32(-0x0.0, Inf) == false
|
||||
; run: %fcmp_uge_f32(0x0.0, -Inf) == true
|
||||
; run: %fcmp_uge_f32(-0x0.0, -Inf) == true
|
||||
; run: %fcmp_uge_f32(Inf, 0x0.0) == true
|
||||
; run: %fcmp_uge_f32(Inf, -0x0.0) == true
|
||||
; run: %fcmp_uge_f32(-Inf, 0x0.0) == false
|
||||
; run: %fcmp_uge_f32(-Inf, -0x0.0) == false
|
||||
; run: %fcmp_uge_f32(0x0.0, Inf) == 0
|
||||
; run: %fcmp_uge_f32(-0x0.0, Inf) == 0
|
||||
; run: %fcmp_uge_f32(0x0.0, -Inf) == 1
|
||||
; run: %fcmp_uge_f32(-0x0.0, -Inf) == 1
|
||||
; run: %fcmp_uge_f32(Inf, 0x0.0) == 1
|
||||
; run: %fcmp_uge_f32(Inf, -0x0.0) == 1
|
||||
; run: %fcmp_uge_f32(-Inf, 0x0.0) == 0
|
||||
; run: %fcmp_uge_f32(-Inf, -0x0.0) == 0
|
||||
|
||||
; Epsilon / Max / Min Positive
|
||||
; run: %fcmp_uge_f32(0x1.0p-23, 0x1.0p-23) == true
|
||||
; run: %fcmp_uge_f32(0x1.fffffep127, 0x1.fffffep127) == true
|
||||
; run: %fcmp_uge_f32(0x1.0p-126, 0x1.0p-126) == true
|
||||
; run: %fcmp_uge_f32(0x1.0p-23, 0x1.fffffep127) == false
|
||||
; run: %fcmp_uge_f32(0x1.0p-23, 0x1.0p-126) == true
|
||||
; run: %fcmp_uge_f32(0x1.0p-126, 0x1.fffffep127) == false
|
||||
; run: %fcmp_uge_f32(0x1.0p-23, 0x1.0p-23) == 1
|
||||
; run: %fcmp_uge_f32(0x1.fffffep127, 0x1.fffffep127) == 1
|
||||
; run: %fcmp_uge_f32(0x1.0p-126, 0x1.0p-126) == 1
|
||||
; run: %fcmp_uge_f32(0x1.0p-23, 0x1.fffffep127) == 0
|
||||
; run: %fcmp_uge_f32(0x1.0p-23, 0x1.0p-126) == 1
|
||||
; run: %fcmp_uge_f32(0x1.0p-126, 0x1.fffffep127) == 0
|
||||
|
||||
; Subnormals
|
||||
; run: %fcmp_uge_f32(0x0.800002p-126, -0x0.800002p-126) == true
|
||||
; run: %fcmp_uge_f32(-0x0.800002p-126, 0x0.800002p-126) == false
|
||||
; run: %fcmp_uge_f32(0x0.800002p-126, 0x0.0) == true
|
||||
; run: %fcmp_uge_f32(-0x0.800002p-126, 0x0.0) == false
|
||||
; run: %fcmp_uge_f32(0x0.800002p-126, -0x0.0) == true
|
||||
; run: %fcmp_uge_f32(-0x0.800002p-126, -0x0.0) == false
|
||||
; run: %fcmp_uge_f32(0x0.0, 0x0.800002p-126) == false
|
||||
; run: %fcmp_uge_f32(0x0.0, -0x0.800002p-126) == true
|
||||
; run: %fcmp_uge_f32(-0x0.0, 0x0.800002p-126) == false
|
||||
; run: %fcmp_uge_f32(-0x0.0, -0x0.800002p-126) == true
|
||||
; run: %fcmp_uge_f32(0x0.800002p-126, -0x0.800002p-126) == 1
|
||||
; run: %fcmp_uge_f32(-0x0.800002p-126, 0x0.800002p-126) == 0
|
||||
; run: %fcmp_uge_f32(0x0.800002p-126, 0x0.0) == 1
|
||||
; run: %fcmp_uge_f32(-0x0.800002p-126, 0x0.0) == 0
|
||||
; run: %fcmp_uge_f32(0x0.800002p-126, -0x0.0) == 1
|
||||
; run: %fcmp_uge_f32(-0x0.800002p-126, -0x0.0) == 0
|
||||
; run: %fcmp_uge_f32(0x0.0, 0x0.800002p-126) == 0
|
||||
; run: %fcmp_uge_f32(0x0.0, -0x0.800002p-126) == 1
|
||||
; run: %fcmp_uge_f32(-0x0.0, 0x0.800002p-126) == 0
|
||||
; run: %fcmp_uge_f32(-0x0.0, -0x0.800002p-126) == 1
|
||||
|
||||
; NaN's
|
||||
; run: %fcmp_uge_f32(+NaN, +NaN) == true
|
||||
; run: %fcmp_uge_f32(-NaN, -NaN) == true
|
||||
; run: %fcmp_uge_f32(+NaN, -NaN) == true
|
||||
; run: %fcmp_uge_f32(-NaN, +NaN) == true
|
||||
; run: %fcmp_uge_f32(+NaN, +NaN) == 1
|
||||
; run: %fcmp_uge_f32(-NaN, -NaN) == 1
|
||||
; run: %fcmp_uge_f32(+NaN, -NaN) == 1
|
||||
; run: %fcmp_uge_f32(-NaN, +NaN) == 1
|
||||
|
||||
; run: %fcmp_uge_f32(+NaN, -0x1.0) == true
|
||||
; run: %fcmp_uge_f32(-NaN, -0x1.0) == true
|
||||
; run: %fcmp_uge_f32(+NaN, 0x1.0) == true
|
||||
; run: %fcmp_uge_f32(-NaN, 0x1.0) == true
|
||||
; run: %fcmp_uge_f32(+NaN, -0x0.0) == true
|
||||
; run: %fcmp_uge_f32(-NaN, -0x0.0) == true
|
||||
; run: %fcmp_uge_f32(+NaN, 0x0.0) == true
|
||||
; run: %fcmp_uge_f32(-NaN, 0x0.0) == true
|
||||
; run: %fcmp_uge_f32(+NaN, -Inf) == true
|
||||
; run: %fcmp_uge_f32(-NaN, -Inf) == true
|
||||
; run: %fcmp_uge_f32(+NaN, Inf) == true
|
||||
; run: %fcmp_uge_f32(-NaN, Inf) == true
|
||||
; run: %fcmp_uge_f32(-0x0.0, +NaN) == true
|
||||
; run: %fcmp_uge_f32(-0x0.0, -NaN) == true
|
||||
; run: %fcmp_uge_f32(0x0.0, +NaN) == true
|
||||
; run: %fcmp_uge_f32(0x0.0, -NaN) == true
|
||||
; run: %fcmp_uge_f32(-Inf, +NaN) == true
|
||||
; run: %fcmp_uge_f32(-Inf, -NaN) == true
|
||||
; run: %fcmp_uge_f32(Inf, +NaN) == true
|
||||
; run: %fcmp_uge_f32(Inf, -NaN) == true
|
||||
; run: %fcmp_uge_f32(+NaN, -0x1.0) == 1
|
||||
; run: %fcmp_uge_f32(-NaN, -0x1.0) == 1
|
||||
; run: %fcmp_uge_f32(+NaN, 0x1.0) == 1
|
||||
; run: %fcmp_uge_f32(-NaN, 0x1.0) == 1
|
||||
; run: %fcmp_uge_f32(+NaN, -0x0.0) == 1
|
||||
; run: %fcmp_uge_f32(-NaN, -0x0.0) == 1
|
||||
; run: %fcmp_uge_f32(+NaN, 0x0.0) == 1
|
||||
; run: %fcmp_uge_f32(-NaN, 0x0.0) == 1
|
||||
; run: %fcmp_uge_f32(+NaN, -Inf) == 1
|
||||
; run: %fcmp_uge_f32(-NaN, -Inf) == 1
|
||||
; run: %fcmp_uge_f32(+NaN, Inf) == 1
|
||||
; run: %fcmp_uge_f32(-NaN, Inf) == 1
|
||||
; run: %fcmp_uge_f32(-0x0.0, +NaN) == 1
|
||||
; run: %fcmp_uge_f32(-0x0.0, -NaN) == 1
|
||||
; run: %fcmp_uge_f32(0x0.0, +NaN) == 1
|
||||
; run: %fcmp_uge_f32(0x0.0, -NaN) == 1
|
||||
; run: %fcmp_uge_f32(-Inf, +NaN) == 1
|
||||
; run: %fcmp_uge_f32(-Inf, -NaN) == 1
|
||||
; run: %fcmp_uge_f32(Inf, +NaN) == 1
|
||||
; run: %fcmp_uge_f32(Inf, -NaN) == 1
|
||||
|
||||
; run: %fcmp_uge_f32(+NaN:0x1, +NaN:0x1) == true
|
||||
; run: %fcmp_uge_f32(-NaN:0x1, -NaN:0x1) == true
|
||||
; run: %fcmp_uge_f32(+NaN:0x1, -NaN:0x1) == true
|
||||
; run: %fcmp_uge_f32(-NaN:0x1, +NaN:0x1) == true
|
||||
; run: %fcmp_uge_f32(+NaN:0x1, +NaN) == true
|
||||
; run: %fcmp_uge_f32(+NaN:0x1, -NaN) == true
|
||||
; run: %fcmp_uge_f32(-NaN:0x1, -NaN) == true
|
||||
; run: %fcmp_uge_f32(-NaN:0x1, +NaN) == true
|
||||
; run: %fcmp_uge_f32(+NaN:0x1, +NaN:0x1) == 1
|
||||
; run: %fcmp_uge_f32(-NaN:0x1, -NaN:0x1) == 1
|
||||
; run: %fcmp_uge_f32(+NaN:0x1, -NaN:0x1) == 1
|
||||
; run: %fcmp_uge_f32(-NaN:0x1, +NaN:0x1) == 1
|
||||
; run: %fcmp_uge_f32(+NaN:0x1, +NaN) == 1
|
||||
; run: %fcmp_uge_f32(+NaN:0x1, -NaN) == 1
|
||||
; run: %fcmp_uge_f32(-NaN:0x1, -NaN) == 1
|
||||
; run: %fcmp_uge_f32(-NaN:0x1, +NaN) == 1
|
||||
|
||||
; run: %fcmp_uge_f32(+NaN:0x80001, +NaN:0x80001) == true
|
||||
; run: %fcmp_uge_f32(-NaN:0x80001, -NaN:0x80001) == true
|
||||
; run: %fcmp_uge_f32(+NaN:0x80001, -NaN:0x80001) == true
|
||||
; run: %fcmp_uge_f32(-NaN:0x80001, +NaN:0x80001) == true
|
||||
; run: %fcmp_uge_f32(+NaN:0x80001, +NaN) == true
|
||||
; run: %fcmp_uge_f32(+NaN:0x80001, -NaN) == true
|
||||
; run: %fcmp_uge_f32(-NaN:0x80001, -NaN) == true
|
||||
; run: %fcmp_uge_f32(-NaN:0x80001, +NaN) == true
|
||||
; run: %fcmp_uge_f32(+NaN:0x80001, +NaN:0x80001) == 1
|
||||
; run: %fcmp_uge_f32(-NaN:0x80001, -NaN:0x80001) == 1
|
||||
; run: %fcmp_uge_f32(+NaN:0x80001, -NaN:0x80001) == 1
|
||||
; run: %fcmp_uge_f32(-NaN:0x80001, +NaN:0x80001) == 1
|
||||
; run: %fcmp_uge_f32(+NaN:0x80001, +NaN) == 1
|
||||
; run: %fcmp_uge_f32(+NaN:0x80001, -NaN) == 1
|
||||
; run: %fcmp_uge_f32(-NaN:0x80001, -NaN) == 1
|
||||
; run: %fcmp_uge_f32(-NaN:0x80001, +NaN) == 1
|
||||
|
||||
; sNaN's
|
||||
; run: %fcmp_uge_f32(+sNaN:0x1, +sNaN:0x1) == true
|
||||
; run: %fcmp_uge_f32(-sNaN:0x1, -sNaN:0x1) == true
|
||||
; run: %fcmp_uge_f32(+sNaN:0x1, -sNaN:0x1) == true
|
||||
; run: %fcmp_uge_f32(-sNaN:0x1, +sNaN:0x1) == true
|
||||
; run: %fcmp_uge_f32(+sNaN:0x1, +sNaN:0x1) == 1
|
||||
; run: %fcmp_uge_f32(-sNaN:0x1, -sNaN:0x1) == 1
|
||||
; run: %fcmp_uge_f32(+sNaN:0x1, -sNaN:0x1) == 1
|
||||
; run: %fcmp_uge_f32(-sNaN:0x1, +sNaN:0x1) == 1
|
||||
|
||||
; run: %fcmp_uge_f32(+sNaN:0x1, -0x1.0) == true
|
||||
; run: %fcmp_uge_f32(-sNaN:0x1, -0x1.0) == true
|
||||
; run: %fcmp_uge_f32(+sNaN:0x1, 0x1.0) == true
|
||||
; run: %fcmp_uge_f32(-sNaN:0x1, 0x1.0) == true
|
||||
; run: %fcmp_uge_f32(+sNaN:0x1, -0x0.0) == true
|
||||
; run: %fcmp_uge_f32(-sNaN:0x1, -0x0.0) == true
|
||||
; run: %fcmp_uge_f32(+sNaN:0x1, 0x0.0) == true
|
||||
; run: %fcmp_uge_f32(-sNaN:0x1, 0x0.0) == true
|
||||
; run: %fcmp_uge_f32(+sNaN:0x1, -Inf) == true
|
||||
; run: %fcmp_uge_f32(-sNaN:0x1, -Inf) == true
|
||||
; run: %fcmp_uge_f32(+sNaN:0x1, Inf) == true
|
||||
; run: %fcmp_uge_f32(-sNaN:0x1, Inf) == true
|
||||
; run: %fcmp_uge_f32(-0x0.0, +sNaN:0x1) == true
|
||||
; run: %fcmp_uge_f32(-0x0.0, -sNaN:0x1) == true
|
||||
; run: %fcmp_uge_f32(0x0.0, +sNaN:0x1) == true
|
||||
; run: %fcmp_uge_f32(0x0.0, -sNaN:0x1) == true
|
||||
; run: %fcmp_uge_f32(-Inf, +sNaN:0x1) == true
|
||||
; run: %fcmp_uge_f32(-Inf, -sNaN:0x1) == true
|
||||
; run: %fcmp_uge_f32(Inf, +sNaN:0x1) == true
|
||||
; run: %fcmp_uge_f32(Inf, -sNaN:0x1) == true
|
||||
; run: %fcmp_uge_f32(+sNaN:0x1, -0x1.0) == 1
|
||||
; run: %fcmp_uge_f32(-sNaN:0x1, -0x1.0) == 1
|
||||
; run: %fcmp_uge_f32(+sNaN:0x1, 0x1.0) == 1
|
||||
; run: %fcmp_uge_f32(-sNaN:0x1, 0x1.0) == 1
|
||||
; run: %fcmp_uge_f32(+sNaN:0x1, -0x0.0) == 1
|
||||
; run: %fcmp_uge_f32(-sNaN:0x1, -0x0.0) == 1
|
||||
; run: %fcmp_uge_f32(+sNaN:0x1, 0x0.0) == 1
|
||||
; run: %fcmp_uge_f32(-sNaN:0x1, 0x0.0) == 1
|
||||
; run: %fcmp_uge_f32(+sNaN:0x1, -Inf) == 1
|
||||
; run: %fcmp_uge_f32(-sNaN:0x1, -Inf) == 1
|
||||
; run: %fcmp_uge_f32(+sNaN:0x1, Inf) == 1
|
||||
; run: %fcmp_uge_f32(-sNaN:0x1, Inf) == 1
|
||||
; run: %fcmp_uge_f32(-0x0.0, +sNaN:0x1) == 1
|
||||
; run: %fcmp_uge_f32(-0x0.0, -sNaN:0x1) == 1
|
||||
; run: %fcmp_uge_f32(0x0.0, +sNaN:0x1) == 1
|
||||
; run: %fcmp_uge_f32(0x0.0, -sNaN:0x1) == 1
|
||||
; run: %fcmp_uge_f32(-Inf, +sNaN:0x1) == 1
|
||||
; run: %fcmp_uge_f32(-Inf, -sNaN:0x1) == 1
|
||||
; run: %fcmp_uge_f32(Inf, +sNaN:0x1) == 1
|
||||
; run: %fcmp_uge_f32(Inf, -sNaN:0x1) == 1
|
||||
|
||||
; run: %fcmp_uge_f32(+sNaN:0x1, +NaN:0x1) == true
|
||||
; run: %fcmp_uge_f32(-sNaN:0x1, -NaN:0x1) == true
|
||||
; run: %fcmp_uge_f32(+sNaN:0x1, -NaN:0x1) == true
|
||||
; run: %fcmp_uge_f32(-sNaN:0x1, +NaN:0x1) == true
|
||||
; run: %fcmp_uge_f32(+NaN:0x1, +sNaN:0x1) == true
|
||||
; run: %fcmp_uge_f32(-NaN:0x1, -sNaN:0x1) == true
|
||||
; run: %fcmp_uge_f32(-NaN:0x1, +sNaN:0x1) == true
|
||||
; run: %fcmp_uge_f32(+NaN:0x1, -sNaN:0x1) == true
|
||||
; run: %fcmp_uge_f32(+sNaN:0x1, +NaN:0x1) == 1
|
||||
; run: %fcmp_uge_f32(-sNaN:0x1, -NaN:0x1) == 1
|
||||
; run: %fcmp_uge_f32(+sNaN:0x1, -NaN:0x1) == 1
|
||||
; run: %fcmp_uge_f32(-sNaN:0x1, +NaN:0x1) == 1
|
||||
; run: %fcmp_uge_f32(+NaN:0x1, +sNaN:0x1) == 1
|
||||
; run: %fcmp_uge_f32(-NaN:0x1, -sNaN:0x1) == 1
|
||||
; run: %fcmp_uge_f32(-NaN:0x1, +sNaN:0x1) == 1
|
||||
; run: %fcmp_uge_f32(+NaN:0x1, -sNaN:0x1) == 1
|
||||
|
||||
; run: %fcmp_uge_f32(+sNaN:0x80001, +sNaN:0x80001) == true
|
||||
; run: %fcmp_uge_f32(-sNaN:0x80001, -sNaN:0x80001) == true
|
||||
; run: %fcmp_uge_f32(+sNaN:0x80001, -sNaN:0x80001) == true
|
||||
; run: %fcmp_uge_f32(-sNaN:0x80001, +sNaN:0x80001) == true
|
||||
; run: %fcmp_uge_f32(+sNaN:0x80001, +sNaN:0x1) == true
|
||||
; run: %fcmp_uge_f32(+sNaN:0x80001, -sNaN:0x1) == true
|
||||
; run: %fcmp_uge_f32(-sNaN:0x80001, -sNaN:0x1) == true
|
||||
; run: %fcmp_uge_f32(-sNaN:0x80001, +sNaN:0x1) == true
|
||||
; run: %fcmp_uge_f32(+sNaN:0x80001, +sNaN:0x80001) == 1
|
||||
; run: %fcmp_uge_f32(-sNaN:0x80001, -sNaN:0x80001) == 1
|
||||
; run: %fcmp_uge_f32(+sNaN:0x80001, -sNaN:0x80001) == 1
|
||||
; run: %fcmp_uge_f32(-sNaN:0x80001, +sNaN:0x80001) == 1
|
||||
; run: %fcmp_uge_f32(+sNaN:0x80001, +sNaN:0x1) == 1
|
||||
; run: %fcmp_uge_f32(+sNaN:0x80001, -sNaN:0x1) == 1
|
||||
; run: %fcmp_uge_f32(-sNaN:0x80001, -sNaN:0x1) == 1
|
||||
; run: %fcmp_uge_f32(-sNaN:0x80001, +sNaN:0x1) == 1
|
||||
|
||||
|
||||
function %fcmp_uge_f64(f64, f64) -> b1 {
|
||||
function %fcmp_uge_f64(f64, f64) -> i8 {
|
||||
block0(v0: f64, v1: f64):
|
||||
v2 = fcmp uge v0, v1
|
||||
return v2
|
||||
}
|
||||
; run: %fcmp_uge_f64(0x0.5, 0x0.5) == true
|
||||
; run: %fcmp_uge_f64(0x1.0, 0x1.0) == true
|
||||
; run: %fcmp_uge_f64(-0x1.0, 0x1.0) == false
|
||||
; run: %fcmp_uge_f64(0x1.0, -0x1.0) == true
|
||||
; run: %fcmp_uge_f64(0x0.5, 0x1.0) == false
|
||||
; run: %fcmp_uge_f64(0x1.5, 0x2.9) == false
|
||||
; run: %fcmp_uge_f64(0x1.1p10, 0x1.4p1) == true
|
||||
; run: %fcmp_uge_f64(0x1.4cccccccccccdp0, 0x1.8p0) == false
|
||||
; run: %fcmp_uge_f64(0x1.b333333333333p0, 0x1.999999999999ap-2) == true
|
||||
; run: %fcmp_uge_f64(0x1.3333333333333p-1, 0x1.6666666666666p1) == false
|
||||
; run: %fcmp_uge_f64(-0x0.5, -0x1.0) == true
|
||||
; run: %fcmp_uge_f64(-0x1.5, -0x2.9) == true
|
||||
; run: %fcmp_uge_f64(-0x1.1p10, -0x1.3333333333333p-1) == false
|
||||
; run: %fcmp_uge_f64(-0x1.999999999999ap-2, -0x1.4cccccccccccdp0) == true
|
||||
; run: %fcmp_uge_f64(-0x1.8p0, -0x1.b333333333333p0) == true
|
||||
; run: %fcmp_uge_f64(-0x1.4p1, -0x1.6666666666666p1) == true
|
||||
; run: %fcmp_uge_f64(0x0.5, -0x1.0) == true
|
||||
; run: %fcmp_uge_f64(0x1.b333333333333p0, -0x1.b333333333333p0) == true
|
||||
; run: %fcmp_uge_f64(0x0.5, 0x0.5) == 1
|
||||
; run: %fcmp_uge_f64(0x1.0, 0x1.0) == 1
|
||||
; run: %fcmp_uge_f64(-0x1.0, 0x1.0) == 0
|
||||
; run: %fcmp_uge_f64(0x1.0, -0x1.0) == 1
|
||||
; run: %fcmp_uge_f64(0x0.5, 0x1.0) == 0
|
||||
; run: %fcmp_uge_f64(0x1.5, 0x2.9) == 0
|
||||
; run: %fcmp_uge_f64(0x1.1p10, 0x1.4p1) == 1
|
||||
; run: %fcmp_uge_f64(0x1.4cccccccccccdp0, 0x1.8p0) == 0
|
||||
; run: %fcmp_uge_f64(0x1.b333333333333p0, 0x1.999999999999ap-2) == 1
|
||||
; run: %fcmp_uge_f64(0x1.3333333333333p-1, 0x1.6666666666666p1) == 0
|
||||
; run: %fcmp_uge_f64(-0x0.5, -0x1.0) == 1
|
||||
; run: %fcmp_uge_f64(-0x1.5, -0x2.9) == 1
|
||||
; run: %fcmp_uge_f64(-0x1.1p10, -0x1.3333333333333p-1) == 0
|
||||
; run: %fcmp_uge_f64(-0x1.999999999999ap-2, -0x1.4cccccccccccdp0) == 1
|
||||
; run: %fcmp_uge_f64(-0x1.8p0, -0x1.b333333333333p0) == 1
|
||||
; run: %fcmp_uge_f64(-0x1.4p1, -0x1.6666666666666p1) == 1
|
||||
; run: %fcmp_uge_f64(0x0.5, -0x1.0) == 1
|
||||
; run: %fcmp_uge_f64(0x1.b333333333333p0, -0x1.b333333333333p0) == 1
|
||||
|
||||
|
||||
; Zeroes
|
||||
; run: %fcmp_uge_f64(0x0.0, 0x0.0) == true
|
||||
; run: %fcmp_uge_f64(-0x0.0, -0x0.0) == true
|
||||
; run: %fcmp_uge_f64(0x0.0, -0x0.0) == true
|
||||
; run: %fcmp_uge_f64(-0x0.0, 0x0.0) == true
|
||||
; run: %fcmp_uge_f64(0x0.0, 0x0.0) == 1
|
||||
; run: %fcmp_uge_f64(-0x0.0, -0x0.0) == 1
|
||||
; run: %fcmp_uge_f64(0x0.0, -0x0.0) == 1
|
||||
; run: %fcmp_uge_f64(-0x0.0, 0x0.0) == 1
|
||||
|
||||
; Infinities
|
||||
; run: %fcmp_uge_f64(Inf, Inf) == true
|
||||
; run: %fcmp_uge_f64(-Inf, -Inf) == true
|
||||
; run: %fcmp_uge_f64(Inf, -Inf) == true
|
||||
; run: %fcmp_uge_f64(-Inf, Inf) == false
|
||||
; run: %fcmp_uge_f64(Inf, Inf) == 1
|
||||
; run: %fcmp_uge_f64(-Inf, -Inf) == 1
|
||||
; run: %fcmp_uge_f64(Inf, -Inf) == 1
|
||||
; run: %fcmp_uge_f64(-Inf, Inf) == 0
|
||||
|
||||
; Inf/Zero
|
||||
; run: %fcmp_uge_f64(0x0.0, Inf) == false
|
||||
; run: %fcmp_uge_f64(-0x0.0, Inf) == false
|
||||
; run: %fcmp_uge_f64(0x0.0, -Inf) == true
|
||||
; run: %fcmp_uge_f64(-0x0.0, -Inf) == true
|
||||
; run: %fcmp_uge_f64(Inf, 0x0.0) == true
|
||||
; run: %fcmp_uge_f64(Inf, -0x0.0) == true
|
||||
; run: %fcmp_uge_f64(-Inf, 0x0.0) == false
|
||||
; run: %fcmp_uge_f64(-Inf, -0x0.0) == false
|
||||
; run: %fcmp_uge_f64(0x0.0, Inf) == 0
|
||||
; run: %fcmp_uge_f64(-0x0.0, Inf) == 0
|
||||
; run: %fcmp_uge_f64(0x0.0, -Inf) == 1
|
||||
; run: %fcmp_uge_f64(-0x0.0, -Inf) == 1
|
||||
; run: %fcmp_uge_f64(Inf, 0x0.0) == 1
|
||||
; run: %fcmp_uge_f64(Inf, -0x0.0) == 1
|
||||
; run: %fcmp_uge_f64(-Inf, 0x0.0) == 0
|
||||
; run: %fcmp_uge_f64(-Inf, -0x0.0) == 0
|
||||
|
||||
; Epsilon / Max / Min Positive
|
||||
; run: %fcmp_uge_f64(0x1.0p-52, 0x1.0p-52) == true
|
||||
; run: %fcmp_uge_f64(0x1.fffffffffffffp1023, 0x1.fffffffffffffp1023) == true
|
||||
; run: %fcmp_uge_f64(0x1.0p-1022, 0x1.0p-1022) == true
|
||||
; run: %fcmp_uge_f64(0x1.0p-52, 0x1.fffffffffffffp1023) == false
|
||||
; run: %fcmp_uge_f64(0x1.0p-52, 0x1.0p-1022) == true
|
||||
; run: %fcmp_uge_f64(0x1.0p-1022, 0x1.fffffffffffffp1023) == false
|
||||
; run: %fcmp_uge_f64(0x1.0p-52, 0x1.0p-52) == 1
|
||||
; run: %fcmp_uge_f64(0x1.fffffffffffffp1023, 0x1.fffffffffffffp1023) == 1
|
||||
; run: %fcmp_uge_f64(0x1.0p-1022, 0x1.0p-1022) == 1
|
||||
; run: %fcmp_uge_f64(0x1.0p-52, 0x1.fffffffffffffp1023) == 0
|
||||
; run: %fcmp_uge_f64(0x1.0p-52, 0x1.0p-1022) == 1
|
||||
; run: %fcmp_uge_f64(0x1.0p-1022, 0x1.fffffffffffffp1023) == 0
|
||||
|
||||
; Subnormals
|
||||
; run: %fcmp_uge_f64(0x0.8p-1022, -0x0.8p-1022) == true
|
||||
; run: %fcmp_uge_f64(-0x0.8p-1022, 0x0.8p-1022) == false
|
||||
; run: %fcmp_uge_f64(0x0.8p-1022, 0x0.0) == true
|
||||
; run: %fcmp_uge_f64(-0x0.8p-1022, 0x0.0) == false
|
||||
; run: %fcmp_uge_f64(0x0.8p-1022, -0x0.0) == true
|
||||
; run: %fcmp_uge_f64(-0x0.8p-1022, -0x0.0) == false
|
||||
; run: %fcmp_uge_f64(0x0.0, 0x0.8p-1022) == false
|
||||
; run: %fcmp_uge_f64(0x0.0, -0x0.8p-1022) == true
|
||||
; run: %fcmp_uge_f64(-0x0.0, 0x0.8p-1022) == false
|
||||
; run: %fcmp_uge_f64(-0x0.0, -0x0.8p-1022) == true
|
||||
; run: %fcmp_uge_f64(0x0.8p-1022, -0x0.8p-1022) == 1
|
||||
; run: %fcmp_uge_f64(-0x0.8p-1022, 0x0.8p-1022) == 0
|
||||
; run: %fcmp_uge_f64(0x0.8p-1022, 0x0.0) == 1
|
||||
; run: %fcmp_uge_f64(-0x0.8p-1022, 0x0.0) == 0
|
||||
; run: %fcmp_uge_f64(0x0.8p-1022, -0x0.0) == 1
|
||||
; run: %fcmp_uge_f64(-0x0.8p-1022, -0x0.0) == 0
|
||||
; run: %fcmp_uge_f64(0x0.0, 0x0.8p-1022) == 0
|
||||
; run: %fcmp_uge_f64(0x0.0, -0x0.8p-1022) == 1
|
||||
; run: %fcmp_uge_f64(-0x0.0, 0x0.8p-1022) == 0
|
||||
; run: %fcmp_uge_f64(-0x0.0, -0x0.8p-1022) == 1
|
||||
|
||||
; NaN's
|
||||
; run: %fcmp_uge_f64(+NaN, +NaN) == true
|
||||
; run: %fcmp_uge_f64(-NaN, -NaN) == true
|
||||
; run: %fcmp_uge_f64(+NaN, -NaN) == true
|
||||
; run: %fcmp_uge_f64(-NaN, +NaN) == true
|
||||
; run: %fcmp_uge_f64(+NaN, +NaN) == 1
|
||||
; run: %fcmp_uge_f64(-NaN, -NaN) == 1
|
||||
; run: %fcmp_uge_f64(+NaN, -NaN) == 1
|
||||
; run: %fcmp_uge_f64(-NaN, +NaN) == 1
|
||||
|
||||
; run: %fcmp_uge_f64(+NaN, -0x1.0) == true
|
||||
; run: %fcmp_uge_f64(-NaN, -0x1.0) == true
|
||||
; run: %fcmp_uge_f64(+NaN, 0x1.0) == true
|
||||
; run: %fcmp_uge_f64(-NaN, 0x1.0) == true
|
||||
; run: %fcmp_uge_f64(+NaN, -0x0.0) == true
|
||||
; run: %fcmp_uge_f64(-NaN, -0x0.0) == true
|
||||
; run: %fcmp_uge_f64(+NaN, 0x0.0) == true
|
||||
; run: %fcmp_uge_f64(-NaN, 0x0.0) == true
|
||||
; run: %fcmp_uge_f64(+NaN, -Inf) == true
|
||||
; run: %fcmp_uge_f64(-NaN, -Inf) == true
|
||||
; run: %fcmp_uge_f64(+NaN, Inf) == true
|
||||
; run: %fcmp_uge_f64(-NaN, Inf) == true
|
||||
; run: %fcmp_uge_f64(-0x0.0, +NaN) == true
|
||||
; run: %fcmp_uge_f64(-0x0.0, -NaN) == true
|
||||
; run: %fcmp_uge_f64(0x0.0, +NaN) == true
|
||||
; run: %fcmp_uge_f64(0x0.0, -NaN) == true
|
||||
; run: %fcmp_uge_f64(-Inf, +NaN) == true
|
||||
; run: %fcmp_uge_f64(-Inf, -NaN) == true
|
||||
; run: %fcmp_uge_f64(Inf, +NaN) == true
|
||||
; run: %fcmp_uge_f64(Inf, -NaN) == true
|
||||
; run: %fcmp_uge_f64(+NaN, -0x1.0) == 1
|
||||
; run: %fcmp_uge_f64(-NaN, -0x1.0) == 1
|
||||
; run: %fcmp_uge_f64(+NaN, 0x1.0) == 1
|
||||
; run: %fcmp_uge_f64(-NaN, 0x1.0) == 1
|
||||
; run: %fcmp_uge_f64(+NaN, -0x0.0) == 1
|
||||
; run: %fcmp_uge_f64(-NaN, -0x0.0) == 1
|
||||
; run: %fcmp_uge_f64(+NaN, 0x0.0) == 1
|
||||
; run: %fcmp_uge_f64(-NaN, 0x0.0) == 1
|
||||
; run: %fcmp_uge_f64(+NaN, -Inf) == 1
|
||||
; run: %fcmp_uge_f64(-NaN, -Inf) == 1
|
||||
; run: %fcmp_uge_f64(+NaN, Inf) == 1
|
||||
; run: %fcmp_uge_f64(-NaN, Inf) == 1
|
||||
; run: %fcmp_uge_f64(-0x0.0, +NaN) == 1
|
||||
; run: %fcmp_uge_f64(-0x0.0, -NaN) == 1
|
||||
; run: %fcmp_uge_f64(0x0.0, +NaN) == 1
|
||||
; run: %fcmp_uge_f64(0x0.0, -NaN) == 1
|
||||
; run: %fcmp_uge_f64(-Inf, +NaN) == 1
|
||||
; run: %fcmp_uge_f64(-Inf, -NaN) == 1
|
||||
; run: %fcmp_uge_f64(Inf, +NaN) == 1
|
||||
; run: %fcmp_uge_f64(Inf, -NaN) == 1
|
||||
|
||||
; run: %fcmp_uge_f64(+NaN:0x1, +NaN:0x1) == true
|
||||
; run: %fcmp_uge_f64(-NaN:0x1, -NaN:0x1) == true
|
||||
; run: %fcmp_uge_f64(+NaN:0x1, -NaN:0x1) == true
|
||||
; run: %fcmp_uge_f64(-NaN:0x1, +NaN:0x1) == true
|
||||
; run: %fcmp_uge_f64(+NaN:0x1, +NaN) == true
|
||||
; run: %fcmp_uge_f64(+NaN:0x1, -NaN) == true
|
||||
; run: %fcmp_uge_f64(-NaN:0x1, -NaN) == true
|
||||
; run: %fcmp_uge_f64(-NaN:0x1, +NaN) == true
|
||||
; run: %fcmp_uge_f64(+NaN:0x1, +NaN:0x1) == 1
|
||||
; run: %fcmp_uge_f64(-NaN:0x1, -NaN:0x1) == 1
|
||||
; run: %fcmp_uge_f64(+NaN:0x1, -NaN:0x1) == 1
|
||||
; run: %fcmp_uge_f64(-NaN:0x1, +NaN:0x1) == 1
|
||||
; run: %fcmp_uge_f64(+NaN:0x1, +NaN) == 1
|
||||
; run: %fcmp_uge_f64(+NaN:0x1, -NaN) == 1
|
||||
; run: %fcmp_uge_f64(-NaN:0x1, -NaN) == 1
|
||||
; run: %fcmp_uge_f64(-NaN:0x1, +NaN) == 1
|
||||
|
||||
; run: %fcmp_uge_f64(+NaN:0x800000000001, +NaN:0x800000000001) == true
|
||||
; run: %fcmp_uge_f64(-NaN:0x800000000001, -NaN:0x800000000001) == true
|
||||
; run: %fcmp_uge_f64(+NaN:0x800000000001, -NaN:0x800000000001) == true
|
||||
; run: %fcmp_uge_f64(-NaN:0x800000000001, +NaN:0x800000000001) == true
|
||||
; run: %fcmp_uge_f64(+NaN:0x800000000001, +NaN) == true
|
||||
; run: %fcmp_uge_f64(+NaN:0x800000000001, -NaN) == true
|
||||
; run: %fcmp_uge_f64(-NaN:0x800000000001, -NaN) == true
|
||||
; run: %fcmp_uge_f64(-NaN:0x800000000001, +NaN) == true
|
||||
; run: %fcmp_uge_f64(+NaN:0x800000000001, +NaN:0x800000000001) == 1
|
||||
; run: %fcmp_uge_f64(-NaN:0x800000000001, -NaN:0x800000000001) == 1
|
||||
; run: %fcmp_uge_f64(+NaN:0x800000000001, -NaN:0x800000000001) == 1
|
||||
; run: %fcmp_uge_f64(-NaN:0x800000000001, +NaN:0x800000000001) == 1
|
||||
; run: %fcmp_uge_f64(+NaN:0x800000000001, +NaN) == 1
|
||||
; run: %fcmp_uge_f64(+NaN:0x800000000001, -NaN) == 1
|
||||
; run: %fcmp_uge_f64(-NaN:0x800000000001, -NaN) == 1
|
||||
; run: %fcmp_uge_f64(-NaN:0x800000000001, +NaN) == 1
|
||||
|
||||
; sNaN's
|
||||
; run: %fcmp_uge_f64(+sNaN:0x1, +sNaN:0x1) == true
|
||||
; run: %fcmp_uge_f64(-sNaN:0x1, -sNaN:0x1) == true
|
||||
; run: %fcmp_uge_f64(+sNaN:0x1, -sNaN:0x1) == true
|
||||
; run: %fcmp_uge_f64(-sNaN:0x1, +sNaN:0x1) == true
|
||||
; run: %fcmp_uge_f64(+sNaN:0x1, +sNaN:0x1) == 1
|
||||
; run: %fcmp_uge_f64(-sNaN:0x1, -sNaN:0x1) == 1
|
||||
; run: %fcmp_uge_f64(+sNaN:0x1, -sNaN:0x1) == 1
|
||||
; run: %fcmp_uge_f64(-sNaN:0x1, +sNaN:0x1) == 1
|
||||
|
||||
; run: %fcmp_uge_f64(+sNaN:0x1, -0x1.0) == true
|
||||
; run: %fcmp_uge_f64(-sNaN:0x1, -0x1.0) == true
|
||||
; run: %fcmp_uge_f64(+sNaN:0x1, 0x1.0) == true
|
||||
; run: %fcmp_uge_f64(-sNaN:0x1, 0x1.0) == true
|
||||
; run: %fcmp_uge_f64(+sNaN:0x1, -0x0.0) == true
|
||||
; run: %fcmp_uge_f64(-sNaN:0x1, -0x0.0) == true
|
||||
; run: %fcmp_uge_f64(+sNaN:0x1, 0x0.0) == true
|
||||
; run: %fcmp_uge_f64(-sNaN:0x1, 0x0.0) == true
|
||||
; run: %fcmp_uge_f64(+sNaN:0x1, -Inf) == true
|
||||
; run: %fcmp_uge_f64(-sNaN:0x1, -Inf) == true
|
||||
; run: %fcmp_uge_f64(+sNaN:0x1, Inf) == true
|
||||
; run: %fcmp_uge_f64(-sNaN:0x1, Inf) == true
|
||||
; run: %fcmp_uge_f64(-0x0.0, +sNaN:0x1) == true
|
||||
; run: %fcmp_uge_f64(-0x0.0, -sNaN:0x1) == true
|
||||
; run: %fcmp_uge_f64(0x0.0, +sNaN:0x1) == true
|
||||
; run: %fcmp_uge_f64(0x0.0, -sNaN:0x1) == true
|
||||
; run: %fcmp_uge_f64(-Inf, +sNaN:0x1) == true
|
||||
; run: %fcmp_uge_f64(-Inf, -sNaN:0x1) == true
|
||||
; run: %fcmp_uge_f64(Inf, +sNaN:0x1) == true
|
||||
; run: %fcmp_uge_f64(Inf, -sNaN:0x1) == true
|
||||
; run: %fcmp_uge_f64(+sNaN:0x1, -0x1.0) == 1
|
||||
; run: %fcmp_uge_f64(-sNaN:0x1, -0x1.0) == 1
|
||||
; run: %fcmp_uge_f64(+sNaN:0x1, 0x1.0) == 1
|
||||
; run: %fcmp_uge_f64(-sNaN:0x1, 0x1.0) == 1
|
||||
; run: %fcmp_uge_f64(+sNaN:0x1, -0x0.0) == 1
|
||||
; run: %fcmp_uge_f64(-sNaN:0x1, -0x0.0) == 1
|
||||
; run: %fcmp_uge_f64(+sNaN:0x1, 0x0.0) == 1
|
||||
; run: %fcmp_uge_f64(-sNaN:0x1, 0x0.0) == 1
|
||||
; run: %fcmp_uge_f64(+sNaN:0x1, -Inf) == 1
|
||||
; run: %fcmp_uge_f64(-sNaN:0x1, -Inf) == 1
|
||||
; run: %fcmp_uge_f64(+sNaN:0x1, Inf) == 1
|
||||
; run: %fcmp_uge_f64(-sNaN:0x1, Inf) == 1
|
||||
; run: %fcmp_uge_f64(-0x0.0, +sNaN:0x1) == 1
|
||||
; run: %fcmp_uge_f64(-0x0.0, -sNaN:0x1) == 1
|
||||
; run: %fcmp_uge_f64(0x0.0, +sNaN:0x1) == 1
|
||||
; run: %fcmp_uge_f64(0x0.0, -sNaN:0x1) == 1
|
||||
; run: %fcmp_uge_f64(-Inf, +sNaN:0x1) == 1
|
||||
; run: %fcmp_uge_f64(-Inf, -sNaN:0x1) == 1
|
||||
; run: %fcmp_uge_f64(Inf, +sNaN:0x1) == 1
|
||||
; run: %fcmp_uge_f64(Inf, -sNaN:0x1) == 1
|
||||
|
||||
; run: %fcmp_uge_f64(+sNaN:0x1, +NaN:0x1) == true
|
||||
; run: %fcmp_uge_f64(-sNaN:0x1, -NaN:0x1) == true
|
||||
; run: %fcmp_uge_f64(+sNaN:0x1, -NaN:0x1) == true
|
||||
; run: %fcmp_uge_f64(-sNaN:0x1, +NaN:0x1) == true
|
||||
; run: %fcmp_uge_f64(+NaN:0x1, +sNaN:0x1) == true
|
||||
; run: %fcmp_uge_f64(-NaN:0x1, -sNaN:0x1) == true
|
||||
; run: %fcmp_uge_f64(-NaN:0x1, +sNaN:0x1) == true
|
||||
; run: %fcmp_uge_f64(+NaN:0x1, -sNaN:0x1) == true
|
||||
; run: %fcmp_uge_f64(+sNaN:0x1, +NaN:0x1) == 1
|
||||
; run: %fcmp_uge_f64(-sNaN:0x1, -NaN:0x1) == 1
|
||||
; run: %fcmp_uge_f64(+sNaN:0x1, -NaN:0x1) == 1
|
||||
; run: %fcmp_uge_f64(-sNaN:0x1, +NaN:0x1) == 1
|
||||
; run: %fcmp_uge_f64(+NaN:0x1, +sNaN:0x1) == 1
|
||||
; run: %fcmp_uge_f64(-NaN:0x1, -sNaN:0x1) == 1
|
||||
; run: %fcmp_uge_f64(-NaN:0x1, +sNaN:0x1) == 1
|
||||
; run: %fcmp_uge_f64(+NaN:0x1, -sNaN:0x1) == 1
|
||||
|
||||
; run: %fcmp_uge_f64(+sNaN:0x800000000001, +sNaN:0x800000000001) == true
|
||||
; run: %fcmp_uge_f64(-sNaN:0x800000000001, -sNaN:0x800000000001) == true
|
||||
; run: %fcmp_uge_f64(+sNaN:0x800000000001, -sNaN:0x800000000001) == true
|
||||
; run: %fcmp_uge_f64(-sNaN:0x800000000001, +sNaN:0x800000000001) == true
|
||||
; run: %fcmp_uge_f64(+sNaN:0x800000000001, +sNaN:0x1) == true
|
||||
; run: %fcmp_uge_f64(+sNaN:0x800000000001, -sNaN:0x1) == true
|
||||
; run: %fcmp_uge_f64(-sNaN:0x800000000001, -sNaN:0x1) == true
|
||||
; run: %fcmp_uge_f64(-sNaN:0x800000000001, +sNaN:0x1) == true
|
||||
; run: %fcmp_uge_f64(+sNaN:0x800000000001, +sNaN:0x800000000001) == 1
|
||||
; run: %fcmp_uge_f64(-sNaN:0x800000000001, -sNaN:0x800000000001) == 1
|
||||
; run: %fcmp_uge_f64(+sNaN:0x800000000001, -sNaN:0x800000000001) == 1
|
||||
; run: %fcmp_uge_f64(-sNaN:0x800000000001, +sNaN:0x800000000001) == 1
|
||||
; run: %fcmp_uge_f64(+sNaN:0x800000000001, +sNaN:0x1) == 1
|
||||
; run: %fcmp_uge_f64(+sNaN:0x800000000001, -sNaN:0x1) == 1
|
||||
; run: %fcmp_uge_f64(-sNaN:0x800000000001, -sNaN:0x1) == 1
|
||||
; run: %fcmp_uge_f64(-sNaN:0x800000000001, +sNaN:0x1) == 1
|
||||
|
||||
@@ -4,316 +4,316 @@ target x86_64
|
||||
target s390x
|
||||
target riscv64
|
||||
|
||||
function %fcmp_ugt_f32(f32, f32) -> b1 {
|
||||
function %fcmp_ugt_f32(f32, f32) -> i8 {
|
||||
block0(v0: f32, v1: f32):
|
||||
v2 = fcmp ugt v0, v1
|
||||
return v2
|
||||
}
|
||||
; run: %fcmp_ugt_f32(0x0.5, 0x0.5) == false
|
||||
; run: %fcmp_ugt_f32(0x1.0, 0x1.0) == false
|
||||
; run: %fcmp_ugt_f32(-0x1.0, 0x1.0) == false
|
||||
; run: %fcmp_ugt_f32(0x1.0, -0x1.0) == true
|
||||
; run: %fcmp_ugt_f32(0x0.5, 0x1.0) == false
|
||||
; run: %fcmp_ugt_f32(0x1.5, 0x2.9) == false
|
||||
; run: %fcmp_ugt_f32(0x1.1p10, 0x1.4p1) == true
|
||||
; run: %fcmp_ugt_f32(0x1.4cccccp0, 0x1.8p0) == false
|
||||
; run: %fcmp_ugt_f32(0x1.b33334p0, 0x1.99999ap-2) == true
|
||||
; run: %fcmp_ugt_f32(0x1.333334p-1, 0x1.666666p1) == false
|
||||
; run: %fcmp_ugt_f32(-0x0.5, -0x1.0) == true
|
||||
; run: %fcmp_ugt_f32(-0x1.5, -0x2.9) == true
|
||||
; run: %fcmp_ugt_f32(-0x1.1p10, -0x1.333334p-1) == false
|
||||
; run: %fcmp_ugt_f32(-0x1.99999ap-2, -0x1.4cccccp0) == true
|
||||
; run: %fcmp_ugt_f32(-0x1.8p0, -0x1.b33334p0) == true
|
||||
; run: %fcmp_ugt_f32(-0x1.4p1, -0x1.666666p1) == true
|
||||
; run: %fcmp_ugt_f32(0x0.5, -0x1.0) == true
|
||||
; run: %fcmp_ugt_f32(0x1.b33334p0, -0x1.b33334p0) == true
|
||||
; run: %fcmp_ugt_f32(0x0.5, 0x0.5) == 0
|
||||
; run: %fcmp_ugt_f32(0x1.0, 0x1.0) == 0
|
||||
; run: %fcmp_ugt_f32(-0x1.0, 0x1.0) == 0
|
||||
; run: %fcmp_ugt_f32(0x1.0, -0x1.0) == 1
|
||||
; run: %fcmp_ugt_f32(0x0.5, 0x1.0) == 0
|
||||
; run: %fcmp_ugt_f32(0x1.5, 0x2.9) == 0
|
||||
; run: %fcmp_ugt_f32(0x1.1p10, 0x1.4p1) == 1
|
||||
; run: %fcmp_ugt_f32(0x1.4cccccp0, 0x1.8p0) == 0
|
||||
; run: %fcmp_ugt_f32(0x1.b33334p0, 0x1.99999ap-2) == 1
|
||||
; run: %fcmp_ugt_f32(0x1.333334p-1, 0x1.666666p1) == 0
|
||||
; run: %fcmp_ugt_f32(-0x0.5, -0x1.0) == 1
|
||||
; run: %fcmp_ugt_f32(-0x1.5, -0x2.9) == 1
|
||||
; run: %fcmp_ugt_f32(-0x1.1p10, -0x1.333334p-1) == 0
|
||||
; run: %fcmp_ugt_f32(-0x1.99999ap-2, -0x1.4cccccp0) == 1
|
||||
; run: %fcmp_ugt_f32(-0x1.8p0, -0x1.b33334p0) == 1
|
||||
; run: %fcmp_ugt_f32(-0x1.4p1, -0x1.666666p1) == 1
|
||||
; run: %fcmp_ugt_f32(0x0.5, -0x1.0) == 1
|
||||
; run: %fcmp_ugt_f32(0x1.b33334p0, -0x1.b33334p0) == 1
|
||||
|
||||
; Zeroes
|
||||
; run: %fcmp_ugt_f32(0x0.0, 0x0.0) == false
|
||||
; run: %fcmp_ugt_f32(-0x0.0, -0x0.0) == false
|
||||
; run: %fcmp_ugt_f32(0x0.0, -0x0.0) == false
|
||||
; run: %fcmp_ugt_f32(-0x0.0, 0x0.0) == false
|
||||
; run: %fcmp_ugt_f32(0x0.0, 0x0.0) == 0
|
||||
; run: %fcmp_ugt_f32(-0x0.0, -0x0.0) == 0
|
||||
; run: %fcmp_ugt_f32(0x0.0, -0x0.0) == 0
|
||||
; run: %fcmp_ugt_f32(-0x0.0, 0x0.0) == 0
|
||||
|
||||
; Infinities
|
||||
; run: %fcmp_ugt_f32(Inf, Inf) == false
|
||||
; run: %fcmp_ugt_f32(-Inf, -Inf) == false
|
||||
; run: %fcmp_ugt_f32(Inf, -Inf) == true
|
||||
; run: %fcmp_ugt_f32(-Inf, Inf) == false
|
||||
; run: %fcmp_ugt_f32(Inf, Inf) == 0
|
||||
; run: %fcmp_ugt_f32(-Inf, -Inf) == 0
|
||||
; run: %fcmp_ugt_f32(Inf, -Inf) == 1
|
||||
; run: %fcmp_ugt_f32(-Inf, Inf) == 0
|
||||
|
||||
; Inf/Zero
|
||||
; run: %fcmp_ugt_f32(0x0.0, Inf) == false
|
||||
; run: %fcmp_ugt_f32(-0x0.0, Inf) == false
|
||||
; run: %fcmp_ugt_f32(0x0.0, -Inf) == true
|
||||
; run: %fcmp_ugt_f32(-0x0.0, -Inf) == true
|
||||
; run: %fcmp_ugt_f32(Inf, 0x0.0) == true
|
||||
; run: %fcmp_ugt_f32(Inf, -0x0.0) == true
|
||||
; run: %fcmp_ugt_f32(-Inf, 0x0.0) == false
|
||||
; run: %fcmp_ugt_f32(-Inf, -0x0.0) == false
|
||||
; run: %fcmp_ugt_f32(0x0.0, Inf) == 0
|
||||
; run: %fcmp_ugt_f32(-0x0.0, Inf) == 0
|
||||
; run: %fcmp_ugt_f32(0x0.0, -Inf) == 1
|
||||
; run: %fcmp_ugt_f32(-0x0.0, -Inf) == 1
|
||||
; run: %fcmp_ugt_f32(Inf, 0x0.0) == 1
|
||||
; run: %fcmp_ugt_f32(Inf, -0x0.0) == 1
|
||||
; run: %fcmp_ugt_f32(-Inf, 0x0.0) == 0
|
||||
; run: %fcmp_ugt_f32(-Inf, -0x0.0) == 0
|
||||
|
||||
; Epsilon / Max / Min Positive
|
||||
; run: %fcmp_ugt_f32(0x1.0p-23, 0x1.0p-23) == false
|
||||
; run: %fcmp_ugt_f32(0x1.fffffep127, 0x1.fffffep127) == false
|
||||
; run: %fcmp_ugt_f32(0x1.0p-126, 0x1.0p-126) == false
|
||||
; run: %fcmp_ugt_f32(0x1.0p-23, 0x1.fffffep127) == false
|
||||
; run: %fcmp_ugt_f32(0x1.0p-23, 0x1.0p-126) == true
|
||||
; run: %fcmp_ugt_f32(0x1.0p-126, 0x1.fffffep127) == false
|
||||
; run: %fcmp_ugt_f32(0x1.0p-23, 0x1.0p-23) == 0
|
||||
; run: %fcmp_ugt_f32(0x1.fffffep127, 0x1.fffffep127) == 0
|
||||
; run: %fcmp_ugt_f32(0x1.0p-126, 0x1.0p-126) == 0
|
||||
; run: %fcmp_ugt_f32(0x1.0p-23, 0x1.fffffep127) == 0
|
||||
; run: %fcmp_ugt_f32(0x1.0p-23, 0x1.0p-126) == 1
|
||||
; run: %fcmp_ugt_f32(0x1.0p-126, 0x1.fffffep127) == 0
|
||||
|
||||
; Subnormals
|
||||
; run: %fcmp_ugt_f32(0x0.800002p-126, -0x0.800002p-126) == true
|
||||
; run: %fcmp_ugt_f32(-0x0.800002p-126, 0x0.800002p-126) == false
|
||||
; run: %fcmp_ugt_f32(0x0.800002p-126, 0x0.0) == true
|
||||
; run: %fcmp_ugt_f32(-0x0.800002p-126, 0x0.0) == false
|
||||
; run: %fcmp_ugt_f32(0x0.800002p-126, -0x0.0) == true
|
||||
; run: %fcmp_ugt_f32(-0x0.800002p-126, -0x0.0) == false
|
||||
; run: %fcmp_ugt_f32(0x0.0, 0x0.800002p-126) == false
|
||||
; run: %fcmp_ugt_f32(0x0.0, -0x0.800002p-126) == true
|
||||
; run: %fcmp_ugt_f32(-0x0.0, 0x0.800002p-126) == false
|
||||
; run: %fcmp_ugt_f32(-0x0.0, -0x0.800002p-126) == true
|
||||
; run: %fcmp_ugt_f32(0x0.800002p-126, -0x0.800002p-126) == 1
|
||||
; run: %fcmp_ugt_f32(-0x0.800002p-126, 0x0.800002p-126) == 0
|
||||
; run: %fcmp_ugt_f32(0x0.800002p-126, 0x0.0) == 1
|
||||
; run: %fcmp_ugt_f32(-0x0.800002p-126, 0x0.0) == 0
|
||||
; run: %fcmp_ugt_f32(0x0.800002p-126, -0x0.0) == 1
|
||||
; run: %fcmp_ugt_f32(-0x0.800002p-126, -0x0.0) == 0
|
||||
; run: %fcmp_ugt_f32(0x0.0, 0x0.800002p-126) == 0
|
||||
; run: %fcmp_ugt_f32(0x0.0, -0x0.800002p-126) == 1
|
||||
; run: %fcmp_ugt_f32(-0x0.0, 0x0.800002p-126) == 0
|
||||
; run: %fcmp_ugt_f32(-0x0.0, -0x0.800002p-126) == 1
|
||||
|
||||
; NaN's
|
||||
; run: %fcmp_ugt_f32(+NaN, +NaN) == true
|
||||
; run: %fcmp_ugt_f32(-NaN, -NaN) == true
|
||||
; run: %fcmp_ugt_f32(+NaN, -NaN) == true
|
||||
; run: %fcmp_ugt_f32(-NaN, +NaN) == true
|
||||
; run: %fcmp_ugt_f32(+NaN, +NaN) == 1
|
||||
; run: %fcmp_ugt_f32(-NaN, -NaN) == 1
|
||||
; run: %fcmp_ugt_f32(+NaN, -NaN) == 1
|
||||
; run: %fcmp_ugt_f32(-NaN, +NaN) == 1
|
||||
|
||||
; run: %fcmp_ugt_f32(+NaN, -0x1.0) == true
|
||||
; run: %fcmp_ugt_f32(-NaN, -0x1.0) == true
|
||||
; run: %fcmp_ugt_f32(+NaN, 0x1.0) == true
|
||||
; run: %fcmp_ugt_f32(-NaN, 0x1.0) == true
|
||||
; run: %fcmp_ugt_f32(+NaN, -0x0.0) == true
|
||||
; run: %fcmp_ugt_f32(-NaN, -0x0.0) == true
|
||||
; run: %fcmp_ugt_f32(+NaN, 0x0.0) == true
|
||||
; run: %fcmp_ugt_f32(-NaN, 0x0.0) == true
|
||||
; run: %fcmp_ugt_f32(+NaN, -Inf) == true
|
||||
; run: %fcmp_ugt_f32(-NaN, -Inf) == true
|
||||
; run: %fcmp_ugt_f32(+NaN, Inf) == true
|
||||
; run: %fcmp_ugt_f32(-NaN, Inf) == true
|
||||
; run: %fcmp_ugt_f32(-0x0.0, +NaN) == true
|
||||
; run: %fcmp_ugt_f32(-0x0.0, -NaN) == true
|
||||
; run: %fcmp_ugt_f32(0x0.0, +NaN) == true
|
||||
; run: %fcmp_ugt_f32(0x0.0, -NaN) == true
|
||||
; run: %fcmp_ugt_f32(-Inf, +NaN) == true
|
||||
; run: %fcmp_ugt_f32(-Inf, -NaN) == true
|
||||
; run: %fcmp_ugt_f32(Inf, +NaN) == true
|
||||
; run: %fcmp_ugt_f32(Inf, -NaN) == true
|
||||
; run: %fcmp_ugt_f32(+NaN, -0x1.0) == 1
|
||||
; run: %fcmp_ugt_f32(-NaN, -0x1.0) == 1
|
||||
; run: %fcmp_ugt_f32(+NaN, 0x1.0) == 1
|
||||
; run: %fcmp_ugt_f32(-NaN, 0x1.0) == 1
|
||||
; run: %fcmp_ugt_f32(+NaN, -0x0.0) == 1
|
||||
; run: %fcmp_ugt_f32(-NaN, -0x0.0) == 1
|
||||
; run: %fcmp_ugt_f32(+NaN, 0x0.0) == 1
|
||||
; run: %fcmp_ugt_f32(-NaN, 0x0.0) == 1
|
||||
; run: %fcmp_ugt_f32(+NaN, -Inf) == 1
|
||||
; run: %fcmp_ugt_f32(-NaN, -Inf) == 1
|
||||
; run: %fcmp_ugt_f32(+NaN, Inf) == 1
|
||||
; run: %fcmp_ugt_f32(-NaN, Inf) == 1
|
||||
; run: %fcmp_ugt_f32(-0x0.0, +NaN) == 1
|
||||
; run: %fcmp_ugt_f32(-0x0.0, -NaN) == 1
|
||||
; run: %fcmp_ugt_f32(0x0.0, +NaN) == 1
|
||||
; run: %fcmp_ugt_f32(0x0.0, -NaN) == 1
|
||||
; run: %fcmp_ugt_f32(-Inf, +NaN) == 1
|
||||
; run: %fcmp_ugt_f32(-Inf, -NaN) == 1
|
||||
; run: %fcmp_ugt_f32(Inf, +NaN) == 1
|
||||
; run: %fcmp_ugt_f32(Inf, -NaN) == 1
|
||||
|
||||
; run: %fcmp_ugt_f32(+NaN:0x1, +NaN:0x1) == true
|
||||
; run: %fcmp_ugt_f32(-NaN:0x1, -NaN:0x1) == true
|
||||
; run: %fcmp_ugt_f32(+NaN:0x1, -NaN:0x1) == true
|
||||
; run: %fcmp_ugt_f32(-NaN:0x1, +NaN:0x1) == true
|
||||
; run: %fcmp_ugt_f32(+NaN:0x1, +NaN) == true
|
||||
; run: %fcmp_ugt_f32(+NaN:0x1, -NaN) == true
|
||||
; run: %fcmp_ugt_f32(-NaN:0x1, -NaN) == true
|
||||
; run: %fcmp_ugt_f32(-NaN:0x1, +NaN) == true
|
||||
; run: %fcmp_ugt_f32(+NaN:0x1, +NaN:0x1) == 1
|
||||
; run: %fcmp_ugt_f32(-NaN:0x1, -NaN:0x1) == 1
|
||||
; run: %fcmp_ugt_f32(+NaN:0x1, -NaN:0x1) == 1
|
||||
; run: %fcmp_ugt_f32(-NaN:0x1, +NaN:0x1) == 1
|
||||
; run: %fcmp_ugt_f32(+NaN:0x1, +NaN) == 1
|
||||
; run: %fcmp_ugt_f32(+NaN:0x1, -NaN) == 1
|
||||
; run: %fcmp_ugt_f32(-NaN:0x1, -NaN) == 1
|
||||
; run: %fcmp_ugt_f32(-NaN:0x1, +NaN) == 1
|
||||
|
||||
; run: %fcmp_ugt_f32(+NaN:0x80001, +NaN:0x80001) == true
|
||||
; run: %fcmp_ugt_f32(-NaN:0x80001, -NaN:0x80001) == true
|
||||
; run: %fcmp_ugt_f32(+NaN:0x80001, -NaN:0x80001) == true
|
||||
; run: %fcmp_ugt_f32(-NaN:0x80001, +NaN:0x80001) == true
|
||||
; run: %fcmp_ugt_f32(+NaN:0x80001, +NaN) == true
|
||||
; run: %fcmp_ugt_f32(+NaN:0x80001, -NaN) == true
|
||||
; run: %fcmp_ugt_f32(-NaN:0x80001, -NaN) == true
|
||||
; run: %fcmp_ugt_f32(-NaN:0x80001, +NaN) == true
|
||||
; run: %fcmp_ugt_f32(+NaN:0x80001, +NaN:0x80001) == 1
|
||||
; run: %fcmp_ugt_f32(-NaN:0x80001, -NaN:0x80001) == 1
|
||||
; run: %fcmp_ugt_f32(+NaN:0x80001, -NaN:0x80001) == 1
|
||||
; run: %fcmp_ugt_f32(-NaN:0x80001, +NaN:0x80001) == 1
|
||||
; run: %fcmp_ugt_f32(+NaN:0x80001, +NaN) == 1
|
||||
; run: %fcmp_ugt_f32(+NaN:0x80001, -NaN) == 1
|
||||
; run: %fcmp_ugt_f32(-NaN:0x80001, -NaN) == 1
|
||||
; run: %fcmp_ugt_f32(-NaN:0x80001, +NaN) == 1
|
||||
|
||||
; sNaN's
|
||||
; run: %fcmp_ugt_f32(+sNaN:0x1, +sNaN:0x1) == true
|
||||
; run: %fcmp_ugt_f32(-sNaN:0x1, -sNaN:0x1) == true
|
||||
; run: %fcmp_ugt_f32(+sNaN:0x1, -sNaN:0x1) == true
|
||||
; run: %fcmp_ugt_f32(-sNaN:0x1, +sNaN:0x1) == true
|
||||
; run: %fcmp_ugt_f32(+sNaN:0x1, +sNaN:0x1) == 1
|
||||
; run: %fcmp_ugt_f32(-sNaN:0x1, -sNaN:0x1) == 1
|
||||
; run: %fcmp_ugt_f32(+sNaN:0x1, -sNaN:0x1) == 1
|
||||
; run: %fcmp_ugt_f32(-sNaN:0x1, +sNaN:0x1) == 1
|
||||
|
||||
; run: %fcmp_ugt_f32(+sNaN:0x1, -0x1.0) == true
|
||||
; run: %fcmp_ugt_f32(-sNaN:0x1, -0x1.0) == true
|
||||
; run: %fcmp_ugt_f32(+sNaN:0x1, 0x1.0) == true
|
||||
; run: %fcmp_ugt_f32(-sNaN:0x1, 0x1.0) == true
|
||||
; run: %fcmp_ugt_f32(+sNaN:0x1, -0x0.0) == true
|
||||
; run: %fcmp_ugt_f32(-sNaN:0x1, -0x0.0) == true
|
||||
; run: %fcmp_ugt_f32(+sNaN:0x1, 0x0.0) == true
|
||||
; run: %fcmp_ugt_f32(-sNaN:0x1, 0x0.0) == true
|
||||
; run: %fcmp_ugt_f32(+sNaN:0x1, -Inf) == true
|
||||
; run: %fcmp_ugt_f32(-sNaN:0x1, -Inf) == true
|
||||
; run: %fcmp_ugt_f32(+sNaN:0x1, Inf) == true
|
||||
; run: %fcmp_ugt_f32(-sNaN:0x1, Inf) == true
|
||||
; run: %fcmp_ugt_f32(-0x0.0, +sNaN:0x1) == true
|
||||
; run: %fcmp_ugt_f32(-0x0.0, -sNaN:0x1) == true
|
||||
; run: %fcmp_ugt_f32(0x0.0, +sNaN:0x1) == true
|
||||
; run: %fcmp_ugt_f32(0x0.0, -sNaN:0x1) == true
|
||||
; run: %fcmp_ugt_f32(-Inf, +sNaN:0x1) == true
|
||||
; run: %fcmp_ugt_f32(-Inf, -sNaN:0x1) == true
|
||||
; run: %fcmp_ugt_f32(Inf, +sNaN:0x1) == true
|
||||
; run: %fcmp_ugt_f32(Inf, -sNaN:0x1) == true
|
||||
; run: %fcmp_ugt_f32(+sNaN:0x1, -0x1.0) == 1
|
||||
; run: %fcmp_ugt_f32(-sNaN:0x1, -0x1.0) == 1
|
||||
; run: %fcmp_ugt_f32(+sNaN:0x1, 0x1.0) == 1
|
||||
; run: %fcmp_ugt_f32(-sNaN:0x1, 0x1.0) == 1
|
||||
; run: %fcmp_ugt_f32(+sNaN:0x1, -0x0.0) == 1
|
||||
; run: %fcmp_ugt_f32(-sNaN:0x1, -0x0.0) == 1
|
||||
; run: %fcmp_ugt_f32(+sNaN:0x1, 0x0.0) == 1
|
||||
; run: %fcmp_ugt_f32(-sNaN:0x1, 0x0.0) == 1
|
||||
; run: %fcmp_ugt_f32(+sNaN:0x1, -Inf) == 1
|
||||
; run: %fcmp_ugt_f32(-sNaN:0x1, -Inf) == 1
|
||||
; run: %fcmp_ugt_f32(+sNaN:0x1, Inf) == 1
|
||||
; run: %fcmp_ugt_f32(-sNaN:0x1, Inf) == 1
|
||||
; run: %fcmp_ugt_f32(-0x0.0, +sNaN:0x1) == 1
|
||||
; run: %fcmp_ugt_f32(-0x0.0, -sNaN:0x1) == 1
|
||||
; run: %fcmp_ugt_f32(0x0.0, +sNaN:0x1) == 1
|
||||
; run: %fcmp_ugt_f32(0x0.0, -sNaN:0x1) == 1
|
||||
; run: %fcmp_ugt_f32(-Inf, +sNaN:0x1) == 1
|
||||
; run: %fcmp_ugt_f32(-Inf, -sNaN:0x1) == 1
|
||||
; run: %fcmp_ugt_f32(Inf, +sNaN:0x1) == 1
|
||||
; run: %fcmp_ugt_f32(Inf, -sNaN:0x1) == 1
|
||||
|
||||
; run: %fcmp_ugt_f32(+sNaN:0x1, +NaN:0x1) == true
|
||||
; run: %fcmp_ugt_f32(-sNaN:0x1, -NaN:0x1) == true
|
||||
; run: %fcmp_ugt_f32(+sNaN:0x1, -NaN:0x1) == true
|
||||
; run: %fcmp_ugt_f32(-sNaN:0x1, +NaN:0x1) == true
|
||||
; run: %fcmp_ugt_f32(+NaN:0x1, +sNaN:0x1) == true
|
||||
; run: %fcmp_ugt_f32(-NaN:0x1, -sNaN:0x1) == true
|
||||
; run: %fcmp_ugt_f32(-NaN:0x1, +sNaN:0x1) == true
|
||||
; run: %fcmp_ugt_f32(+NaN:0x1, -sNaN:0x1) == true
|
||||
; run: %fcmp_ugt_f32(+sNaN:0x1, +NaN:0x1) == 1
|
||||
; run: %fcmp_ugt_f32(-sNaN:0x1, -NaN:0x1) == 1
|
||||
; run: %fcmp_ugt_f32(+sNaN:0x1, -NaN:0x1) == 1
|
||||
; run: %fcmp_ugt_f32(-sNaN:0x1, +NaN:0x1) == 1
|
||||
; run: %fcmp_ugt_f32(+NaN:0x1, +sNaN:0x1) == 1
|
||||
; run: %fcmp_ugt_f32(-NaN:0x1, -sNaN:0x1) == 1
|
||||
; run: %fcmp_ugt_f32(-NaN:0x1, +sNaN:0x1) == 1
|
||||
; run: %fcmp_ugt_f32(+NaN:0x1, -sNaN:0x1) == 1
|
||||
|
||||
; run: %fcmp_ugt_f32(+sNaN:0x80001, +sNaN:0x80001) == true
|
||||
; run: %fcmp_ugt_f32(-sNaN:0x80001, -sNaN:0x80001) == true
|
||||
; run: %fcmp_ugt_f32(+sNaN:0x80001, -sNaN:0x80001) == true
|
||||
; run: %fcmp_ugt_f32(-sNaN:0x80001, +sNaN:0x80001) == true
|
||||
; run: %fcmp_ugt_f32(+sNaN:0x80001, +sNaN:0x1) == true
|
||||
; run: %fcmp_ugt_f32(+sNaN:0x80001, -sNaN:0x1) == true
|
||||
; run: %fcmp_ugt_f32(-sNaN:0x80001, -sNaN:0x1) == true
|
||||
; run: %fcmp_ugt_f32(-sNaN:0x80001, +sNaN:0x1) == true
|
||||
; run: %fcmp_ugt_f32(+sNaN:0x80001, +sNaN:0x80001) == 1
|
||||
; run: %fcmp_ugt_f32(-sNaN:0x80001, -sNaN:0x80001) == 1
|
||||
; run: %fcmp_ugt_f32(+sNaN:0x80001, -sNaN:0x80001) == 1
|
||||
; run: %fcmp_ugt_f32(-sNaN:0x80001, +sNaN:0x80001) == 1
|
||||
; run: %fcmp_ugt_f32(+sNaN:0x80001, +sNaN:0x1) == 1
|
||||
; run: %fcmp_ugt_f32(+sNaN:0x80001, -sNaN:0x1) == 1
|
||||
; run: %fcmp_ugt_f32(-sNaN:0x80001, -sNaN:0x1) == 1
|
||||
; run: %fcmp_ugt_f32(-sNaN:0x80001, +sNaN:0x1) == 1
|
||||
|
||||
|
||||
function %fcmp_ugt_f64(f64, f64) -> b1 {
|
||||
function %fcmp_ugt_f64(f64, f64) -> i8 {
|
||||
block0(v0: f64, v1: f64):
|
||||
v2 = fcmp ugt v0, v1
|
||||
return v2
|
||||
}
|
||||
; run: %fcmp_ugt_f64(0x0.5, 0x0.5) == false
|
||||
; run: %fcmp_ugt_f64(0x1.0, 0x1.0) == false
|
||||
; run: %fcmp_ugt_f64(-0x1.0, 0x1.0) == false
|
||||
; run: %fcmp_ugt_f64(0x1.0, -0x1.0) == true
|
||||
; run: %fcmp_ugt_f64(0x0.5, 0x1.0) == false
|
||||
; run: %fcmp_ugt_f64(0x1.5, 0x2.9) == false
|
||||
; run: %fcmp_ugt_f64(0x1.1p10, 0x1.4p1) == true
|
||||
; run: %fcmp_ugt_f64(0x1.4cccccccccccdp0, 0x1.8p0) == false
|
||||
; run: %fcmp_ugt_f64(0x1.b333333333333p0, 0x1.999999999999ap-2) == true
|
||||
; run: %fcmp_ugt_f64(0x1.3333333333333p-1, 0x1.6666666666666p1) == false
|
||||
; run: %fcmp_ugt_f64(-0x0.5, -0x1.0) == true
|
||||
; run: %fcmp_ugt_f64(-0x1.5, -0x2.9) == true
|
||||
; run: %fcmp_ugt_f64(-0x1.1p10, -0x1.3333333333333p-1) == false
|
||||
; run: %fcmp_ugt_f64(-0x1.999999999999ap-2, -0x1.4cccccccccccdp0) == true
|
||||
; run: %fcmp_ugt_f64(-0x1.8p0, -0x1.b333333333333p0) == true
|
||||
; run: %fcmp_ugt_f64(-0x1.4p1, -0x1.6666666666666p1) == true
|
||||
; run: %fcmp_ugt_f64(0x0.5, -0x1.0) == true
|
||||
; run: %fcmp_ugt_f64(0x1.b333333333333p0, -0x1.b333333333333p0) == true
|
||||
; run: %fcmp_ugt_f64(0x0.5, 0x0.5) == 0
|
||||
; run: %fcmp_ugt_f64(0x1.0, 0x1.0) == 0
|
||||
; run: %fcmp_ugt_f64(-0x1.0, 0x1.0) == 0
|
||||
; run: %fcmp_ugt_f64(0x1.0, -0x1.0) == 1
|
||||
; run: %fcmp_ugt_f64(0x0.5, 0x1.0) == 0
|
||||
; run: %fcmp_ugt_f64(0x1.5, 0x2.9) == 0
|
||||
; run: %fcmp_ugt_f64(0x1.1p10, 0x1.4p1) == 1
|
||||
; run: %fcmp_ugt_f64(0x1.4cccccccccccdp0, 0x1.8p0) == 0
|
||||
; run: %fcmp_ugt_f64(0x1.b333333333333p0, 0x1.999999999999ap-2) == 1
|
||||
; run: %fcmp_ugt_f64(0x1.3333333333333p-1, 0x1.6666666666666p1) == 0
|
||||
; run: %fcmp_ugt_f64(-0x0.5, -0x1.0) == 1
|
||||
; run: %fcmp_ugt_f64(-0x1.5, -0x2.9) == 1
|
||||
; run: %fcmp_ugt_f64(-0x1.1p10, -0x1.3333333333333p-1) == 0
|
||||
; run: %fcmp_ugt_f64(-0x1.999999999999ap-2, -0x1.4cccccccccccdp0) == 1
|
||||
; run: %fcmp_ugt_f64(-0x1.8p0, -0x1.b333333333333p0) == 1
|
||||
; run: %fcmp_ugt_f64(-0x1.4p1, -0x1.6666666666666p1) == 1
|
||||
; run: %fcmp_ugt_f64(0x0.5, -0x1.0) == 1
|
||||
; run: %fcmp_ugt_f64(0x1.b333333333333p0, -0x1.b333333333333p0) == 1
|
||||
|
||||
|
||||
; Zeroes
|
||||
; run: %fcmp_ugt_f64(0x0.0, 0x0.0) == false
|
||||
; run: %fcmp_ugt_f64(-0x0.0, -0x0.0) == false
|
||||
; run: %fcmp_ugt_f64(0x0.0, -0x0.0) == false
|
||||
; run: %fcmp_ugt_f64(-0x0.0, 0x0.0) == false
|
||||
; run: %fcmp_ugt_f64(0x0.0, 0x0.0) == 0
|
||||
; run: %fcmp_ugt_f64(-0x0.0, -0x0.0) == 0
|
||||
; run: %fcmp_ugt_f64(0x0.0, -0x0.0) == 0
|
||||
; run: %fcmp_ugt_f64(-0x0.0, 0x0.0) == 0
|
||||
|
||||
; Infinities
|
||||
; run: %fcmp_ugt_f64(Inf, Inf) == false
|
||||
; run: %fcmp_ugt_f64(-Inf, -Inf) == false
|
||||
; run: %fcmp_ugt_f64(Inf, -Inf) == true
|
||||
; run: %fcmp_ugt_f64(-Inf, Inf) == false
|
||||
; run: %fcmp_ugt_f64(Inf, Inf) == 0
|
||||
; run: %fcmp_ugt_f64(-Inf, -Inf) == 0
|
||||
; run: %fcmp_ugt_f64(Inf, -Inf) == 1
|
||||
; run: %fcmp_ugt_f64(-Inf, Inf) == 0
|
||||
|
||||
; Inf/Zero
|
||||
; run: %fcmp_ugt_f64(0x0.0, Inf) == false
|
||||
; run: %fcmp_ugt_f64(-0x0.0, Inf) == false
|
||||
; run: %fcmp_ugt_f64(0x0.0, -Inf) == true
|
||||
; run: %fcmp_ugt_f64(-0x0.0, -Inf) == true
|
||||
; run: %fcmp_ugt_f64(Inf, 0x0.0) == true
|
||||
; run: %fcmp_ugt_f64(Inf, -0x0.0) == true
|
||||
; run: %fcmp_ugt_f64(-Inf, 0x0.0) == false
|
||||
; run: %fcmp_ugt_f64(-Inf, -0x0.0) == false
|
||||
; run: %fcmp_ugt_f64(0x0.0, Inf) == 0
|
||||
; run: %fcmp_ugt_f64(-0x0.0, Inf) == 0
|
||||
; run: %fcmp_ugt_f64(0x0.0, -Inf) == 1
|
||||
; run: %fcmp_ugt_f64(-0x0.0, -Inf) == 1
|
||||
; run: %fcmp_ugt_f64(Inf, 0x0.0) == 1
|
||||
; run: %fcmp_ugt_f64(Inf, -0x0.0) == 1
|
||||
; run: %fcmp_ugt_f64(-Inf, 0x0.0) == 0
|
||||
; run: %fcmp_ugt_f64(-Inf, -0x0.0) == 0
|
||||
|
||||
; Epsilon / Max / Min Positive
|
||||
; run: %fcmp_ugt_f64(0x1.0p-52, 0x1.0p-52) == false
|
||||
; run: %fcmp_ugt_f64(0x1.fffffffffffffp1023, 0x1.fffffffffffffp1023) == false
|
||||
; run: %fcmp_ugt_f64(0x1.0p-1022, 0x1.0p-1022) == false
|
||||
; run: %fcmp_ugt_f64(0x1.0p-52, 0x1.fffffffffffffp1023) == false
|
||||
; run: %fcmp_ugt_f64(0x1.0p-52, 0x1.0p-1022) == true
|
||||
; run: %fcmp_ugt_f64(0x1.0p-1022, 0x1.fffffffffffffp1023) == false
|
||||
; run: %fcmp_ugt_f64(0x1.0p-52, 0x1.0p-52) == 0
|
||||
; run: %fcmp_ugt_f64(0x1.fffffffffffffp1023, 0x1.fffffffffffffp1023) == 0
|
||||
; run: %fcmp_ugt_f64(0x1.0p-1022, 0x1.0p-1022) == 0
|
||||
; run: %fcmp_ugt_f64(0x1.0p-52, 0x1.fffffffffffffp1023) == 0
|
||||
; run: %fcmp_ugt_f64(0x1.0p-52, 0x1.0p-1022) == 1
|
||||
; run: %fcmp_ugt_f64(0x1.0p-1022, 0x1.fffffffffffffp1023) == 0
|
||||
|
||||
; Subnormals
|
||||
; run: %fcmp_ugt_f64(0x0.8p-1022, -0x0.8p-1022) == true
|
||||
; run: %fcmp_ugt_f64(-0x0.8p-1022, 0x0.8p-1022) == false
|
||||
; run: %fcmp_ugt_f64(0x0.8p-1022, 0x0.0) == true
|
||||
; run: %fcmp_ugt_f64(-0x0.8p-1022, 0x0.0) == false
|
||||
; run: %fcmp_ugt_f64(0x0.8p-1022, -0x0.0) == true
|
||||
; run: %fcmp_ugt_f64(-0x0.8p-1022, -0x0.0) == false
|
||||
; run: %fcmp_ugt_f64(0x0.0, 0x0.8p-1022) == false
|
||||
; run: %fcmp_ugt_f64(0x0.0, -0x0.8p-1022) == true
|
||||
; run: %fcmp_ugt_f64(-0x0.0, 0x0.8p-1022) == false
|
||||
; run: %fcmp_ugt_f64(-0x0.0, -0x0.8p-1022) == true
|
||||
; run: %fcmp_ugt_f64(0x0.8p-1022, -0x0.8p-1022) == 1
|
||||
; run: %fcmp_ugt_f64(-0x0.8p-1022, 0x0.8p-1022) == 0
|
||||
; run: %fcmp_ugt_f64(0x0.8p-1022, 0x0.0) == 1
|
||||
; run: %fcmp_ugt_f64(-0x0.8p-1022, 0x0.0) == 0
|
||||
; run: %fcmp_ugt_f64(0x0.8p-1022, -0x0.0) == 1
|
||||
; run: %fcmp_ugt_f64(-0x0.8p-1022, -0x0.0) == 0
|
||||
; run: %fcmp_ugt_f64(0x0.0, 0x0.8p-1022) == 0
|
||||
; run: %fcmp_ugt_f64(0x0.0, -0x0.8p-1022) == 1
|
||||
; run: %fcmp_ugt_f64(-0x0.0, 0x0.8p-1022) == 0
|
||||
; run: %fcmp_ugt_f64(-0x0.0, -0x0.8p-1022) == 1
|
||||
|
||||
; NaN's
|
||||
; run: %fcmp_ugt_f64(+NaN, +NaN) == true
|
||||
; run: %fcmp_ugt_f64(-NaN, -NaN) == true
|
||||
; run: %fcmp_ugt_f64(+NaN, -NaN) == true
|
||||
; run: %fcmp_ugt_f64(-NaN, +NaN) == true
|
||||
; run: %fcmp_ugt_f64(+NaN, +NaN) == 1
|
||||
; run: %fcmp_ugt_f64(-NaN, -NaN) == 1
|
||||
; run: %fcmp_ugt_f64(+NaN, -NaN) == 1
|
||||
; run: %fcmp_ugt_f64(-NaN, +NaN) == 1
|
||||
|
||||
; run: %fcmp_ugt_f64(+NaN, -0x1.0) == true
|
||||
; run: %fcmp_ugt_f64(-NaN, -0x1.0) == true
|
||||
; run: %fcmp_ugt_f64(+NaN, 0x1.0) == true
|
||||
; run: %fcmp_ugt_f64(-NaN, 0x1.0) == true
|
||||
; run: %fcmp_ugt_f64(+NaN, -0x0.0) == true
|
||||
; run: %fcmp_ugt_f64(-NaN, -0x0.0) == true
|
||||
; run: %fcmp_ugt_f64(+NaN, 0x0.0) == true
|
||||
; run: %fcmp_ugt_f64(-NaN, 0x0.0) == true
|
||||
; run: %fcmp_ugt_f64(+NaN, -Inf) == true
|
||||
; run: %fcmp_ugt_f64(-NaN, -Inf) == true
|
||||
; run: %fcmp_ugt_f64(+NaN, Inf) == true
|
||||
; run: %fcmp_ugt_f64(-NaN, Inf) == true
|
||||
; run: %fcmp_ugt_f64(-0x0.0, +NaN) == true
|
||||
; run: %fcmp_ugt_f64(-0x0.0, -NaN) == true
|
||||
; run: %fcmp_ugt_f64(0x0.0, +NaN) == true
|
||||
; run: %fcmp_ugt_f64(0x0.0, -NaN) == true
|
||||
; run: %fcmp_ugt_f64(-Inf, +NaN) == true
|
||||
; run: %fcmp_ugt_f64(-Inf, -NaN) == true
|
||||
; run: %fcmp_ugt_f64(Inf, +NaN) == true
|
||||
; run: %fcmp_ugt_f64(Inf, -NaN) == true
|
||||
; run: %fcmp_ugt_f64(+NaN, -0x1.0) == 1
|
||||
; run: %fcmp_ugt_f64(-NaN, -0x1.0) == 1
|
||||
; run: %fcmp_ugt_f64(+NaN, 0x1.0) == 1
|
||||
; run: %fcmp_ugt_f64(-NaN, 0x1.0) == 1
|
||||
; run: %fcmp_ugt_f64(+NaN, -0x0.0) == 1
|
||||
; run: %fcmp_ugt_f64(-NaN, -0x0.0) == 1
|
||||
; run: %fcmp_ugt_f64(+NaN, 0x0.0) == 1
|
||||
; run: %fcmp_ugt_f64(-NaN, 0x0.0) == 1
|
||||
; run: %fcmp_ugt_f64(+NaN, -Inf) == 1
|
||||
; run: %fcmp_ugt_f64(-NaN, -Inf) == 1
|
||||
; run: %fcmp_ugt_f64(+NaN, Inf) == 1
|
||||
; run: %fcmp_ugt_f64(-NaN, Inf) == 1
|
||||
; run: %fcmp_ugt_f64(-0x0.0, +NaN) == 1
|
||||
; run: %fcmp_ugt_f64(-0x0.0, -NaN) == 1
|
||||
; run: %fcmp_ugt_f64(0x0.0, +NaN) == 1
|
||||
; run: %fcmp_ugt_f64(0x0.0, -NaN) == 1
|
||||
; run: %fcmp_ugt_f64(-Inf, +NaN) == 1
|
||||
; run: %fcmp_ugt_f64(-Inf, -NaN) == 1
|
||||
; run: %fcmp_ugt_f64(Inf, +NaN) == 1
|
||||
; run: %fcmp_ugt_f64(Inf, -NaN) == 1
|
||||
|
||||
; run: %fcmp_ugt_f64(+NaN:0x1, +NaN:0x1) == true
|
||||
; run: %fcmp_ugt_f64(-NaN:0x1, -NaN:0x1) == true
|
||||
; run: %fcmp_ugt_f64(+NaN:0x1, -NaN:0x1) == true
|
||||
; run: %fcmp_ugt_f64(-NaN:0x1, +NaN:0x1) == true
|
||||
; run: %fcmp_ugt_f64(+NaN:0x1, +NaN) == true
|
||||
; run: %fcmp_ugt_f64(+NaN:0x1, -NaN) == true
|
||||
; run: %fcmp_ugt_f64(-NaN:0x1, -NaN) == true
|
||||
; run: %fcmp_ugt_f64(-NaN:0x1, +NaN) == true
|
||||
; run: %fcmp_ugt_f64(+NaN:0x1, +NaN:0x1) == 1
|
||||
; run: %fcmp_ugt_f64(-NaN:0x1, -NaN:0x1) == 1
|
||||
; run: %fcmp_ugt_f64(+NaN:0x1, -NaN:0x1) == 1
|
||||
; run: %fcmp_ugt_f64(-NaN:0x1, +NaN:0x1) == 1
|
||||
; run: %fcmp_ugt_f64(+NaN:0x1, +NaN) == 1
|
||||
; run: %fcmp_ugt_f64(+NaN:0x1, -NaN) == 1
|
||||
; run: %fcmp_ugt_f64(-NaN:0x1, -NaN) == 1
|
||||
; run: %fcmp_ugt_f64(-NaN:0x1, +NaN) == 1
|
||||
|
||||
; run: %fcmp_ugt_f64(+NaN:0x800000000001, +NaN:0x800000000001) == true
|
||||
; run: %fcmp_ugt_f64(-NaN:0x800000000001, -NaN:0x800000000001) == true
|
||||
; run: %fcmp_ugt_f64(+NaN:0x800000000001, -NaN:0x800000000001) == true
|
||||
; run: %fcmp_ugt_f64(-NaN:0x800000000001, +NaN:0x800000000001) == true
|
||||
; run: %fcmp_ugt_f64(+NaN:0x800000000001, +NaN) == true
|
||||
; run: %fcmp_ugt_f64(+NaN:0x800000000001, -NaN) == true
|
||||
; run: %fcmp_ugt_f64(-NaN:0x800000000001, -NaN) == true
|
||||
; run: %fcmp_ugt_f64(-NaN:0x800000000001, +NaN) == true
|
||||
; run: %fcmp_ugt_f64(+NaN:0x800000000001, +NaN:0x800000000001) == 1
|
||||
; run: %fcmp_ugt_f64(-NaN:0x800000000001, -NaN:0x800000000001) == 1
|
||||
; run: %fcmp_ugt_f64(+NaN:0x800000000001, -NaN:0x800000000001) == 1
|
||||
; run: %fcmp_ugt_f64(-NaN:0x800000000001, +NaN:0x800000000001) == 1
|
||||
; run: %fcmp_ugt_f64(+NaN:0x800000000001, +NaN) == 1
|
||||
; run: %fcmp_ugt_f64(+NaN:0x800000000001, -NaN) == 1
|
||||
; run: %fcmp_ugt_f64(-NaN:0x800000000001, -NaN) == 1
|
||||
; run: %fcmp_ugt_f64(-NaN:0x800000000001, +NaN) == 1
|
||||
|
||||
; sNaN's
|
||||
; run: %fcmp_ugt_f64(+sNaN:0x1, +sNaN:0x1) == true
|
||||
; run: %fcmp_ugt_f64(-sNaN:0x1, -sNaN:0x1) == true
|
||||
; run: %fcmp_ugt_f64(+sNaN:0x1, -sNaN:0x1) == true
|
||||
; run: %fcmp_ugt_f64(-sNaN:0x1, +sNaN:0x1) == true
|
||||
; run: %fcmp_ugt_f64(+sNaN:0x1, +sNaN:0x1) == 1
|
||||
; run: %fcmp_ugt_f64(-sNaN:0x1, -sNaN:0x1) == 1
|
||||
; run: %fcmp_ugt_f64(+sNaN:0x1, -sNaN:0x1) == 1
|
||||
; run: %fcmp_ugt_f64(-sNaN:0x1, +sNaN:0x1) == 1
|
||||
|
||||
; run: %fcmp_ugt_f64(+sNaN:0x1, -0x1.0) == true
|
||||
; run: %fcmp_ugt_f64(-sNaN:0x1, -0x1.0) == true
|
||||
; run: %fcmp_ugt_f64(+sNaN:0x1, 0x1.0) == true
|
||||
; run: %fcmp_ugt_f64(-sNaN:0x1, 0x1.0) == true
|
||||
; run: %fcmp_ugt_f64(+sNaN:0x1, -0x0.0) == true
|
||||
; run: %fcmp_ugt_f64(-sNaN:0x1, -0x0.0) == true
|
||||
; run: %fcmp_ugt_f64(+sNaN:0x1, 0x0.0) == true
|
||||
; run: %fcmp_ugt_f64(-sNaN:0x1, 0x0.0) == true
|
||||
; run: %fcmp_ugt_f64(+sNaN:0x1, -Inf) == true
|
||||
; run: %fcmp_ugt_f64(-sNaN:0x1, -Inf) == true
|
||||
; run: %fcmp_ugt_f64(+sNaN:0x1, Inf) == true
|
||||
; run: %fcmp_ugt_f64(-sNaN:0x1, Inf) == true
|
||||
; run: %fcmp_ugt_f64(-0x0.0, +sNaN:0x1) == true
|
||||
; run: %fcmp_ugt_f64(-0x0.0, -sNaN:0x1) == true
|
||||
; run: %fcmp_ugt_f64(0x0.0, +sNaN:0x1) == true
|
||||
; run: %fcmp_ugt_f64(0x0.0, -sNaN:0x1) == true
|
||||
; run: %fcmp_ugt_f64(-Inf, +sNaN:0x1) == true
|
||||
; run: %fcmp_ugt_f64(-Inf, -sNaN:0x1) == true
|
||||
; run: %fcmp_ugt_f64(Inf, +sNaN:0x1) == true
|
||||
; run: %fcmp_ugt_f64(Inf, -sNaN:0x1) == true
|
||||
; run: %fcmp_ugt_f64(+sNaN:0x1, -0x1.0) == 1
|
||||
; run: %fcmp_ugt_f64(-sNaN:0x1, -0x1.0) == 1
|
||||
; run: %fcmp_ugt_f64(+sNaN:0x1, 0x1.0) == 1
|
||||
; run: %fcmp_ugt_f64(-sNaN:0x1, 0x1.0) == 1
|
||||
; run: %fcmp_ugt_f64(+sNaN:0x1, -0x0.0) == 1
|
||||
; run: %fcmp_ugt_f64(-sNaN:0x1, -0x0.0) == 1
|
||||
; run: %fcmp_ugt_f64(+sNaN:0x1, 0x0.0) == 1
|
||||
; run: %fcmp_ugt_f64(-sNaN:0x1, 0x0.0) == 1
|
||||
; run: %fcmp_ugt_f64(+sNaN:0x1, -Inf) == 1
|
||||
; run: %fcmp_ugt_f64(-sNaN:0x1, -Inf) == 1
|
||||
; run: %fcmp_ugt_f64(+sNaN:0x1, Inf) == 1
|
||||
; run: %fcmp_ugt_f64(-sNaN:0x1, Inf) == 1
|
||||
; run: %fcmp_ugt_f64(-0x0.0, +sNaN:0x1) == 1
|
||||
; run: %fcmp_ugt_f64(-0x0.0, -sNaN:0x1) == 1
|
||||
; run: %fcmp_ugt_f64(0x0.0, +sNaN:0x1) == 1
|
||||
; run: %fcmp_ugt_f64(0x0.0, -sNaN:0x1) == 1
|
||||
; run: %fcmp_ugt_f64(-Inf, +sNaN:0x1) == 1
|
||||
; run: %fcmp_ugt_f64(-Inf, -sNaN:0x1) == 1
|
||||
; run: %fcmp_ugt_f64(Inf, +sNaN:0x1) == 1
|
||||
; run: %fcmp_ugt_f64(Inf, -sNaN:0x1) == 1
|
||||
|
||||
; run: %fcmp_ugt_f64(+sNaN:0x1, +NaN:0x1) == true
|
||||
; run: %fcmp_ugt_f64(-sNaN:0x1, -NaN:0x1) == true
|
||||
; run: %fcmp_ugt_f64(+sNaN:0x1, -NaN:0x1) == true
|
||||
; run: %fcmp_ugt_f64(-sNaN:0x1, +NaN:0x1) == true
|
||||
; run: %fcmp_ugt_f64(+NaN:0x1, +sNaN:0x1) == true
|
||||
; run: %fcmp_ugt_f64(-NaN:0x1, -sNaN:0x1) == true
|
||||
; run: %fcmp_ugt_f64(-NaN:0x1, +sNaN:0x1) == true
|
||||
; run: %fcmp_ugt_f64(+NaN:0x1, -sNaN:0x1) == true
|
||||
; run: %fcmp_ugt_f64(+sNaN:0x1, +NaN:0x1) == 1
|
||||
; run: %fcmp_ugt_f64(-sNaN:0x1, -NaN:0x1) == 1
|
||||
; run: %fcmp_ugt_f64(+sNaN:0x1, -NaN:0x1) == 1
|
||||
; run: %fcmp_ugt_f64(-sNaN:0x1, +NaN:0x1) == 1
|
||||
; run: %fcmp_ugt_f64(+NaN:0x1, +sNaN:0x1) == 1
|
||||
; run: %fcmp_ugt_f64(-NaN:0x1, -sNaN:0x1) == 1
|
||||
; run: %fcmp_ugt_f64(-NaN:0x1, +sNaN:0x1) == 1
|
||||
; run: %fcmp_ugt_f64(+NaN:0x1, -sNaN:0x1) == 1
|
||||
|
||||
; run: %fcmp_ugt_f64(+sNaN:0x800000000001, +sNaN:0x800000000001) == true
|
||||
; run: %fcmp_ugt_f64(-sNaN:0x800000000001, -sNaN:0x800000000001) == true
|
||||
; run: %fcmp_ugt_f64(+sNaN:0x800000000001, -sNaN:0x800000000001) == true
|
||||
; run: %fcmp_ugt_f64(-sNaN:0x800000000001, +sNaN:0x800000000001) == true
|
||||
; run: %fcmp_ugt_f64(+sNaN:0x800000000001, +sNaN:0x1) == true
|
||||
; run: %fcmp_ugt_f64(+sNaN:0x800000000001, -sNaN:0x1) == true
|
||||
; run: %fcmp_ugt_f64(-sNaN:0x800000000001, -sNaN:0x1) == true
|
||||
; run: %fcmp_ugt_f64(-sNaN:0x800000000001, +sNaN:0x1) == true
|
||||
; run: %fcmp_ugt_f64(+sNaN:0x800000000001, +sNaN:0x800000000001) == 1
|
||||
; run: %fcmp_ugt_f64(-sNaN:0x800000000001, -sNaN:0x800000000001) == 1
|
||||
; run: %fcmp_ugt_f64(+sNaN:0x800000000001, -sNaN:0x800000000001) == 1
|
||||
; run: %fcmp_ugt_f64(-sNaN:0x800000000001, +sNaN:0x800000000001) == 1
|
||||
; run: %fcmp_ugt_f64(+sNaN:0x800000000001, +sNaN:0x1) == 1
|
||||
; run: %fcmp_ugt_f64(+sNaN:0x800000000001, -sNaN:0x1) == 1
|
||||
; run: %fcmp_ugt_f64(-sNaN:0x800000000001, -sNaN:0x1) == 1
|
||||
; run: %fcmp_ugt_f64(-sNaN:0x800000000001, +sNaN:0x1) == 1
|
||||
|
||||
@@ -4,316 +4,316 @@ target x86_64
|
||||
target s390x
|
||||
target riscv64
|
||||
|
||||
function %fcmp_ule_f32(f32, f32) -> b1 {
|
||||
function %fcmp_ule_f32(f32, f32) -> i8 {
|
||||
block0(v0: f32, v1: f32):
|
||||
v2 = fcmp ule v0, v1
|
||||
return v2
|
||||
}
|
||||
; run: %fcmp_ule_f32(0x0.5, 0x0.5) == true
|
||||
; run: %fcmp_ule_f32(0x1.0, 0x1.0) == true
|
||||
; run: %fcmp_ule_f32(-0x1.0, 0x1.0) == true
|
||||
; run: %fcmp_ule_f32(0x1.0, -0x1.0) == false
|
||||
; run: %fcmp_ule_f32(0x0.5, 0x1.0) == true
|
||||
; run: %fcmp_ule_f32(0x1.5, 0x2.9) == true
|
||||
; run: %fcmp_ule_f32(0x1.1p10, 0x1.4p1) == false
|
||||
; run: %fcmp_ule_f32(0x1.4cccccp0, 0x1.8p0) == true
|
||||
; run: %fcmp_ule_f32(0x1.b33334p0, 0x1.99999ap-2) == false
|
||||
; run: %fcmp_ule_f32(0x1.333334p-1, 0x1.666666p1) == true
|
||||
; run: %fcmp_ule_f32(-0x0.5, -0x1.0) == false
|
||||
; run: %fcmp_ule_f32(-0x1.5, -0x2.9) == false
|
||||
; run: %fcmp_ule_f32(-0x1.1p10, -0x1.333334p-1) == true
|
||||
; run: %fcmp_ule_f32(-0x1.99999ap-2, -0x1.4cccccp0) == false
|
||||
; run: %fcmp_ule_f32(-0x1.8p0, -0x1.b33334p0) == false
|
||||
; run: %fcmp_ule_f32(-0x1.4p1, -0x1.666666p1) == false
|
||||
; run: %fcmp_ule_f32(0x0.5, -0x1.0) == false
|
||||
; run: %fcmp_ule_f32(0x1.b33334p0, -0x1.b33334p0) == false
|
||||
; run: %fcmp_ule_f32(0x0.5, 0x0.5) == 1
|
||||
; run: %fcmp_ule_f32(0x1.0, 0x1.0) == 1
|
||||
; run: %fcmp_ule_f32(-0x1.0, 0x1.0) == 1
|
||||
; run: %fcmp_ule_f32(0x1.0, -0x1.0) == 0
|
||||
; run: %fcmp_ule_f32(0x0.5, 0x1.0) == 1
|
||||
; run: %fcmp_ule_f32(0x1.5, 0x2.9) == 1
|
||||
; run: %fcmp_ule_f32(0x1.1p10, 0x1.4p1) == 0
|
||||
; run: %fcmp_ule_f32(0x1.4cccccp0, 0x1.8p0) == 1
|
||||
; run: %fcmp_ule_f32(0x1.b33334p0, 0x1.99999ap-2) == 0
|
||||
; run: %fcmp_ule_f32(0x1.333334p-1, 0x1.666666p1) == 1
|
||||
; run: %fcmp_ule_f32(-0x0.5, -0x1.0) == 0
|
||||
; run: %fcmp_ule_f32(-0x1.5, -0x2.9) == 0
|
||||
; run: %fcmp_ule_f32(-0x1.1p10, -0x1.333334p-1) == 1
|
||||
; run: %fcmp_ule_f32(-0x1.99999ap-2, -0x1.4cccccp0) == 0
|
||||
; run: %fcmp_ule_f32(-0x1.8p0, -0x1.b33334p0) == 0
|
||||
; run: %fcmp_ule_f32(-0x1.4p1, -0x1.666666p1) == 0
|
||||
; run: %fcmp_ule_f32(0x0.5, -0x1.0) == 0
|
||||
; run: %fcmp_ule_f32(0x1.b33334p0, -0x1.b33334p0) == 0
|
||||
|
||||
; Zeroes
|
||||
; run: %fcmp_ule_f32(0x0.0, 0x0.0) == true
|
||||
; run: %fcmp_ule_f32(-0x0.0, -0x0.0) == true
|
||||
; run: %fcmp_ule_f32(0x0.0, -0x0.0) == true
|
||||
; run: %fcmp_ule_f32(-0x0.0, 0x0.0) == true
|
||||
; run: %fcmp_ule_f32(0x0.0, 0x0.0) == 1
|
||||
; run: %fcmp_ule_f32(-0x0.0, -0x0.0) == 1
|
||||
; run: %fcmp_ule_f32(0x0.0, -0x0.0) == 1
|
||||
; run: %fcmp_ule_f32(-0x0.0, 0x0.0) == 1
|
||||
|
||||
; Infinities
|
||||
; run: %fcmp_ule_f32(Inf, Inf) == true
|
||||
; run: %fcmp_ule_f32(-Inf, -Inf) == true
|
||||
; run: %fcmp_ule_f32(Inf, -Inf) == false
|
||||
; run: %fcmp_ule_f32(-Inf, Inf) == true
|
||||
; run: %fcmp_ule_f32(Inf, Inf) == 1
|
||||
; run: %fcmp_ule_f32(-Inf, -Inf) == 1
|
||||
; run: %fcmp_ule_f32(Inf, -Inf) == 0
|
||||
; run: %fcmp_ule_f32(-Inf, Inf) == 1
|
||||
|
||||
; Inf/Zero
|
||||
; run: %fcmp_ule_f32(0x0.0, Inf) == true
|
||||
; run: %fcmp_ule_f32(-0x0.0, Inf) == true
|
||||
; run: %fcmp_ule_f32(0x0.0, -Inf) == false
|
||||
; run: %fcmp_ule_f32(-0x0.0, -Inf) == false
|
||||
; run: %fcmp_ule_f32(Inf, 0x0.0) == false
|
||||
; run: %fcmp_ule_f32(Inf, -0x0.0) == false
|
||||
; run: %fcmp_ule_f32(-Inf, 0x0.0) == true
|
||||
; run: %fcmp_ule_f32(-Inf, -0x0.0) == true
|
||||
; run: %fcmp_ule_f32(0x0.0, Inf) == 1
|
||||
; run: %fcmp_ule_f32(-0x0.0, Inf) == 1
|
||||
; run: %fcmp_ule_f32(0x0.0, -Inf) == 0
|
||||
; run: %fcmp_ule_f32(-0x0.0, -Inf) == 0
|
||||
; run: %fcmp_ule_f32(Inf, 0x0.0) == 0
|
||||
; run: %fcmp_ule_f32(Inf, -0x0.0) == 0
|
||||
; run: %fcmp_ule_f32(-Inf, 0x0.0) == 1
|
||||
; run: %fcmp_ule_f32(-Inf, -0x0.0) == 1
|
||||
|
||||
; Epsilon / Max / Min Positive
|
||||
; run: %fcmp_ule_f32(0x1.0p-23, 0x1.0p-23) == true
|
||||
; run: %fcmp_ule_f32(0x1.fffffep127, 0x1.fffffep127) == true
|
||||
; run: %fcmp_ule_f32(0x1.0p-126, 0x1.0p-126) == true
|
||||
; run: %fcmp_ule_f32(0x1.0p-23, 0x1.fffffep127) == true
|
||||
; run: %fcmp_ule_f32(0x1.0p-23, 0x1.0p-126) == false
|
||||
; run: %fcmp_ule_f32(0x1.0p-126, 0x1.fffffep127) == true
|
||||
; run: %fcmp_ule_f32(0x1.0p-23, 0x1.0p-23) == 1
|
||||
; run: %fcmp_ule_f32(0x1.fffffep127, 0x1.fffffep127) == 1
|
||||
; run: %fcmp_ule_f32(0x1.0p-126, 0x1.0p-126) == 1
|
||||
; run: %fcmp_ule_f32(0x1.0p-23, 0x1.fffffep127) == 1
|
||||
; run: %fcmp_ule_f32(0x1.0p-23, 0x1.0p-126) == 0
|
||||
; run: %fcmp_ule_f32(0x1.0p-126, 0x1.fffffep127) == 1
|
||||
|
||||
; Subnormals
|
||||
; run: %fcmp_ule_f32(0x0.800002p-126, -0x0.800002p-126) == false
|
||||
; run: %fcmp_ule_f32(-0x0.800002p-126, 0x0.800002p-126) == true
|
||||
; run: %fcmp_ule_f32(0x0.800002p-126, 0x0.0) == false
|
||||
; run: %fcmp_ule_f32(-0x0.800002p-126, 0x0.0) == true
|
||||
; run: %fcmp_ule_f32(0x0.800002p-126, -0x0.0) == false
|
||||
; run: %fcmp_ule_f32(-0x0.800002p-126, -0x0.0) == true
|
||||
; run: %fcmp_ule_f32(0x0.0, 0x0.800002p-126) == true
|
||||
; run: %fcmp_ule_f32(0x0.0, -0x0.800002p-126) == false
|
||||
; run: %fcmp_ule_f32(-0x0.0, 0x0.800002p-126) == true
|
||||
; run: %fcmp_ule_f32(-0x0.0, -0x0.800002p-126) == false
|
||||
; run: %fcmp_ule_f32(0x0.800002p-126, -0x0.800002p-126) == 0
|
||||
; run: %fcmp_ule_f32(-0x0.800002p-126, 0x0.800002p-126) == 1
|
||||
; run: %fcmp_ule_f32(0x0.800002p-126, 0x0.0) == 0
|
||||
; run: %fcmp_ule_f32(-0x0.800002p-126, 0x0.0) == 1
|
||||
; run: %fcmp_ule_f32(0x0.800002p-126, -0x0.0) == 0
|
||||
; run: %fcmp_ule_f32(-0x0.800002p-126, -0x0.0) == 1
|
||||
; run: %fcmp_ule_f32(0x0.0, 0x0.800002p-126) == 1
|
||||
; run: %fcmp_ule_f32(0x0.0, -0x0.800002p-126) == 0
|
||||
; run: %fcmp_ule_f32(-0x0.0, 0x0.800002p-126) == 1
|
||||
; run: %fcmp_ule_f32(-0x0.0, -0x0.800002p-126) == 0
|
||||
|
||||
; NaN's
|
||||
; run: %fcmp_ule_f32(+NaN, +NaN) == true
|
||||
; run: %fcmp_ule_f32(-NaN, -NaN) == true
|
||||
; run: %fcmp_ule_f32(+NaN, -NaN) == true
|
||||
; run: %fcmp_ule_f32(-NaN, +NaN) == true
|
||||
; run: %fcmp_ule_f32(+NaN, +NaN) == 1
|
||||
; run: %fcmp_ule_f32(-NaN, -NaN) == 1
|
||||
; run: %fcmp_ule_f32(+NaN, -NaN) == 1
|
||||
; run: %fcmp_ule_f32(-NaN, +NaN) == 1
|
||||
|
||||
; run: %fcmp_ule_f32(+NaN, -0x1.0) == true
|
||||
; run: %fcmp_ule_f32(-NaN, -0x1.0) == true
|
||||
; run: %fcmp_ule_f32(+NaN, 0x1.0) == true
|
||||
; run: %fcmp_ule_f32(-NaN, 0x1.0) == true
|
||||
; run: %fcmp_ule_f32(+NaN, -0x0.0) == true
|
||||
; run: %fcmp_ule_f32(-NaN, -0x0.0) == true
|
||||
; run: %fcmp_ule_f32(+NaN, 0x0.0) == true
|
||||
; run: %fcmp_ule_f32(-NaN, 0x0.0) == true
|
||||
; run: %fcmp_ule_f32(+NaN, -Inf) == true
|
||||
; run: %fcmp_ule_f32(-NaN, -Inf) == true
|
||||
; run: %fcmp_ule_f32(+NaN, Inf) == true
|
||||
; run: %fcmp_ule_f32(-NaN, Inf) == true
|
||||
; run: %fcmp_ule_f32(-0x0.0, +NaN) == true
|
||||
; run: %fcmp_ule_f32(-0x0.0, -NaN) == true
|
||||
; run: %fcmp_ule_f32(0x0.0, +NaN) == true
|
||||
; run: %fcmp_ule_f32(0x0.0, -NaN) == true
|
||||
; run: %fcmp_ule_f32(-Inf, +NaN) == true
|
||||
; run: %fcmp_ule_f32(-Inf, -NaN) == true
|
||||
; run: %fcmp_ule_f32(Inf, +NaN) == true
|
||||
; run: %fcmp_ule_f32(Inf, -NaN) == true
|
||||
; run: %fcmp_ule_f32(+NaN, -0x1.0) == 1
|
||||
; run: %fcmp_ule_f32(-NaN, -0x1.0) == 1
|
||||
; run: %fcmp_ule_f32(+NaN, 0x1.0) == 1
|
||||
; run: %fcmp_ule_f32(-NaN, 0x1.0) == 1
|
||||
; run: %fcmp_ule_f32(+NaN, -0x0.0) == 1
|
||||
; run: %fcmp_ule_f32(-NaN, -0x0.0) == 1
|
||||
; run: %fcmp_ule_f32(+NaN, 0x0.0) == 1
|
||||
; run: %fcmp_ule_f32(-NaN, 0x0.0) == 1
|
||||
; run: %fcmp_ule_f32(+NaN, -Inf) == 1
|
||||
; run: %fcmp_ule_f32(-NaN, -Inf) == 1
|
||||
; run: %fcmp_ule_f32(+NaN, Inf) == 1
|
||||
; run: %fcmp_ule_f32(-NaN, Inf) == 1
|
||||
; run: %fcmp_ule_f32(-0x0.0, +NaN) == 1
|
||||
; run: %fcmp_ule_f32(-0x0.0, -NaN) == 1
|
||||
; run: %fcmp_ule_f32(0x0.0, +NaN) == 1
|
||||
; run: %fcmp_ule_f32(0x0.0, -NaN) == 1
|
||||
; run: %fcmp_ule_f32(-Inf, +NaN) == 1
|
||||
; run: %fcmp_ule_f32(-Inf, -NaN) == 1
|
||||
; run: %fcmp_ule_f32(Inf, +NaN) == 1
|
||||
; run: %fcmp_ule_f32(Inf, -NaN) == 1
|
||||
|
||||
; run: %fcmp_ule_f32(+NaN:0x1, +NaN:0x1) == true
|
||||
; run: %fcmp_ule_f32(-NaN:0x1, -NaN:0x1) == true
|
||||
; run: %fcmp_ule_f32(+NaN:0x1, -NaN:0x1) == true
|
||||
; run: %fcmp_ule_f32(-NaN:0x1, +NaN:0x1) == true
|
||||
; run: %fcmp_ule_f32(+NaN:0x1, +NaN) == true
|
||||
; run: %fcmp_ule_f32(+NaN:0x1, -NaN) == true
|
||||
; run: %fcmp_ule_f32(-NaN:0x1, -NaN) == true
|
||||
; run: %fcmp_ule_f32(-NaN:0x1, +NaN) == true
|
||||
; run: %fcmp_ule_f32(+NaN:0x1, +NaN:0x1) == 1
|
||||
; run: %fcmp_ule_f32(-NaN:0x1, -NaN:0x1) == 1
|
||||
; run: %fcmp_ule_f32(+NaN:0x1, -NaN:0x1) == 1
|
||||
; run: %fcmp_ule_f32(-NaN:0x1, +NaN:0x1) == 1
|
||||
; run: %fcmp_ule_f32(+NaN:0x1, +NaN) == 1
|
||||
; run: %fcmp_ule_f32(+NaN:0x1, -NaN) == 1
|
||||
; run: %fcmp_ule_f32(-NaN:0x1, -NaN) == 1
|
||||
; run: %fcmp_ule_f32(-NaN:0x1, +NaN) == 1
|
||||
|
||||
; run: %fcmp_ule_f32(+NaN:0x80001, +NaN:0x80001) == true
|
||||
; run: %fcmp_ule_f32(-NaN:0x80001, -NaN:0x80001) == true
|
||||
; run: %fcmp_ule_f32(+NaN:0x80001, -NaN:0x80001) == true
|
||||
; run: %fcmp_ule_f32(-NaN:0x80001, +NaN:0x80001) == true
|
||||
; run: %fcmp_ule_f32(+NaN:0x80001, +NaN) == true
|
||||
; run: %fcmp_ule_f32(+NaN:0x80001, -NaN) == true
|
||||
; run: %fcmp_ule_f32(-NaN:0x80001, -NaN) == true
|
||||
; run: %fcmp_ule_f32(-NaN:0x80001, +NaN) == true
|
||||
; run: %fcmp_ule_f32(+NaN:0x80001, +NaN:0x80001) == 1
|
||||
; run: %fcmp_ule_f32(-NaN:0x80001, -NaN:0x80001) == 1
|
||||
; run: %fcmp_ule_f32(+NaN:0x80001, -NaN:0x80001) == 1
|
||||
; run: %fcmp_ule_f32(-NaN:0x80001, +NaN:0x80001) == 1
|
||||
; run: %fcmp_ule_f32(+NaN:0x80001, +NaN) == 1
|
||||
; run: %fcmp_ule_f32(+NaN:0x80001, -NaN) == 1
|
||||
; run: %fcmp_ule_f32(-NaN:0x80001, -NaN) == 1
|
||||
; run: %fcmp_ule_f32(-NaN:0x80001, +NaN) == 1
|
||||
|
||||
; sNaN's
|
||||
; run: %fcmp_ule_f32(+sNaN:0x1, +sNaN:0x1) == true
|
||||
; run: %fcmp_ule_f32(-sNaN:0x1, -sNaN:0x1) == true
|
||||
; run: %fcmp_ule_f32(+sNaN:0x1, -sNaN:0x1) == true
|
||||
; run: %fcmp_ule_f32(-sNaN:0x1, +sNaN:0x1) == true
|
||||
; run: %fcmp_ule_f32(+sNaN:0x1, +sNaN:0x1) == 1
|
||||
; run: %fcmp_ule_f32(-sNaN:0x1, -sNaN:0x1) == 1
|
||||
; run: %fcmp_ule_f32(+sNaN:0x1, -sNaN:0x1) == 1
|
||||
; run: %fcmp_ule_f32(-sNaN:0x1, +sNaN:0x1) == 1
|
||||
|
||||
; run: %fcmp_ule_f32(+sNaN:0x1, -0x1.0) == true
|
||||
; run: %fcmp_ule_f32(-sNaN:0x1, -0x1.0) == true
|
||||
; run: %fcmp_ule_f32(+sNaN:0x1, 0x1.0) == true
|
||||
; run: %fcmp_ule_f32(-sNaN:0x1, 0x1.0) == true
|
||||
; run: %fcmp_ule_f32(+sNaN:0x1, -0x0.0) == true
|
||||
; run: %fcmp_ule_f32(-sNaN:0x1, -0x0.0) == true
|
||||
; run: %fcmp_ule_f32(+sNaN:0x1, 0x0.0) == true
|
||||
; run: %fcmp_ule_f32(-sNaN:0x1, 0x0.0) == true
|
||||
; run: %fcmp_ule_f32(+sNaN:0x1, -Inf) == true
|
||||
; run: %fcmp_ule_f32(-sNaN:0x1, -Inf) == true
|
||||
; run: %fcmp_ule_f32(+sNaN:0x1, Inf) == true
|
||||
; run: %fcmp_ule_f32(-sNaN:0x1, Inf) == true
|
||||
; run: %fcmp_ule_f32(-0x0.0, +sNaN:0x1) == true
|
||||
; run: %fcmp_ule_f32(-0x0.0, -sNaN:0x1) == true
|
||||
; run: %fcmp_ule_f32(0x0.0, +sNaN:0x1) == true
|
||||
; run: %fcmp_ule_f32(0x0.0, -sNaN:0x1) == true
|
||||
; run: %fcmp_ule_f32(-Inf, +sNaN:0x1) == true
|
||||
; run: %fcmp_ule_f32(-Inf, -sNaN:0x1) == true
|
||||
; run: %fcmp_ule_f32(Inf, +sNaN:0x1) == true
|
||||
; run: %fcmp_ule_f32(Inf, -sNaN:0x1) == true
|
||||
; run: %fcmp_ule_f32(+sNaN:0x1, -0x1.0) == 1
|
||||
; run: %fcmp_ule_f32(-sNaN:0x1, -0x1.0) == 1
|
||||
; run: %fcmp_ule_f32(+sNaN:0x1, 0x1.0) == 1
|
||||
; run: %fcmp_ule_f32(-sNaN:0x1, 0x1.0) == 1
|
||||
; run: %fcmp_ule_f32(+sNaN:0x1, -0x0.0) == 1
|
||||
; run: %fcmp_ule_f32(-sNaN:0x1, -0x0.0) == 1
|
||||
; run: %fcmp_ule_f32(+sNaN:0x1, 0x0.0) == 1
|
||||
; run: %fcmp_ule_f32(-sNaN:0x1, 0x0.0) == 1
|
||||
; run: %fcmp_ule_f32(+sNaN:0x1, -Inf) == 1
|
||||
; run: %fcmp_ule_f32(-sNaN:0x1, -Inf) == 1
|
||||
; run: %fcmp_ule_f32(+sNaN:0x1, Inf) == 1
|
||||
; run: %fcmp_ule_f32(-sNaN:0x1, Inf) == 1
|
||||
; run: %fcmp_ule_f32(-0x0.0, +sNaN:0x1) == 1
|
||||
; run: %fcmp_ule_f32(-0x0.0, -sNaN:0x1) == 1
|
||||
; run: %fcmp_ule_f32(0x0.0, +sNaN:0x1) == 1
|
||||
; run: %fcmp_ule_f32(0x0.0, -sNaN:0x1) == 1
|
||||
; run: %fcmp_ule_f32(-Inf, +sNaN:0x1) == 1
|
||||
; run: %fcmp_ule_f32(-Inf, -sNaN:0x1) == 1
|
||||
; run: %fcmp_ule_f32(Inf, +sNaN:0x1) == 1
|
||||
; run: %fcmp_ule_f32(Inf, -sNaN:0x1) == 1
|
||||
|
||||
; run: %fcmp_ule_f32(+sNaN:0x1, +NaN:0x1) == true
|
||||
; run: %fcmp_ule_f32(-sNaN:0x1, -NaN:0x1) == true
|
||||
; run: %fcmp_ule_f32(+sNaN:0x1, -NaN:0x1) == true
|
||||
; run: %fcmp_ule_f32(-sNaN:0x1, +NaN:0x1) == true
|
||||
; run: %fcmp_ule_f32(+NaN:0x1, +sNaN:0x1) == true
|
||||
; run: %fcmp_ule_f32(-NaN:0x1, -sNaN:0x1) == true
|
||||
; run: %fcmp_ule_f32(-NaN:0x1, +sNaN:0x1) == true
|
||||
; run: %fcmp_ule_f32(+NaN:0x1, -sNaN:0x1) == true
|
||||
; run: %fcmp_ule_f32(+sNaN:0x1, +NaN:0x1) == 1
|
||||
; run: %fcmp_ule_f32(-sNaN:0x1, -NaN:0x1) == 1
|
||||
; run: %fcmp_ule_f32(+sNaN:0x1, -NaN:0x1) == 1
|
||||
; run: %fcmp_ule_f32(-sNaN:0x1, +NaN:0x1) == 1
|
||||
; run: %fcmp_ule_f32(+NaN:0x1, +sNaN:0x1) == 1
|
||||
; run: %fcmp_ule_f32(-NaN:0x1, -sNaN:0x1) == 1
|
||||
; run: %fcmp_ule_f32(-NaN:0x1, +sNaN:0x1) == 1
|
||||
; run: %fcmp_ule_f32(+NaN:0x1, -sNaN:0x1) == 1
|
||||
|
||||
; run: %fcmp_ule_f32(+sNaN:0x80001, +sNaN:0x80001) == true
|
||||
; run: %fcmp_ule_f32(-sNaN:0x80001, -sNaN:0x80001) == true
|
||||
; run: %fcmp_ule_f32(+sNaN:0x80001, -sNaN:0x80001) == true
|
||||
; run: %fcmp_ule_f32(-sNaN:0x80001, +sNaN:0x80001) == true
|
||||
; run: %fcmp_ule_f32(+sNaN:0x80001, +sNaN:0x1) == true
|
||||
; run: %fcmp_ule_f32(+sNaN:0x80001, -sNaN:0x1) == true
|
||||
; run: %fcmp_ule_f32(-sNaN:0x80001, -sNaN:0x1) == true
|
||||
; run: %fcmp_ule_f32(-sNaN:0x80001, +sNaN:0x1) == true
|
||||
; run: %fcmp_ule_f32(+sNaN:0x80001, +sNaN:0x80001) == 1
|
||||
; run: %fcmp_ule_f32(-sNaN:0x80001, -sNaN:0x80001) == 1
|
||||
; run: %fcmp_ule_f32(+sNaN:0x80001, -sNaN:0x80001) == 1
|
||||
; run: %fcmp_ule_f32(-sNaN:0x80001, +sNaN:0x80001) == 1
|
||||
; run: %fcmp_ule_f32(+sNaN:0x80001, +sNaN:0x1) == 1
|
||||
; run: %fcmp_ule_f32(+sNaN:0x80001, -sNaN:0x1) == 1
|
||||
; run: %fcmp_ule_f32(-sNaN:0x80001, -sNaN:0x1) == 1
|
||||
; run: %fcmp_ule_f32(-sNaN:0x80001, +sNaN:0x1) == 1
|
||||
|
||||
|
||||
function %fcmp_ule_f64(f64, f64) -> b1 {
|
||||
function %fcmp_ule_f64(f64, f64) -> i8 {
|
||||
block0(v0: f64, v1: f64):
|
||||
v2 = fcmp ule v0, v1
|
||||
return v2
|
||||
}
|
||||
; run: %fcmp_ule_f64(0x0.5, 0x0.5) == true
|
||||
; run: %fcmp_ule_f64(0x1.0, 0x1.0) == true
|
||||
; run: %fcmp_ule_f64(-0x1.0, 0x1.0) == true
|
||||
; run: %fcmp_ule_f64(0x1.0, -0x1.0) == false
|
||||
; run: %fcmp_ule_f64(0x0.5, 0x1.0) == true
|
||||
; run: %fcmp_ule_f64(0x1.5, 0x2.9) == true
|
||||
; run: %fcmp_ule_f64(0x1.1p10, 0x1.4p1) == false
|
||||
; run: %fcmp_ule_f64(0x1.4cccccccccccdp0, 0x1.8p0) == true
|
||||
; run: %fcmp_ule_f64(0x1.b333333333333p0, 0x1.999999999999ap-2) == false
|
||||
; run: %fcmp_ule_f64(0x1.3333333333333p-1, 0x1.6666666666666p1) == true
|
||||
; run: %fcmp_ule_f64(-0x0.5, -0x1.0) == false
|
||||
; run: %fcmp_ule_f64(-0x1.5, -0x2.9) == false
|
||||
; run: %fcmp_ule_f64(-0x1.1p10, -0x1.3333333333333p-1) == true
|
||||
; run: %fcmp_ule_f64(-0x1.999999999999ap-2, -0x1.4cccccccccccdp0) == false
|
||||
; run: %fcmp_ule_f64(-0x1.8p0, -0x1.b333333333333p0) == false
|
||||
; run: %fcmp_ule_f64(-0x1.4p1, -0x1.6666666666666p1) == false
|
||||
; run: %fcmp_ule_f64(0x0.5, -0x1.0) == false
|
||||
; run: %fcmp_ule_f64(0x1.b333333333333p0, -0x1.b333333333333p0) == false
|
||||
; run: %fcmp_ule_f64(0x0.5, 0x0.5) == 1
|
||||
; run: %fcmp_ule_f64(0x1.0, 0x1.0) == 1
|
||||
; run: %fcmp_ule_f64(-0x1.0, 0x1.0) == 1
|
||||
; run: %fcmp_ule_f64(0x1.0, -0x1.0) == 0
|
||||
; run: %fcmp_ule_f64(0x0.5, 0x1.0) == 1
|
||||
; run: %fcmp_ule_f64(0x1.5, 0x2.9) == 1
|
||||
; run: %fcmp_ule_f64(0x1.1p10, 0x1.4p1) == 0
|
||||
; run: %fcmp_ule_f64(0x1.4cccccccccccdp0, 0x1.8p0) == 1
|
||||
; run: %fcmp_ule_f64(0x1.b333333333333p0, 0x1.999999999999ap-2) == 0
|
||||
; run: %fcmp_ule_f64(0x1.3333333333333p-1, 0x1.6666666666666p1) == 1
|
||||
; run: %fcmp_ule_f64(-0x0.5, -0x1.0) == 0
|
||||
; run: %fcmp_ule_f64(-0x1.5, -0x2.9) == 0
|
||||
; run: %fcmp_ule_f64(-0x1.1p10, -0x1.3333333333333p-1) == 1
|
||||
; run: %fcmp_ule_f64(-0x1.999999999999ap-2, -0x1.4cccccccccccdp0) == 0
|
||||
; run: %fcmp_ule_f64(-0x1.8p0, -0x1.b333333333333p0) == 0
|
||||
; run: %fcmp_ule_f64(-0x1.4p1, -0x1.6666666666666p1) == 0
|
||||
; run: %fcmp_ule_f64(0x0.5, -0x1.0) == 0
|
||||
; run: %fcmp_ule_f64(0x1.b333333333333p0, -0x1.b333333333333p0) == 0
|
||||
|
||||
|
||||
; Zeroes
|
||||
; run: %fcmp_ule_f64(0x0.0, 0x0.0) == true
|
||||
; run: %fcmp_ule_f64(-0x0.0, -0x0.0) == true
|
||||
; run: %fcmp_ule_f64(0x0.0, -0x0.0) == true
|
||||
; run: %fcmp_ule_f64(-0x0.0, 0x0.0) == true
|
||||
; run: %fcmp_ule_f64(0x0.0, 0x0.0) == 1
|
||||
; run: %fcmp_ule_f64(-0x0.0, -0x0.0) == 1
|
||||
; run: %fcmp_ule_f64(0x0.0, -0x0.0) == 1
|
||||
; run: %fcmp_ule_f64(-0x0.0, 0x0.0) == 1
|
||||
|
||||
; Infinities
|
||||
; run: %fcmp_ule_f64(Inf, Inf) == true
|
||||
; run: %fcmp_ule_f64(-Inf, -Inf) == true
|
||||
; run: %fcmp_ule_f64(Inf, -Inf) == false
|
||||
; run: %fcmp_ule_f64(-Inf, Inf) == true
|
||||
; run: %fcmp_ule_f64(Inf, Inf) == 1
|
||||
; run: %fcmp_ule_f64(-Inf, -Inf) == 1
|
||||
; run: %fcmp_ule_f64(Inf, -Inf) == 0
|
||||
; run: %fcmp_ule_f64(-Inf, Inf) == 1
|
||||
|
||||
; Inf/Zero
|
||||
; run: %fcmp_ule_f64(0x0.0, Inf) == true
|
||||
; run: %fcmp_ule_f64(-0x0.0, Inf) == true
|
||||
; run: %fcmp_ule_f64(0x0.0, -Inf) == false
|
||||
; run: %fcmp_ule_f64(-0x0.0, -Inf) == false
|
||||
; run: %fcmp_ule_f64(Inf, 0x0.0) == false
|
||||
; run: %fcmp_ule_f64(Inf, -0x0.0) == false
|
||||
; run: %fcmp_ule_f64(-Inf, 0x0.0) == true
|
||||
; run: %fcmp_ule_f64(-Inf, -0x0.0) == true
|
||||
; run: %fcmp_ule_f64(0x0.0, Inf) == 1
|
||||
; run: %fcmp_ule_f64(-0x0.0, Inf) == 1
|
||||
; run: %fcmp_ule_f64(0x0.0, -Inf) == 0
|
||||
; run: %fcmp_ule_f64(-0x0.0, -Inf) == 0
|
||||
; run: %fcmp_ule_f64(Inf, 0x0.0) == 0
|
||||
; run: %fcmp_ule_f64(Inf, -0x0.0) == 0
|
||||
; run: %fcmp_ule_f64(-Inf, 0x0.0) == 1
|
||||
; run: %fcmp_ule_f64(-Inf, -0x0.0) == 1
|
||||
|
||||
; Epsilon / Max / Min Positive
|
||||
; run: %fcmp_ule_f64(0x1.0p-52, 0x1.0p-52) == true
|
||||
; run: %fcmp_ule_f64(0x1.fffffffffffffp1023, 0x1.fffffffffffffp1023) == true
|
||||
; run: %fcmp_ule_f64(0x1.0p-1022, 0x1.0p-1022) == true
|
||||
; run: %fcmp_ule_f64(0x1.0p-52, 0x1.fffffffffffffp1023) == true
|
||||
; run: %fcmp_ule_f64(0x1.0p-52, 0x1.0p-1022) == false
|
||||
; run: %fcmp_ule_f64(0x1.0p-1022, 0x1.fffffffffffffp1023) == true
|
||||
; run: %fcmp_ule_f64(0x1.0p-52, 0x1.0p-52) == 1
|
||||
; run: %fcmp_ule_f64(0x1.fffffffffffffp1023, 0x1.fffffffffffffp1023) == 1
|
||||
; run: %fcmp_ule_f64(0x1.0p-1022, 0x1.0p-1022) == 1
|
||||
; run: %fcmp_ule_f64(0x1.0p-52, 0x1.fffffffffffffp1023) == 1
|
||||
; run: %fcmp_ule_f64(0x1.0p-52, 0x1.0p-1022) == 0
|
||||
; run: %fcmp_ule_f64(0x1.0p-1022, 0x1.fffffffffffffp1023) == 1
|
||||
|
||||
; Subnormals
|
||||
; run: %fcmp_ule_f64(0x0.8p-1022, -0x0.8p-1022) == false
|
||||
; run: %fcmp_ule_f64(-0x0.8p-1022, 0x0.8p-1022) == true
|
||||
; run: %fcmp_ule_f64(0x0.8p-1022, 0x0.0) == false
|
||||
; run: %fcmp_ule_f64(-0x0.8p-1022, 0x0.0) == true
|
||||
; run: %fcmp_ule_f64(0x0.8p-1022, -0x0.0) == false
|
||||
; run: %fcmp_ule_f64(-0x0.8p-1022, -0x0.0) == true
|
||||
; run: %fcmp_ule_f64(0x0.0, 0x0.8p-1022) == true
|
||||
; run: %fcmp_ule_f64(0x0.0, -0x0.8p-1022) == false
|
||||
; run: %fcmp_ule_f64(-0x0.0, 0x0.8p-1022) == true
|
||||
; run: %fcmp_ule_f64(-0x0.0, -0x0.8p-1022) == false
|
||||
; run: %fcmp_ule_f64(0x0.8p-1022, -0x0.8p-1022) == 0
|
||||
; run: %fcmp_ule_f64(-0x0.8p-1022, 0x0.8p-1022) == 1
|
||||
; run: %fcmp_ule_f64(0x0.8p-1022, 0x0.0) == 0
|
||||
; run: %fcmp_ule_f64(-0x0.8p-1022, 0x0.0) == 1
|
||||
; run: %fcmp_ule_f64(0x0.8p-1022, -0x0.0) == 0
|
||||
; run: %fcmp_ule_f64(-0x0.8p-1022, -0x0.0) == 1
|
||||
; run: %fcmp_ule_f64(0x0.0, 0x0.8p-1022) == 1
|
||||
; run: %fcmp_ule_f64(0x0.0, -0x0.8p-1022) == 0
|
||||
; run: %fcmp_ule_f64(-0x0.0, 0x0.8p-1022) == 1
|
||||
; run: %fcmp_ule_f64(-0x0.0, -0x0.8p-1022) == 0
|
||||
|
||||
; NaN's
|
||||
; run: %fcmp_ule_f64(+NaN, +NaN) == true
|
||||
; run: %fcmp_ule_f64(-NaN, -NaN) == true
|
||||
; run: %fcmp_ule_f64(+NaN, -NaN) == true
|
||||
; run: %fcmp_ule_f64(-NaN, +NaN) == true
|
||||
; run: %fcmp_ule_f64(+NaN, +NaN) == 1
|
||||
; run: %fcmp_ule_f64(-NaN, -NaN) == 1
|
||||
; run: %fcmp_ule_f64(+NaN, -NaN) == 1
|
||||
; run: %fcmp_ule_f64(-NaN, +NaN) == 1
|
||||
|
||||
; run: %fcmp_ule_f64(+NaN, -0x1.0) == true
|
||||
; run: %fcmp_ule_f64(-NaN, -0x1.0) == true
|
||||
; run: %fcmp_ule_f64(+NaN, 0x1.0) == true
|
||||
; run: %fcmp_ule_f64(-NaN, 0x1.0) == true
|
||||
; run: %fcmp_ule_f64(+NaN, -0x0.0) == true
|
||||
; run: %fcmp_ule_f64(-NaN, -0x0.0) == true
|
||||
; run: %fcmp_ule_f64(+NaN, 0x0.0) == true
|
||||
; run: %fcmp_ule_f64(-NaN, 0x0.0) == true
|
||||
; run: %fcmp_ule_f64(+NaN, -Inf) == true
|
||||
; run: %fcmp_ule_f64(-NaN, -Inf) == true
|
||||
; run: %fcmp_ule_f64(+NaN, Inf) == true
|
||||
; run: %fcmp_ule_f64(-NaN, Inf) == true
|
||||
; run: %fcmp_ule_f64(-0x0.0, +NaN) == true
|
||||
; run: %fcmp_ule_f64(-0x0.0, -NaN) == true
|
||||
; run: %fcmp_ule_f64(0x0.0, +NaN) == true
|
||||
; run: %fcmp_ule_f64(0x0.0, -NaN) == true
|
||||
; run: %fcmp_ule_f64(-Inf, +NaN) == true
|
||||
; run: %fcmp_ule_f64(-Inf, -NaN) == true
|
||||
; run: %fcmp_ule_f64(Inf, +NaN) == true
|
||||
; run: %fcmp_ule_f64(Inf, -NaN) == true
|
||||
; run: %fcmp_ule_f64(+NaN, -0x1.0) == 1
|
||||
; run: %fcmp_ule_f64(-NaN, -0x1.0) == 1
|
||||
; run: %fcmp_ule_f64(+NaN, 0x1.0) == 1
|
||||
; run: %fcmp_ule_f64(-NaN, 0x1.0) == 1
|
||||
; run: %fcmp_ule_f64(+NaN, -0x0.0) == 1
|
||||
; run: %fcmp_ule_f64(-NaN, -0x0.0) == 1
|
||||
; run: %fcmp_ule_f64(+NaN, 0x0.0) == 1
|
||||
; run: %fcmp_ule_f64(-NaN, 0x0.0) == 1
|
||||
; run: %fcmp_ule_f64(+NaN, -Inf) == 1
|
||||
; run: %fcmp_ule_f64(-NaN, -Inf) == 1
|
||||
; run: %fcmp_ule_f64(+NaN, Inf) == 1
|
||||
; run: %fcmp_ule_f64(-NaN, Inf) == 1
|
||||
; run: %fcmp_ule_f64(-0x0.0, +NaN) == 1
|
||||
; run: %fcmp_ule_f64(-0x0.0, -NaN) == 1
|
||||
; run: %fcmp_ule_f64(0x0.0, +NaN) == 1
|
||||
; run: %fcmp_ule_f64(0x0.0, -NaN) == 1
|
||||
; run: %fcmp_ule_f64(-Inf, +NaN) == 1
|
||||
; run: %fcmp_ule_f64(-Inf, -NaN) == 1
|
||||
; run: %fcmp_ule_f64(Inf, +NaN) == 1
|
||||
; run: %fcmp_ule_f64(Inf, -NaN) == 1
|
||||
|
||||
; run: %fcmp_ule_f64(+NaN:0x1, +NaN:0x1) == true
|
||||
; run: %fcmp_ule_f64(-NaN:0x1, -NaN:0x1) == true
|
||||
; run: %fcmp_ule_f64(+NaN:0x1, -NaN:0x1) == true
|
||||
; run: %fcmp_ule_f64(-NaN:0x1, +NaN:0x1) == true
|
||||
; run: %fcmp_ule_f64(+NaN:0x1, +NaN) == true
|
||||
; run: %fcmp_ule_f64(+NaN:0x1, -NaN) == true
|
||||
; run: %fcmp_ule_f64(-NaN:0x1, -NaN) == true
|
||||
; run: %fcmp_ule_f64(-NaN:0x1, +NaN) == true
|
||||
; run: %fcmp_ule_f64(+NaN:0x1, +NaN:0x1) == 1
|
||||
; run: %fcmp_ule_f64(-NaN:0x1, -NaN:0x1) == 1
|
||||
; run: %fcmp_ule_f64(+NaN:0x1, -NaN:0x1) == 1
|
||||
; run: %fcmp_ule_f64(-NaN:0x1, +NaN:0x1) == 1
|
||||
; run: %fcmp_ule_f64(+NaN:0x1, +NaN) == 1
|
||||
; run: %fcmp_ule_f64(+NaN:0x1, -NaN) == 1
|
||||
; run: %fcmp_ule_f64(-NaN:0x1, -NaN) == 1
|
||||
; run: %fcmp_ule_f64(-NaN:0x1, +NaN) == 1
|
||||
|
||||
; run: %fcmp_ule_f64(+NaN:0x800000000001, +NaN:0x800000000001) == true
|
||||
; run: %fcmp_ule_f64(-NaN:0x800000000001, -NaN:0x800000000001) == true
|
||||
; run: %fcmp_ule_f64(+NaN:0x800000000001, -NaN:0x800000000001) == true
|
||||
; run: %fcmp_ule_f64(-NaN:0x800000000001, +NaN:0x800000000001) == true
|
||||
; run: %fcmp_ule_f64(+NaN:0x800000000001, +NaN) == true
|
||||
; run: %fcmp_ule_f64(+NaN:0x800000000001, -NaN) == true
|
||||
; run: %fcmp_ule_f64(-NaN:0x800000000001, -NaN) == true
|
||||
; run: %fcmp_ule_f64(-NaN:0x800000000001, +NaN) == true
|
||||
; run: %fcmp_ule_f64(+NaN:0x800000000001, +NaN:0x800000000001) == 1
|
||||
; run: %fcmp_ule_f64(-NaN:0x800000000001, -NaN:0x800000000001) == 1
|
||||
; run: %fcmp_ule_f64(+NaN:0x800000000001, -NaN:0x800000000001) == 1
|
||||
; run: %fcmp_ule_f64(-NaN:0x800000000001, +NaN:0x800000000001) == 1
|
||||
; run: %fcmp_ule_f64(+NaN:0x800000000001, +NaN) == 1
|
||||
; run: %fcmp_ule_f64(+NaN:0x800000000001, -NaN) == 1
|
||||
; run: %fcmp_ule_f64(-NaN:0x800000000001, -NaN) == 1
|
||||
; run: %fcmp_ule_f64(-NaN:0x800000000001, +NaN) == 1
|
||||
|
||||
; sNaN's
|
||||
; run: %fcmp_ule_f64(+sNaN:0x1, +sNaN:0x1) == true
|
||||
; run: %fcmp_ule_f64(-sNaN:0x1, -sNaN:0x1) == true
|
||||
; run: %fcmp_ule_f64(+sNaN:0x1, -sNaN:0x1) == true
|
||||
; run: %fcmp_ule_f64(-sNaN:0x1, +sNaN:0x1) == true
|
||||
; run: %fcmp_ule_f64(+sNaN:0x1, +sNaN:0x1) == 1
|
||||
; run: %fcmp_ule_f64(-sNaN:0x1, -sNaN:0x1) == 1
|
||||
; run: %fcmp_ule_f64(+sNaN:0x1, -sNaN:0x1) == 1
|
||||
; run: %fcmp_ule_f64(-sNaN:0x1, +sNaN:0x1) == 1
|
||||
|
||||
; run: %fcmp_ule_f64(+sNaN:0x1, -0x1.0) == true
|
||||
; run: %fcmp_ule_f64(-sNaN:0x1, -0x1.0) == true
|
||||
; run: %fcmp_ule_f64(+sNaN:0x1, 0x1.0) == true
|
||||
; run: %fcmp_ule_f64(-sNaN:0x1, 0x1.0) == true
|
||||
; run: %fcmp_ule_f64(+sNaN:0x1, -0x0.0) == true
|
||||
; run: %fcmp_ule_f64(-sNaN:0x1, -0x0.0) == true
|
||||
; run: %fcmp_ule_f64(+sNaN:0x1, 0x0.0) == true
|
||||
; run: %fcmp_ule_f64(-sNaN:0x1, 0x0.0) == true
|
||||
; run: %fcmp_ule_f64(+sNaN:0x1, -Inf) == true
|
||||
; run: %fcmp_ule_f64(-sNaN:0x1, -Inf) == true
|
||||
; run: %fcmp_ule_f64(+sNaN:0x1, Inf) == true
|
||||
; run: %fcmp_ule_f64(-sNaN:0x1, Inf) == true
|
||||
; run: %fcmp_ule_f64(-0x0.0, +sNaN:0x1) == true
|
||||
; run: %fcmp_ule_f64(-0x0.0, -sNaN:0x1) == true
|
||||
; run: %fcmp_ule_f64(0x0.0, +sNaN:0x1) == true
|
||||
; run: %fcmp_ule_f64(0x0.0, -sNaN:0x1) == true
|
||||
; run: %fcmp_ule_f64(-Inf, +sNaN:0x1) == true
|
||||
; run: %fcmp_ule_f64(-Inf, -sNaN:0x1) == true
|
||||
; run: %fcmp_ule_f64(Inf, +sNaN:0x1) == true
|
||||
; run: %fcmp_ule_f64(Inf, -sNaN:0x1) == true
|
||||
; run: %fcmp_ule_f64(+sNaN:0x1, -0x1.0) == 1
|
||||
; run: %fcmp_ule_f64(-sNaN:0x1, -0x1.0) == 1
|
||||
; run: %fcmp_ule_f64(+sNaN:0x1, 0x1.0) == 1
|
||||
; run: %fcmp_ule_f64(-sNaN:0x1, 0x1.0) == 1
|
||||
; run: %fcmp_ule_f64(+sNaN:0x1, -0x0.0) == 1
|
||||
; run: %fcmp_ule_f64(-sNaN:0x1, -0x0.0) == 1
|
||||
; run: %fcmp_ule_f64(+sNaN:0x1, 0x0.0) == 1
|
||||
; run: %fcmp_ule_f64(-sNaN:0x1, 0x0.0) == 1
|
||||
; run: %fcmp_ule_f64(+sNaN:0x1, -Inf) == 1
|
||||
; run: %fcmp_ule_f64(-sNaN:0x1, -Inf) == 1
|
||||
; run: %fcmp_ule_f64(+sNaN:0x1, Inf) == 1
|
||||
; run: %fcmp_ule_f64(-sNaN:0x1, Inf) == 1
|
||||
; run: %fcmp_ule_f64(-0x0.0, +sNaN:0x1) == 1
|
||||
; run: %fcmp_ule_f64(-0x0.0, -sNaN:0x1) == 1
|
||||
; run: %fcmp_ule_f64(0x0.0, +sNaN:0x1) == 1
|
||||
; run: %fcmp_ule_f64(0x0.0, -sNaN:0x1) == 1
|
||||
; run: %fcmp_ule_f64(-Inf, +sNaN:0x1) == 1
|
||||
; run: %fcmp_ule_f64(-Inf, -sNaN:0x1) == 1
|
||||
; run: %fcmp_ule_f64(Inf, +sNaN:0x1) == 1
|
||||
; run: %fcmp_ule_f64(Inf, -sNaN:0x1) == 1
|
||||
|
||||
; run: %fcmp_ule_f64(+sNaN:0x1, +NaN:0x1) == true
|
||||
; run: %fcmp_ule_f64(-sNaN:0x1, -NaN:0x1) == true
|
||||
; run: %fcmp_ule_f64(+sNaN:0x1, -NaN:0x1) == true
|
||||
; run: %fcmp_ule_f64(-sNaN:0x1, +NaN:0x1) == true
|
||||
; run: %fcmp_ule_f64(+NaN:0x1, +sNaN:0x1) == true
|
||||
; run: %fcmp_ule_f64(-NaN:0x1, -sNaN:0x1) == true
|
||||
; run: %fcmp_ule_f64(-NaN:0x1, +sNaN:0x1) == true
|
||||
; run: %fcmp_ule_f64(+NaN:0x1, -sNaN:0x1) == true
|
||||
; run: %fcmp_ule_f64(+sNaN:0x1, +NaN:0x1) == 1
|
||||
; run: %fcmp_ule_f64(-sNaN:0x1, -NaN:0x1) == 1
|
||||
; run: %fcmp_ule_f64(+sNaN:0x1, -NaN:0x1) == 1
|
||||
; run: %fcmp_ule_f64(-sNaN:0x1, +NaN:0x1) == 1
|
||||
; run: %fcmp_ule_f64(+NaN:0x1, +sNaN:0x1) == 1
|
||||
; run: %fcmp_ule_f64(-NaN:0x1, -sNaN:0x1) == 1
|
||||
; run: %fcmp_ule_f64(-NaN:0x1, +sNaN:0x1) == 1
|
||||
; run: %fcmp_ule_f64(+NaN:0x1, -sNaN:0x1) == 1
|
||||
|
||||
; run: %fcmp_ule_f64(+sNaN:0x800000000001, +sNaN:0x800000000001) == true
|
||||
; run: %fcmp_ule_f64(-sNaN:0x800000000001, -sNaN:0x800000000001) == true
|
||||
; run: %fcmp_ule_f64(+sNaN:0x800000000001, -sNaN:0x800000000001) == true
|
||||
; run: %fcmp_ule_f64(-sNaN:0x800000000001, +sNaN:0x800000000001) == true
|
||||
; run: %fcmp_ule_f64(+sNaN:0x800000000001, +sNaN:0x1) == true
|
||||
; run: %fcmp_ule_f64(+sNaN:0x800000000001, -sNaN:0x1) == true
|
||||
; run: %fcmp_ule_f64(-sNaN:0x800000000001, -sNaN:0x1) == true
|
||||
; run: %fcmp_ule_f64(-sNaN:0x800000000001, +sNaN:0x1) == true
|
||||
; run: %fcmp_ule_f64(+sNaN:0x800000000001, +sNaN:0x800000000001) == 1
|
||||
; run: %fcmp_ule_f64(-sNaN:0x800000000001, -sNaN:0x800000000001) == 1
|
||||
; run: %fcmp_ule_f64(+sNaN:0x800000000001, -sNaN:0x800000000001) == 1
|
||||
; run: %fcmp_ule_f64(-sNaN:0x800000000001, +sNaN:0x800000000001) == 1
|
||||
; run: %fcmp_ule_f64(+sNaN:0x800000000001, +sNaN:0x1) == 1
|
||||
; run: %fcmp_ule_f64(+sNaN:0x800000000001, -sNaN:0x1) == 1
|
||||
; run: %fcmp_ule_f64(-sNaN:0x800000000001, -sNaN:0x1) == 1
|
||||
; run: %fcmp_ule_f64(-sNaN:0x800000000001, +sNaN:0x1) == 1
|
||||
|
||||
@@ -4,316 +4,316 @@ target x86_64
|
||||
target s390x
|
||||
target riscv64
|
||||
|
||||
function %fcmp_ult_f32(f32, f32) -> b1 {
|
||||
function %fcmp_ult_f32(f32, f32) -> i8 {
|
||||
block0(v0: f32, v1: f32):
|
||||
v2 = fcmp ult v0, v1
|
||||
return v2
|
||||
}
|
||||
; run: %fcmp_ult_f32(0x0.5, 0x0.5) == false
|
||||
; run: %fcmp_ult_f32(0x1.0, 0x1.0) == false
|
||||
; run: %fcmp_ult_f32(-0x1.0, 0x1.0) == true
|
||||
; run: %fcmp_ult_f32(0x1.0, -0x1.0) == false
|
||||
; run: %fcmp_ult_f32(0x0.5, 0x1.0) == true
|
||||
; run: %fcmp_ult_f32(0x1.5, 0x2.9) == true
|
||||
; run: %fcmp_ult_f32(0x1.1p10, 0x1.4p1) == false
|
||||
; run: %fcmp_ult_f32(0x1.4cccccp0, 0x1.8p0) == true
|
||||
; run: %fcmp_ult_f32(0x1.b33334p0, 0x1.99999ap-2) == false
|
||||
; run: %fcmp_ult_f32(0x1.333334p-1, 0x1.666666p1) == true
|
||||
; run: %fcmp_ult_f32(-0x0.5, -0x1.0) == false
|
||||
; run: %fcmp_ult_f32(-0x1.5, -0x2.9) == false
|
||||
; run: %fcmp_ult_f32(-0x1.1p10, -0x1.333334p-1) == true
|
||||
; run: %fcmp_ult_f32(-0x1.99999ap-2, -0x1.4cccccp0) == false
|
||||
; run: %fcmp_ult_f32(-0x1.8p0, -0x1.b33334p0) == false
|
||||
; run: %fcmp_ult_f32(-0x1.4p1, -0x1.666666p1) == false
|
||||
; run: %fcmp_ult_f32(0x0.5, -0x1.0) == false
|
||||
; run: %fcmp_ult_f32(0x1.b33334p0, -0x1.b33334p0) == false
|
||||
; run: %fcmp_ult_f32(0x0.5, 0x0.5) == 0
|
||||
; run: %fcmp_ult_f32(0x1.0, 0x1.0) == 0
|
||||
; run: %fcmp_ult_f32(-0x1.0, 0x1.0) == 1
|
||||
; run: %fcmp_ult_f32(0x1.0, -0x1.0) == 0
|
||||
; run: %fcmp_ult_f32(0x0.5, 0x1.0) == 1
|
||||
; run: %fcmp_ult_f32(0x1.5, 0x2.9) == 1
|
||||
; run: %fcmp_ult_f32(0x1.1p10, 0x1.4p1) == 0
|
||||
; run: %fcmp_ult_f32(0x1.4cccccp0, 0x1.8p0) == 1
|
||||
; run: %fcmp_ult_f32(0x1.b33334p0, 0x1.99999ap-2) == 0
|
||||
; run: %fcmp_ult_f32(0x1.333334p-1, 0x1.666666p1) == 1
|
||||
; run: %fcmp_ult_f32(-0x0.5, -0x1.0) == 0
|
||||
; run: %fcmp_ult_f32(-0x1.5, -0x2.9) == 0
|
||||
; run: %fcmp_ult_f32(-0x1.1p10, -0x1.333334p-1) == 1
|
||||
; run: %fcmp_ult_f32(-0x1.99999ap-2, -0x1.4cccccp0) == 0
|
||||
; run: %fcmp_ult_f32(-0x1.8p0, -0x1.b33334p0) == 0
|
||||
; run: %fcmp_ult_f32(-0x1.4p1, -0x1.666666p1) == 0
|
||||
; run: %fcmp_ult_f32(0x0.5, -0x1.0) == 0
|
||||
; run: %fcmp_ult_f32(0x1.b33334p0, -0x1.b33334p0) == 0
|
||||
|
||||
; Zeroes
|
||||
; run: %fcmp_ult_f32(0x0.0, 0x0.0) == false
|
||||
; run: %fcmp_ult_f32(-0x0.0, -0x0.0) == false
|
||||
; run: %fcmp_ult_f32(0x0.0, -0x0.0) == false
|
||||
; run: %fcmp_ult_f32(-0x0.0, 0x0.0) == false
|
||||
; run: %fcmp_ult_f32(0x0.0, 0x0.0) == 0
|
||||
; run: %fcmp_ult_f32(-0x0.0, -0x0.0) == 0
|
||||
; run: %fcmp_ult_f32(0x0.0, -0x0.0) == 0
|
||||
; run: %fcmp_ult_f32(-0x0.0, 0x0.0) == 0
|
||||
|
||||
; Infinities
|
||||
; run: %fcmp_ult_f32(Inf, Inf) == false
|
||||
; run: %fcmp_ult_f32(-Inf, -Inf) == false
|
||||
; run: %fcmp_ult_f32(Inf, -Inf) == false
|
||||
; run: %fcmp_ult_f32(-Inf, Inf) == true
|
||||
; run: %fcmp_ult_f32(Inf, Inf) == 0
|
||||
; run: %fcmp_ult_f32(-Inf, -Inf) == 0
|
||||
; run: %fcmp_ult_f32(Inf, -Inf) == 0
|
||||
; run: %fcmp_ult_f32(-Inf, Inf) == 1
|
||||
|
||||
; Inf/Zero
|
||||
; run: %fcmp_ult_f32(0x0.0, Inf) == true
|
||||
; run: %fcmp_ult_f32(-0x0.0, Inf) == true
|
||||
; run: %fcmp_ult_f32(0x0.0, -Inf) == false
|
||||
; run: %fcmp_ult_f32(-0x0.0, -Inf) == false
|
||||
; run: %fcmp_ult_f32(Inf, 0x0.0) == false
|
||||
; run: %fcmp_ult_f32(Inf, -0x0.0) == false
|
||||
; run: %fcmp_ult_f32(-Inf, 0x0.0) == true
|
||||
; run: %fcmp_ult_f32(-Inf, -0x0.0) == true
|
||||
; run: %fcmp_ult_f32(0x0.0, Inf) == 1
|
||||
; run: %fcmp_ult_f32(-0x0.0, Inf) == 1
|
||||
; run: %fcmp_ult_f32(0x0.0, -Inf) == 0
|
||||
; run: %fcmp_ult_f32(-0x0.0, -Inf) == 0
|
||||
; run: %fcmp_ult_f32(Inf, 0x0.0) == 0
|
||||
; run: %fcmp_ult_f32(Inf, -0x0.0) == 0
|
||||
; run: %fcmp_ult_f32(-Inf, 0x0.0) == 1
|
||||
; run: %fcmp_ult_f32(-Inf, -0x0.0) == 1
|
||||
|
||||
; Epsilon / Max / Min Positive
|
||||
; run: %fcmp_ult_f32(0x1.0p-23, 0x1.0p-23) == false
|
||||
; run: %fcmp_ult_f32(0x1.fffffep127, 0x1.fffffep127) == false
|
||||
; run: %fcmp_ult_f32(0x1.0p-126, 0x1.0p-126) == false
|
||||
; run: %fcmp_ult_f32(0x1.0p-23, 0x1.fffffep127) == true
|
||||
; run: %fcmp_ult_f32(0x1.0p-23, 0x1.0p-126) == false
|
||||
; run: %fcmp_ult_f32(0x1.0p-126, 0x1.fffffep127) == true
|
||||
; run: %fcmp_ult_f32(0x1.0p-23, 0x1.0p-23) == 0
|
||||
; run: %fcmp_ult_f32(0x1.fffffep127, 0x1.fffffep127) == 0
|
||||
; run: %fcmp_ult_f32(0x1.0p-126, 0x1.0p-126) == 0
|
||||
; run: %fcmp_ult_f32(0x1.0p-23, 0x1.fffffep127) == 1
|
||||
; run: %fcmp_ult_f32(0x1.0p-23, 0x1.0p-126) == 0
|
||||
; run: %fcmp_ult_f32(0x1.0p-126, 0x1.fffffep127) == 1
|
||||
|
||||
; Subnormals
|
||||
; run: %fcmp_ult_f32(0x0.800002p-126, -0x0.800002p-126) == false
|
||||
; run: %fcmp_ult_f32(-0x0.800002p-126, 0x0.800002p-126) == true
|
||||
; run: %fcmp_ult_f32(0x0.800002p-126, 0x0.0) == false
|
||||
; run: %fcmp_ult_f32(-0x0.800002p-126, 0x0.0) == true
|
||||
; run: %fcmp_ult_f32(0x0.800002p-126, -0x0.0) == false
|
||||
; run: %fcmp_ult_f32(-0x0.800002p-126, -0x0.0) == true
|
||||
; run: %fcmp_ult_f32(0x0.0, 0x0.800002p-126) == true
|
||||
; run: %fcmp_ult_f32(0x0.0, -0x0.800002p-126) == false
|
||||
; run: %fcmp_ult_f32(-0x0.0, 0x0.800002p-126) == true
|
||||
; run: %fcmp_ult_f32(-0x0.0, -0x0.800002p-126) == false
|
||||
; run: %fcmp_ult_f32(0x0.800002p-126, -0x0.800002p-126) == 0
|
||||
; run: %fcmp_ult_f32(-0x0.800002p-126, 0x0.800002p-126) == 1
|
||||
; run: %fcmp_ult_f32(0x0.800002p-126, 0x0.0) == 0
|
||||
; run: %fcmp_ult_f32(-0x0.800002p-126, 0x0.0) == 1
|
||||
; run: %fcmp_ult_f32(0x0.800002p-126, -0x0.0) == 0
|
||||
; run: %fcmp_ult_f32(-0x0.800002p-126, -0x0.0) == 1
|
||||
; run: %fcmp_ult_f32(0x0.0, 0x0.800002p-126) == 1
|
||||
; run: %fcmp_ult_f32(0x0.0, -0x0.800002p-126) == 0
|
||||
; run: %fcmp_ult_f32(-0x0.0, 0x0.800002p-126) == 1
|
||||
; run: %fcmp_ult_f32(-0x0.0, -0x0.800002p-126) == 0
|
||||
|
||||
; NaN's
|
||||
; run: %fcmp_ult_f32(+NaN, +NaN) == true
|
||||
; run: %fcmp_ult_f32(-NaN, -NaN) == true
|
||||
; run: %fcmp_ult_f32(+NaN, -NaN) == true
|
||||
; run: %fcmp_ult_f32(-NaN, +NaN) == true
|
||||
; run: %fcmp_ult_f32(+NaN, +NaN) == 1
|
||||
; run: %fcmp_ult_f32(-NaN, -NaN) == 1
|
||||
; run: %fcmp_ult_f32(+NaN, -NaN) == 1
|
||||
; run: %fcmp_ult_f32(-NaN, +NaN) == 1
|
||||
|
||||
; run: %fcmp_ult_f32(+NaN, -0x1.0) == true
|
||||
; run: %fcmp_ult_f32(-NaN, -0x1.0) == true
|
||||
; run: %fcmp_ult_f32(+NaN, 0x1.0) == true
|
||||
; run: %fcmp_ult_f32(-NaN, 0x1.0) == true
|
||||
; run: %fcmp_ult_f32(+NaN, -0x0.0) == true
|
||||
; run: %fcmp_ult_f32(-NaN, -0x0.0) == true
|
||||
; run: %fcmp_ult_f32(+NaN, 0x0.0) == true
|
||||
; run: %fcmp_ult_f32(-NaN, 0x0.0) == true
|
||||
; run: %fcmp_ult_f32(+NaN, -Inf) == true
|
||||
; run: %fcmp_ult_f32(-NaN, -Inf) == true
|
||||
; run: %fcmp_ult_f32(+NaN, Inf) == true
|
||||
; run: %fcmp_ult_f32(-NaN, Inf) == true
|
||||
; run: %fcmp_ult_f32(-0x0.0, +NaN) == true
|
||||
; run: %fcmp_ult_f32(-0x0.0, -NaN) == true
|
||||
; run: %fcmp_ult_f32(0x0.0, +NaN) == true
|
||||
; run: %fcmp_ult_f32(0x0.0, -NaN) == true
|
||||
; run: %fcmp_ult_f32(-Inf, +NaN) == true
|
||||
; run: %fcmp_ult_f32(-Inf, -NaN) == true
|
||||
; run: %fcmp_ult_f32(Inf, +NaN) == true
|
||||
; run: %fcmp_ult_f32(Inf, -NaN) == true
|
||||
; run: %fcmp_ult_f32(+NaN, -0x1.0) == 1
|
||||
; run: %fcmp_ult_f32(-NaN, -0x1.0) == 1
|
||||
; run: %fcmp_ult_f32(+NaN, 0x1.0) == 1
|
||||
; run: %fcmp_ult_f32(-NaN, 0x1.0) == 1
|
||||
; run: %fcmp_ult_f32(+NaN, -0x0.0) == 1
|
||||
; run: %fcmp_ult_f32(-NaN, -0x0.0) == 1
|
||||
; run: %fcmp_ult_f32(+NaN, 0x0.0) == 1
|
||||
; run: %fcmp_ult_f32(-NaN, 0x0.0) == 1
|
||||
; run: %fcmp_ult_f32(+NaN, -Inf) == 1
|
||||
; run: %fcmp_ult_f32(-NaN, -Inf) == 1
|
||||
; run: %fcmp_ult_f32(+NaN, Inf) == 1
|
||||
; run: %fcmp_ult_f32(-NaN, Inf) == 1
|
||||
; run: %fcmp_ult_f32(-0x0.0, +NaN) == 1
|
||||
; run: %fcmp_ult_f32(-0x0.0, -NaN) == 1
|
||||
; run: %fcmp_ult_f32(0x0.0, +NaN) == 1
|
||||
; run: %fcmp_ult_f32(0x0.0, -NaN) == 1
|
||||
; run: %fcmp_ult_f32(-Inf, +NaN) == 1
|
||||
; run: %fcmp_ult_f32(-Inf, -NaN) == 1
|
||||
; run: %fcmp_ult_f32(Inf, +NaN) == 1
|
||||
; run: %fcmp_ult_f32(Inf, -NaN) == 1
|
||||
|
||||
; run: %fcmp_ult_f32(+NaN:0x1, +NaN:0x1) == true
|
||||
; run: %fcmp_ult_f32(-NaN:0x1, -NaN:0x1) == true
|
||||
; run: %fcmp_ult_f32(+NaN:0x1, -NaN:0x1) == true
|
||||
; run: %fcmp_ult_f32(-NaN:0x1, +NaN:0x1) == true
|
||||
; run: %fcmp_ult_f32(+NaN:0x1, +NaN) == true
|
||||
; run: %fcmp_ult_f32(+NaN:0x1, -NaN) == true
|
||||
; run: %fcmp_ult_f32(-NaN:0x1, -NaN) == true
|
||||
; run: %fcmp_ult_f32(-NaN:0x1, +NaN) == true
|
||||
; run: %fcmp_ult_f32(+NaN:0x1, +NaN:0x1) == 1
|
||||
; run: %fcmp_ult_f32(-NaN:0x1, -NaN:0x1) == 1
|
||||
; run: %fcmp_ult_f32(+NaN:0x1, -NaN:0x1) == 1
|
||||
; run: %fcmp_ult_f32(-NaN:0x1, +NaN:0x1) == 1
|
||||
; run: %fcmp_ult_f32(+NaN:0x1, +NaN) == 1
|
||||
; run: %fcmp_ult_f32(+NaN:0x1, -NaN) == 1
|
||||
; run: %fcmp_ult_f32(-NaN:0x1, -NaN) == 1
|
||||
; run: %fcmp_ult_f32(-NaN:0x1, +NaN) == 1
|
||||
|
||||
; run: %fcmp_ult_f32(+NaN:0x80001, +NaN:0x80001) == true
|
||||
; run: %fcmp_ult_f32(-NaN:0x80001, -NaN:0x80001) == true
|
||||
; run: %fcmp_ult_f32(+NaN:0x80001, -NaN:0x80001) == true
|
||||
; run: %fcmp_ult_f32(-NaN:0x80001, +NaN:0x80001) == true
|
||||
; run: %fcmp_ult_f32(+NaN:0x80001, +NaN) == true
|
||||
; run: %fcmp_ult_f32(+NaN:0x80001, -NaN) == true
|
||||
; run: %fcmp_ult_f32(-NaN:0x80001, -NaN) == true
|
||||
; run: %fcmp_ult_f32(-NaN:0x80001, +NaN) == true
|
||||
; run: %fcmp_ult_f32(+NaN:0x80001, +NaN:0x80001) == 1
|
||||
; run: %fcmp_ult_f32(-NaN:0x80001, -NaN:0x80001) == 1
|
||||
; run: %fcmp_ult_f32(+NaN:0x80001, -NaN:0x80001) == 1
|
||||
; run: %fcmp_ult_f32(-NaN:0x80001, +NaN:0x80001) == 1
|
||||
; run: %fcmp_ult_f32(+NaN:0x80001, +NaN) == 1
|
||||
; run: %fcmp_ult_f32(+NaN:0x80001, -NaN) == 1
|
||||
; run: %fcmp_ult_f32(-NaN:0x80001, -NaN) == 1
|
||||
; run: %fcmp_ult_f32(-NaN:0x80001, +NaN) == 1
|
||||
|
||||
; sNaN's
|
||||
; run: %fcmp_ult_f32(+sNaN:0x1, +sNaN:0x1) == true
|
||||
; run: %fcmp_ult_f32(-sNaN:0x1, -sNaN:0x1) == true
|
||||
; run: %fcmp_ult_f32(+sNaN:0x1, -sNaN:0x1) == true
|
||||
; run: %fcmp_ult_f32(-sNaN:0x1, +sNaN:0x1) == true
|
||||
; run: %fcmp_ult_f32(+sNaN:0x1, +sNaN:0x1) == 1
|
||||
; run: %fcmp_ult_f32(-sNaN:0x1, -sNaN:0x1) == 1
|
||||
; run: %fcmp_ult_f32(+sNaN:0x1, -sNaN:0x1) == 1
|
||||
; run: %fcmp_ult_f32(-sNaN:0x1, +sNaN:0x1) == 1
|
||||
|
||||
; run: %fcmp_ult_f32(+sNaN:0x1, -0x1.0) == true
|
||||
; run: %fcmp_ult_f32(-sNaN:0x1, -0x1.0) == true
|
||||
; run: %fcmp_ult_f32(+sNaN:0x1, 0x1.0) == true
|
||||
; run: %fcmp_ult_f32(-sNaN:0x1, 0x1.0) == true
|
||||
; run: %fcmp_ult_f32(+sNaN:0x1, -0x0.0) == true
|
||||
; run: %fcmp_ult_f32(-sNaN:0x1, -0x0.0) == true
|
||||
; run: %fcmp_ult_f32(+sNaN:0x1, 0x0.0) == true
|
||||
; run: %fcmp_ult_f32(-sNaN:0x1, 0x0.0) == true
|
||||
; run: %fcmp_ult_f32(+sNaN:0x1, -Inf) == true
|
||||
; run: %fcmp_ult_f32(-sNaN:0x1, -Inf) == true
|
||||
; run: %fcmp_ult_f32(+sNaN:0x1, Inf) == true
|
||||
; run: %fcmp_ult_f32(-sNaN:0x1, Inf) == true
|
||||
; run: %fcmp_ult_f32(-0x0.0, +sNaN:0x1) == true
|
||||
; run: %fcmp_ult_f32(-0x0.0, -sNaN:0x1) == true
|
||||
; run: %fcmp_ult_f32(0x0.0, +sNaN:0x1) == true
|
||||
; run: %fcmp_ult_f32(0x0.0, -sNaN:0x1) == true
|
||||
; run: %fcmp_ult_f32(-Inf, +sNaN:0x1) == true
|
||||
; run: %fcmp_ult_f32(-Inf, -sNaN:0x1) == true
|
||||
; run: %fcmp_ult_f32(Inf, +sNaN:0x1) == true
|
||||
; run: %fcmp_ult_f32(Inf, -sNaN:0x1) == true
|
||||
; run: %fcmp_ult_f32(+sNaN:0x1, -0x1.0) == 1
|
||||
; run: %fcmp_ult_f32(-sNaN:0x1, -0x1.0) == 1
|
||||
; run: %fcmp_ult_f32(+sNaN:0x1, 0x1.0) == 1
|
||||
; run: %fcmp_ult_f32(-sNaN:0x1, 0x1.0) == 1
|
||||
; run: %fcmp_ult_f32(+sNaN:0x1, -0x0.0) == 1
|
||||
; run: %fcmp_ult_f32(-sNaN:0x1, -0x0.0) == 1
|
||||
; run: %fcmp_ult_f32(+sNaN:0x1, 0x0.0) == 1
|
||||
; run: %fcmp_ult_f32(-sNaN:0x1, 0x0.0) == 1
|
||||
; run: %fcmp_ult_f32(+sNaN:0x1, -Inf) == 1
|
||||
; run: %fcmp_ult_f32(-sNaN:0x1, -Inf) == 1
|
||||
; run: %fcmp_ult_f32(+sNaN:0x1, Inf) == 1
|
||||
; run: %fcmp_ult_f32(-sNaN:0x1, Inf) == 1
|
||||
; run: %fcmp_ult_f32(-0x0.0, +sNaN:0x1) == 1
|
||||
; run: %fcmp_ult_f32(-0x0.0, -sNaN:0x1) == 1
|
||||
; run: %fcmp_ult_f32(0x0.0, +sNaN:0x1) == 1
|
||||
; run: %fcmp_ult_f32(0x0.0, -sNaN:0x1) == 1
|
||||
; run: %fcmp_ult_f32(-Inf, +sNaN:0x1) == 1
|
||||
; run: %fcmp_ult_f32(-Inf, -sNaN:0x1) == 1
|
||||
; run: %fcmp_ult_f32(Inf, +sNaN:0x1) == 1
|
||||
; run: %fcmp_ult_f32(Inf, -sNaN:0x1) == 1
|
||||
|
||||
; run: %fcmp_ult_f32(+sNaN:0x1, +NaN:0x1) == true
|
||||
; run: %fcmp_ult_f32(-sNaN:0x1, -NaN:0x1) == true
|
||||
; run: %fcmp_ult_f32(+sNaN:0x1, -NaN:0x1) == true
|
||||
; run: %fcmp_ult_f32(-sNaN:0x1, +NaN:0x1) == true
|
||||
; run: %fcmp_ult_f32(+NaN:0x1, +sNaN:0x1) == true
|
||||
; run: %fcmp_ult_f32(-NaN:0x1, -sNaN:0x1) == true
|
||||
; run: %fcmp_ult_f32(-NaN:0x1, +sNaN:0x1) == true
|
||||
; run: %fcmp_ult_f32(+NaN:0x1, -sNaN:0x1) == true
|
||||
; run: %fcmp_ult_f32(+sNaN:0x1, +NaN:0x1) == 1
|
||||
; run: %fcmp_ult_f32(-sNaN:0x1, -NaN:0x1) == 1
|
||||
; run: %fcmp_ult_f32(+sNaN:0x1, -NaN:0x1) == 1
|
||||
; run: %fcmp_ult_f32(-sNaN:0x1, +NaN:0x1) == 1
|
||||
; run: %fcmp_ult_f32(+NaN:0x1, +sNaN:0x1) == 1
|
||||
; run: %fcmp_ult_f32(-NaN:0x1, -sNaN:0x1) == 1
|
||||
; run: %fcmp_ult_f32(-NaN:0x1, +sNaN:0x1) == 1
|
||||
; run: %fcmp_ult_f32(+NaN:0x1, -sNaN:0x1) == 1
|
||||
|
||||
; run: %fcmp_ult_f32(+sNaN:0x80001, +sNaN:0x80001) == true
|
||||
; run: %fcmp_ult_f32(-sNaN:0x80001, -sNaN:0x80001) == true
|
||||
; run: %fcmp_ult_f32(+sNaN:0x80001, -sNaN:0x80001) == true
|
||||
; run: %fcmp_ult_f32(-sNaN:0x80001, +sNaN:0x80001) == true
|
||||
; run: %fcmp_ult_f32(+sNaN:0x80001, +sNaN:0x1) == true
|
||||
; run: %fcmp_ult_f32(+sNaN:0x80001, -sNaN:0x1) == true
|
||||
; run: %fcmp_ult_f32(-sNaN:0x80001, -sNaN:0x1) == true
|
||||
; run: %fcmp_ult_f32(-sNaN:0x80001, +sNaN:0x1) == true
|
||||
; run: %fcmp_ult_f32(+sNaN:0x80001, +sNaN:0x80001) == 1
|
||||
; run: %fcmp_ult_f32(-sNaN:0x80001, -sNaN:0x80001) == 1
|
||||
; run: %fcmp_ult_f32(+sNaN:0x80001, -sNaN:0x80001) == 1
|
||||
; run: %fcmp_ult_f32(-sNaN:0x80001, +sNaN:0x80001) == 1
|
||||
; run: %fcmp_ult_f32(+sNaN:0x80001, +sNaN:0x1) == 1
|
||||
; run: %fcmp_ult_f32(+sNaN:0x80001, -sNaN:0x1) == 1
|
||||
; run: %fcmp_ult_f32(-sNaN:0x80001, -sNaN:0x1) == 1
|
||||
; run: %fcmp_ult_f32(-sNaN:0x80001, +sNaN:0x1) == 1
|
||||
|
||||
|
||||
function %fcmp_ult_f64(f64, f64) -> b1 {
|
||||
function %fcmp_ult_f64(f64, f64) -> i8 {
|
||||
block0(v0: f64, v1: f64):
|
||||
v2 = fcmp ult v0, v1
|
||||
return v2
|
||||
}
|
||||
; run: %fcmp_ult_f64(0x0.5, 0x0.5) == false
|
||||
; run: %fcmp_ult_f64(0x1.0, 0x1.0) == false
|
||||
; run: %fcmp_ult_f64(-0x1.0, 0x1.0) == true
|
||||
; run: %fcmp_ult_f64(0x1.0, -0x1.0) == false
|
||||
; run: %fcmp_ult_f64(0x0.5, 0x1.0) == true
|
||||
; run: %fcmp_ult_f64(0x1.5, 0x2.9) == true
|
||||
; run: %fcmp_ult_f64(0x1.1p10, 0x1.4p1) == false
|
||||
; run: %fcmp_ult_f64(0x1.4cccccccccccdp0, 0x1.8p0) == true
|
||||
; run: %fcmp_ult_f64(0x1.b333333333333p0, 0x1.999999999999ap-2) == false
|
||||
; run: %fcmp_ult_f64(0x1.3333333333333p-1, 0x1.6666666666666p1) == true
|
||||
; run: %fcmp_ult_f64(-0x0.5, -0x1.0) == false
|
||||
; run: %fcmp_ult_f64(-0x1.5, -0x2.9) == false
|
||||
; run: %fcmp_ult_f64(-0x1.1p10, -0x1.3333333333333p-1) == true
|
||||
; run: %fcmp_ult_f64(-0x1.999999999999ap-2, -0x1.4cccccccccccdp0) == false
|
||||
; run: %fcmp_ult_f64(-0x1.8p0, -0x1.b333333333333p0) == false
|
||||
; run: %fcmp_ult_f64(-0x1.4p1, -0x1.6666666666666p1) == false
|
||||
; run: %fcmp_ult_f64(0x0.5, -0x1.0) == false
|
||||
; run: %fcmp_ult_f64(0x1.b333333333333p0, -0x1.b333333333333p0) == false
|
||||
; run: %fcmp_ult_f64(0x0.5, 0x0.5) == 0
|
||||
; run: %fcmp_ult_f64(0x1.0, 0x1.0) == 0
|
||||
; run: %fcmp_ult_f64(-0x1.0, 0x1.0) == 1
|
||||
; run: %fcmp_ult_f64(0x1.0, -0x1.0) == 0
|
||||
; run: %fcmp_ult_f64(0x0.5, 0x1.0) == 1
|
||||
; run: %fcmp_ult_f64(0x1.5, 0x2.9) == 1
|
||||
; run: %fcmp_ult_f64(0x1.1p10, 0x1.4p1) == 0
|
||||
; run: %fcmp_ult_f64(0x1.4cccccccccccdp0, 0x1.8p0) == 1
|
||||
; run: %fcmp_ult_f64(0x1.b333333333333p0, 0x1.999999999999ap-2) == 0
|
||||
; run: %fcmp_ult_f64(0x1.3333333333333p-1, 0x1.6666666666666p1) == 1
|
||||
; run: %fcmp_ult_f64(-0x0.5, -0x1.0) == 0
|
||||
; run: %fcmp_ult_f64(-0x1.5, -0x2.9) == 0
|
||||
; run: %fcmp_ult_f64(-0x1.1p10, -0x1.3333333333333p-1) == 1
|
||||
; run: %fcmp_ult_f64(-0x1.999999999999ap-2, -0x1.4cccccccccccdp0) == 0
|
||||
; run: %fcmp_ult_f64(-0x1.8p0, -0x1.b333333333333p0) == 0
|
||||
; run: %fcmp_ult_f64(-0x1.4p1, -0x1.6666666666666p1) == 0
|
||||
; run: %fcmp_ult_f64(0x0.5, -0x1.0) == 0
|
||||
; run: %fcmp_ult_f64(0x1.b333333333333p0, -0x1.b333333333333p0) == 0
|
||||
|
||||
|
||||
; Zeroes
|
||||
; run: %fcmp_ult_f64(0x0.0, 0x0.0) == false
|
||||
; run: %fcmp_ult_f64(-0x0.0, -0x0.0) == false
|
||||
; run: %fcmp_ult_f64(0x0.0, -0x0.0) == false
|
||||
; run: %fcmp_ult_f64(-0x0.0, 0x0.0) == false
|
||||
; run: %fcmp_ult_f64(0x0.0, 0x0.0) == 0
|
||||
; run: %fcmp_ult_f64(-0x0.0, -0x0.0) == 0
|
||||
; run: %fcmp_ult_f64(0x0.0, -0x0.0) == 0
|
||||
; run: %fcmp_ult_f64(-0x0.0, 0x0.0) == 0
|
||||
|
||||
; Infinities
|
||||
; run: %fcmp_ult_f64(Inf, Inf) == false
|
||||
; run: %fcmp_ult_f64(-Inf, -Inf) == false
|
||||
; run: %fcmp_ult_f64(Inf, -Inf) == false
|
||||
; run: %fcmp_ult_f64(-Inf, Inf) == true
|
||||
; run: %fcmp_ult_f64(Inf, Inf) == 0
|
||||
; run: %fcmp_ult_f64(-Inf, -Inf) == 0
|
||||
; run: %fcmp_ult_f64(Inf, -Inf) == 0
|
||||
; run: %fcmp_ult_f64(-Inf, Inf) == 1
|
||||
|
||||
; Inf/Zero
|
||||
; run: %fcmp_ult_f64(0x0.0, Inf) == true
|
||||
; run: %fcmp_ult_f64(-0x0.0, Inf) == true
|
||||
; run: %fcmp_ult_f64(0x0.0, -Inf) == false
|
||||
; run: %fcmp_ult_f64(-0x0.0, -Inf) == false
|
||||
; run: %fcmp_ult_f64(Inf, 0x0.0) == false
|
||||
; run: %fcmp_ult_f64(Inf, -0x0.0) == false
|
||||
; run: %fcmp_ult_f64(-Inf, 0x0.0) == true
|
||||
; run: %fcmp_ult_f64(-Inf, -0x0.0) == true
|
||||
; run: %fcmp_ult_f64(0x0.0, Inf) == 1
|
||||
; run: %fcmp_ult_f64(-0x0.0, Inf) == 1
|
||||
; run: %fcmp_ult_f64(0x0.0, -Inf) == 0
|
||||
; run: %fcmp_ult_f64(-0x0.0, -Inf) == 0
|
||||
; run: %fcmp_ult_f64(Inf, 0x0.0) == 0
|
||||
; run: %fcmp_ult_f64(Inf, -0x0.0) == 0
|
||||
; run: %fcmp_ult_f64(-Inf, 0x0.0) == 1
|
||||
; run: %fcmp_ult_f64(-Inf, -0x0.0) == 1
|
||||
|
||||
; Epsilon / Max / Min Positive
|
||||
; run: %fcmp_ult_f64(0x1.0p-52, 0x1.0p-52) == false
|
||||
; run: %fcmp_ult_f64(0x1.fffffffffffffp1023, 0x1.fffffffffffffp1023) == false
|
||||
; run: %fcmp_ult_f64(0x1.0p-1022, 0x1.0p-1022) == false
|
||||
; run: %fcmp_ult_f64(0x1.0p-52, 0x1.fffffffffffffp1023) == true
|
||||
; run: %fcmp_ult_f64(0x1.0p-52, 0x1.0p-1022) == false
|
||||
; run: %fcmp_ult_f64(0x1.0p-1022, 0x1.fffffffffffffp1023) == true
|
||||
; run: %fcmp_ult_f64(0x1.0p-52, 0x1.0p-52) == 0
|
||||
; run: %fcmp_ult_f64(0x1.fffffffffffffp1023, 0x1.fffffffffffffp1023) == 0
|
||||
; run: %fcmp_ult_f64(0x1.0p-1022, 0x1.0p-1022) == 0
|
||||
; run: %fcmp_ult_f64(0x1.0p-52, 0x1.fffffffffffffp1023) == 1
|
||||
; run: %fcmp_ult_f64(0x1.0p-52, 0x1.0p-1022) == 0
|
||||
; run: %fcmp_ult_f64(0x1.0p-1022, 0x1.fffffffffffffp1023) == 1
|
||||
|
||||
; Subnormals
|
||||
; run: %fcmp_ult_f64(0x0.8p-1022, -0x0.8p-1022) == false
|
||||
; run: %fcmp_ult_f64(-0x0.8p-1022, 0x0.8p-1022) == true
|
||||
; run: %fcmp_ult_f64(0x0.8p-1022, 0x0.0) == false
|
||||
; run: %fcmp_ult_f64(-0x0.8p-1022, 0x0.0) == true
|
||||
; run: %fcmp_ult_f64(0x0.8p-1022, -0x0.0) == false
|
||||
; run: %fcmp_ult_f64(-0x0.8p-1022, -0x0.0) == true
|
||||
; run: %fcmp_ult_f64(0x0.0, 0x0.8p-1022) == true
|
||||
; run: %fcmp_ult_f64(0x0.0, -0x0.8p-1022) == false
|
||||
; run: %fcmp_ult_f64(-0x0.0, 0x0.8p-1022) == true
|
||||
; run: %fcmp_ult_f64(-0x0.0, -0x0.8p-1022) == false
|
||||
; run: %fcmp_ult_f64(0x0.8p-1022, -0x0.8p-1022) == 0
|
||||
; run: %fcmp_ult_f64(-0x0.8p-1022, 0x0.8p-1022) == 1
|
||||
; run: %fcmp_ult_f64(0x0.8p-1022, 0x0.0) == 0
|
||||
; run: %fcmp_ult_f64(-0x0.8p-1022, 0x0.0) == 1
|
||||
; run: %fcmp_ult_f64(0x0.8p-1022, -0x0.0) == 0
|
||||
; run: %fcmp_ult_f64(-0x0.8p-1022, -0x0.0) == 1
|
||||
; run: %fcmp_ult_f64(0x0.0, 0x0.8p-1022) == 1
|
||||
; run: %fcmp_ult_f64(0x0.0, -0x0.8p-1022) == 0
|
||||
; run: %fcmp_ult_f64(-0x0.0, 0x0.8p-1022) == 1
|
||||
; run: %fcmp_ult_f64(-0x0.0, -0x0.8p-1022) == 0
|
||||
|
||||
; NaN's
|
||||
; run: %fcmp_ult_f64(+NaN, +NaN) == true
|
||||
; run: %fcmp_ult_f64(-NaN, -NaN) == true
|
||||
; run: %fcmp_ult_f64(+NaN, -NaN) == true
|
||||
; run: %fcmp_ult_f64(-NaN, +NaN) == true
|
||||
; run: %fcmp_ult_f64(+NaN, +NaN) == 1
|
||||
; run: %fcmp_ult_f64(-NaN, -NaN) == 1
|
||||
; run: %fcmp_ult_f64(+NaN, -NaN) == 1
|
||||
; run: %fcmp_ult_f64(-NaN, +NaN) == 1
|
||||
|
||||
; run: %fcmp_ult_f64(+NaN, -0x1.0) == true
|
||||
; run: %fcmp_ult_f64(-NaN, -0x1.0) == true
|
||||
; run: %fcmp_ult_f64(+NaN, 0x1.0) == true
|
||||
; run: %fcmp_ult_f64(-NaN, 0x1.0) == true
|
||||
; run: %fcmp_ult_f64(+NaN, -0x0.0) == true
|
||||
; run: %fcmp_ult_f64(-NaN, -0x0.0) == true
|
||||
; run: %fcmp_ult_f64(+NaN, 0x0.0) == true
|
||||
; run: %fcmp_ult_f64(-NaN, 0x0.0) == true
|
||||
; run: %fcmp_ult_f64(+NaN, -Inf) == true
|
||||
; run: %fcmp_ult_f64(-NaN, -Inf) == true
|
||||
; run: %fcmp_ult_f64(+NaN, Inf) == true
|
||||
; run: %fcmp_ult_f64(-NaN, Inf) == true
|
||||
; run: %fcmp_ult_f64(-0x0.0, +NaN) == true
|
||||
; run: %fcmp_ult_f64(-0x0.0, -NaN) == true
|
||||
; run: %fcmp_ult_f64(0x0.0, +NaN) == true
|
||||
; run: %fcmp_ult_f64(0x0.0, -NaN) == true
|
||||
; run: %fcmp_ult_f64(-Inf, +NaN) == true
|
||||
; run: %fcmp_ult_f64(-Inf, -NaN) == true
|
||||
; run: %fcmp_ult_f64(Inf, +NaN) == true
|
||||
; run: %fcmp_ult_f64(Inf, -NaN) == true
|
||||
; run: %fcmp_ult_f64(+NaN, -0x1.0) == 1
|
||||
; run: %fcmp_ult_f64(-NaN, -0x1.0) == 1
|
||||
; run: %fcmp_ult_f64(+NaN, 0x1.0) == 1
|
||||
; run: %fcmp_ult_f64(-NaN, 0x1.0) == 1
|
||||
; run: %fcmp_ult_f64(+NaN, -0x0.0) == 1
|
||||
; run: %fcmp_ult_f64(-NaN, -0x0.0) == 1
|
||||
; run: %fcmp_ult_f64(+NaN, 0x0.0) == 1
|
||||
; run: %fcmp_ult_f64(-NaN, 0x0.0) == 1
|
||||
; run: %fcmp_ult_f64(+NaN, -Inf) == 1
|
||||
; run: %fcmp_ult_f64(-NaN, -Inf) == 1
|
||||
; run: %fcmp_ult_f64(+NaN, Inf) == 1
|
||||
; run: %fcmp_ult_f64(-NaN, Inf) == 1
|
||||
; run: %fcmp_ult_f64(-0x0.0, +NaN) == 1
|
||||
; run: %fcmp_ult_f64(-0x0.0, -NaN) == 1
|
||||
; run: %fcmp_ult_f64(0x0.0, +NaN) == 1
|
||||
; run: %fcmp_ult_f64(0x0.0, -NaN) == 1
|
||||
; run: %fcmp_ult_f64(-Inf, +NaN) == 1
|
||||
; run: %fcmp_ult_f64(-Inf, -NaN) == 1
|
||||
; run: %fcmp_ult_f64(Inf, +NaN) == 1
|
||||
; run: %fcmp_ult_f64(Inf, -NaN) == 1
|
||||
|
||||
; run: %fcmp_ult_f64(+NaN:0x1, +NaN:0x1) == true
|
||||
; run: %fcmp_ult_f64(-NaN:0x1, -NaN:0x1) == true
|
||||
; run: %fcmp_ult_f64(+NaN:0x1, -NaN:0x1) == true
|
||||
; run: %fcmp_ult_f64(-NaN:0x1, +NaN:0x1) == true
|
||||
; run: %fcmp_ult_f64(+NaN:0x1, +NaN) == true
|
||||
; run: %fcmp_ult_f64(+NaN:0x1, -NaN) == true
|
||||
; run: %fcmp_ult_f64(-NaN:0x1, -NaN) == true
|
||||
; run: %fcmp_ult_f64(-NaN:0x1, +NaN) == true
|
||||
; run: %fcmp_ult_f64(+NaN:0x1, +NaN:0x1) == 1
|
||||
; run: %fcmp_ult_f64(-NaN:0x1, -NaN:0x1) == 1
|
||||
; run: %fcmp_ult_f64(+NaN:0x1, -NaN:0x1) == 1
|
||||
; run: %fcmp_ult_f64(-NaN:0x1, +NaN:0x1) == 1
|
||||
; run: %fcmp_ult_f64(+NaN:0x1, +NaN) == 1
|
||||
; run: %fcmp_ult_f64(+NaN:0x1, -NaN) == 1
|
||||
; run: %fcmp_ult_f64(-NaN:0x1, -NaN) == 1
|
||||
; run: %fcmp_ult_f64(-NaN:0x1, +NaN) == 1
|
||||
|
||||
; run: %fcmp_ult_f64(+NaN:0x800000000001, +NaN:0x800000000001) == true
|
||||
; run: %fcmp_ult_f64(-NaN:0x800000000001, -NaN:0x800000000001) == true
|
||||
; run: %fcmp_ult_f64(+NaN:0x800000000001, -NaN:0x800000000001) == true
|
||||
; run: %fcmp_ult_f64(-NaN:0x800000000001, +NaN:0x800000000001) == true
|
||||
; run: %fcmp_ult_f64(+NaN:0x800000000001, +NaN) == true
|
||||
; run: %fcmp_ult_f64(+NaN:0x800000000001, -NaN) == true
|
||||
; run: %fcmp_ult_f64(-NaN:0x800000000001, -NaN) == true
|
||||
; run: %fcmp_ult_f64(-NaN:0x800000000001, +NaN) == true
|
||||
; run: %fcmp_ult_f64(+NaN:0x800000000001, +NaN:0x800000000001) == 1
|
||||
; run: %fcmp_ult_f64(-NaN:0x800000000001, -NaN:0x800000000001) == 1
|
||||
; run: %fcmp_ult_f64(+NaN:0x800000000001, -NaN:0x800000000001) == 1
|
||||
; run: %fcmp_ult_f64(-NaN:0x800000000001, +NaN:0x800000000001) == 1
|
||||
; run: %fcmp_ult_f64(+NaN:0x800000000001, +NaN) == 1
|
||||
; run: %fcmp_ult_f64(+NaN:0x800000000001, -NaN) == 1
|
||||
; run: %fcmp_ult_f64(-NaN:0x800000000001, -NaN) == 1
|
||||
; run: %fcmp_ult_f64(-NaN:0x800000000001, +NaN) == 1
|
||||
|
||||
; sNaN's
|
||||
; run: %fcmp_ult_f64(+sNaN:0x1, +sNaN:0x1) == true
|
||||
; run: %fcmp_ult_f64(-sNaN:0x1, -sNaN:0x1) == true
|
||||
; run: %fcmp_ult_f64(+sNaN:0x1, -sNaN:0x1) == true
|
||||
; run: %fcmp_ult_f64(-sNaN:0x1, +sNaN:0x1) == true
|
||||
; run: %fcmp_ult_f64(+sNaN:0x1, +sNaN:0x1) == 1
|
||||
; run: %fcmp_ult_f64(-sNaN:0x1, -sNaN:0x1) == 1
|
||||
; run: %fcmp_ult_f64(+sNaN:0x1, -sNaN:0x1) == 1
|
||||
; run: %fcmp_ult_f64(-sNaN:0x1, +sNaN:0x1) == 1
|
||||
|
||||
; run: %fcmp_ult_f64(+sNaN:0x1, -0x1.0) == true
|
||||
; run: %fcmp_ult_f64(-sNaN:0x1, -0x1.0) == true
|
||||
; run: %fcmp_ult_f64(+sNaN:0x1, 0x1.0) == true
|
||||
; run: %fcmp_ult_f64(-sNaN:0x1, 0x1.0) == true
|
||||
; run: %fcmp_ult_f64(+sNaN:0x1, -0x0.0) == true
|
||||
; run: %fcmp_ult_f64(-sNaN:0x1, -0x0.0) == true
|
||||
; run: %fcmp_ult_f64(+sNaN:0x1, 0x0.0) == true
|
||||
; run: %fcmp_ult_f64(-sNaN:0x1, 0x0.0) == true
|
||||
; run: %fcmp_ult_f64(+sNaN:0x1, -Inf) == true
|
||||
; run: %fcmp_ult_f64(-sNaN:0x1, -Inf) == true
|
||||
; run: %fcmp_ult_f64(+sNaN:0x1, Inf) == true
|
||||
; run: %fcmp_ult_f64(-sNaN:0x1, Inf) == true
|
||||
; run: %fcmp_ult_f64(-0x0.0, +sNaN:0x1) == true
|
||||
; run: %fcmp_ult_f64(-0x0.0, -sNaN:0x1) == true
|
||||
; run: %fcmp_ult_f64(0x0.0, +sNaN:0x1) == true
|
||||
; run: %fcmp_ult_f64(0x0.0, -sNaN:0x1) == true
|
||||
; run: %fcmp_ult_f64(-Inf, +sNaN:0x1) == true
|
||||
; run: %fcmp_ult_f64(-Inf, -sNaN:0x1) == true
|
||||
; run: %fcmp_ult_f64(Inf, +sNaN:0x1) == true
|
||||
; run: %fcmp_ult_f64(Inf, -sNaN:0x1) == true
|
||||
; run: %fcmp_ult_f64(+sNaN:0x1, -0x1.0) == 1
|
||||
; run: %fcmp_ult_f64(-sNaN:0x1, -0x1.0) == 1
|
||||
; run: %fcmp_ult_f64(+sNaN:0x1, 0x1.0) == 1
|
||||
; run: %fcmp_ult_f64(-sNaN:0x1, 0x1.0) == 1
|
||||
; run: %fcmp_ult_f64(+sNaN:0x1, -0x0.0) == 1
|
||||
; run: %fcmp_ult_f64(-sNaN:0x1, -0x0.0) == 1
|
||||
; run: %fcmp_ult_f64(+sNaN:0x1, 0x0.0) == 1
|
||||
; run: %fcmp_ult_f64(-sNaN:0x1, 0x0.0) == 1
|
||||
; run: %fcmp_ult_f64(+sNaN:0x1, -Inf) == 1
|
||||
; run: %fcmp_ult_f64(-sNaN:0x1, -Inf) == 1
|
||||
; run: %fcmp_ult_f64(+sNaN:0x1, Inf) == 1
|
||||
; run: %fcmp_ult_f64(-sNaN:0x1, Inf) == 1
|
||||
; run: %fcmp_ult_f64(-0x0.0, +sNaN:0x1) == 1
|
||||
; run: %fcmp_ult_f64(-0x0.0, -sNaN:0x1) == 1
|
||||
; run: %fcmp_ult_f64(0x0.0, +sNaN:0x1) == 1
|
||||
; run: %fcmp_ult_f64(0x0.0, -sNaN:0x1) == 1
|
||||
; run: %fcmp_ult_f64(-Inf, +sNaN:0x1) == 1
|
||||
; run: %fcmp_ult_f64(-Inf, -sNaN:0x1) == 1
|
||||
; run: %fcmp_ult_f64(Inf, +sNaN:0x1) == 1
|
||||
; run: %fcmp_ult_f64(Inf, -sNaN:0x1) == 1
|
||||
|
||||
; run: %fcmp_ult_f64(+sNaN:0x1, +NaN:0x1) == true
|
||||
; run: %fcmp_ult_f64(-sNaN:0x1, -NaN:0x1) == true
|
||||
; run: %fcmp_ult_f64(+sNaN:0x1, -NaN:0x1) == true
|
||||
; run: %fcmp_ult_f64(-sNaN:0x1, +NaN:0x1) == true
|
||||
; run: %fcmp_ult_f64(+NaN:0x1, +sNaN:0x1) == true
|
||||
; run: %fcmp_ult_f64(-NaN:0x1, -sNaN:0x1) == true
|
||||
; run: %fcmp_ult_f64(-NaN:0x1, +sNaN:0x1) == true
|
||||
; run: %fcmp_ult_f64(+NaN:0x1, -sNaN:0x1) == true
|
||||
; run: %fcmp_ult_f64(+sNaN:0x1, +NaN:0x1) == 1
|
||||
; run: %fcmp_ult_f64(-sNaN:0x1, -NaN:0x1) == 1
|
||||
; run: %fcmp_ult_f64(+sNaN:0x1, -NaN:0x1) == 1
|
||||
; run: %fcmp_ult_f64(-sNaN:0x1, +NaN:0x1) == 1
|
||||
; run: %fcmp_ult_f64(+NaN:0x1, +sNaN:0x1) == 1
|
||||
; run: %fcmp_ult_f64(-NaN:0x1, -sNaN:0x1) == 1
|
||||
; run: %fcmp_ult_f64(-NaN:0x1, +sNaN:0x1) == 1
|
||||
; run: %fcmp_ult_f64(+NaN:0x1, -sNaN:0x1) == 1
|
||||
|
||||
; run: %fcmp_ult_f64(+sNaN:0x800000000001, +sNaN:0x800000000001) == true
|
||||
; run: %fcmp_ult_f64(-sNaN:0x800000000001, -sNaN:0x800000000001) == true
|
||||
; run: %fcmp_ult_f64(+sNaN:0x800000000001, -sNaN:0x800000000001) == true
|
||||
; run: %fcmp_ult_f64(-sNaN:0x800000000001, +sNaN:0x800000000001) == true
|
||||
; run: %fcmp_ult_f64(+sNaN:0x800000000001, +sNaN:0x1) == true
|
||||
; run: %fcmp_ult_f64(+sNaN:0x800000000001, -sNaN:0x1) == true
|
||||
; run: %fcmp_ult_f64(-sNaN:0x800000000001, -sNaN:0x1) == true
|
||||
; run: %fcmp_ult_f64(-sNaN:0x800000000001, +sNaN:0x1) == true
|
||||
; run: %fcmp_ult_f64(+sNaN:0x800000000001, +sNaN:0x800000000001) == 1
|
||||
; run: %fcmp_ult_f64(-sNaN:0x800000000001, -sNaN:0x800000000001) == 1
|
||||
; run: %fcmp_ult_f64(+sNaN:0x800000000001, -sNaN:0x800000000001) == 1
|
||||
; run: %fcmp_ult_f64(-sNaN:0x800000000001, +sNaN:0x800000000001) == 1
|
||||
; run: %fcmp_ult_f64(+sNaN:0x800000000001, +sNaN:0x1) == 1
|
||||
; run: %fcmp_ult_f64(+sNaN:0x800000000001, -sNaN:0x1) == 1
|
||||
; run: %fcmp_ult_f64(-sNaN:0x800000000001, -sNaN:0x1) == 1
|
||||
; run: %fcmp_ult_f64(-sNaN:0x800000000001, +sNaN:0x1) == 1
|
||||
|
||||
@@ -5,316 +5,316 @@ target s390x
|
||||
target riscv64
|
||||
|
||||
|
||||
function %fcmp_uno_f32(f32, f32) -> b1 {
|
||||
function %fcmp_uno_f32(f32, f32) -> i8 {
|
||||
block0(v0: f32, v1: f32):
|
||||
v2 = fcmp uno v0, v1
|
||||
return v2
|
||||
}
|
||||
; run: %fcmp_uno_f32(0x0.5, 0x0.5) == false
|
||||
; run: %fcmp_uno_f32(0x1.0, 0x1.0) == false
|
||||
; run: %fcmp_uno_f32(-0x1.0, 0x1.0) == false
|
||||
; run: %fcmp_uno_f32(0x1.0, -0x1.0) == false
|
||||
; run: %fcmp_uno_f32(0x0.5, 0x1.0) == false
|
||||
; run: %fcmp_uno_f32(0x1.5, 0x2.9) == false
|
||||
; run: %fcmp_uno_f32(0x1.1p10, 0x1.4p1) == false
|
||||
; run: %fcmp_uno_f32(0x1.4cccccp0, 0x1.8p0) == false
|
||||
; run: %fcmp_uno_f32(0x1.b33334p0, 0x1.99999ap-2) == false
|
||||
; run: %fcmp_uno_f32(0x1.333334p-1, 0x1.666666p1) == false
|
||||
; run: %fcmp_uno_f32(-0x0.5, -0x1.0) == false
|
||||
; run: %fcmp_uno_f32(-0x1.5, -0x2.9) == false
|
||||
; run: %fcmp_uno_f32(-0x1.1p10, -0x1.333334p-1) == false
|
||||
; run: %fcmp_uno_f32(-0x1.99999ap-2, -0x1.4cccccp0) == false
|
||||
; run: %fcmp_uno_f32(-0x1.8p0, -0x1.b33334p0) == false
|
||||
; run: %fcmp_uno_f32(-0x1.4p1, -0x1.666666p1) == false
|
||||
; run: %fcmp_uno_f32(0x0.5, -0x1.0) == false
|
||||
; run: %fcmp_uno_f32(0x1.b33334p0, -0x1.b33334p0) == false
|
||||
; run: %fcmp_uno_f32(0x0.5, 0x0.5) == 0
|
||||
; run: %fcmp_uno_f32(0x1.0, 0x1.0) == 0
|
||||
; run: %fcmp_uno_f32(-0x1.0, 0x1.0) == 0
|
||||
; run: %fcmp_uno_f32(0x1.0, -0x1.0) == 0
|
||||
; run: %fcmp_uno_f32(0x0.5, 0x1.0) == 0
|
||||
; run: %fcmp_uno_f32(0x1.5, 0x2.9) == 0
|
||||
; run: %fcmp_uno_f32(0x1.1p10, 0x1.4p1) == 0
|
||||
; run: %fcmp_uno_f32(0x1.4cccccp0, 0x1.8p0) == 0
|
||||
; run: %fcmp_uno_f32(0x1.b33334p0, 0x1.99999ap-2) == 0
|
||||
; run: %fcmp_uno_f32(0x1.333334p-1, 0x1.666666p1) == 0
|
||||
; run: %fcmp_uno_f32(-0x0.5, -0x1.0) == 0
|
||||
; run: %fcmp_uno_f32(-0x1.5, -0x2.9) == 0
|
||||
; run: %fcmp_uno_f32(-0x1.1p10, -0x1.333334p-1) == 0
|
||||
; run: %fcmp_uno_f32(-0x1.99999ap-2, -0x1.4cccccp0) == 0
|
||||
; run: %fcmp_uno_f32(-0x1.8p0, -0x1.b33334p0) == 0
|
||||
; run: %fcmp_uno_f32(-0x1.4p1, -0x1.666666p1) == 0
|
||||
; run: %fcmp_uno_f32(0x0.5, -0x1.0) == 0
|
||||
; run: %fcmp_uno_f32(0x1.b33334p0, -0x1.b33334p0) == 0
|
||||
|
||||
; Zeroes
|
||||
; run: %fcmp_uno_f32(0x0.0, 0x0.0) == false
|
||||
; run: %fcmp_uno_f32(-0x0.0, -0x0.0) == false
|
||||
; run: %fcmp_uno_f32(0x0.0, -0x0.0) == false
|
||||
; run: %fcmp_uno_f32(-0x0.0, 0x0.0) == false
|
||||
; run: %fcmp_uno_f32(0x0.0, 0x0.0) == 0
|
||||
; run: %fcmp_uno_f32(-0x0.0, -0x0.0) == 0
|
||||
; run: %fcmp_uno_f32(0x0.0, -0x0.0) == 0
|
||||
; run: %fcmp_uno_f32(-0x0.0, 0x0.0) == 0
|
||||
|
||||
; Infinities
|
||||
; run: %fcmp_uno_f32(Inf, Inf) == false
|
||||
; run: %fcmp_uno_f32(-Inf, -Inf) == false
|
||||
; run: %fcmp_uno_f32(Inf, -Inf) == false
|
||||
; run: %fcmp_uno_f32(-Inf, Inf) == false
|
||||
; run: %fcmp_uno_f32(Inf, Inf) == 0
|
||||
; run: %fcmp_uno_f32(-Inf, -Inf) == 0
|
||||
; run: %fcmp_uno_f32(Inf, -Inf) == 0
|
||||
; run: %fcmp_uno_f32(-Inf, Inf) == 0
|
||||
|
||||
; Inf/Zero
|
||||
; run: %fcmp_uno_f32(0x0.0, Inf) == false
|
||||
; run: %fcmp_uno_f32(-0x0.0, Inf) == false
|
||||
; run: %fcmp_uno_f32(0x0.0, -Inf) == false
|
||||
; run: %fcmp_uno_f32(-0x0.0, -Inf) == false
|
||||
; run: %fcmp_uno_f32(Inf, 0x0.0) == false
|
||||
; run: %fcmp_uno_f32(Inf, -0x0.0) == false
|
||||
; run: %fcmp_uno_f32(-Inf, 0x0.0) == false
|
||||
; run: %fcmp_uno_f32(-Inf, -0x0.0) == false
|
||||
; run: %fcmp_uno_f32(0x0.0, Inf) == 0
|
||||
; run: %fcmp_uno_f32(-0x0.0, Inf) == 0
|
||||
; run: %fcmp_uno_f32(0x0.0, -Inf) == 0
|
||||
; run: %fcmp_uno_f32(-0x0.0, -Inf) == 0
|
||||
; run: %fcmp_uno_f32(Inf, 0x0.0) == 0
|
||||
; run: %fcmp_uno_f32(Inf, -0x0.0) == 0
|
||||
; run: %fcmp_uno_f32(-Inf, 0x0.0) == 0
|
||||
; run: %fcmp_uno_f32(-Inf, -0x0.0) == 0
|
||||
|
||||
; Epsilon / Max / Min Positive
|
||||
; run: %fcmp_uno_f32(0x1.0p-23, 0x1.0p-23) == false
|
||||
; run: %fcmp_uno_f32(0x1.fffffep127, 0x1.fffffep127) == false
|
||||
; run: %fcmp_uno_f32(0x1.0p-126, 0x1.0p-126) == false
|
||||
; run: %fcmp_uno_f32(0x1.0p-23, 0x1.fffffep127) == false
|
||||
; run: %fcmp_uno_f32(0x1.0p-23, 0x1.0p-126) == false
|
||||
; run: %fcmp_uno_f32(0x1.0p-126, 0x1.fffffep127) == false
|
||||
; run: %fcmp_uno_f32(0x1.0p-23, 0x1.0p-23) == 0
|
||||
; run: %fcmp_uno_f32(0x1.fffffep127, 0x1.fffffep127) == 0
|
||||
; run: %fcmp_uno_f32(0x1.0p-126, 0x1.0p-126) == 0
|
||||
; run: %fcmp_uno_f32(0x1.0p-23, 0x1.fffffep127) == 0
|
||||
; run: %fcmp_uno_f32(0x1.0p-23, 0x1.0p-126) == 0
|
||||
; run: %fcmp_uno_f32(0x1.0p-126, 0x1.fffffep127) == 0
|
||||
|
||||
; Subnormals
|
||||
; run: %fcmp_uno_f32(0x0.800002p-126, -0x0.800002p-126) == false
|
||||
; run: %fcmp_uno_f32(-0x0.800002p-126, 0x0.800002p-126) == false
|
||||
; run: %fcmp_uno_f32(0x0.800002p-126, 0x0.0) == false
|
||||
; run: %fcmp_uno_f32(-0x0.800002p-126, 0x0.0) == false
|
||||
; run: %fcmp_uno_f32(0x0.800002p-126, -0x0.0) == false
|
||||
; run: %fcmp_uno_f32(-0x0.800002p-126, -0x0.0) == false
|
||||
; run: %fcmp_uno_f32(0x0.0, 0x0.800002p-126) == false
|
||||
; run: %fcmp_uno_f32(0x0.0, -0x0.800002p-126) == false
|
||||
; run: %fcmp_uno_f32(-0x0.0, 0x0.800002p-126) == false
|
||||
; run: %fcmp_uno_f32(-0x0.0, -0x0.800002p-126) == false
|
||||
; run: %fcmp_uno_f32(0x0.800002p-126, -0x0.800002p-126) == 0
|
||||
; run: %fcmp_uno_f32(-0x0.800002p-126, 0x0.800002p-126) == 0
|
||||
; run: %fcmp_uno_f32(0x0.800002p-126, 0x0.0) == 0
|
||||
; run: %fcmp_uno_f32(-0x0.800002p-126, 0x0.0) == 0
|
||||
; run: %fcmp_uno_f32(0x0.800002p-126, -0x0.0) == 0
|
||||
; run: %fcmp_uno_f32(-0x0.800002p-126, -0x0.0) == 0
|
||||
; run: %fcmp_uno_f32(0x0.0, 0x0.800002p-126) == 0
|
||||
; run: %fcmp_uno_f32(0x0.0, -0x0.800002p-126) == 0
|
||||
; run: %fcmp_uno_f32(-0x0.0, 0x0.800002p-126) == 0
|
||||
; run: %fcmp_uno_f32(-0x0.0, -0x0.800002p-126) == 0
|
||||
|
||||
; NaN's
|
||||
; run: %fcmp_uno_f32(+NaN, +NaN) == true
|
||||
; run: %fcmp_uno_f32(-NaN, -NaN) == true
|
||||
; run: %fcmp_uno_f32(+NaN, -NaN) == true
|
||||
; run: %fcmp_uno_f32(-NaN, +NaN) == true
|
||||
; run: %fcmp_uno_f32(+NaN, +NaN) == 1
|
||||
; run: %fcmp_uno_f32(-NaN, -NaN) == 1
|
||||
; run: %fcmp_uno_f32(+NaN, -NaN) == 1
|
||||
; run: %fcmp_uno_f32(-NaN, +NaN) == 1
|
||||
|
||||
; run: %fcmp_uno_f32(+NaN, -0x1.0) == true
|
||||
; run: %fcmp_uno_f32(-NaN, -0x1.0) == true
|
||||
; run: %fcmp_uno_f32(+NaN, 0x1.0) == true
|
||||
; run: %fcmp_uno_f32(-NaN, 0x1.0) == true
|
||||
; run: %fcmp_uno_f32(+NaN, -0x0.0) == true
|
||||
; run: %fcmp_uno_f32(-NaN, -0x0.0) == true
|
||||
; run: %fcmp_uno_f32(+NaN, 0x0.0) == true
|
||||
; run: %fcmp_uno_f32(-NaN, 0x0.0) == true
|
||||
; run: %fcmp_uno_f32(+NaN, -Inf) == true
|
||||
; run: %fcmp_uno_f32(-NaN, -Inf) == true
|
||||
; run: %fcmp_uno_f32(+NaN, Inf) == true
|
||||
; run: %fcmp_uno_f32(-NaN, Inf) == true
|
||||
; run: %fcmp_uno_f32(-0x0.0, +NaN) == true
|
||||
; run: %fcmp_uno_f32(-0x0.0, -NaN) == true
|
||||
; run: %fcmp_uno_f32(0x0.0, +NaN) == true
|
||||
; run: %fcmp_uno_f32(0x0.0, -NaN) == true
|
||||
; run: %fcmp_uno_f32(-Inf, +NaN) == true
|
||||
; run: %fcmp_uno_f32(-Inf, -NaN) == true
|
||||
; run: %fcmp_uno_f32(Inf, +NaN) == true
|
||||
; run: %fcmp_uno_f32(Inf, -NaN) == true
|
||||
; run: %fcmp_uno_f32(+NaN, -0x1.0) == 1
|
||||
; run: %fcmp_uno_f32(-NaN, -0x1.0) == 1
|
||||
; run: %fcmp_uno_f32(+NaN, 0x1.0) == 1
|
||||
; run: %fcmp_uno_f32(-NaN, 0x1.0) == 1
|
||||
; run: %fcmp_uno_f32(+NaN, -0x0.0) == 1
|
||||
; run: %fcmp_uno_f32(-NaN, -0x0.0) == 1
|
||||
; run: %fcmp_uno_f32(+NaN, 0x0.0) == 1
|
||||
; run: %fcmp_uno_f32(-NaN, 0x0.0) == 1
|
||||
; run: %fcmp_uno_f32(+NaN, -Inf) == 1
|
||||
; run: %fcmp_uno_f32(-NaN, -Inf) == 1
|
||||
; run: %fcmp_uno_f32(+NaN, Inf) == 1
|
||||
; run: %fcmp_uno_f32(-NaN, Inf) == 1
|
||||
; run: %fcmp_uno_f32(-0x0.0, +NaN) == 1
|
||||
; run: %fcmp_uno_f32(-0x0.0, -NaN) == 1
|
||||
; run: %fcmp_uno_f32(0x0.0, +NaN) == 1
|
||||
; run: %fcmp_uno_f32(0x0.0, -NaN) == 1
|
||||
; run: %fcmp_uno_f32(-Inf, +NaN) == 1
|
||||
; run: %fcmp_uno_f32(-Inf, -NaN) == 1
|
||||
; run: %fcmp_uno_f32(Inf, +NaN) == 1
|
||||
; run: %fcmp_uno_f32(Inf, -NaN) == 1
|
||||
|
||||
; run: %fcmp_uno_f32(+NaN:0x1, +NaN:0x1) == true
|
||||
; run: %fcmp_uno_f32(-NaN:0x1, -NaN:0x1) == true
|
||||
; run: %fcmp_uno_f32(+NaN:0x1, -NaN:0x1) == true
|
||||
; run: %fcmp_uno_f32(-NaN:0x1, +NaN:0x1) == true
|
||||
; run: %fcmp_uno_f32(+NaN:0x1, +NaN) == true
|
||||
; run: %fcmp_uno_f32(+NaN:0x1, -NaN) == true
|
||||
; run: %fcmp_uno_f32(-NaN:0x1, -NaN) == true
|
||||
; run: %fcmp_uno_f32(-NaN:0x1, +NaN) == true
|
||||
; run: %fcmp_uno_f32(+NaN:0x1, +NaN:0x1) == 1
|
||||
; run: %fcmp_uno_f32(-NaN:0x1, -NaN:0x1) == 1
|
||||
; run: %fcmp_uno_f32(+NaN:0x1, -NaN:0x1) == 1
|
||||
; run: %fcmp_uno_f32(-NaN:0x1, +NaN:0x1) == 1
|
||||
; run: %fcmp_uno_f32(+NaN:0x1, +NaN) == 1
|
||||
; run: %fcmp_uno_f32(+NaN:0x1, -NaN) == 1
|
||||
; run: %fcmp_uno_f32(-NaN:0x1, -NaN) == 1
|
||||
; run: %fcmp_uno_f32(-NaN:0x1, +NaN) == 1
|
||||
|
||||
; run: %fcmp_uno_f32(+NaN:0x80001, +NaN:0x80001) == true
|
||||
; run: %fcmp_uno_f32(-NaN:0x80001, -NaN:0x80001) == true
|
||||
; run: %fcmp_uno_f32(+NaN:0x80001, -NaN:0x80001) == true
|
||||
; run: %fcmp_uno_f32(-NaN:0x80001, +NaN:0x80001) == true
|
||||
; run: %fcmp_uno_f32(+NaN:0x80001, +NaN) == true
|
||||
; run: %fcmp_uno_f32(+NaN:0x80001, -NaN) == true
|
||||
; run: %fcmp_uno_f32(-NaN:0x80001, -NaN) == true
|
||||
; run: %fcmp_uno_f32(-NaN:0x80001, +NaN) == true
|
||||
; run: %fcmp_uno_f32(+NaN:0x80001, +NaN:0x80001) == 1
|
||||
; run: %fcmp_uno_f32(-NaN:0x80001, -NaN:0x80001) == 1
|
||||
; run: %fcmp_uno_f32(+NaN:0x80001, -NaN:0x80001) == 1
|
||||
; run: %fcmp_uno_f32(-NaN:0x80001, +NaN:0x80001) == 1
|
||||
; run: %fcmp_uno_f32(+NaN:0x80001, +NaN) == 1
|
||||
; run: %fcmp_uno_f32(+NaN:0x80001, -NaN) == 1
|
||||
; run: %fcmp_uno_f32(-NaN:0x80001, -NaN) == 1
|
||||
; run: %fcmp_uno_f32(-NaN:0x80001, +NaN) == 1
|
||||
|
||||
; sNaN's
|
||||
; run: %fcmp_uno_f32(+sNaN:0x1, +sNaN:0x1) == true
|
||||
; run: %fcmp_uno_f32(-sNaN:0x1, -sNaN:0x1) == true
|
||||
; run: %fcmp_uno_f32(+sNaN:0x1, -sNaN:0x1) == true
|
||||
; run: %fcmp_uno_f32(-sNaN:0x1, +sNaN:0x1) == true
|
||||
; run: %fcmp_uno_f32(+sNaN:0x1, +sNaN:0x1) == 1
|
||||
; run: %fcmp_uno_f32(-sNaN:0x1, -sNaN:0x1) == 1
|
||||
; run: %fcmp_uno_f32(+sNaN:0x1, -sNaN:0x1) == 1
|
||||
; run: %fcmp_uno_f32(-sNaN:0x1, +sNaN:0x1) == 1
|
||||
|
||||
; run: %fcmp_uno_f32(+sNaN:0x1, -0x1.0) == true
|
||||
; run: %fcmp_uno_f32(-sNaN:0x1, -0x1.0) == true
|
||||
; run: %fcmp_uno_f32(+sNaN:0x1, 0x1.0) == true
|
||||
; run: %fcmp_uno_f32(-sNaN:0x1, 0x1.0) == true
|
||||
; run: %fcmp_uno_f32(+sNaN:0x1, -0x0.0) == true
|
||||
; run: %fcmp_uno_f32(-sNaN:0x1, -0x0.0) == true
|
||||
; run: %fcmp_uno_f32(+sNaN:0x1, 0x0.0) == true
|
||||
; run: %fcmp_uno_f32(-sNaN:0x1, 0x0.0) == true
|
||||
; run: %fcmp_uno_f32(+sNaN:0x1, -Inf) == true
|
||||
; run: %fcmp_uno_f32(-sNaN:0x1, -Inf) == true
|
||||
; run: %fcmp_uno_f32(+sNaN:0x1, Inf) == true
|
||||
; run: %fcmp_uno_f32(-sNaN:0x1, Inf) == true
|
||||
; run: %fcmp_uno_f32(-0x0.0, +sNaN:0x1) == true
|
||||
; run: %fcmp_uno_f32(-0x0.0, -sNaN:0x1) == true
|
||||
; run: %fcmp_uno_f32(0x0.0, +sNaN:0x1) == true
|
||||
; run: %fcmp_uno_f32(0x0.0, -sNaN:0x1) == true
|
||||
; run: %fcmp_uno_f32(-Inf, +sNaN:0x1) == true
|
||||
; run: %fcmp_uno_f32(-Inf, -sNaN:0x1) == true
|
||||
; run: %fcmp_uno_f32(Inf, +sNaN:0x1) == true
|
||||
; run: %fcmp_uno_f32(Inf, -sNaN:0x1) == true
|
||||
; run: %fcmp_uno_f32(+sNaN:0x1, -0x1.0) == 1
|
||||
; run: %fcmp_uno_f32(-sNaN:0x1, -0x1.0) == 1
|
||||
; run: %fcmp_uno_f32(+sNaN:0x1, 0x1.0) == 1
|
||||
; run: %fcmp_uno_f32(-sNaN:0x1, 0x1.0) == 1
|
||||
; run: %fcmp_uno_f32(+sNaN:0x1, -0x0.0) == 1
|
||||
; run: %fcmp_uno_f32(-sNaN:0x1, -0x0.0) == 1
|
||||
; run: %fcmp_uno_f32(+sNaN:0x1, 0x0.0) == 1
|
||||
; run: %fcmp_uno_f32(-sNaN:0x1, 0x0.0) == 1
|
||||
; run: %fcmp_uno_f32(+sNaN:0x1, -Inf) == 1
|
||||
; run: %fcmp_uno_f32(-sNaN:0x1, -Inf) == 1
|
||||
; run: %fcmp_uno_f32(+sNaN:0x1, Inf) == 1
|
||||
; run: %fcmp_uno_f32(-sNaN:0x1, Inf) == 1
|
||||
; run: %fcmp_uno_f32(-0x0.0, +sNaN:0x1) == 1
|
||||
; run: %fcmp_uno_f32(-0x0.0, -sNaN:0x1) == 1
|
||||
; run: %fcmp_uno_f32(0x0.0, +sNaN:0x1) == 1
|
||||
; run: %fcmp_uno_f32(0x0.0, -sNaN:0x1) == 1
|
||||
; run: %fcmp_uno_f32(-Inf, +sNaN:0x1) == 1
|
||||
; run: %fcmp_uno_f32(-Inf, -sNaN:0x1) == 1
|
||||
; run: %fcmp_uno_f32(Inf, +sNaN:0x1) == 1
|
||||
; run: %fcmp_uno_f32(Inf, -sNaN:0x1) == 1
|
||||
|
||||
; run: %fcmp_uno_f32(+sNaN:0x1, +NaN:0x1) == true
|
||||
; run: %fcmp_uno_f32(-sNaN:0x1, -NaN:0x1) == true
|
||||
; run: %fcmp_uno_f32(+sNaN:0x1, -NaN:0x1) == true
|
||||
; run: %fcmp_uno_f32(-sNaN:0x1, +NaN:0x1) == true
|
||||
; run: %fcmp_uno_f32(+NaN:0x1, +sNaN:0x1) == true
|
||||
; run: %fcmp_uno_f32(-NaN:0x1, -sNaN:0x1) == true
|
||||
; run: %fcmp_uno_f32(-NaN:0x1, +sNaN:0x1) == true
|
||||
; run: %fcmp_uno_f32(+NaN:0x1, -sNaN:0x1) == true
|
||||
; run: %fcmp_uno_f32(+sNaN:0x1, +NaN:0x1) == 1
|
||||
; run: %fcmp_uno_f32(-sNaN:0x1, -NaN:0x1) == 1
|
||||
; run: %fcmp_uno_f32(+sNaN:0x1, -NaN:0x1) == 1
|
||||
; run: %fcmp_uno_f32(-sNaN:0x1, +NaN:0x1) == 1
|
||||
; run: %fcmp_uno_f32(+NaN:0x1, +sNaN:0x1) == 1
|
||||
; run: %fcmp_uno_f32(-NaN:0x1, -sNaN:0x1) == 1
|
||||
; run: %fcmp_uno_f32(-NaN:0x1, +sNaN:0x1) == 1
|
||||
; run: %fcmp_uno_f32(+NaN:0x1, -sNaN:0x1) == 1
|
||||
|
||||
; run: %fcmp_uno_f32(+sNaN:0x80001, +sNaN:0x80001) == true
|
||||
; run: %fcmp_uno_f32(-sNaN:0x80001, -sNaN:0x80001) == true
|
||||
; run: %fcmp_uno_f32(+sNaN:0x80001, -sNaN:0x80001) == true
|
||||
; run: %fcmp_uno_f32(-sNaN:0x80001, +sNaN:0x80001) == true
|
||||
; run: %fcmp_uno_f32(+sNaN:0x80001, +sNaN:0x1) == true
|
||||
; run: %fcmp_uno_f32(+sNaN:0x80001, -sNaN:0x1) == true
|
||||
; run: %fcmp_uno_f32(-sNaN:0x80001, -sNaN:0x1) == true
|
||||
; run: %fcmp_uno_f32(-sNaN:0x80001, +sNaN:0x1) == true
|
||||
; run: %fcmp_uno_f32(+sNaN:0x80001, +sNaN:0x80001) == 1
|
||||
; run: %fcmp_uno_f32(-sNaN:0x80001, -sNaN:0x80001) == 1
|
||||
; run: %fcmp_uno_f32(+sNaN:0x80001, -sNaN:0x80001) == 1
|
||||
; run: %fcmp_uno_f32(-sNaN:0x80001, +sNaN:0x80001) == 1
|
||||
; run: %fcmp_uno_f32(+sNaN:0x80001, +sNaN:0x1) == 1
|
||||
; run: %fcmp_uno_f32(+sNaN:0x80001, -sNaN:0x1) == 1
|
||||
; run: %fcmp_uno_f32(-sNaN:0x80001, -sNaN:0x1) == 1
|
||||
; run: %fcmp_uno_f32(-sNaN:0x80001, +sNaN:0x1) == 1
|
||||
|
||||
|
||||
function %fcmp_uno_f64(f64, f64) -> b1 {
|
||||
function %fcmp_uno_f64(f64, f64) -> i8 {
|
||||
block0(v0: f64, v1: f64):
|
||||
v2 = fcmp uno v0, v1
|
||||
return v2
|
||||
}
|
||||
; run: %fcmp_uno_f64(0x0.5, 0x0.5) == false
|
||||
; run: %fcmp_uno_f64(0x1.0, 0x1.0) == false
|
||||
; run: %fcmp_uno_f64(-0x1.0, 0x1.0) == false
|
||||
; run: %fcmp_uno_f64(0x1.0, -0x1.0) == false
|
||||
; run: %fcmp_uno_f64(0x0.5, 0x1.0) == false
|
||||
; run: %fcmp_uno_f64(0x1.5, 0x2.9) == false
|
||||
; run: %fcmp_uno_f64(0x1.1p10, 0x1.4p1) == false
|
||||
; run: %fcmp_uno_f64(0x1.4cccccccccccdp0, 0x1.8p0) == false
|
||||
; run: %fcmp_uno_f64(0x1.b333333333333p0, 0x1.999999999999ap-2) == false
|
||||
; run: %fcmp_uno_f64(0x1.3333333333333p-1, 0x1.6666666666666p1) == false
|
||||
; run: %fcmp_uno_f64(-0x0.5, -0x1.0) == false
|
||||
; run: %fcmp_uno_f64(-0x1.5, -0x2.9) == false
|
||||
; run: %fcmp_uno_f64(-0x1.1p10, -0x1.3333333333333p-1) == false
|
||||
; run: %fcmp_uno_f64(-0x1.999999999999ap-2, -0x1.4cccccccccccdp0) == false
|
||||
; run: %fcmp_uno_f64(-0x1.8p0, -0x1.b333333333333p0) == false
|
||||
; run: %fcmp_uno_f64(-0x1.4p1, -0x1.6666666666666p1) == false
|
||||
; run: %fcmp_uno_f64(0x0.5, -0x1.0) == false
|
||||
; run: %fcmp_uno_f64(0x1.b333333333333p0, -0x1.b333333333333p0) == false
|
||||
; run: %fcmp_uno_f64(0x0.5, 0x0.5) == 0
|
||||
; run: %fcmp_uno_f64(0x1.0, 0x1.0) == 0
|
||||
; run: %fcmp_uno_f64(-0x1.0, 0x1.0) == 0
|
||||
; run: %fcmp_uno_f64(0x1.0, -0x1.0) == 0
|
||||
; run: %fcmp_uno_f64(0x0.5, 0x1.0) == 0
|
||||
; run: %fcmp_uno_f64(0x1.5, 0x2.9) == 0
|
||||
; run: %fcmp_uno_f64(0x1.1p10, 0x1.4p1) == 0
|
||||
; run: %fcmp_uno_f64(0x1.4cccccccccccdp0, 0x1.8p0) == 0
|
||||
; run: %fcmp_uno_f64(0x1.b333333333333p0, 0x1.999999999999ap-2) == 0
|
||||
; run: %fcmp_uno_f64(0x1.3333333333333p-1, 0x1.6666666666666p1) == 0
|
||||
; run: %fcmp_uno_f64(-0x0.5, -0x1.0) == 0
|
||||
; run: %fcmp_uno_f64(-0x1.5, -0x2.9) == 0
|
||||
; run: %fcmp_uno_f64(-0x1.1p10, -0x1.3333333333333p-1) == 0
|
||||
; run: %fcmp_uno_f64(-0x1.999999999999ap-2, -0x1.4cccccccccccdp0) == 0
|
||||
; run: %fcmp_uno_f64(-0x1.8p0, -0x1.b333333333333p0) == 0
|
||||
; run: %fcmp_uno_f64(-0x1.4p1, -0x1.6666666666666p1) == 0
|
||||
; run: %fcmp_uno_f64(0x0.5, -0x1.0) == 0
|
||||
; run: %fcmp_uno_f64(0x1.b333333333333p0, -0x1.b333333333333p0) == 0
|
||||
|
||||
|
||||
; Zeroes
|
||||
; run: %fcmp_uno_f64(0x0.0, 0x0.0) == false
|
||||
; run: %fcmp_uno_f64(-0x0.0, -0x0.0) == false
|
||||
; run: %fcmp_uno_f64(0x0.0, -0x0.0) == false
|
||||
; run: %fcmp_uno_f64(-0x0.0, 0x0.0) == false
|
||||
; run: %fcmp_uno_f64(0x0.0, 0x0.0) == 0
|
||||
; run: %fcmp_uno_f64(-0x0.0, -0x0.0) == 0
|
||||
; run: %fcmp_uno_f64(0x0.0, -0x0.0) == 0
|
||||
; run: %fcmp_uno_f64(-0x0.0, 0x0.0) == 0
|
||||
|
||||
; Infinities
|
||||
; run: %fcmp_uno_f64(Inf, Inf) == false
|
||||
; run: %fcmp_uno_f64(-Inf, -Inf) == false
|
||||
; run: %fcmp_uno_f64(Inf, -Inf) == false
|
||||
; run: %fcmp_uno_f64(-Inf, Inf) == false
|
||||
; run: %fcmp_uno_f64(Inf, Inf) == 0
|
||||
; run: %fcmp_uno_f64(-Inf, -Inf) == 0
|
||||
; run: %fcmp_uno_f64(Inf, -Inf) == 0
|
||||
; run: %fcmp_uno_f64(-Inf, Inf) == 0
|
||||
|
||||
; Inf/Zero
|
||||
; run: %fcmp_uno_f64(0x0.0, Inf) == false
|
||||
; run: %fcmp_uno_f64(-0x0.0, Inf) == false
|
||||
; run: %fcmp_uno_f64(0x0.0, -Inf) == false
|
||||
; run: %fcmp_uno_f64(-0x0.0, -Inf) == false
|
||||
; run: %fcmp_uno_f64(Inf, 0x0.0) == false
|
||||
; run: %fcmp_uno_f64(Inf, -0x0.0) == false
|
||||
; run: %fcmp_uno_f64(-Inf, 0x0.0) == false
|
||||
; run: %fcmp_uno_f64(-Inf, -0x0.0) == false
|
||||
; run: %fcmp_uno_f64(0x0.0, Inf) == 0
|
||||
; run: %fcmp_uno_f64(-0x0.0, Inf) == 0
|
||||
; run: %fcmp_uno_f64(0x0.0, -Inf) == 0
|
||||
; run: %fcmp_uno_f64(-0x0.0, -Inf) == 0
|
||||
; run: %fcmp_uno_f64(Inf, 0x0.0) == 0
|
||||
; run: %fcmp_uno_f64(Inf, -0x0.0) == 0
|
||||
; run: %fcmp_uno_f64(-Inf, 0x0.0) == 0
|
||||
; run: %fcmp_uno_f64(-Inf, -0x0.0) == 0
|
||||
|
||||
; Epsilon / Max / Min Positive
|
||||
; run: %fcmp_uno_f64(0x1.0p-52, 0x1.0p-52) == false
|
||||
; run: %fcmp_uno_f64(0x1.fffffffffffffp1023, 0x1.fffffffffffffp1023) == false
|
||||
; run: %fcmp_uno_f64(0x1.0p-1022, 0x1.0p-1022) == false
|
||||
; run: %fcmp_uno_f64(0x1.0p-52, 0x1.fffffffffffffp1023) == false
|
||||
; run: %fcmp_uno_f64(0x1.0p-52, 0x1.0p-1022) == false
|
||||
; run: %fcmp_uno_f64(0x1.0p-1022, 0x1.fffffffffffffp1023) == false
|
||||
; run: %fcmp_uno_f64(0x1.0p-52, 0x1.0p-52) == 0
|
||||
; run: %fcmp_uno_f64(0x1.fffffffffffffp1023, 0x1.fffffffffffffp1023) == 0
|
||||
; run: %fcmp_uno_f64(0x1.0p-1022, 0x1.0p-1022) == 0
|
||||
; run: %fcmp_uno_f64(0x1.0p-52, 0x1.fffffffffffffp1023) == 0
|
||||
; run: %fcmp_uno_f64(0x1.0p-52, 0x1.0p-1022) == 0
|
||||
; run: %fcmp_uno_f64(0x1.0p-1022, 0x1.fffffffffffffp1023) == 0
|
||||
|
||||
; Subnormals
|
||||
; run: %fcmp_uno_f64(0x0.8p-1022, -0x0.8p-1022) == false
|
||||
; run: %fcmp_uno_f64(-0x0.8p-1022, 0x0.8p-1022) == false
|
||||
; run: %fcmp_uno_f64(0x0.8p-1022, 0x0.0) == false
|
||||
; run: %fcmp_uno_f64(-0x0.8p-1022, 0x0.0) == false
|
||||
; run: %fcmp_uno_f64(0x0.8p-1022, -0x0.0) == false
|
||||
; run: %fcmp_uno_f64(-0x0.8p-1022, -0x0.0) == false
|
||||
; run: %fcmp_uno_f64(0x0.0, 0x0.8p-1022) == false
|
||||
; run: %fcmp_uno_f64(0x0.0, -0x0.8p-1022) == false
|
||||
; run: %fcmp_uno_f64(-0x0.0, 0x0.8p-1022) == false
|
||||
; run: %fcmp_uno_f64(-0x0.0, -0x0.8p-1022) == false
|
||||
; run: %fcmp_uno_f64(0x0.8p-1022, -0x0.8p-1022) == 0
|
||||
; run: %fcmp_uno_f64(-0x0.8p-1022, 0x0.8p-1022) == 0
|
||||
; run: %fcmp_uno_f64(0x0.8p-1022, 0x0.0) == 0
|
||||
; run: %fcmp_uno_f64(-0x0.8p-1022, 0x0.0) == 0
|
||||
; run: %fcmp_uno_f64(0x0.8p-1022, -0x0.0) == 0
|
||||
; run: %fcmp_uno_f64(-0x0.8p-1022, -0x0.0) == 0
|
||||
; run: %fcmp_uno_f64(0x0.0, 0x0.8p-1022) == 0
|
||||
; run: %fcmp_uno_f64(0x0.0, -0x0.8p-1022) == 0
|
||||
; run: %fcmp_uno_f64(-0x0.0, 0x0.8p-1022) == 0
|
||||
; run: %fcmp_uno_f64(-0x0.0, -0x0.8p-1022) == 0
|
||||
|
||||
; NaN's
|
||||
; run: %fcmp_uno_f64(+NaN, +NaN) == true
|
||||
; run: %fcmp_uno_f64(-NaN, -NaN) == true
|
||||
; run: %fcmp_uno_f64(+NaN, -NaN) == true
|
||||
; run: %fcmp_uno_f64(-NaN, +NaN) == true
|
||||
; run: %fcmp_uno_f64(+NaN, +NaN) == 1
|
||||
; run: %fcmp_uno_f64(-NaN, -NaN) == 1
|
||||
; run: %fcmp_uno_f64(+NaN, -NaN) == 1
|
||||
; run: %fcmp_uno_f64(-NaN, +NaN) == 1
|
||||
|
||||
; run: %fcmp_uno_f64(+NaN, -0x1.0) == true
|
||||
; run: %fcmp_uno_f64(-NaN, -0x1.0) == true
|
||||
; run: %fcmp_uno_f64(+NaN, 0x1.0) == true
|
||||
; run: %fcmp_uno_f64(-NaN, 0x1.0) == true
|
||||
; run: %fcmp_uno_f64(+NaN, -0x0.0) == true
|
||||
; run: %fcmp_uno_f64(-NaN, -0x0.0) == true
|
||||
; run: %fcmp_uno_f64(+NaN, 0x0.0) == true
|
||||
; run: %fcmp_uno_f64(-NaN, 0x0.0) == true
|
||||
; run: %fcmp_uno_f64(+NaN, -Inf) == true
|
||||
; run: %fcmp_uno_f64(-NaN, -Inf) == true
|
||||
; run: %fcmp_uno_f64(+NaN, Inf) == true
|
||||
; run: %fcmp_uno_f64(-NaN, Inf) == true
|
||||
; run: %fcmp_uno_f64(-0x0.0, +NaN) == true
|
||||
; run: %fcmp_uno_f64(-0x0.0, -NaN) == true
|
||||
; run: %fcmp_uno_f64(0x0.0, +NaN) == true
|
||||
; run: %fcmp_uno_f64(0x0.0, -NaN) == true
|
||||
; run: %fcmp_uno_f64(-Inf, +NaN) == true
|
||||
; run: %fcmp_uno_f64(-Inf, -NaN) == true
|
||||
; run: %fcmp_uno_f64(Inf, +NaN) == true
|
||||
; run: %fcmp_uno_f64(Inf, -NaN) == true
|
||||
; run: %fcmp_uno_f64(+NaN, -0x1.0) == 1
|
||||
; run: %fcmp_uno_f64(-NaN, -0x1.0) == 1
|
||||
; run: %fcmp_uno_f64(+NaN, 0x1.0) == 1
|
||||
; run: %fcmp_uno_f64(-NaN, 0x1.0) == 1
|
||||
; run: %fcmp_uno_f64(+NaN, -0x0.0) == 1
|
||||
; run: %fcmp_uno_f64(-NaN, -0x0.0) == 1
|
||||
; run: %fcmp_uno_f64(+NaN, 0x0.0) == 1
|
||||
; run: %fcmp_uno_f64(-NaN, 0x0.0) == 1
|
||||
; run: %fcmp_uno_f64(+NaN, -Inf) == 1
|
||||
; run: %fcmp_uno_f64(-NaN, -Inf) == 1
|
||||
; run: %fcmp_uno_f64(+NaN, Inf) == 1
|
||||
; run: %fcmp_uno_f64(-NaN, Inf) == 1
|
||||
; run: %fcmp_uno_f64(-0x0.0, +NaN) == 1
|
||||
; run: %fcmp_uno_f64(-0x0.0, -NaN) == 1
|
||||
; run: %fcmp_uno_f64(0x0.0, +NaN) == 1
|
||||
; run: %fcmp_uno_f64(0x0.0, -NaN) == 1
|
||||
; run: %fcmp_uno_f64(-Inf, +NaN) == 1
|
||||
; run: %fcmp_uno_f64(-Inf, -NaN) == 1
|
||||
; run: %fcmp_uno_f64(Inf, +NaN) == 1
|
||||
; run: %fcmp_uno_f64(Inf, -NaN) == 1
|
||||
|
||||
; run: %fcmp_uno_f64(+NaN:0x1, +NaN:0x1) == true
|
||||
; run: %fcmp_uno_f64(-NaN:0x1, -NaN:0x1) == true
|
||||
; run: %fcmp_uno_f64(+NaN:0x1, -NaN:0x1) == true
|
||||
; run: %fcmp_uno_f64(-NaN:0x1, +NaN:0x1) == true
|
||||
; run: %fcmp_uno_f64(+NaN:0x1, +NaN) == true
|
||||
; run: %fcmp_uno_f64(+NaN:0x1, -NaN) == true
|
||||
; run: %fcmp_uno_f64(-NaN:0x1, -NaN) == true
|
||||
; run: %fcmp_uno_f64(-NaN:0x1, +NaN) == true
|
||||
; run: %fcmp_uno_f64(+NaN:0x1, +NaN:0x1) == 1
|
||||
; run: %fcmp_uno_f64(-NaN:0x1, -NaN:0x1) == 1
|
||||
; run: %fcmp_uno_f64(+NaN:0x1, -NaN:0x1) == 1
|
||||
; run: %fcmp_uno_f64(-NaN:0x1, +NaN:0x1) == 1
|
||||
; run: %fcmp_uno_f64(+NaN:0x1, +NaN) == 1
|
||||
; run: %fcmp_uno_f64(+NaN:0x1, -NaN) == 1
|
||||
; run: %fcmp_uno_f64(-NaN:0x1, -NaN) == 1
|
||||
; run: %fcmp_uno_f64(-NaN:0x1, +NaN) == 1
|
||||
|
||||
; run: %fcmp_uno_f64(+NaN:0x800000000001, +NaN:0x800000000001) == true
|
||||
; run: %fcmp_uno_f64(-NaN:0x800000000001, -NaN:0x800000000001) == true
|
||||
; run: %fcmp_uno_f64(+NaN:0x800000000001, -NaN:0x800000000001) == true
|
||||
; run: %fcmp_uno_f64(-NaN:0x800000000001, +NaN:0x800000000001) == true
|
||||
; run: %fcmp_uno_f64(+NaN:0x800000000001, +NaN) == true
|
||||
; run: %fcmp_uno_f64(+NaN:0x800000000001, -NaN) == true
|
||||
; run: %fcmp_uno_f64(-NaN:0x800000000001, -NaN) == true
|
||||
; run: %fcmp_uno_f64(-NaN:0x800000000001, +NaN) == true
|
||||
; run: %fcmp_uno_f64(+NaN:0x800000000001, +NaN:0x800000000001) == 1
|
||||
; run: %fcmp_uno_f64(-NaN:0x800000000001, -NaN:0x800000000001) == 1
|
||||
; run: %fcmp_uno_f64(+NaN:0x800000000001, -NaN:0x800000000001) == 1
|
||||
; run: %fcmp_uno_f64(-NaN:0x800000000001, +NaN:0x800000000001) == 1
|
||||
; run: %fcmp_uno_f64(+NaN:0x800000000001, +NaN) == 1
|
||||
; run: %fcmp_uno_f64(+NaN:0x800000000001, -NaN) == 1
|
||||
; run: %fcmp_uno_f64(-NaN:0x800000000001, -NaN) == 1
|
||||
; run: %fcmp_uno_f64(-NaN:0x800000000001, +NaN) == 1
|
||||
|
||||
; sNaN's
|
||||
; run: %fcmp_uno_f64(+sNaN:0x1, +sNaN:0x1) == true
|
||||
; run: %fcmp_uno_f64(-sNaN:0x1, -sNaN:0x1) == true
|
||||
; run: %fcmp_uno_f64(+sNaN:0x1, -sNaN:0x1) == true
|
||||
; run: %fcmp_uno_f64(-sNaN:0x1, +sNaN:0x1) == true
|
||||
; run: %fcmp_uno_f64(+sNaN:0x1, +sNaN:0x1) == 1
|
||||
; run: %fcmp_uno_f64(-sNaN:0x1, -sNaN:0x1) == 1
|
||||
; run: %fcmp_uno_f64(+sNaN:0x1, -sNaN:0x1) == 1
|
||||
; run: %fcmp_uno_f64(-sNaN:0x1, +sNaN:0x1) == 1
|
||||
|
||||
; run: %fcmp_uno_f64(+sNaN:0x1, -0x1.0) == true
|
||||
; run: %fcmp_uno_f64(-sNaN:0x1, -0x1.0) == true
|
||||
; run: %fcmp_uno_f64(+sNaN:0x1, 0x1.0) == true
|
||||
; run: %fcmp_uno_f64(-sNaN:0x1, 0x1.0) == true
|
||||
; run: %fcmp_uno_f64(+sNaN:0x1, -0x0.0) == true
|
||||
; run: %fcmp_uno_f64(-sNaN:0x1, -0x0.0) == true
|
||||
; run: %fcmp_uno_f64(+sNaN:0x1, 0x0.0) == true
|
||||
; run: %fcmp_uno_f64(-sNaN:0x1, 0x0.0) == true
|
||||
; run: %fcmp_uno_f64(+sNaN:0x1, -Inf) == true
|
||||
; run: %fcmp_uno_f64(-sNaN:0x1, -Inf) == true
|
||||
; run: %fcmp_uno_f64(+sNaN:0x1, Inf) == true
|
||||
; run: %fcmp_uno_f64(-sNaN:0x1, Inf) == true
|
||||
; run: %fcmp_uno_f64(-0x0.0, +sNaN:0x1) == true
|
||||
; run: %fcmp_uno_f64(-0x0.0, -sNaN:0x1) == true
|
||||
; run: %fcmp_uno_f64(0x0.0, +sNaN:0x1) == true
|
||||
; run: %fcmp_uno_f64(0x0.0, -sNaN:0x1) == true
|
||||
; run: %fcmp_uno_f64(-Inf, +sNaN:0x1) == true
|
||||
; run: %fcmp_uno_f64(-Inf, -sNaN:0x1) == true
|
||||
; run: %fcmp_uno_f64(Inf, +sNaN:0x1) == true
|
||||
; run: %fcmp_uno_f64(Inf, -sNaN:0x1) == true
|
||||
; run: %fcmp_uno_f64(+sNaN:0x1, -0x1.0) == 1
|
||||
; run: %fcmp_uno_f64(-sNaN:0x1, -0x1.0) == 1
|
||||
; run: %fcmp_uno_f64(+sNaN:0x1, 0x1.0) == 1
|
||||
; run: %fcmp_uno_f64(-sNaN:0x1, 0x1.0) == 1
|
||||
; run: %fcmp_uno_f64(+sNaN:0x1, -0x0.0) == 1
|
||||
; run: %fcmp_uno_f64(-sNaN:0x1, -0x0.0) == 1
|
||||
; run: %fcmp_uno_f64(+sNaN:0x1, 0x0.0) == 1
|
||||
; run: %fcmp_uno_f64(-sNaN:0x1, 0x0.0) == 1
|
||||
; run: %fcmp_uno_f64(+sNaN:0x1, -Inf) == 1
|
||||
; run: %fcmp_uno_f64(-sNaN:0x1, -Inf) == 1
|
||||
; run: %fcmp_uno_f64(+sNaN:0x1, Inf) == 1
|
||||
; run: %fcmp_uno_f64(-sNaN:0x1, Inf) == 1
|
||||
; run: %fcmp_uno_f64(-0x0.0, +sNaN:0x1) == 1
|
||||
; run: %fcmp_uno_f64(-0x0.0, -sNaN:0x1) == 1
|
||||
; run: %fcmp_uno_f64(0x0.0, +sNaN:0x1) == 1
|
||||
; run: %fcmp_uno_f64(0x0.0, -sNaN:0x1) == 1
|
||||
; run: %fcmp_uno_f64(-Inf, +sNaN:0x1) == 1
|
||||
; run: %fcmp_uno_f64(-Inf, -sNaN:0x1) == 1
|
||||
; run: %fcmp_uno_f64(Inf, +sNaN:0x1) == 1
|
||||
; run: %fcmp_uno_f64(Inf, -sNaN:0x1) == 1
|
||||
|
||||
; run: %fcmp_uno_f64(+sNaN:0x1, +NaN:0x1) == true
|
||||
; run: %fcmp_uno_f64(-sNaN:0x1, -NaN:0x1) == true
|
||||
; run: %fcmp_uno_f64(+sNaN:0x1, -NaN:0x1) == true
|
||||
; run: %fcmp_uno_f64(-sNaN:0x1, +NaN:0x1) == true
|
||||
; run: %fcmp_uno_f64(+NaN:0x1, +sNaN:0x1) == true
|
||||
; run: %fcmp_uno_f64(-NaN:0x1, -sNaN:0x1) == true
|
||||
; run: %fcmp_uno_f64(-NaN:0x1, +sNaN:0x1) == true
|
||||
; run: %fcmp_uno_f64(+NaN:0x1, -sNaN:0x1) == true
|
||||
; run: %fcmp_uno_f64(+sNaN:0x1, +NaN:0x1) == 1
|
||||
; run: %fcmp_uno_f64(-sNaN:0x1, -NaN:0x1) == 1
|
||||
; run: %fcmp_uno_f64(+sNaN:0x1, -NaN:0x1) == 1
|
||||
; run: %fcmp_uno_f64(-sNaN:0x1, +NaN:0x1) == 1
|
||||
; run: %fcmp_uno_f64(+NaN:0x1, +sNaN:0x1) == 1
|
||||
; run: %fcmp_uno_f64(-NaN:0x1, -sNaN:0x1) == 1
|
||||
; run: %fcmp_uno_f64(-NaN:0x1, +sNaN:0x1) == 1
|
||||
; run: %fcmp_uno_f64(+NaN:0x1, -sNaN:0x1) == 1
|
||||
|
||||
; run: %fcmp_uno_f64(+sNaN:0x800000000001, +sNaN:0x800000000001) == true
|
||||
; run: %fcmp_uno_f64(-sNaN:0x800000000001, -sNaN:0x800000000001) == true
|
||||
; run: %fcmp_uno_f64(+sNaN:0x800000000001, -sNaN:0x800000000001) == true
|
||||
; run: %fcmp_uno_f64(-sNaN:0x800000000001, +sNaN:0x800000000001) == true
|
||||
; run: %fcmp_uno_f64(+sNaN:0x800000000001, +sNaN:0x1) == true
|
||||
; run: %fcmp_uno_f64(+sNaN:0x800000000001, -sNaN:0x1) == true
|
||||
; run: %fcmp_uno_f64(-sNaN:0x800000000001, -sNaN:0x1) == true
|
||||
; run: %fcmp_uno_f64(-sNaN:0x800000000001, +sNaN:0x1) == true
|
||||
; run: %fcmp_uno_f64(+sNaN:0x800000000001, +sNaN:0x800000000001) == 1
|
||||
; run: %fcmp_uno_f64(-sNaN:0x800000000001, -sNaN:0x800000000001) == 1
|
||||
; run: %fcmp_uno_f64(+sNaN:0x800000000001, -sNaN:0x800000000001) == 1
|
||||
; run: %fcmp_uno_f64(-sNaN:0x800000000001, +sNaN:0x800000000001) == 1
|
||||
; run: %fcmp_uno_f64(+sNaN:0x800000000001, +sNaN:0x1) == 1
|
||||
; run: %fcmp_uno_f64(+sNaN:0x800000000001, -sNaN:0x1) == 1
|
||||
; run: %fcmp_uno_f64(-sNaN:0x800000000001, -sNaN:0x1) == 1
|
||||
; run: %fcmp_uno_f64(-sNaN:0x800000000001, +sNaN:0x1) == 1
|
||||
|
||||
@@ -64,7 +64,7 @@ function %fdiv_is_nan_f32(f32, f32) -> i32 {
|
||||
block0(v0: f32, v1: f32):
|
||||
v2 = fdiv v0, v1
|
||||
v3 = fcmp ne v2, v2
|
||||
v4 = bint.i32 v3
|
||||
v4 = uextend.i32 v3
|
||||
return v4
|
||||
}
|
||||
; run: %fdiv_is_nan_f32(0x0.0, -0x0.0) == 1
|
||||
@@ -148,7 +148,7 @@ function %fdiv_is_nan_f64(f64, f64) -> i32 {
|
||||
block0(v0: f64, v1: f64):
|
||||
v2 = fdiv v0, v1
|
||||
v3 = fcmp ne v2, v2
|
||||
v4 = bint.i32 v3
|
||||
v4 = uextend.i32 v3
|
||||
return v4
|
||||
}
|
||||
; run: %fdiv_is_nan_f64(0x0.0, -0x0.0) == 1
|
||||
|
||||
@@ -59,7 +59,7 @@ function %floor_is_nan_f32(f32) -> i32 {
|
||||
block0(v0: f32):
|
||||
v1 = floor v0
|
||||
v2 = fcmp ne v1, v1
|
||||
v3 = bint.i32 v2
|
||||
v3 = uextend.i32 v2
|
||||
return v3
|
||||
}
|
||||
; run: %floor_is_nan_f32(+NaN) == 1
|
||||
@@ -132,7 +132,7 @@ function %floor_is_nan_f64(f64) -> i32 {
|
||||
block0(v0: f64):
|
||||
v1 = floor v0
|
||||
v2 = fcmp ne v1, v1
|
||||
v3 = bint.i32 v2
|
||||
v3 = uextend.i32 v2
|
||||
return v3
|
||||
}
|
||||
; run: %floor_is_nan_f64(+NaN) == 1
|
||||
|
||||
@@ -58,7 +58,7 @@ function %fma_is_nan_f32(f32, f32, f32) -> i32 {
|
||||
block0(v0: f32, v1: f32, v2: f32):
|
||||
v3 = fma v0, v1, v2
|
||||
v4 = fcmp ne v3, v3
|
||||
v5 = bint.i32 v4
|
||||
v5 = uextend.i32 v4
|
||||
return v5
|
||||
}
|
||||
; run: %fma_is_nan_f32(Inf, -Inf, Inf) == 1
|
||||
@@ -124,7 +124,7 @@ function %fma_is_nan_f64(f64, f64, f64) -> i32 {
|
||||
block0(v0: f64, v1: f64, v2: f64):
|
||||
v3 = fma v0, v1, v2
|
||||
v4 = fcmp ne v3, v3
|
||||
v5 = bint.i32 v4
|
||||
v5 = uextend.i32 v4
|
||||
return v5
|
||||
}
|
||||
; run: %fma_is_nan_f64(Inf, -Inf, Inf) == 1
|
||||
@@ -149,4 +149,4 @@ block0(v0: f32, v1: f32, v2: f32):
|
||||
v4 = fma v0, v1, v3
|
||||
return v4
|
||||
}
|
||||
; run: %fma_load_f32(0x9.0, 0x9.0, 0x9.0) == 0x1.680000p6
|
||||
; run: %fma_load_f32(0x9.0, 0x9.0, 0x9.0) == 0x1.680000p6
|
||||
|
||||
@@ -45,7 +45,7 @@ function %fmax_is_nan_f32(f32, f32) -> i32 {
|
||||
block0(v0: f32, v1: f32):
|
||||
v2 = fmax_pseudo v0, v1
|
||||
v3 = fcmp ne v2, v2
|
||||
v4 = bint.i32 v3
|
||||
v4 = uextend.i32 v3
|
||||
return v4
|
||||
}
|
||||
; run: %fmax_is_nan_f32(-NaN, 0x0.0) == 1
|
||||
@@ -98,7 +98,7 @@ function %fmax_is_nan_f64(f64, f64) -> i32 {
|
||||
block0(v0: f64, v1: f64):
|
||||
v2 = fmax_pseudo v0, v1
|
||||
v3 = fcmp ne v2, v2
|
||||
v4 = bint.i32 v3
|
||||
v4 = uextend.i32 v3
|
||||
return v4
|
||||
}
|
||||
; run: %fmax_is_nan_f64(-NaN, 0x0.0) == 1
|
||||
|
||||
@@ -37,7 +37,7 @@ function %fmax_is_nan_f32(f32, f32) -> i32 {
|
||||
block0(v0: f32, v1: f32):
|
||||
v2 = fmax v0, v1
|
||||
v3 = fcmp ne v2, v2
|
||||
v4 = bint.i32 v3
|
||||
v4 = uextend.i32 v3
|
||||
return v4
|
||||
}
|
||||
; run: %fmax_is_nan_f32(0x0.0, +NaN) == 1
|
||||
@@ -89,7 +89,7 @@ function %fmax_is_nan_f64(f64, f64) -> i32 {
|
||||
block0(v0: f64, v1: f64):
|
||||
v2 = fmax v0, v1
|
||||
v3 = fcmp ne v2, v2
|
||||
v4 = bint.i32 v3
|
||||
v4 = uextend.i32 v3
|
||||
return v4
|
||||
}
|
||||
; run: %fmax_is_nan_f64(0x0.0, +NaN) == 1
|
||||
|
||||
@@ -45,7 +45,7 @@ function %fmin_is_nan_f32(f32, f32) -> i32 {
|
||||
block0(v0: f32, v1: f32):
|
||||
v2 = fmin_pseudo v0, v1
|
||||
v3 = fcmp ne v2, v2
|
||||
v4 = bint.i32 v3
|
||||
v4 = uextend.i32 v3
|
||||
return v4
|
||||
}
|
||||
; run: %fmin_is_nan_f32(-NaN, 0x0.0) == 1
|
||||
@@ -98,7 +98,7 @@ function %fmin_is_nan_f64(f64, f64) -> i32 {
|
||||
block0(v0: f64, v1: f64):
|
||||
v2 = fmin_pseudo v0, v1
|
||||
v3 = fcmp ne v2, v2
|
||||
v4 = bint.i32 v3
|
||||
v4 = uextend.i32 v3
|
||||
return v4
|
||||
}
|
||||
; run: %fmin_is_nan_f64(-NaN, 0x0.0) == 1
|
||||
|
||||
@@ -37,7 +37,7 @@ function %fmin_is_nan_f32(f32, f32) -> i32 {
|
||||
block0(v0: f32, v1: f32):
|
||||
v2 = fmin v0, v1
|
||||
v3 = fcmp ne v2, v2
|
||||
v4 = bint.i32 v3
|
||||
v4 = uextend.i32 v3
|
||||
return v4
|
||||
}
|
||||
; run: %fmin_is_nan_f32(0x0.0, +NaN) == 1
|
||||
@@ -89,7 +89,7 @@ function %fmin_is_nan_f64(f64, f64) -> i32 {
|
||||
block0(v0: f64, v1: f64):
|
||||
v2 = fmin v0, v1
|
||||
v3 = fcmp ne v2, v2
|
||||
v4 = bint.i32 v3
|
||||
v4 = uextend.i32 v3
|
||||
return v4
|
||||
}
|
||||
; run: %fmin_is_nan_f64(0x0.0, +NaN) == 1
|
||||
|
||||
@@ -49,7 +49,7 @@ function %fmul_is_nan_f32(f32, f32) -> i32 {
|
||||
block0(v0: f32, v1: f32):
|
||||
v2 = fmul v0, v1
|
||||
v3 = fcmp ne v2, v2
|
||||
v4 = bint.i32 v3
|
||||
v4 = uextend.i32 v3
|
||||
return v4
|
||||
}
|
||||
; run: %fmul_is_nan_f32(-0x0.0, +Inf) == 1
|
||||
@@ -114,7 +114,7 @@ function %fmul_is_nan_f64(f64, f64) -> i32 {
|
||||
block0(v0: f64, v1: f64):
|
||||
v2 = fmul v0, v1
|
||||
v3 = fcmp ne v2, v2
|
||||
v4 = bint.i32 v3
|
||||
v4 = uextend.i32 v3
|
||||
return v4
|
||||
}
|
||||
; run: %fmul_is_nan_f64(-0x0.0, +Inf) == 1
|
||||
|
||||
@@ -51,7 +51,7 @@ function %fsub_is_nan_f32(f32, f32) -> i32 {
|
||||
block0(v0: f32, v1: f32):
|
||||
v2 = fsub v0, v1
|
||||
v3 = fcmp ne v2, v2
|
||||
v4 = bint.i32 v3
|
||||
v4 = uextend.i32 v3
|
||||
return v4
|
||||
}
|
||||
; run: %fsub_is_nan_f32(0x0.0, +NaN) == 1
|
||||
@@ -116,7 +116,7 @@ function %fsub_is_nan_f64(f64, f64) -> i32 {
|
||||
block0(v0: f64, v1: f64):
|
||||
v2 = fsub v0, v1
|
||||
v3 = fcmp ne v2, v2
|
||||
v4 = bint.i32 v3
|
||||
v4 = uextend.i32 v3
|
||||
return v4
|
||||
}
|
||||
; run: %fsub_is_nan_f64(0x0.0, +NaN) == 1
|
||||
|
||||
@@ -1,46 +0,0 @@
|
||||
test interpret
|
||||
test run
|
||||
target aarch64
|
||||
target s390x
|
||||
target riscv64
|
||||
|
||||
function %bextend_b1_b128(b1) -> b128 {
|
||||
block0(v0: b1):
|
||||
v1 = bextend.b128 v0
|
||||
return v1
|
||||
}
|
||||
; run: %bextend_b1_b128(true) == true
|
||||
; run: %bextend_b1_b128(false) == false
|
||||
|
||||
function %bextend_b8_b128(b8) -> b128 {
|
||||
block0(v0: b8):
|
||||
v1 = bextend.b128 v0
|
||||
return v1
|
||||
}
|
||||
; run: %bextend_b8_b128(true) == true
|
||||
; run: %bextend_b8_b128(false) == false
|
||||
|
||||
function %bextend_b16_b128(b16) -> b128 {
|
||||
block0(v0: b16):
|
||||
v1 = bextend.b128 v0
|
||||
return v1
|
||||
}
|
||||
; run: %bextend_b16_b128(true) == true
|
||||
; run: %bextend_b16_b128(false) == false
|
||||
|
||||
function %bextend_b32_b128(b32) -> b128 {
|
||||
block0(v0: b32):
|
||||
v1 = bextend.b128 v0
|
||||
return v1
|
||||
}
|
||||
; run: %bextend_b32_b128(true) == true
|
||||
; run: %bextend_b32_b128(false) == false
|
||||
|
||||
|
||||
function %bextend_b64_b128(b64) -> b128 {
|
||||
block0(v0: b64):
|
||||
v1 = bextend.b128 v0
|
||||
return v1
|
||||
}
|
||||
; run: %bextend_b64_b128(true) == true
|
||||
; run: %bextend_b64_b128(false) == false
|
||||
@@ -1,87 +0,0 @@
|
||||
test interpret
|
||||
test run
|
||||
set enable_llvm_abi_extensions=true
|
||||
target aarch64
|
||||
target s390x
|
||||
target x86_64
|
||||
target riscv64
|
||||
|
||||
function %bint_b1_i128_true() -> i128 {
|
||||
block0:
|
||||
v0 = bconst.b1 true
|
||||
v1 = bint.i128 v0
|
||||
return v1
|
||||
}
|
||||
; run: %bint_b1_i128_true() == 1
|
||||
|
||||
function %bint_b1_i128_false() -> i128 {
|
||||
block0:
|
||||
v0 = bconst.b1 false
|
||||
v1 = bint.i128 v0
|
||||
return v1
|
||||
}
|
||||
; run: %bint_b1_i128_false() == 0
|
||||
|
||||
function %bint_b8_i128_true() -> i128 {
|
||||
block0:
|
||||
v0 = bconst.b8 true
|
||||
v1 = bint.i128 v0
|
||||
return v1
|
||||
}
|
||||
; run: %bint_b8_i128_true() == 1
|
||||
|
||||
function %bint_b8_i128_false() -> i128 {
|
||||
block0:
|
||||
v0 = bconst.b8 false
|
||||
v1 = bint.i128 v0
|
||||
return v1
|
||||
}
|
||||
; run: %bint_b8_i128_false() == 0
|
||||
|
||||
function %bint_b16_i128_true() -> i128 {
|
||||
block0:
|
||||
v0 = bconst.b16 true
|
||||
v1 = bint.i128 v0
|
||||
return v1
|
||||
}
|
||||
; run: %bint_b16_i128_true() == 1
|
||||
|
||||
function %bint_b16_i128_false() -> i128 {
|
||||
block0:
|
||||
v0 = bconst.b16 false
|
||||
v1 = bint.i128 v0
|
||||
return v1
|
||||
}
|
||||
; run: %bint_b16_i128_false() == 0
|
||||
|
||||
function %bint_b32_i128_true() -> i128 {
|
||||
block0:
|
||||
v0 = bconst.b32 true
|
||||
v1 = bint.i128 v0
|
||||
return v1
|
||||
}
|
||||
; run: %bint_b32_i128_true() == 1
|
||||
|
||||
function %bint_b32_i128_false() -> i128 {
|
||||
block0:
|
||||
v0 = bconst.b32 false
|
||||
v1 = bint.i128 v0
|
||||
return v1
|
||||
}
|
||||
; run: %bint_b32_i128_false() == 0
|
||||
|
||||
function %bint_b64_i128_true() -> i128 {
|
||||
block0:
|
||||
v0 = bconst.b64 true
|
||||
v1 = bint.i128 v0
|
||||
return v1
|
||||
}
|
||||
; run: %bint_b64_i128_true() == 1
|
||||
|
||||
function %bint_b64_i128_false() -> i128 {
|
||||
block0:
|
||||
v0 = bconst.b64 false
|
||||
v1 = bint.i128 v0
|
||||
return v1
|
||||
}
|
||||
; run: %bint_b64_i128_false() == 0
|
||||
@@ -5,7 +5,7 @@ target s390x
|
||||
target x86_64
|
||||
target riscv64
|
||||
|
||||
function %reverse_bits_zero() -> b1 {
|
||||
function %reverse_bits_zero() -> i8 {
|
||||
block0:
|
||||
v0 = iconst.i64 0
|
||||
v1 = iconcat v0, v0
|
||||
@@ -15,7 +15,7 @@ block0:
|
||||
}
|
||||
; run
|
||||
|
||||
function %reverse_bits_one() -> b1 {
|
||||
function %reverse_bits_one() -> i8 {
|
||||
block0:
|
||||
v0 = iconst.i64 0
|
||||
v1 = iconst.i64 1
|
||||
@@ -32,7 +32,7 @@ block0:
|
||||
}
|
||||
; run
|
||||
|
||||
function %reverse_bits() -> b1 {
|
||||
function %reverse_bits() -> i8 {
|
||||
block0:
|
||||
v0 = iconst.i64 0x06AD_8667_69EC_41BA
|
||||
v1 = iconst.i64 0x6C83_D81A_6E28_83AB
|
||||
|
||||
@@ -4,83 +4,75 @@ target aarch64
|
||||
target riscv64
|
||||
target s390x
|
||||
|
||||
function %bmask_b128_i128(b128) -> i128 {
|
||||
block0(v0: b128):
|
||||
function %bmask_i128_i128(i128) -> i128 {
|
||||
block0(v0: i128):
|
||||
v1 = bmask.i128 v0
|
||||
return v1
|
||||
}
|
||||
; run: %bmask_b128_i128(true) == -1
|
||||
; run: %bmask_b128_i128(false) == 0
|
||||
; run: %bmask_i128_i128(1) == -1
|
||||
; run: %bmask_i128_i128(0) == 0
|
||||
|
||||
function %bmask_b128_i64(b128) -> i64 {
|
||||
block0(v0: b128):
|
||||
function %bmask_i128_i64(i128) -> i64 {
|
||||
block0(v0: i128):
|
||||
v1 = bmask.i64 v0
|
||||
return v1
|
||||
}
|
||||
; run: %bmask_b128_i64(true) == -1
|
||||
; run: %bmask_b128_i64(false) == 0
|
||||
; run: %bmask_i128_i64(1) == -1
|
||||
; run: %bmask_i128_i64(0) == 0
|
||||
|
||||
function %bmask_b128_i32(b128) -> i32 {
|
||||
block0(v0: b128):
|
||||
function %bmask_i128_i32(i128) -> i32 {
|
||||
block0(v0: i128):
|
||||
v1 = bmask.i32 v0
|
||||
return v1
|
||||
}
|
||||
; run: %bmask_b128_i32(true) == -1
|
||||
; run: %bmask_b128_i32(false) == 0
|
||||
; run: %bmask_i128_i32(1) == -1
|
||||
; run: %bmask_i128_i32(0) == 0
|
||||
|
||||
function %bmask_b128_i16(b128) -> i16 {
|
||||
block0(v0: b128):
|
||||
function %bmask_i128_i16(i128) -> i16 {
|
||||
block0(v0: i128):
|
||||
v1 = bmask.i16 v0
|
||||
return v1
|
||||
}
|
||||
; run: %bmask_b128_i16(true) == -1
|
||||
; run: %bmask_b128_i16(false) == 0
|
||||
; run: %bmask_i128_i16(1) == -1
|
||||
; run: %bmask_i128_i16(0) == 0
|
||||
|
||||
function %bmask_b128_i8(b128) -> i8 {
|
||||
block0(v0: b128):
|
||||
function %bmask_i128_i8(i128) -> i8 {
|
||||
block0(v0: i128):
|
||||
v1 = bmask.i8 v0
|
||||
return v1
|
||||
}
|
||||
; run: %bmask_b128_i8(true) == -1
|
||||
; run: %bmask_b128_i8(false) == 0
|
||||
; run: %bmask_i128_i8(1) == -1
|
||||
; run: %bmask_i128_i8(0) == 0
|
||||
|
||||
|
||||
function %bmask_b64_i128(b64) -> i128 {
|
||||
block0(v0: b64):
|
||||
function %bmask_i64_i128(i64) -> i128 {
|
||||
block0(v0: i64):
|
||||
v1 = bmask.i128 v0
|
||||
return v1
|
||||
}
|
||||
; run: %bmask_b64_i128(true) == -1
|
||||
; run: %bmask_b64_i128(false) == 0
|
||||
; run: %bmask_i64_i128(1) == -1
|
||||
; run: %bmask_i64_i128(0) == 0
|
||||
|
||||
function %bmask_b32_i128(b32) -> i128 {
|
||||
block0(v0: b32):
|
||||
function %bmask_i32_i128(i32) -> i128 {
|
||||
block0(v0: i32):
|
||||
v1 = bmask.i128 v0
|
||||
return v1
|
||||
}
|
||||
; run: %bmask_b32_i128(true) == -1
|
||||
; run: %bmask_b32_i128(false) == 0
|
||||
; run: %bmask_i32_i128(1) == -1
|
||||
; run: %bmask_i32_i128(0) == 0
|
||||
|
||||
function %bmask_b16_i128(b16) -> i128 {
|
||||
block0(v0: b16):
|
||||
function %bmask_i16_i128(i16) -> i128 {
|
||||
block0(v0: i16):
|
||||
v1 = bmask.i128 v0
|
||||
return v1
|
||||
}
|
||||
; run: %bmask_b16_i128(true) == -1
|
||||
; run: %bmask_b16_i128(false) == 0
|
||||
; run: %bmask_i16_i128(1) == -1
|
||||
; run: %bmask_i16_i128(0) == 0
|
||||
|
||||
function %bmask_b8_i128(b8) -> i128 {
|
||||
block0(v0: b8):
|
||||
function %bmask_i8_i128(i8) -> i128 {
|
||||
block0(v0: i8):
|
||||
v1 = bmask.i128 v0
|
||||
return v1
|
||||
}
|
||||
; run: %bmask_b8_i128(true) == -1
|
||||
; run: %bmask_b8_i128(false) == 0
|
||||
|
||||
function %bmask_b1_i128(b1) -> i128 {
|
||||
block0(v0: b1):
|
||||
v1 = bmask.i128 v0
|
||||
return v1
|
||||
}
|
||||
; run: %bmask_b1_i128(true) == -1
|
||||
; run: %bmask_b1_i128(false) == 0
|
||||
; run: %bmask_i8_i128(1) == -1
|
||||
; run: %bmask_i8_i128(0) == 0
|
||||
|
||||
@@ -2,10 +2,10 @@ test interpret
|
||||
test run
|
||||
target s390x
|
||||
|
||||
function %bnot_b128(b128) -> b128 {
|
||||
block0(v0: b128):
|
||||
v1 = bnot.b128 v0
|
||||
function %bnot_i128(i128) -> i128 {
|
||||
block0(v0: i128):
|
||||
v1 = bnot.i128 v0
|
||||
return v1
|
||||
}
|
||||
; run: %bnot_b128(false) == true
|
||||
; run: %bnot_b128(true) == false
|
||||
; run: %bnot_i128(0) == -1
|
||||
; run: %bnot_i128(1) == -2
|
||||
|
||||
@@ -5,39 +5,39 @@ target s390x
|
||||
target x86_64
|
||||
target riscv64
|
||||
|
||||
function %i128_brz(i128) -> b1 {
|
||||
function %i128_brz(i128) -> i8 {
|
||||
block0(v0: i128):
|
||||
brz v0, block2
|
||||
jump block1
|
||||
|
||||
block1:
|
||||
v1 = bconst.b1 false
|
||||
v1 = iconst.i8 0
|
||||
return v1
|
||||
|
||||
block2:
|
||||
v2 = bconst.b1 true
|
||||
v2 = iconst.i8 1
|
||||
return v2
|
||||
}
|
||||
; run: %i128_brz(0) == true
|
||||
; run: %i128_brz(-1) == false
|
||||
; run: %i128_brz(0x00000000_00000000_FFFFFFFF_FFFFFFFF) == false
|
||||
; run: %i128_brz(0xFFFFFFFF_FFFFFFFF_00000000_00000000) == false
|
||||
; run: %i128_brz(0) == 1
|
||||
; run: %i128_brz(-1) == 0
|
||||
; run: %i128_brz(0x00000000_00000000_FFFFFFFF_FFFFFFFF) == 0
|
||||
; run: %i128_brz(0xFFFFFFFF_FFFFFFFF_00000000_00000000) == 0
|
||||
|
||||
|
||||
function %i128_brnz(i128) -> b1 {
|
||||
function %i128_brnz(i128) -> i8 {
|
||||
block0(v0: i128):
|
||||
brnz v0, block2
|
||||
jump block1
|
||||
|
||||
block1:
|
||||
v1 = bconst.b1 false
|
||||
v1 = iconst.i8 0
|
||||
return v1
|
||||
|
||||
block2:
|
||||
v2 = bconst.b1 true
|
||||
v2 = iconst.i8 1
|
||||
return v2
|
||||
}
|
||||
; run: %i128_brnz(0) == false
|
||||
; run: %i128_brnz(-1) == true
|
||||
; run: %i128_brnz(0x00000000_00000000_FFFFFFFF_FFFFFFFF) == true
|
||||
; run: %i128_brnz(0xFFFFFFFF_FFFFFFFF_00000000_00000000) == true
|
||||
; run: %i128_brnz(0) == 0
|
||||
; run: %i128_brnz(-1) == 1
|
||||
; run: %i128_brnz(0x00000000_00000000_FFFFFFFF_FFFFFFFF) == 1
|
||||
; run: %i128_brnz(0xFFFFFFFF_FFFFFFFF_00000000_00000000) == 1
|
||||
|
||||
@@ -1,42 +0,0 @@
|
||||
test interpret
|
||||
target riscv64
|
||||
|
||||
function %breduce_b128_b1(b128) -> b1 {
|
||||
block0(v0: b128):
|
||||
v1 = breduce.b1 v0
|
||||
return v1
|
||||
}
|
||||
; run: %breduce_b128_b1(true) == true
|
||||
; run: %breduce_b128_b1(false) == false
|
||||
|
||||
function %breduce_b128_b8(b128) -> b8 {
|
||||
block0(v0: b128):
|
||||
v1 = breduce.b8 v0
|
||||
return v1
|
||||
}
|
||||
; run: %breduce_b128_b8(true) == true
|
||||
; run: %breduce_b128_b8(false) == false
|
||||
|
||||
function %breduce_b128_b16(b128) -> b16 {
|
||||
block0(v0: b128):
|
||||
v1 = breduce.b16 v0
|
||||
return v1
|
||||
}
|
||||
; run: %breduce_b128_b16(true) == true
|
||||
; run: %breduce_b128_b16(false) == false
|
||||
|
||||
function %breduce_b128_b32(b128) -> b32 {
|
||||
block0(v0: b128):
|
||||
v1 = breduce.b32 v0
|
||||
return v1
|
||||
}
|
||||
; run: %breduce_b128_b32(true) == true
|
||||
; run: %breduce_b128_b32(false) == false
|
||||
|
||||
function %breduce_b128_b64(b128) -> b64 {
|
||||
block0(v0: b128):
|
||||
v1 = breduce.b64 v0
|
||||
return v1
|
||||
}
|
||||
; run: %breduce_b128_b64(true) == true
|
||||
; run: %breduce_b128_b64(false) == false
|
||||
@@ -3,233 +3,233 @@ target aarch64
|
||||
target riscv64
|
||||
target s390x
|
||||
|
||||
function %i128_bricmp_eq(i128, i128) -> b1 {
|
||||
function %i128_bricmp_eq(i128, i128) -> i8 {
|
||||
block0(v0: i128, v1: i128):
|
||||
br_icmp.i128 eq v0, v1, block2
|
||||
jump block1
|
||||
|
||||
block1:
|
||||
v2 = bconst.b1 false
|
||||
v2 = iconst.i8 0
|
||||
return v2
|
||||
|
||||
block2:
|
||||
v3 = bconst.b1 true
|
||||
v3 = iconst.i8 1
|
||||
return v3
|
||||
}
|
||||
; run: %i128_bricmp_eq(0, 0) == true
|
||||
; run: %i128_bricmp_eq(-1, -1) == true
|
||||
; run: %i128_bricmp_eq(-1, 0) == false
|
||||
; run: %i128_bricmp_eq(-1, 0xFFFFFFFF_FFFFFFFF_00000000_00000000) == false
|
||||
; run: %i128_bricmp_eq(0x00000000_00000000_FFFFFFFF_FFFFFFFF, -1) == false
|
||||
; run: %i128_bricmp_eq(0xFFFFFFFF_FFFFFFFF_00000000_00000000, -1) == false
|
||||
; run: %i128_bricmp_eq(0xDECAFFFF_C0FFEEEE_C0FFEEEE_DECAFFFF, 0xDECAFFFF_C0FFEEEE_C0FFEEEE_DECAFFFF) == true
|
||||
; run: %i128_bricmp_eq(0xFFFFFFFF_FFFFFFFF_FFFFFFFF_FFFFFFFF, 0x00000000_00000001_00000000_00000001) == false
|
||||
; run: %i128_bricmp_eq(0x00000000_00000001_FFFFFFFF_FFFFFFFF, 0x00000000_00000001_00000000_00000001) == false
|
||||
; run: %i128_bricmp_eq(0, 0) == 1
|
||||
; run: %i128_bricmp_eq(-1, -1) == 1
|
||||
; run: %i128_bricmp_eq(-1, 0) == 0
|
||||
; run: %i128_bricmp_eq(-1, 0xFFFFFFFF_FFFFFFFF_00000000_00000000) == 0
|
||||
; run: %i128_bricmp_eq(0x00000000_00000000_FFFFFFFF_FFFFFFFF, -1) == 0
|
||||
; run: %i128_bricmp_eq(0xFFFFFFFF_FFFFFFFF_00000000_00000000, -1) == 0
|
||||
; run: %i128_bricmp_eq(0xDECAFFFF_C0FFEEEE_C0FFEEEE_DECAFFFF, 0xDECAFFFF_C0FFEEEE_C0FFEEEE_DECAFFFF) == 1
|
||||
; run: %i128_bricmp_eq(0xFFFFFFFF_FFFFFFFF_FFFFFFFF_FFFFFFFF, 0x00000000_00000001_00000000_00000001) == 0
|
||||
; run: %i128_bricmp_eq(0x00000000_00000001_FFFFFFFF_FFFFFFFF, 0x00000000_00000001_00000000_00000001) == 0
|
||||
|
||||
function %i128_bricmp_ne(i128, i128) -> b1 {
|
||||
function %i128_bricmp_ne(i128, i128) -> i8 {
|
||||
block0(v0: i128,v1: i128):
|
||||
br_icmp.i128 ne v0, v1, block2
|
||||
jump block1
|
||||
|
||||
block1:
|
||||
v2 = bconst.b1 false
|
||||
v2 = iconst.i8 0
|
||||
return v2
|
||||
|
||||
block2:
|
||||
v3 = bconst.b1 true
|
||||
v3 = iconst.i8 1
|
||||
return v3
|
||||
}
|
||||
; run: %i128_bricmp_ne(0, 0) == false
|
||||
; run: %i128_bricmp_ne(-1, -1) == false
|
||||
; run: %i128_bricmp_ne(-1, 0) == true
|
||||
; run: %i128_bricmp_ne(-1, 0xFFFFFFFF_FFFFFFFF_00000000_00000000) == true
|
||||
; run: %i128_bricmp_ne(0x00000000_00000000_FFFFFFFF_FFFFFFFF, -1) == true
|
||||
; run: %i128_bricmp_ne(0xFFFFFFFF_FFFFFFFF_00000000_00000000, -1) == true
|
||||
; run: %i128_bricmp_ne(0xDECAFFFF_C0FFEEEE_C0FFEEEE_DECAFFFF, 0xDECAFFFF_C0FFEEEE_C0FFEEEE_DECAFFFF) == false
|
||||
; run: %i128_bricmp_ne(0xFFFFFFFF_FFFFFFFF_FFFFFFFF_FFFFFFFF, 0x00000000_00000001_00000000_00000001) == true
|
||||
; run: %i128_bricmp_ne(0x00000000_00000001_FFFFFFFF_FFFFFFFF, 0x00000000_00000001_00000000_00000001) == true
|
||||
; run: %i128_bricmp_ne(0, 0) == 0
|
||||
; run: %i128_bricmp_ne(-1, -1) == 0
|
||||
; run: %i128_bricmp_ne(-1, 0) == 1
|
||||
; run: %i128_bricmp_ne(-1, 0xFFFFFFFF_FFFFFFFF_00000000_00000000) == 1
|
||||
; run: %i128_bricmp_ne(0x00000000_00000000_FFFFFFFF_FFFFFFFF, -1) == 1
|
||||
; run: %i128_bricmp_ne(0xFFFFFFFF_FFFFFFFF_00000000_00000000, -1) == 1
|
||||
; run: %i128_bricmp_ne(0xDECAFFFF_C0FFEEEE_C0FFEEEE_DECAFFFF, 0xDECAFFFF_C0FFEEEE_C0FFEEEE_DECAFFFF) == 0
|
||||
; run: %i128_bricmp_ne(0xFFFFFFFF_FFFFFFFF_FFFFFFFF_FFFFFFFF, 0x00000000_00000001_00000000_00000001) == 1
|
||||
; run: %i128_bricmp_ne(0x00000000_00000001_FFFFFFFF_FFFFFFFF, 0x00000000_00000001_00000000_00000001) == 1
|
||||
|
||||
|
||||
function %i128_bricmp_slt(i128, i128) -> b1 {
|
||||
function %i128_bricmp_slt(i128, i128) -> i8 {
|
||||
block0(v0: i128,v1: i128):
|
||||
br_icmp.i128 slt v0, v1, block2
|
||||
jump block1
|
||||
|
||||
block1:
|
||||
v2 = bconst.b1 false
|
||||
v2 = iconst.i8 0
|
||||
return v2
|
||||
|
||||
block2:
|
||||
v3 = bconst.b1 true
|
||||
v3 = iconst.i8 1
|
||||
return v3
|
||||
}
|
||||
; run: %i128_bricmp_slt(0, 0) == false
|
||||
; run: %i128_bricmp_slt(1, 1) == false
|
||||
; run: %i128_bricmp_slt(0, 1) == true
|
||||
; run: %i128_bricmp_slt(-1, 0) == true
|
||||
; run: %i128_bricmp_slt(0, -1) == false
|
||||
; run: %i128_bricmp_slt(-1, -1) == false
|
||||
; run: %i128_bricmp_slt(0xFFFFFFFF_FFFFFFFF_FFFFFFFF_FFFFFFFD, 0xFFFFFFFF_FFFFFFFF_FFFFFFFF_FFFFFFFF) == true
|
||||
; run: %i128_bricmp_slt(0xC0FFEEEE_C0FFEEEE_00000000_00000000, 0xDECAFFFF_DECAFFFF_00000000_00000000) == true
|
||||
; run: %i128_bricmp_slt(0xDECAFFFF_DECAFFFF_00000000_00000000, 0xC0FFEEEE_C0FFEEEE_00000000_00000000) == false
|
||||
; run: %i128_bricmp_slt(0, 0) == 0
|
||||
; run: %i128_bricmp_slt(1, 1) == 0
|
||||
; run: %i128_bricmp_slt(0, 1) == 1
|
||||
; run: %i128_bricmp_slt(-1, 0) == 1
|
||||
; run: %i128_bricmp_slt(0, -1) == 0
|
||||
; run: %i128_bricmp_slt(-1, -1) == 0
|
||||
; run: %i128_bricmp_slt(0xFFFFFFFF_FFFFFFFF_FFFFFFFF_FFFFFFFD, 0xFFFFFFFF_FFFFFFFF_FFFFFFFF_FFFFFFFF) == 1
|
||||
; run: %i128_bricmp_slt(0xC0FFEEEE_C0FFEEEE_00000000_00000000, 0xDECAFFFF_DECAFFFF_00000000_00000000) == 1
|
||||
; run: %i128_bricmp_slt(0xDECAFFFF_DECAFFFF_00000000_00000000, 0xC0FFEEEE_C0FFEEEE_00000000_00000000) == 0
|
||||
|
||||
function %i128_bricmp_ult(i128, i128) -> b1 {
|
||||
function %i128_bricmp_ult(i128, i128) -> i8 {
|
||||
block0(v0: i128,v1: i128):
|
||||
br_icmp.i128 ult v0, v1, block2
|
||||
jump block1
|
||||
|
||||
block1:
|
||||
v2 = bconst.b1 false
|
||||
v2 = iconst.i8 0
|
||||
return v2
|
||||
|
||||
block2:
|
||||
v3 = bconst.b1 true
|
||||
v3 = iconst.i8 1
|
||||
return v3
|
||||
}
|
||||
; run: %i128_bricmp_ult(0, 0) == false
|
||||
; run: %i128_bricmp_ult(1, 1) == false
|
||||
; run: %i128_bricmp_ult(0, 1) == true
|
||||
; run: %i128_bricmp_ult(-1, 0) == false
|
||||
; run: %i128_bricmp_ult(0, -1) == true
|
||||
; run: %i128_bricmp_ult(-1, -1) == false
|
||||
; run: %i128_bricmp_ult(0xFFFFFFFF_FFFFFFFF_FFFFFFFF_FFFFFFFD, 0xFFFFFFFF_FFFFFFFF_FFFFFFFF_FFFFFFFF) == true
|
||||
; run: %i128_bricmp_ult(0xC0FFEEEE_C0FFEEEE_00000000_00000000, 0xDECAFFFF_DECAFFFF_00000000_00000000) == true
|
||||
; run: %i128_bricmp_ult(0xDECAFFFF_DECAFFFF_00000000_00000000, 0xC0FFEEEE_C0FFEEEE_00000000_00000000) == false
|
||||
; run: %i128_bricmp_ult(0, 0) == 0
|
||||
; run: %i128_bricmp_ult(1, 1) == 0
|
||||
; run: %i128_bricmp_ult(0, 1) == 1
|
||||
; run: %i128_bricmp_ult(-1, 0) == 0
|
||||
; run: %i128_bricmp_ult(0, -1) == 1
|
||||
; run: %i128_bricmp_ult(-1, -1) == 0
|
||||
; run: %i128_bricmp_ult(0xFFFFFFFF_FFFFFFFF_FFFFFFFF_FFFFFFFD, 0xFFFFFFFF_FFFFFFFF_FFFFFFFF_FFFFFFFF) == 1
|
||||
; run: %i128_bricmp_ult(0xC0FFEEEE_C0FFEEEE_00000000_00000000, 0xDECAFFFF_DECAFFFF_00000000_00000000) == 1
|
||||
; run: %i128_bricmp_ult(0xDECAFFFF_DECAFFFF_00000000_00000000, 0xC0FFEEEE_C0FFEEEE_00000000_00000000) == 0
|
||||
|
||||
function %i128_bricmp_sle(i128, i128) -> b1 {
|
||||
function %i128_bricmp_sle(i128, i128) -> i8 {
|
||||
block0(v0: i128,v1: i128):
|
||||
br_icmp.i128 sle v0, v1, block2
|
||||
jump block1
|
||||
|
||||
block1:
|
||||
v2 = bconst.b1 false
|
||||
v2 = iconst.i8 0
|
||||
return v2
|
||||
|
||||
block2:
|
||||
v3 = bconst.b1 true
|
||||
v3 = iconst.i8 1
|
||||
return v3
|
||||
}
|
||||
; run: %i128_bricmp_sle(0, 0) == true
|
||||
; run: %i128_bricmp_sle(1, 1) == true
|
||||
; run: %i128_bricmp_sle(0, 1) == true
|
||||
; run: %i128_bricmp_sle(-1, 0) == true
|
||||
; run: %i128_bricmp_sle(0, -1) == false
|
||||
; run: %i128_bricmp_sle(-1, -1) == true
|
||||
; run: %i128_bricmp_sle(0xFFFFFFFF_FFFFFFFF_FFFFFFFF_FFFFFFFD, 0xFFFFFFFF_FFFFFFFF_FFFFFFFF_FFFFFFFF) == true
|
||||
; run: %i128_bricmp_sle(0xC0FFEEEE_C0FFEEEE_00000000_00000000, 0xDECAFFFF_DECAFFFF_00000000_00000000) == true
|
||||
; run: %i128_bricmp_sle(0xDECAFFFF_DECAFFFF_00000000_00000000, 0xC0FFEEEE_C0FFEEEE_00000000_00000000) == false
|
||||
; run: %i128_bricmp_sle(0, 0) == 1
|
||||
; run: %i128_bricmp_sle(1, 1) == 1
|
||||
; run: %i128_bricmp_sle(0, 1) == 1
|
||||
; run: %i128_bricmp_sle(-1, 0) == 1
|
||||
; run: %i128_bricmp_sle(0, -1) == 0
|
||||
; run: %i128_bricmp_sle(-1, -1) == 1
|
||||
; run: %i128_bricmp_sle(0xFFFFFFFF_FFFFFFFF_FFFFFFFF_FFFFFFFD, 0xFFFFFFFF_FFFFFFFF_FFFFFFFF_FFFFFFFF) == 1
|
||||
; run: %i128_bricmp_sle(0xC0FFEEEE_C0FFEEEE_00000000_00000000, 0xDECAFFFF_DECAFFFF_00000000_00000000) == 1
|
||||
; run: %i128_bricmp_sle(0xDECAFFFF_DECAFFFF_00000000_00000000, 0xC0FFEEEE_C0FFEEEE_00000000_00000000) == 0
|
||||
|
||||
function %i128_bricmp_ule(i128, i128) -> b1 {
|
||||
function %i128_bricmp_ule(i128, i128) -> i8 {
|
||||
block0(v0: i128,v1: i128):
|
||||
br_icmp.i128 ule v0, v1, block2
|
||||
jump block1
|
||||
|
||||
block1:
|
||||
v2 = bconst.b1 false
|
||||
v2 = iconst.i8 0
|
||||
return v2
|
||||
|
||||
block2:
|
||||
v3 = bconst.b1 true
|
||||
v3 = iconst.i8 1
|
||||
return v3
|
||||
}
|
||||
; run: %i128_bricmp_ule(0, 0) == true
|
||||
; run: %i128_bricmp_ule(1, 1) == true
|
||||
; run: %i128_bricmp_ule(0, 1) == true
|
||||
; run: %i128_bricmp_ule(-1, 0) == false
|
||||
; run: %i128_bricmp_ule(0, -1) == true
|
||||
; run: %i128_bricmp_ule(-1, -1) == true
|
||||
; run: %i128_bricmp_ule(0xFFFFFFFF_FFFFFFFF_FFFFFFFF_FFFFFFFD, 0xFFFFFFFF_FFFFFFFF_FFFFFFFF_FFFFFFFF) == true
|
||||
; run: %i128_bricmp_ule(0xC0FFEEEE_C0FFEEEE_00000000_00000000, 0xDECAFFFF_DECAFFFF_00000000_00000000) == true
|
||||
; run: %i128_bricmp_ule(0xDECAFFFF_DECAFFFF_00000000_00000000, 0xC0FFEEEE_C0FFEEEE_00000000_00000000) == false
|
||||
; run: %i128_bricmp_ule(0, 0) == 1
|
||||
; run: %i128_bricmp_ule(1, 1) == 1
|
||||
; run: %i128_bricmp_ule(0, 1) == 1
|
||||
; run: %i128_bricmp_ule(-1, 0) == 0
|
||||
; run: %i128_bricmp_ule(0, -1) == 1
|
||||
; run: %i128_bricmp_ule(-1, -1) == 1
|
||||
; run: %i128_bricmp_ule(0xFFFFFFFF_FFFFFFFF_FFFFFFFF_FFFFFFFD, 0xFFFFFFFF_FFFFFFFF_FFFFFFFF_FFFFFFFF) == 1
|
||||
; run: %i128_bricmp_ule(0xC0FFEEEE_C0FFEEEE_00000000_00000000, 0xDECAFFFF_DECAFFFF_00000000_00000000) == 1
|
||||
; run: %i128_bricmp_ule(0xDECAFFFF_DECAFFFF_00000000_00000000, 0xC0FFEEEE_C0FFEEEE_00000000_00000000) == 0
|
||||
|
||||
function %i128_bricmp_sgt(i128, i128) -> b1 {
|
||||
function %i128_bricmp_sgt(i128, i128) -> i8 {
|
||||
block0(v0: i128,v1: i128):
|
||||
br_icmp.i128 sgt v0, v1, block2
|
||||
jump block1
|
||||
|
||||
block1:
|
||||
v2 = bconst.b1 false
|
||||
v2 = iconst.i8 0
|
||||
return v2
|
||||
|
||||
block2:
|
||||
v3 = bconst.b1 true
|
||||
v3 = iconst.i8 1
|
||||
return v3
|
||||
}
|
||||
; run: %i128_bricmp_sgt(0, 0) == false
|
||||
; run: %i128_bricmp_sgt(1, 1) == false
|
||||
; run: %i128_bricmp_sgt(0, 1) == false
|
||||
; run: %i128_bricmp_sgt(-1, 0) == false
|
||||
; run: %i128_bricmp_sgt(0, -1) == true
|
||||
; run: %i128_bricmp_sgt(-1, -1) == false
|
||||
; run: %i128_bricmp_sgt(0xFFFFFFFF_FFFFFFFF_FFFFFFFF_FFFFFFFD, 0xFFFFFFFF_FFFFFFFF_FFFFFFFF_FFFFFFFF) == false
|
||||
; run: %i128_bricmp_sgt(0xC0FFEEEE_C0FFEEEE_00000000_00000000, 0xDECAFFFF_DECAFFFF_00000000_00000000) == false
|
||||
; run: %i128_bricmp_sgt(0xDECAFFFF_DECAFFFF_00000000_00000000, 0xC0FFEEEE_C0FFEEEE_00000000_00000000) == true
|
||||
; run: %i128_bricmp_sgt(0, 0) == 0
|
||||
; run: %i128_bricmp_sgt(1, 1) == 0
|
||||
; run: %i128_bricmp_sgt(0, 1) == 0
|
||||
; run: %i128_bricmp_sgt(-1, 0) == 0
|
||||
; run: %i128_bricmp_sgt(0, -1) == 1
|
||||
; run: %i128_bricmp_sgt(-1, -1) == 0
|
||||
; run: %i128_bricmp_sgt(0xFFFFFFFF_FFFFFFFF_FFFFFFFF_FFFFFFFD, 0xFFFFFFFF_FFFFFFFF_FFFFFFFF_FFFFFFFF) == 0
|
||||
; run: %i128_bricmp_sgt(0xC0FFEEEE_C0FFEEEE_00000000_00000000, 0xDECAFFFF_DECAFFFF_00000000_00000000) == 0
|
||||
; run: %i128_bricmp_sgt(0xDECAFFFF_DECAFFFF_00000000_00000000, 0xC0FFEEEE_C0FFEEEE_00000000_00000000) == 1
|
||||
|
||||
function %i128_bricmp_ugt(i128, i128) -> b1 {
|
||||
function %i128_bricmp_ugt(i128, i128) -> i8 {
|
||||
block0(v0: i128,v1: i128):
|
||||
br_icmp.i128 ugt v0, v1, block2
|
||||
jump block1
|
||||
|
||||
block1:
|
||||
v2 = bconst.b1 false
|
||||
v2 = iconst.i8 0
|
||||
return v2
|
||||
|
||||
block2:
|
||||
v3 = bconst.b1 true
|
||||
v3 = iconst.i8 1
|
||||
return v3
|
||||
}
|
||||
; run: %i128_bricmp_ugt(0, 0) == false
|
||||
; run: %i128_bricmp_ugt(1, 1) == false
|
||||
; run: %i128_bricmp_ugt(0, 1) == false
|
||||
; run: %i128_bricmp_ugt(-1, 0) == true
|
||||
; run: %i128_bricmp_ugt(0, -1) == false
|
||||
; run: %i128_bricmp_ugt(-1, -1) == false
|
||||
; run: %i128_bricmp_ugt(0xFFFFFFFF_FFFFFFFF_FFFFFFFF_FFFFFFFD, 0xFFFFFFFF_FFFFFFFF_FFFFFFFF_FFFFFFFF) == false
|
||||
; run: %i128_bricmp_ugt(0xC0FFEEEE_C0FFEEEE_00000000_00000000, 0xDECAFFFF_DECAFFFF_00000000_00000000) == false
|
||||
; run: %i128_bricmp_ugt(0xDECAFFFF_DECAFFFF_00000000_00000000, 0xC0FFEEEE_C0FFEEEE_00000000_00000000) == true
|
||||
; run: %i128_bricmp_ugt(0, 0) == 0
|
||||
; run: %i128_bricmp_ugt(1, 1) == 0
|
||||
; run: %i128_bricmp_ugt(0, 1) == 0
|
||||
; run: %i128_bricmp_ugt(-1, 0) == 1
|
||||
; run: %i128_bricmp_ugt(0, -1) == 0
|
||||
; run: %i128_bricmp_ugt(-1, -1) == 0
|
||||
; run: %i128_bricmp_ugt(0xFFFFFFFF_FFFFFFFF_FFFFFFFF_FFFFFFFD, 0xFFFFFFFF_FFFFFFFF_FFFFFFFF_FFFFFFFF) == 0
|
||||
; run: %i128_bricmp_ugt(0xC0FFEEEE_C0FFEEEE_00000000_00000000, 0xDECAFFFF_DECAFFFF_00000000_00000000) == 0
|
||||
; run: %i128_bricmp_ugt(0xDECAFFFF_DECAFFFF_00000000_00000000, 0xC0FFEEEE_C0FFEEEE_00000000_00000000) == 1
|
||||
|
||||
function %i128_bricmp_sge(i128, i128) -> b1 {
|
||||
function %i128_bricmp_sge(i128, i128) -> i8 {
|
||||
block0(v0: i128,v1: i128):
|
||||
br_icmp.i128 sge v0, v1, block2
|
||||
jump block1
|
||||
|
||||
block1:
|
||||
v2 = bconst.b1 false
|
||||
v2 = iconst.i8 0
|
||||
return v2
|
||||
|
||||
block2:
|
||||
v3 = bconst.b1 true
|
||||
v3 = iconst.i8 1
|
||||
return v3
|
||||
}
|
||||
; run: %i128_bricmp_sge(0, 0) == true
|
||||
; run: %i128_bricmp_sge(1, 1) == true
|
||||
; run: %i128_bricmp_sge(0, 1) == false
|
||||
; run: %i128_bricmp_sge(-1, 0) == false
|
||||
; run: %i128_bricmp_sge(0, -1) == true
|
||||
; run: %i128_bricmp_sge(-1, -1) == true
|
||||
; run: %i128_bricmp_sge(0xFFFFFFFF_FFFFFFFF_FFFFFFFF_FFFFFFFD, 0xFFFFFFFF_FFFFFFFF_FFFFFFFF_FFFFFFFF) == false
|
||||
; run: %i128_bricmp_sge(0xC0FFEEEE_C0FFEEEE_00000000_00000000, 0xDECAFFFF_DECAFFFF_00000000_00000000) == false
|
||||
; run: %i128_bricmp_sge(0xDECAFFFF_DECAFFFF_00000000_00000000, 0xC0FFEEEE_C0FFEEEE_00000000_00000000) == true
|
||||
; run: %i128_bricmp_sge(0, 0) == 1
|
||||
; run: %i128_bricmp_sge(1, 1) == 1
|
||||
; run: %i128_bricmp_sge(0, 1) == 0
|
||||
; run: %i128_bricmp_sge(-1, 0) == 0
|
||||
; run: %i128_bricmp_sge(0, -1) == 1
|
||||
; run: %i128_bricmp_sge(-1, -1) == 1
|
||||
; run: %i128_bricmp_sge(0xFFFFFFFF_FFFFFFFF_FFFFFFFF_FFFFFFFD, 0xFFFFFFFF_FFFFFFFF_FFFFFFFF_FFFFFFFF) == 0
|
||||
; run: %i128_bricmp_sge(0xC0FFEEEE_C0FFEEEE_00000000_00000000, 0xDECAFFFF_DECAFFFF_00000000_00000000) == 0
|
||||
; run: %i128_bricmp_sge(0xDECAFFFF_DECAFFFF_00000000_00000000, 0xC0FFEEEE_C0FFEEEE_00000000_00000000) == 1
|
||||
|
||||
function %i128_bricmp_uge(i128, i128) -> b1 {
|
||||
function %i128_bricmp_uge(i128, i128) -> i8 {
|
||||
block0(v0: i128,v1: i128):
|
||||
br_icmp.i128 uge v0, v1, block2
|
||||
jump block1
|
||||
|
||||
block1:
|
||||
v2 = bconst.b1 false
|
||||
v2 = iconst.i8 0
|
||||
return v2
|
||||
|
||||
block2:
|
||||
v3 = bconst.b1 true
|
||||
v3 = iconst.i8 1
|
||||
return v3
|
||||
}
|
||||
; run: %i128_bricmp_uge(0, 0) == true
|
||||
; run: %i128_bricmp_uge(1, 1) == true
|
||||
; run: %i128_bricmp_uge(0, 1) == false
|
||||
; run: %i128_bricmp_uge(-1, 0) == true
|
||||
; run: %i128_bricmp_uge(0, -1) == false
|
||||
; run: %i128_bricmp_uge(-1, -1) == true
|
||||
; run: %i128_bricmp_uge(0xFFFFFFFF_FFFFFFFF_FFFFFFFF_FFFFFFFD, 0xFFFFFFFF_FFFFFFFF_FFFFFFFF_FFFFFFFF) == false
|
||||
; run: %i128_bricmp_uge(0xC0FFEEEE_C0FFEEEE_00000000_00000000, 0xDECAFFFF_DECAFFFF_00000000_00000000) == false
|
||||
; run: %i128_bricmp_uge(0xDECAFFFF_DECAFFFF_00000000_00000000, 0xC0FFEEEE_C0FFEEEE_00000000_00000000) == true
|
||||
; run: %i128_bricmp_uge(0, 0) == 1
|
||||
; run: %i128_bricmp_uge(1, 1) == 1
|
||||
; run: %i128_bricmp_uge(0, 1) == 0
|
||||
; run: %i128_bricmp_uge(-1, 0) == 1
|
||||
; run: %i128_bricmp_uge(0, -1) == 0
|
||||
; run: %i128_bricmp_uge(-1, -1) == 1
|
||||
; run: %i128_bricmp_uge(0xFFFFFFFF_FFFFFFFF_FFFFFFFF_FFFFFFFD, 0xFFFFFFFF_FFFFFFFF_FFFFFFFF_FFFFFFFF) == 0
|
||||
; run: %i128_bricmp_uge(0xC0FFEEEE_C0FFEEEE_00000000_00000000, 0xDECAFFFF_DECAFFFF_00000000_00000000) == 0
|
||||
; run: %i128_bricmp_uge(0xDECAFFFF_DECAFFFF_00000000_00000000, 0xC0FFEEEE_C0FFEEEE_00000000_00000000) == 1
|
||||
|
||||
@@ -6,172 +6,172 @@ target s390x
|
||||
target x86_64
|
||||
target riscv64
|
||||
|
||||
function %icmp_eq_i128(i128, i128) -> b1 {
|
||||
function %icmp_eq_i128(i128, i128) -> i8 {
|
||||
block0(v0: i128, v1: i128):
|
||||
v2 = icmp.i128 eq v0, v1
|
||||
return v2
|
||||
}
|
||||
; run: %icmp_eq_i128(0, 0) == true
|
||||
; run: %icmp_eq_i128(-1, -1) == true
|
||||
; run: %icmp_eq_i128(-1, 0) == false
|
||||
; run: %icmp_eq_i128(-1, 0x00000000_00000000_FFFFFFFF_FFFFFFFF) == false
|
||||
; run: %icmp_eq_i128(0x00000000_00000000_FFFFFFFF_FFFFFFFF, -1) == false
|
||||
; run: %icmp_eq_i128(0xFFFFFFFF_FFFFFFFF_00000000_00000000, -1) == false
|
||||
; run: %icmp_eq_i128(0xDECAFFFF_C0FFEEEE_C0FFEEEE_DECAFFFF, 0xDECAFFFF_C0FFEEEE_C0FFEEEE_DECAFFFF) == true
|
||||
; run: %icmp_eq_i128(0xFFFFFFFF_FFFFFFFF_FFFFFFFF_FFFFFFFF, 0x00000000_00000001_00000000_00000001) == false
|
||||
; run: %icmp_eq_i128(0x00000000_00000001_FFFFFFFF_FFFFFFFF, 0x00000000_00000001_00000000_00000001) == false
|
||||
; run: %icmp_eq_i128(0, 0) == 1
|
||||
; run: %icmp_eq_i128(-1, -1) == 1
|
||||
; run: %icmp_eq_i128(-1, 0) == 0
|
||||
; run: %icmp_eq_i128(-1, 0x00000000_00000000_FFFFFFFF_FFFFFFFF) == 0
|
||||
; run: %icmp_eq_i128(0x00000000_00000000_FFFFFFFF_FFFFFFFF, -1) == 0
|
||||
; run: %icmp_eq_i128(0xFFFFFFFF_FFFFFFFF_00000000_00000000, -1) == 0
|
||||
; run: %icmp_eq_i128(0xDECAFFFF_C0FFEEEE_C0FFEEEE_DECAFFFF, 0xDECAFFFF_C0FFEEEE_C0FFEEEE_DECAFFFF) == 1
|
||||
; run: %icmp_eq_i128(0xFFFFFFFF_FFFFFFFF_FFFFFFFF_FFFFFFFF, 0x00000000_00000001_00000000_00000001) == 0
|
||||
; run: %icmp_eq_i128(0x00000000_00000001_FFFFFFFF_FFFFFFFF, 0x00000000_00000001_00000000_00000001) == 0
|
||||
|
||||
; This is a regression test for aarch64, see: https://github.com/bytecodealliance/wasmtime/issues/4705
|
||||
; run: %icmp_eq_i128(36893488147419103231, 0) == false
|
||||
; run: %icmp_eq_i128(36893488147419103231, 0) == 0
|
||||
|
||||
|
||||
function %icmp_ne_i128(i128, i128) -> b1 {
|
||||
function %icmp_ne_i128(i128, i128) -> i8 {
|
||||
block0(v0: i128, v1: i128):
|
||||
v2 = icmp.i128 ne v0, v1
|
||||
return v2
|
||||
}
|
||||
; run: %icmp_ne_i128(0, 0) == false
|
||||
; run: %icmp_ne_i128(-1, -1) == false
|
||||
; run: %icmp_ne_i128(-1, 0) == true
|
||||
; run: %icmp_ne_i128(-1, 0x00000000_00000000_FFFFFFFF_FFFFFF) == true
|
||||
; run: %icmp_ne_i128(0x00000000_00000000_FFFFFFFF_FFFFFFFF, -1) == true
|
||||
; run: %icmp_ne_i128(0xFFFFFFFF_FFFFFFFF_00000000_00000000, -1) == true
|
||||
; run: %icmp_ne_i128(0xDECAFFFF_C0FFEEEE_C0FFEEEE_DECAFFFF, 0xDECAFFFF_C0FFEEEE_C0FFEEEE_DECAFFFF) == false
|
||||
; run: %icmp_ne_i128(0xFFFFFFFF_FFFFFFFF_FFFFFFFF_FFFFFFFF, 0x00000000_00000001_00000000_00000001) == true
|
||||
; run: %icmp_ne_i128(0x00000000_00000001_FFFFFFFF_FFFFFFFF, 0x00000000_00000001_00000000_00000001) == true
|
||||
; run: %icmp_ne_i128(0, 0) == 0
|
||||
; run: %icmp_ne_i128(-1, -1) == 0
|
||||
; run: %icmp_ne_i128(-1, 0) == 1
|
||||
; run: %icmp_ne_i128(-1, 0x00000000_00000000_FFFFFFFF_FFFFFF) == 1
|
||||
; run: %icmp_ne_i128(0x00000000_00000000_FFFFFFFF_FFFFFFFF, -1) == 1
|
||||
; run: %icmp_ne_i128(0xFFFFFFFF_FFFFFFFF_00000000_00000000, -1) == 1
|
||||
; run: %icmp_ne_i128(0xDECAFFFF_C0FFEEEE_C0FFEEEE_DECAFFFF, 0xDECAFFFF_C0FFEEEE_C0FFEEEE_DECAFFFF) == 0
|
||||
; run: %icmp_ne_i128(0xFFFFFFFF_FFFFFFFF_FFFFFFFF_FFFFFFFF, 0x00000000_00000001_00000000_00000001) == 1
|
||||
; run: %icmp_ne_i128(0x00000000_00000001_FFFFFFFF_FFFFFFFF, 0x00000000_00000001_00000000_00000001) == 1
|
||||
|
||||
|
||||
|
||||
function %icmp_slt_i128(i128, i128) -> b1 {
|
||||
function %icmp_slt_i128(i128, i128) -> i8 {
|
||||
block0(v0: i128, v1: i128):
|
||||
v2 = icmp.i128 slt v0, v1
|
||||
return v2
|
||||
}
|
||||
; run: %icmp_slt_i128(0, 0) == false
|
||||
; run: %icmp_slt_i128(1, 1) == false
|
||||
; run: %icmp_slt_i128(0, 1) == true
|
||||
; run: %icmp_slt_i128(-1, 0) == true
|
||||
; run: %icmp_slt_i128(0, -1) == false
|
||||
; run: %icmp_slt_i128(-1, -1) == false
|
||||
; run: %icmp_slt_i128(0xFFFFFFFF_FFFFFFFF_FFFFFFFF_FFFFFFFD, 0xFFFFFFFF_FFFFFFFF_FFFFFFFF_FFFFFFFF) == true
|
||||
; run: %icmp_slt_i128(0xC0FFEEEE_C0FFEEEE_00000000_00000000, 0xDECAFFFF_DECAFFFF_00000000_00000000) == true
|
||||
; run: %icmp_slt_i128(0xDECAFFFF_DECAFFFF_00000000_00000000, 0xC0FFEEEE_C0FFEEEE_00000000_00000000) == false
|
||||
; run: %icmp_slt_i128(0, 0) == 0
|
||||
; run: %icmp_slt_i128(1, 1) == 0
|
||||
; run: %icmp_slt_i128(0, 1) == 1
|
||||
; run: %icmp_slt_i128(-1, 0) == 1
|
||||
; run: %icmp_slt_i128(0, -1) == 0
|
||||
; run: %icmp_slt_i128(-1, -1) == 0
|
||||
; run: %icmp_slt_i128(0xFFFFFFFF_FFFFFFFF_FFFFFFFF_FFFFFFFD, 0xFFFFFFFF_FFFFFFFF_FFFFFFFF_FFFFFFFF) == 1
|
||||
; run: %icmp_slt_i128(0xC0FFEEEE_C0FFEEEE_00000000_00000000, 0xDECAFFFF_DECAFFFF_00000000_00000000) == 1
|
||||
; run: %icmp_slt_i128(0xDECAFFFF_DECAFFFF_00000000_00000000, 0xC0FFEEEE_C0FFEEEE_00000000_00000000) == 0
|
||||
|
||||
|
||||
function %icmp_ult_i128(i128, i128) -> b1 {
|
||||
function %icmp_ult_i128(i128, i128) -> i8 {
|
||||
block0(v0: i128, v1: i128):
|
||||
v2 = icmp.i128 ult v0, v1
|
||||
return v2
|
||||
}
|
||||
; run: %icmp_ult_i128(0, 0) == false
|
||||
; run: %icmp_ult_i128(1, 1) == false
|
||||
; run: %icmp_ult_i128(0, 1) == true
|
||||
; run: %icmp_ult_i128(-1, 0) == false
|
||||
; run: %icmp_ult_i128(0, -1) == true
|
||||
; run: %icmp_ult_i128(-1, -1) == false
|
||||
; run: %icmp_ult_i128(0xFFFFFFFF_FFFFFFFF_FFFFFFFF_FFFFFFFD, 0xFFFFFFFF_FFFFFFFF_FFFFFFFF_FFFFFFFF) == true
|
||||
; run: %icmp_ult_i128(0xC0FFEEEE_C0FFEEEE_00000000_00000000, 0xDECAFFFF_DECAFFFF_00000000_00000000) == true
|
||||
; run: %icmp_ult_i128(0xDECAFFFF_DECAFFFF_00000000_00000000, 0xC0FFEEEE_C0FFEEEE_00000000_00000000) == false
|
||||
; run: %icmp_ult_i128(0, 0) == 0
|
||||
; run: %icmp_ult_i128(1, 1) == 0
|
||||
; run: %icmp_ult_i128(0, 1) == 1
|
||||
; run: %icmp_ult_i128(-1, 0) == 0
|
||||
; run: %icmp_ult_i128(0, -1) == 1
|
||||
; run: %icmp_ult_i128(-1, -1) == 0
|
||||
; run: %icmp_ult_i128(0xFFFFFFFF_FFFFFFFF_FFFFFFFF_FFFFFFFD, 0xFFFFFFFF_FFFFFFFF_FFFFFFFF_FFFFFFFF) == 1
|
||||
; run: %icmp_ult_i128(0xC0FFEEEE_C0FFEEEE_00000000_00000000, 0xDECAFFFF_DECAFFFF_00000000_00000000) == 1
|
||||
; run: %icmp_ult_i128(0xDECAFFFF_DECAFFFF_00000000_00000000, 0xC0FFEEEE_C0FFEEEE_00000000_00000000) == 0
|
||||
|
||||
|
||||
function %icmp_sle_i128(i128, i128) -> b1 {
|
||||
function %icmp_sle_i128(i128, i128) -> i8 {
|
||||
block0(v0: i128, v1: i128):
|
||||
v2 = icmp.i128 sle v0, v1
|
||||
return v2
|
||||
}
|
||||
; run: %icmp_sle_i128(0, 0) == true
|
||||
; run: %icmp_sle_i128(1, 1) == true
|
||||
; run: %icmp_sle_i128(0, 1) == true
|
||||
; run: %icmp_sle_i128(-1, 0) == true
|
||||
; run: %icmp_sle_i128(0, -1) == false
|
||||
; run: %icmp_sle_i128(-1, -1) == true
|
||||
; run: %icmp_sle_i128(0xFFFFFFFF_FFFFFFFF_FFFFFFFF_FFFFFFFD, 0xFFFFFFFF_FFFFFFFF_FFFFFFFF_FFFFFFFF) == true
|
||||
; run: %icmp_sle_i128(0xC0FFEEEE_C0FFEEEE_00000000_00000000, 0xDECAFFFF_DECAFFFF_00000000_00000000) == true
|
||||
; run: %icmp_sle_i128(0xDECAFFFF_DECAFFFF_00000000_00000000, 0xC0FFEEEE_C0FFEEEE_00000000_00000000) == false
|
||||
; run: %icmp_sle_i128(0, 0) == 1
|
||||
; run: %icmp_sle_i128(1, 1) == 1
|
||||
; run: %icmp_sle_i128(0, 1) == 1
|
||||
; run: %icmp_sle_i128(-1, 0) == 1
|
||||
; run: %icmp_sle_i128(0, -1) == 0
|
||||
; run: %icmp_sle_i128(-1, -1) == 1
|
||||
; run: %icmp_sle_i128(0xFFFFFFFF_FFFFFFFF_FFFFFFFF_FFFFFFFD, 0xFFFFFFFF_FFFFFFFF_FFFFFFFF_FFFFFFFF) == 1
|
||||
; run: %icmp_sle_i128(0xC0FFEEEE_C0FFEEEE_00000000_00000000, 0xDECAFFFF_DECAFFFF_00000000_00000000) == 1
|
||||
; run: %icmp_sle_i128(0xDECAFFFF_DECAFFFF_00000000_00000000, 0xC0FFEEEE_C0FFEEEE_00000000_00000000) == 0
|
||||
|
||||
|
||||
function %icmp_ule_i128(i128, i128) -> b1 {
|
||||
function %icmp_ule_i128(i128, i128) -> i8 {
|
||||
block0(v0: i128, v1: i128):
|
||||
v2 = icmp.i128 ule v0, v1
|
||||
return v2
|
||||
}
|
||||
; run: %icmp_ule_i128(0, 0) == true
|
||||
; run: %icmp_ule_i128(1, 1) == true
|
||||
; run: %icmp_ule_i128(0, 1) == true
|
||||
; run: %icmp_ule_i128(-1, 0) == false
|
||||
; run: %icmp_ule_i128(0, -1) == true
|
||||
; run: %icmp_ule_i128(-1, -1) == true
|
||||
; run: %icmp_ule_i128(0xFFFFFFFF_FFFFFFFF_FFFFFFFF_FFFFFFFD, 0xFFFFFFFF_FFFFFFFF_FFFFFFFF_FFFFFFFF) == true
|
||||
; run: %icmp_ule_i128(0xC0FFEEEE_C0FFEEEE_00000000_00000000, 0xDECAFFFF_DECAFFFF_00000000_00000000) == true
|
||||
; run: %icmp_ule_i128(0xDECAFFFF_DECAFFFF_00000000_00000000, 0xC0FFEEEE_C0FFEEEE_00000000_00000000) == false
|
||||
; run: %icmp_ule_i128(0, 0) == 1
|
||||
; run: %icmp_ule_i128(1, 1) == 1
|
||||
; run: %icmp_ule_i128(0, 1) == 1
|
||||
; run: %icmp_ule_i128(-1, 0) == 0
|
||||
; run: %icmp_ule_i128(0, -1) == 1
|
||||
; run: %icmp_ule_i128(-1, -1) == 1
|
||||
; run: %icmp_ule_i128(0xFFFFFFFF_FFFFFFFF_FFFFFFFF_FFFFFFFD, 0xFFFFFFFF_FFFFFFFF_FFFFFFFF_FFFFFFFF) == 1
|
||||
; run: %icmp_ule_i128(0xC0FFEEEE_C0FFEEEE_00000000_00000000, 0xDECAFFFF_DECAFFFF_00000000_00000000) == 1
|
||||
; run: %icmp_ule_i128(0xDECAFFFF_DECAFFFF_00000000_00000000, 0xC0FFEEEE_C0FFEEEE_00000000_00000000) == 0
|
||||
|
||||
|
||||
function %icmp_sgt_i128(i128, i128) -> b1 {
|
||||
function %icmp_sgt_i128(i128, i128) -> i8 {
|
||||
block0(v0: i128, v1: i128):
|
||||
v2 = icmp.i128 sgt v0, v1
|
||||
return v2
|
||||
}
|
||||
; run: %icmp_sgt_i128(0, 0) == false
|
||||
; run: %icmp_sgt_i128(1, 1) == false
|
||||
; run: %icmp_sgt_i128(0, 1) == false
|
||||
; run: %icmp_sgt_i128(-1, 0) == false
|
||||
; run: %icmp_sgt_i128(0, -1) == true
|
||||
; run: %icmp_sgt_i128(-1, -1) == false
|
||||
; run: %icmp_sgt_i128(0xFFFFFFFF_FFFFFFFF_FFFFFFFF_FFFFFFFD, 0xFFFFFFFF_FFFFFFFF_FFFFFFFF_FFFFFFFF) == false
|
||||
; run: %icmp_sgt_i128(0xC0FFEEEE_C0FFEEEE_00000000_00000000, 0xDECAFFFF_DECAFFFF_00000000_00000000) == false
|
||||
; run: %icmp_sgt_i128(0xDECAFFFF_DECAFFFF_00000000_00000000, 0xC0FFEEEE_C0FFEEEE_00000000_00000000) == true
|
||||
; run: %icmp_sgt_i128(0, 0) == 0
|
||||
; run: %icmp_sgt_i128(1, 1) == 0
|
||||
; run: %icmp_sgt_i128(0, 1) == 0
|
||||
; run: %icmp_sgt_i128(-1, 0) == 0
|
||||
; run: %icmp_sgt_i128(0, -1) == 1
|
||||
; run: %icmp_sgt_i128(-1, -1) == 0
|
||||
; run: %icmp_sgt_i128(0xFFFFFFFF_FFFFFFFF_FFFFFFFF_FFFFFFFD, 0xFFFFFFFF_FFFFFFFF_FFFFFFFF_FFFFFFFF) == 0
|
||||
; run: %icmp_sgt_i128(0xC0FFEEEE_C0FFEEEE_00000000_00000000, 0xDECAFFFF_DECAFFFF_00000000_00000000) == 0
|
||||
; run: %icmp_sgt_i128(0xDECAFFFF_DECAFFFF_00000000_00000000, 0xC0FFEEEE_C0FFEEEE_00000000_00000000) == 1
|
||||
|
||||
|
||||
function %icmp_ugt_i128(i128, i128) -> b1 {
|
||||
function %icmp_ugt_i128(i128, i128) -> i8 {
|
||||
block0(v0: i128, v1: i128):
|
||||
v2 = icmp.i128 ugt v0, v1
|
||||
return v2
|
||||
}
|
||||
; run: %icmp_ugt_i128(0, 0) == false
|
||||
; run: %icmp_ugt_i128(1, 1) == false
|
||||
; run: %icmp_ugt_i128(0, 1) == false
|
||||
; run: %icmp_ugt_i128(-1, 0) == true
|
||||
; run: %icmp_ugt_i128(0, -1) == false
|
||||
; run: %icmp_ugt_i128(-1, -1) == false
|
||||
; run: %icmp_ugt_i128(0xFFFFFFFF_FFFFFFFF_FFFFFFFF_FFFFFFFD, 0xFFFFFFFF_FFFFFFFF_FFFFFFFF_FFFFFFFF) == false
|
||||
; run: %icmp_ugt_i128(0xC0FFEEEE_C0FFEEEE_00000000_00000000, 0xDECAFFFF_DECAFFFF_00000000_00000000) == false
|
||||
; run: %icmp_ugt_i128(0xDECAFFFF_DECAFFFF_00000000_00000000, 0xC0FFEEEE_C0FFEEEE_00000000_00000000) == true
|
||||
; run: %icmp_ugt_i128(0, 0) == 0
|
||||
; run: %icmp_ugt_i128(1, 1) == 0
|
||||
; run: %icmp_ugt_i128(0, 1) == 0
|
||||
; run: %icmp_ugt_i128(-1, 0) == 1
|
||||
; run: %icmp_ugt_i128(0, -1) == 0
|
||||
; run: %icmp_ugt_i128(-1, -1) == 0
|
||||
; run: %icmp_ugt_i128(0xFFFFFFFF_FFFFFFFF_FFFFFFFF_FFFFFFFD, 0xFFFFFFFF_FFFFFFFF_FFFFFFFF_FFFFFFFF) == 0
|
||||
; run: %icmp_ugt_i128(0xC0FFEEEE_C0FFEEEE_00000000_00000000, 0xDECAFFFF_DECAFFFF_00000000_00000000) == 0
|
||||
; run: %icmp_ugt_i128(0xDECAFFFF_DECAFFFF_00000000_00000000, 0xC0FFEEEE_C0FFEEEE_00000000_00000000) == 1
|
||||
|
||||
|
||||
function %icmp_sge_i128(i128, i128) -> b1 {
|
||||
function %icmp_sge_i128(i128, i128) -> i8 {
|
||||
block0(v0: i128, v1: i128):
|
||||
v2 = icmp.i128 sge v0, v1
|
||||
return v2
|
||||
}
|
||||
; run: %icmp_sge_i128(0, 0) == true
|
||||
; run: %icmp_sge_i128(1, 1) == true
|
||||
; run: %icmp_sge_i128(0, 1) == false
|
||||
; run: %icmp_sge_i128(-1, 0) == false
|
||||
; run: %icmp_sge_i128(0, -1) == true
|
||||
; run: %icmp_sge_i128(-1, -1) == true
|
||||
; run: %icmp_sge_i128(0xFFFFFFFF_FFFFFFFF_FFFFFFFF_FFFFFFFD, 0xFFFFFFFF_FFFFFFFF_FFFFFFFF_FFFFFFFF) == false
|
||||
; run: %icmp_sge_i128(0xC0FFEEEE_C0FFEEEE_00000000_00000000, 0xDECAFFFF_DECAFFFF_00000000_00000000) == false
|
||||
; run: %icmp_sge_i128(0xDECAFFFF_DECAFFFF_00000000_00000000, 0xC0FFEEEE_C0FFEEEE_00000000_00000000) == true
|
||||
; run: %icmp_sge_i128(0, 0) == 1
|
||||
; run: %icmp_sge_i128(1, 1) == 1
|
||||
; run: %icmp_sge_i128(0, 1) == 0
|
||||
; run: %icmp_sge_i128(-1, 0) == 0
|
||||
; run: %icmp_sge_i128(0, -1) == 1
|
||||
; run: %icmp_sge_i128(-1, -1) == 1
|
||||
; run: %icmp_sge_i128(0xFFFFFFFF_FFFFFFFF_FFFFFFFF_FFFFFFFD, 0xFFFFFFFF_FFFFFFFF_FFFFFFFF_FFFFFFFF) == 0
|
||||
; run: %icmp_sge_i128(0xC0FFEEEE_C0FFEEEE_00000000_00000000, 0xDECAFFFF_DECAFFFF_00000000_00000000) == 0
|
||||
; run: %icmp_sge_i128(0xDECAFFFF_DECAFFFF_00000000_00000000, 0xC0FFEEEE_C0FFEEEE_00000000_00000000) == 1
|
||||
|
||||
|
||||
function %icmp_uge_i128(i128, i128) -> b1 {
|
||||
function %icmp_uge_i128(i128, i128) -> i8 {
|
||||
block0(v0: i128, v1: i128):
|
||||
v2 = icmp.i128 uge v0, v1
|
||||
return v2
|
||||
}
|
||||
; run: %icmp_uge_i128(0, 0) == true
|
||||
; run: %icmp_uge_i128(1, 1) == true
|
||||
; run: %icmp_uge_i128(0, 1) == false
|
||||
; run: %icmp_uge_i128(-1, 0) == true
|
||||
; run: %icmp_uge_i128(0, -1) == false
|
||||
; run: %icmp_uge_i128(-1, -1) == true
|
||||
; run: %icmp_uge_i128(0xFFFFFFFF_FFFFFFFF_FFFFFFFF_FFFFFFFD, 0xFFFFFFFF_FFFFFFFF_FFFFFFFF_FFFFFFFF) == false
|
||||
; run: %icmp_uge_i128(0xC0FFEEEE_C0FFEEEE_00000000_00000000, 0xDECAFFFF_DECAFFFF_00000000_00000000) == false
|
||||
; run: %icmp_uge_i128(0xDECAFFFF_DECAFFFF_00000000_00000000, 0xC0FFEEEE_C0FFEEEE_00000000_00000000) == true
|
||||
; run: %icmp_uge_i128(0, 0) == 1
|
||||
; run: %icmp_uge_i128(1, 1) == 1
|
||||
; run: %icmp_uge_i128(0, 1) == 0
|
||||
; run: %icmp_uge_i128(-1, 0) == 1
|
||||
; run: %icmp_uge_i128(0, -1) == 0
|
||||
; run: %icmp_uge_i128(-1, -1) == 1
|
||||
; run: %icmp_uge_i128(0xFFFFFFFF_FFFFFFFF_FFFFFFFF_FFFFFFFD, 0xFFFFFFFF_FFFFFFFF_FFFFFFFF_FFFFFFFF) == 0
|
||||
; run: %icmp_uge_i128(0xC0FFEEEE_C0FFEEEE_00000000_00000000, 0xDECAFFFF_DECAFFFF_00000000_00000000) == 0
|
||||
; run: %icmp_uge_i128(0xDECAFFFF_DECAFFFF_00000000_00000000, 0xC0FFEEEE_C0FFEEEE_00000000_00000000) == 1
|
||||
|
||||
|
||||
; Icmp Imm Tests
|
||||
function %icmp_imm_eq_i128() -> b1 {
|
||||
function %icmp_imm_eq_i128() -> i8 {
|
||||
block0:
|
||||
v11 = iconst.i64 0x0
|
||||
v12 = iconst.i64 0x0
|
||||
@@ -180,9 +180,9 @@ block0:
|
||||
return v10
|
||||
}
|
||||
|
||||
; run: %icmp_imm_eq_i128() == true
|
||||
; run: %icmp_imm_eq_i128() == 1
|
||||
|
||||
function %icmp_imm_ne_i128() -> b1 {
|
||||
function %icmp_imm_ne_i128() -> i8 {
|
||||
block0:
|
||||
v11 = iconst.i64 0x0
|
||||
v12 = iconst.i64 0x0
|
||||
@@ -191,4 +191,4 @@ block0:
|
||||
return v10
|
||||
}
|
||||
|
||||
; run: %icmp_imm_ne_i128() == true
|
||||
; run: %icmp_imm_ne_i128() == 1
|
||||
|
||||
@@ -7,7 +7,7 @@ target aarch64
|
||||
target riscv64
|
||||
target s390x
|
||||
|
||||
function %i128_stack_store_load(i128) -> b1 {
|
||||
function %i128_stack_store_load(i128) -> i8 {
|
||||
ss0 = explicit_slot 16
|
||||
|
||||
block0(v0: i128):
|
||||
@@ -17,16 +17,16 @@ block0(v0: i128):
|
||||
v2 = icmp.i128 eq v0, v1
|
||||
return v2
|
||||
}
|
||||
; run: %i128_stack_store_load(0) == true
|
||||
; run: %i128_stack_store_load(-1) == true
|
||||
; run: %i128_stack_store_load(0x00000000_00000000_FFFFFFFF_FFFFFFFF) == true
|
||||
; run: %i128_stack_store_load(0xFFFFFFFF_FFFFFFFF_00000000_00000000) == true
|
||||
; run: %i128_stack_store_load(0xFEDCBA98_76543210_01234567_89ABCDEF) == true
|
||||
; run: %i128_stack_store_load(0xA00A00A0_0A00A00A_06060606_06060606) == true
|
||||
; run: %i128_stack_store_load(0xDECAFFFF_C0FFEEEE_C0FFEEEE_DECAFFFF) == true
|
||||
; run: %i128_stack_store_load(0) == 1
|
||||
; run: %i128_stack_store_load(-1) == 1
|
||||
; run: %i128_stack_store_load(0x00000000_00000000_FFFFFFFF_FFFFFFFF) == 1
|
||||
; run: %i128_stack_store_load(0xFFFFFFFF_FFFFFFFF_00000000_00000000) == 1
|
||||
; run: %i128_stack_store_load(0xFEDCBA98_76543210_01234567_89ABCDEF) == 1
|
||||
; run: %i128_stack_store_load(0xA00A00A0_0A00A00A_06060606_06060606) == 1
|
||||
; run: %i128_stack_store_load(0xDECAFFFF_C0FFEEEE_C0FFEEEE_DECAFFFF) == 1
|
||||
|
||||
|
||||
function %i128_stack_store_load_inst_offset(i128) -> b1 {
|
||||
function %i128_stack_store_load_inst_offset(i128) -> i8 {
|
||||
ss0 = explicit_slot 16
|
||||
ss1 = explicit_slot 16
|
||||
ss2 = explicit_slot 16
|
||||
@@ -38,18 +38,18 @@ block0(v0: i128):
|
||||
v2 = icmp.i128 eq v0, v1
|
||||
return v2
|
||||
}
|
||||
; run: %i128_stack_store_load_inst_offset(0) == true
|
||||
; run: %i128_stack_store_load_inst_offset(-1) == true
|
||||
; run: %i128_stack_store_load_inst_offset(0x00000000_00000000_FFFFFFFF_FFFFFFFF) == true
|
||||
; run: %i128_stack_store_load_inst_offset(0xFFFFFFFF_FFFFFFFF_00000000_00000000) == true
|
||||
; run: %i128_stack_store_load_inst_offset(0xFEDCBA98_76543210_01234567_89ABCDEF) == true
|
||||
; run: %i128_stack_store_load_inst_offset(0xA00A00A0_0A00A00A_06060606_06060606) == true
|
||||
; run: %i128_stack_store_load_inst_offset(0xDECAFFFF_C0FFEEEE_C0FFEEEE_DECAFFFF) == true
|
||||
; run: %i128_stack_store_load_inst_offset(0) == 1
|
||||
; run: %i128_stack_store_load_inst_offset(-1) == 1
|
||||
; run: %i128_stack_store_load_inst_offset(0x00000000_00000000_FFFFFFFF_FFFFFFFF) == 1
|
||||
; run: %i128_stack_store_load_inst_offset(0xFFFFFFFF_FFFFFFFF_00000000_00000000) == 1
|
||||
; run: %i128_stack_store_load_inst_offset(0xFEDCBA98_76543210_01234567_89ABCDEF) == 1
|
||||
; run: %i128_stack_store_load_inst_offset(0xA00A00A0_0A00A00A_06060606_06060606) == 1
|
||||
; run: %i128_stack_store_load_inst_offset(0xDECAFFFF_C0FFEEEE_C0FFEEEE_DECAFFFF) == 1
|
||||
|
||||
|
||||
; Some arches (aarch64) try to encode the offset into the load/store instructions
|
||||
; test that we spill if the offset is too large and doesn't fit in the instruction
|
||||
function %i128_stack_store_load_big_offset(i128) -> b1 {
|
||||
function %i128_stack_store_load_big_offset(i128) -> i8 {
|
||||
ss0 = explicit_slot 100000
|
||||
ss1 = explicit_slot 8
|
||||
|
||||
@@ -60,17 +60,17 @@ block0(v0: i128):
|
||||
v2 = icmp.i128 eq v0, v1
|
||||
return v2
|
||||
}
|
||||
; run: %i128_stack_store_load_big_offset(0) == true
|
||||
; run: %i128_stack_store_load_big_offset(-1) == true
|
||||
; run: %i128_stack_store_load_big_offset(0x00000000_00000000_FFFFFFFF_FFFFFFFF) == true
|
||||
; run: %i128_stack_store_load_big_offset(0xFFFFFFFF_FFFFFFFF_00000000_00000000) == true
|
||||
; run: %i128_stack_store_load_big_offset(0xFEDCBA98_76543210_01234567_89ABCDEF) == true
|
||||
; run: %i128_stack_store_load_big_offset(0xA00A00A0_0A00A00A_06060606_06060606) == true
|
||||
; run: %i128_stack_store_load_big_offset(0xDECAFFFF_C0FFEEEE_C0FFEEEE_DECAFFFF) == true
|
||||
; run: %i128_stack_store_load_big_offset(0) == 1
|
||||
; run: %i128_stack_store_load_big_offset(-1) == 1
|
||||
; run: %i128_stack_store_load_big_offset(0x00000000_00000000_FFFFFFFF_FFFFFFFF) == 1
|
||||
; run: %i128_stack_store_load_big_offset(0xFFFFFFFF_FFFFFFFF_00000000_00000000) == 1
|
||||
; run: %i128_stack_store_load_big_offset(0xFEDCBA98_76543210_01234567_89ABCDEF) == 1
|
||||
; run: %i128_stack_store_load_big_offset(0xA00A00A0_0A00A00A_06060606_06060606) == 1
|
||||
; run: %i128_stack_store_load_big_offset(0xDECAFFFF_C0FFEEEE_C0FFEEEE_DECAFFFF) == 1
|
||||
|
||||
|
||||
|
||||
function %i128_store_load(i128) -> b1 {
|
||||
function %i128_store_load(i128) -> i8 {
|
||||
ss0 = explicit_slot 16
|
||||
|
||||
block0(v0: i128):
|
||||
@@ -81,16 +81,16 @@ block0(v0: i128):
|
||||
v3 = icmp.i128 eq v0, v2
|
||||
return v3
|
||||
}
|
||||
; run: %i128_store_load(0) == true
|
||||
; run: %i128_store_load(-1) == true
|
||||
; run: %i128_store_load(0x00000000_00000000_FFFFFFFF_FFFFFFFF) == true
|
||||
; run: %i128_store_load(0xFFFFFFFF_FFFFFFFF_00000000_00000000) == true
|
||||
; run: %i128_store_load(0xFEDCBA98_76543210_01234567_89ABCDEF) == true
|
||||
; run: %i128_store_load(0xA00A00A0_0A00A00A_06060606_06060606) == true
|
||||
; run: %i128_store_load(0xDECAFFFF_C0FFEEEE_C0FFEEEE_DECAFFFF) == true
|
||||
; run: %i128_store_load(0) == 1
|
||||
; run: %i128_store_load(-1) == 1
|
||||
; run: %i128_store_load(0x00000000_00000000_FFFFFFFF_FFFFFFFF) == 1
|
||||
; run: %i128_store_load(0xFFFFFFFF_FFFFFFFF_00000000_00000000) == 1
|
||||
; run: %i128_store_load(0xFEDCBA98_76543210_01234567_89ABCDEF) == 1
|
||||
; run: %i128_store_load(0xA00A00A0_0A00A00A_06060606_06060606) == 1
|
||||
; run: %i128_store_load(0xDECAFFFF_C0FFEEEE_C0FFEEEE_DECAFFFF) == 1
|
||||
|
||||
|
||||
function %i128_store_load_offset(i128) -> b1 {
|
||||
function %i128_store_load_offset(i128) -> i8 {
|
||||
ss0 = explicit_slot 32
|
||||
|
||||
block0(v0: i128):
|
||||
@@ -101,10 +101,10 @@ block0(v0: i128):
|
||||
v3 = icmp.i128 eq v0, v2
|
||||
return v3
|
||||
}
|
||||
; run: %i128_store_load_offset(0) == true
|
||||
; run: %i128_store_load_offset(-1) == true
|
||||
; run: %i128_store_load_offset(0x00000000_00000000_FFFFFFFF_FFFFFFFF) == true
|
||||
; run: %i128_store_load_offset(0xFFFFFFFF_FFFFFFFF_00000000_00000000) == true
|
||||
; run: %i128_store_load_offset(0xFEDCBA98_76543210_01234567_89ABCDEF) == true
|
||||
; run: %i128_store_load_offset(0xA00A00A0_0A00A00A_06060606_06060606) == true
|
||||
; run: %i128_store_load_offset(0xDECAFFFF_C0FFEEEE_C0FFEEEE_DECAFFFF) == true
|
||||
; run: %i128_store_load_offset(0) == 1
|
||||
; run: %i128_store_load_offset(-1) == 1
|
||||
; run: %i128_store_load_offset(0x00000000_00000000_FFFFFFFF_FFFFFFFF) == 1
|
||||
; run: %i128_store_load_offset(0xFFFFFFFF_FFFFFFFF_00000000_00000000) == 1
|
||||
; run: %i128_store_load_offset(0xFEDCBA98_76543210_01234567_89ABCDEF) == 1
|
||||
; run: %i128_store_load_offset(0xA00A00A0_0A00A00A_06060606_06060606) == 1
|
||||
; run: %i128_store_load_offset(0xDECAFFFF_C0FFEEEE_C0FFEEEE_DECAFFFF) == 1
|
||||
|
||||
@@ -5,15 +5,15 @@ target s390x
|
||||
target x86_64
|
||||
target riscv64
|
||||
|
||||
function %i128_select(b1, i128, i128) -> i128 {
|
||||
block0(v0: b1, v1: i128, v2: i128):
|
||||
function %i128_select(i8, i128, i128) -> i128 {
|
||||
block0(v0: i8, v1: i128, v2: i128):
|
||||
v3 = select.i128 v0, v1, v2
|
||||
return v3
|
||||
}
|
||||
; run: %i128_select(true, 0, 1) == 0
|
||||
; run: %i128_select(false, 0, 1) == 1
|
||||
; run: %i128_select(true, 0x00000000_00000000_DECAFFFF_C0FFEEEE, 0xFFFFFFFF_FFFFFFFF_C0FFEEEE_DECAFFFF) == 0x00000000_00000000_DECAFFFF_C0FFEEEE
|
||||
; run: %i128_select(false, 0x00000000_00000000_DECAFFFF_C0FFEEEE, 0xFFFFFFFF_FFFFFFFF_C0FFEEEE_DECAFFFF) == 0xFFFFFFFF_FFFFFFFF_C0FFEEEE_DECAFFFF
|
||||
; run: %i128_select(1, 0, 1) == 0
|
||||
; run: %i128_select(0, 0, 1) == 1
|
||||
; run: %i128_select(1, 0x00000000_00000000_DECAFFFF_C0FFEEEE, 0xFFFFFFFF_FFFFFFFF_C0FFEEEE_DECAFFFF) == 0x00000000_00000000_DECAFFFF_C0FFEEEE
|
||||
; run: %i128_select(0, 0x00000000_00000000_DECAFFFF_C0FFEEEE, 0xFFFFFFFF_FFFFFFFF_C0FFEEEE_DECAFFFF) == 0xFFFFFFFF_FFFFFFFF_C0FFEEEE_DECAFFFF
|
||||
|
||||
;; Test for issue: https://github.com/bytecodealliance/wasmtime/issues/3963.
|
||||
function %i128_fcmp_eq_select(f32, i128, i128) -> i128 {
|
||||
|
||||
@@ -1,97 +1,97 @@
|
||||
test interpret
|
||||
|
||||
function %iaddcarry_i8_v(i8, i8, b1) -> i8 {
|
||||
block0(v0: i8, v1: i8, v2: b1):
|
||||
function %iaddcarry_i8_v(i8, i8, i8) -> i8 {
|
||||
block0(v0: i8, v1: i8, v2: i8):
|
||||
v3, v4 = iadd_carry v0, v1, v2
|
||||
return v3
|
||||
}
|
||||
; run: %iaddcarry_i8_v(0, 1, true) == 2
|
||||
; run: %iaddcarry_i8_v(0, 1, false) == 1
|
||||
; run: %iaddcarry_i8_v(100, 27, true) == -128
|
||||
; run: %iaddcarry_i8_v(100, 27, false) == 127
|
||||
; run: %iaddcarry_i8_v(127, 127, true) == -1
|
||||
; run: %iaddcarry_i8_v(127, 127, false) == -2
|
||||
; run: %iaddcarry_i8_v(0, 1, 1) == 2
|
||||
; run: %iaddcarry_i8_v(0, 1, 0) == 1
|
||||
; run: %iaddcarry_i8_v(100, 27, 1) == -128
|
||||
; run: %iaddcarry_i8_v(100, 27, 0) == 127
|
||||
; run: %iaddcarry_i8_v(127, 127, 1) == -1
|
||||
; run: %iaddcarry_i8_v(127, 127, 0) == -2
|
||||
|
||||
function %iaddcarry_i8_c(i8, i8, b1) -> b1 {
|
||||
block0(v0: i8, v1: i8, v2: b1):
|
||||
function %iaddcarry_i8_c(i8, i8, i8) -> i8 {
|
||||
block0(v0: i8, v1: i8, v2: i8):
|
||||
v3, v4 = iadd_carry v0, v1, v2
|
||||
return v4
|
||||
}
|
||||
; run: %iaddcarry_i8_c(0, 1, true) == false
|
||||
; run: %iaddcarry_i8_c(0, 1, false) == false
|
||||
; run: %iaddcarry_i8_c(100, 27, true) == true
|
||||
; run: %iaddcarry_i8_c(100, 27, false) == false
|
||||
; run: %iaddcarry_i8_c(127, 127, true) == true
|
||||
; run: %iaddcarry_i8_c(127, 127, false) == true
|
||||
; run: %iaddcarry_i8_c(0, 1, 1) == 0
|
||||
; run: %iaddcarry_i8_c(0, 1, 0) == 0
|
||||
; run: %iaddcarry_i8_c(100, 27, 1) == 1
|
||||
; run: %iaddcarry_i8_c(100, 27, 0) == 0
|
||||
; run: %iaddcarry_i8_c(127, 127, 1) == 1
|
||||
; run: %iaddcarry_i8_c(127, 127, 0) == 1
|
||||
|
||||
function %iaddcarry_i16_v(i16, i16, b1) -> i16 {
|
||||
block0(v0: i16, v1: i16, v2: b1):
|
||||
function %iaddcarry_i16_v(i16, i16, i8) -> i16 {
|
||||
block0(v0: i16, v1: i16, v2: i8):
|
||||
v3, v4 = iadd_carry v0, v1, v2
|
||||
return v3
|
||||
}
|
||||
; run: %iaddcarry_i16_v(0, 1, true) == 2
|
||||
; run: %iaddcarry_i16_v(0, 1, false) == 1
|
||||
; run: %iaddcarry_i16_v(100, 27, true) == 128
|
||||
; run: %iaddcarry_i16_v(100, 27, false) == 127
|
||||
; run: %iaddcarry_i16_v(32000, 767, true) == -32768
|
||||
; run: %iaddcarry_i16_v(32000, 767, false) == 32767
|
||||
; run: %iaddcarry_i16_v(0, 1, 1) == 2
|
||||
; run: %iaddcarry_i16_v(0, 1, 0) == 1
|
||||
; run: %iaddcarry_i16_v(100, 27, 1) == 128
|
||||
; run: %iaddcarry_i16_v(100, 27, 0) == 127
|
||||
; run: %iaddcarry_i16_v(32000, 767, 1) == -32768
|
||||
; run: %iaddcarry_i16_v(32000, 767, 0) == 32767
|
||||
|
||||
function %iaddcarry_i16_c(i16, i16, b1) -> b1 {
|
||||
block0(v0: i16, v1: i16, v2: b1):
|
||||
function %iaddcarry_i16_c(i16, i16, i8) -> i8 {
|
||||
block0(v0: i16, v1: i16, v2: i8):
|
||||
v3, v4 = iadd_carry v0, v1, v2
|
||||
return v4
|
||||
}
|
||||
; run: %iaddcarry_i16_c(0, 1, true) == false
|
||||
; run: %iaddcarry_i16_c(0, 1, false) == false
|
||||
; run: %iaddcarry_i16_c(100, 27, true) == false
|
||||
; run: %iaddcarry_i16_c(100, 27, false) == false
|
||||
; run: %iaddcarry_i16_c(32000, 767, true) == true
|
||||
; run: %iaddcarry_i16_c(32000, 767, false) == false
|
||||
; run: %iaddcarry_i16_c(0, 1, 1) == 0
|
||||
; run: %iaddcarry_i16_c(0, 1, 0) == 0
|
||||
; run: %iaddcarry_i16_c(100, 27, 1) == 0
|
||||
; run: %iaddcarry_i16_c(100, 27, 0) == 0
|
||||
; run: %iaddcarry_i16_c(32000, 767, 1) == 1
|
||||
; run: %iaddcarry_i16_c(32000, 767, 0) == 0
|
||||
|
||||
function %iaddcarry_i32_v(i32, i32, b1) -> i32 {
|
||||
block0(v0: i32, v1: i32, v2: b1):
|
||||
function %iaddcarry_i32_v(i32, i32, i8) -> i32 {
|
||||
block0(v0: i32, v1: i32, v2: i8):
|
||||
v3, v4 = iadd_carry v0, v1, v2
|
||||
return v3
|
||||
}
|
||||
; run: %iaddcarry_i32_v(0, 1, true) == 2
|
||||
; run: %iaddcarry_i32_v(0, 1, false) == 1
|
||||
; run: %iaddcarry_i32_v(100, 27, true) == 128
|
||||
; run: %iaddcarry_i32_v(100, 27, false) == 127
|
||||
; run: %iaddcarry_i32_v(2000000000, 147483647, true) == -2147483648
|
||||
; run: %iaddcarry_i32_v(2000000000, 147483647, false) == 2147483647
|
||||
; run: %iaddcarry_i32_v(0, 1, 1) == 2
|
||||
; run: %iaddcarry_i32_v(0, 1, 0) == 1
|
||||
; run: %iaddcarry_i32_v(100, 27, 1) == 128
|
||||
; run: %iaddcarry_i32_v(100, 27, 0) == 127
|
||||
; run: %iaddcarry_i32_v(2000000000, 147483647, 1) == -2147483648
|
||||
; run: %iaddcarry_i32_v(2000000000, 147483647, 0) == 2147483647
|
||||
|
||||
function %iaddcarry_i32_c(i32, i32, b1) -> b1 {
|
||||
block0(v0: i32, v1: i32, v2: b1):
|
||||
function %iaddcarry_i32_c(i32, i32, i8) -> i8 {
|
||||
block0(v0: i32, v1: i32, v2: i8):
|
||||
v3, v4 = iadd_carry v0, v1, v2
|
||||
return v4
|
||||
}
|
||||
; run: %iaddcarry_i32_c(0, 1, true) == false
|
||||
; run: %iaddcarry_i32_c(0, 1, false) == false
|
||||
; run: %iaddcarry_i32_c(100, 27, true) == false
|
||||
; run: %iaddcarry_i32_c(100, 27, false) == false
|
||||
; run: %iaddcarry_i32_c(2000000000, 147483647, true) == true
|
||||
; run: %iaddcarry_i32_c(2000000000, 147483647, false) == false
|
||||
; run: %iaddcarry_i32_c(0, 1, 1) == 0
|
||||
; run: %iaddcarry_i32_c(0, 1, 0) == 0
|
||||
; run: %iaddcarry_i32_c(100, 27, 1) == 0
|
||||
; run: %iaddcarry_i32_c(100, 27, 0) == 0
|
||||
; run: %iaddcarry_i32_c(2000000000, 147483647, 1) == 1
|
||||
; run: %iaddcarry_i32_c(2000000000, 147483647, 0) == 0
|
||||
|
||||
function %iaddcarry_i64_v(i64, i64, b1) -> i64 {
|
||||
block0(v0: i64, v1: i64, v2: b1):
|
||||
function %iaddcarry_i64_v(i64, i64, i8) -> i64 {
|
||||
block0(v0: i64, v1: i64, v2: i8):
|
||||
v3, v4 = iadd_carry v0, v1, v2
|
||||
return v3
|
||||
}
|
||||
; run: %iaddcarry_i64_v(0, 1, true) == 2
|
||||
; run: %iaddcarry_i64_v(0, 1, false) == 1
|
||||
; run: %iaddcarry_i64_v(100, 27, true) == 128
|
||||
; run: %iaddcarry_i64_v(100, 27, false) == 127
|
||||
; run: %iaddcarry_i64_v(9000000000000000000, 223372036854775807, true) == -9223372036854775808
|
||||
; run: %iaddcarry_i64_v(9000000000000000000, 223372036854775807, false) == 9223372036854775807
|
||||
; run: %iaddcarry_i64_v(0, 1, 1) == 2
|
||||
; run: %iaddcarry_i64_v(0, 1, 0) == 1
|
||||
; run: %iaddcarry_i64_v(100, 27, 1) == 128
|
||||
; run: %iaddcarry_i64_v(100, 27, 0) == 127
|
||||
; run: %iaddcarry_i64_v(9000000000000000000, 223372036854775807, 1) == -9223372036854775808
|
||||
; run: %iaddcarry_i64_v(9000000000000000000, 223372036854775807, 0) == 9223372036854775807
|
||||
|
||||
function %iaddcarry_i64_c(i64, i64, b1) -> b1 {
|
||||
block0(v0: i64, v1: i64, v2: b1):
|
||||
function %iaddcarry_i64_c(i64, i64, i8) -> i8 {
|
||||
block0(v0: i64, v1: i64, v2: i8):
|
||||
v3, v4 = iadd_carry v0, v1, v2
|
||||
return v4
|
||||
}
|
||||
; run: %iaddcarry_i64_c(0, 1, true) == false
|
||||
; run: %iaddcarry_i64_c(0, 1, false) == false
|
||||
; run: %iaddcarry_i64_c(100, 27, true) == false
|
||||
; run: %iaddcarry_i64_c(100, 27, false) == false
|
||||
; run: %iaddcarry_i64_c(9000000000000000000, 223372036854775807, true) == true
|
||||
; run: %iaddcarry_i64_c(9000000000000000000, 223372036854775807, false) == false
|
||||
; run: %iaddcarry_i64_c(0, 1, 1) == 0
|
||||
; run: %iaddcarry_i64_c(0, 1, 0) == 0
|
||||
; run: %iaddcarry_i64_c(100, 27, 1) == 0
|
||||
; run: %iaddcarry_i64_c(100, 27, 0) == 0
|
||||
; run: %iaddcarry_i64_c(9000000000000000000, 223372036854775807, 1) == 1
|
||||
; run: %iaddcarry_i64_c(9000000000000000000, 223372036854775807, 0) == 0
|
||||
|
||||
@@ -1,48 +1,48 @@
|
||||
test interpret
|
||||
|
||||
function %iaddcin_i8(i8, i8, b1) -> i8 {
|
||||
block0(v0: i8, v1: i8, v2: b1):
|
||||
function %iaddcin_i8(i8, i8, i8) -> i8 {
|
||||
block0(v0: i8, v1: i8, v2: i8):
|
||||
v3 = iadd_cin v0, v1, v2
|
||||
return v3
|
||||
}
|
||||
; run: %iaddcin_i8(0, 1, true) == 2
|
||||
; run: %iaddcin_i8(0, 1, false) == 1
|
||||
; run: %iaddcin_i8(100, 27, true) == -128
|
||||
; run: %iaddcin_i8(100, 27, false) == 127
|
||||
; run: %iaddcin_i8(0, 1, 1) == 2
|
||||
; run: %iaddcin_i8(0, 1, 0) == 1
|
||||
; run: %iaddcin_i8(100, 27, 1) == -128
|
||||
; run: %iaddcin_i8(100, 27, 0) == 127
|
||||
|
||||
function %iaddcin_i16(i16, i16, b1) -> i16 {
|
||||
block0(v0: i16, v1: i16, v2: b1):
|
||||
function %iaddcin_i16(i16, i16, i8) -> i16 {
|
||||
block0(v0: i16, v1: i16, v2: i8):
|
||||
v3 = iadd_cin v0, v1, v2
|
||||
return v3
|
||||
}
|
||||
; run: %iaddcin_i16(0, 1, true) == 2
|
||||
; run: %iaddcin_i16(0, 1, false) == 1
|
||||
; run: %iaddcin_i16(100, 27, true) == 128
|
||||
; run: %iaddcin_i16(100, 27, false) == 127
|
||||
; run: %iaddcin_i16(32000, 767, true) == -32768
|
||||
; run: %iaddcin_i16(32000, 767, false) == 32767
|
||||
; run: %iaddcin_i16(0, 1, 1) == 2
|
||||
; run: %iaddcin_i16(0, 1, 0) == 1
|
||||
; run: %iaddcin_i16(100, 27, 1) == 128
|
||||
; run: %iaddcin_i16(100, 27, 0) == 127
|
||||
; run: %iaddcin_i16(32000, 767, 1) == -32768
|
||||
; run: %iaddcin_i16(32000, 767, 0) == 32767
|
||||
|
||||
function %iaddcin_i32(i32, i32, b1) -> i32 {
|
||||
block0(v0: i32, v1: i32, v2: b1):
|
||||
function %iaddcin_i32(i32, i32, i8) -> i32 {
|
||||
block0(v0: i32, v1: i32, v2: i8):
|
||||
v3 = iadd_cin v0, v1, v2
|
||||
return v3
|
||||
}
|
||||
; run: %iaddcin_i32(0, 1, true) == 2
|
||||
; run: %iaddcin_i32(0, 1, false) == 1
|
||||
; run: %iaddcin_i32(100, 27, true) == 128
|
||||
; run: %iaddcin_i32(100, 27, false) == 127
|
||||
; run: %iaddcin_i32(2000000000, 147483647, true) == -2147483648
|
||||
; run: %iaddcin_i32(2000000000, 147483647, false) == 2147483647
|
||||
; run: %iaddcin_i32(0, 1, 1) == 2
|
||||
; run: %iaddcin_i32(0, 1, 0) == 1
|
||||
; run: %iaddcin_i32(100, 27, 1) == 128
|
||||
; run: %iaddcin_i32(100, 27, 0) == 127
|
||||
; run: %iaddcin_i32(2000000000, 147483647, 1) == -2147483648
|
||||
; run: %iaddcin_i32(2000000000, 147483647, 0) == 2147483647
|
||||
|
||||
|
||||
function %iaddcin_i64(i64, i64, b1) -> i64 {
|
||||
block0(v0: i64, v1: i64, v2: b1):
|
||||
function %iaddcin_i64(i64, i64, i8) -> i64 {
|
||||
block0(v0: i64, v1: i64, v2: i8):
|
||||
v3 = iadd_cin v0, v1, v2
|
||||
return v3
|
||||
}
|
||||
; run: %iaddcin_i64(0, 1, true) == 2
|
||||
; run: %iaddcin_i64(0, 1, false) == 1
|
||||
; run: %iaddcin_i64(100, 27, true) == 128
|
||||
; run: %iaddcin_i64(100, 27, false) == 127
|
||||
; run: %iaddcin_i64(2000000000, 147483647, true) == 2147483648
|
||||
; run: %iaddcin_i64(2000000000, 147483647, false) == 2147483647
|
||||
; run: %iaddcin_i64(0, 1, 1) == 2
|
||||
; run: %iaddcin_i64(0, 1, 0) == 1
|
||||
; run: %iaddcin_i64(100, 27, 1) == 128
|
||||
; run: %iaddcin_i64(100, 27, 0) == 127
|
||||
; run: %iaddcin_i64(2000000000, 147483647, 1) == 2147483648
|
||||
; run: %iaddcin_i64(2000000000, 147483647, 0) == 2147483647
|
||||
|
||||
@@ -10,15 +10,15 @@ block0(v0: i8, v1: i8):
|
||||
; run: %iaddcout_i8_v(100, -20) == 80
|
||||
; run: %iaddcout_i8_v(100, 28) == -128
|
||||
|
||||
function %iaddcout_i8_c(i8, i8) -> b1 {
|
||||
function %iaddcout_i8_c(i8, i8) -> i8 {
|
||||
block0(v0: i8, v1: i8):
|
||||
v2, v3 = iadd_cout v0, v1
|
||||
return v3
|
||||
}
|
||||
; run: %iaddcout_i8_c(0, 1) == false
|
||||
; run: %iaddcout_i8_c(100, 27) == false
|
||||
; run: %iaddcout_i8_c(100, -20) == false
|
||||
; run: %iaddcout_i8_c(100, 28) == true
|
||||
; run: %iaddcout_i8_c(0, 1) == 0
|
||||
; run: %iaddcout_i8_c(100, 27) == 0
|
||||
; run: %iaddcout_i8_c(100, -20) == 0
|
||||
; run: %iaddcout_i8_c(100, 28) == 1
|
||||
|
||||
function %iaddcout_i16_v(i16, i16) -> i16 {
|
||||
block0(v0: i16, v1: i16):
|
||||
@@ -31,16 +31,16 @@ block0(v0: i16, v1: i16):
|
||||
; run: %iaddcout_i16_v(32000, 767) == 32767
|
||||
; run: %iaddcout_i16_v(32000, 768) == -32768
|
||||
|
||||
function %iaddcout_i16_c(i16, i16) -> b1 {
|
||||
function %iaddcout_i16_c(i16, i16) -> i8 {
|
||||
block0(v0: i16, v1: i16):
|
||||
v2, v3 = iadd_cout v0, v1
|
||||
return v3
|
||||
}
|
||||
; run: %iaddcout_i16_c(0, 1) == false
|
||||
; run: %iaddcout_i16_c(100, 27) == false
|
||||
; run: %iaddcout_i16_c(100, 28) == false
|
||||
; run: %iaddcout_i16_c(32000, 767) == false
|
||||
; run: %iaddcout_i16_c(32000, 768) == true
|
||||
; run: %iaddcout_i16_c(0, 1) == 0
|
||||
; run: %iaddcout_i16_c(100, 27) == 0
|
||||
; run: %iaddcout_i16_c(100, 28) == 0
|
||||
; run: %iaddcout_i16_c(32000, 767) == 0
|
||||
; run: %iaddcout_i16_c(32000, 768) == 1
|
||||
|
||||
function %iaddcout_i32_v(i32, i32) -> i32 {
|
||||
block0(v0: i32, v1: i32):
|
||||
@@ -53,16 +53,16 @@ block0(v0: i32, v1: i32):
|
||||
; run: %iaddcout_i32_v(2000000000, 147483647) == 2147483647
|
||||
; run: %iaddcout_i32_v(2000000000, 147483648) == -2147483648
|
||||
|
||||
function %iaddcout_i32_c(i32, i32) -> b1 {
|
||||
function %iaddcout_i32_c(i32, i32) -> i8 {
|
||||
block0(v0: i32, v1: i32):
|
||||
v2, v3 = iadd_cout v0, v1
|
||||
return v3
|
||||
}
|
||||
; run: %iaddcout_i32_c(0, 1) == false
|
||||
; run: %iaddcout_i32_c(100, 27) == false
|
||||
; run: %iaddcout_i32_c(100, 28) == false
|
||||
; run: %iaddcout_i32_c(2000000000, 147483647) == false
|
||||
; run: %iaddcout_i32_c(2000000000, 147483648) == true
|
||||
; run: %iaddcout_i32_c(0, 1) == 0
|
||||
; run: %iaddcout_i32_c(100, 27) == 0
|
||||
; run: %iaddcout_i32_c(100, 28) == 0
|
||||
; run: %iaddcout_i32_c(2000000000, 147483647) == 0
|
||||
; run: %iaddcout_i32_c(2000000000, 147483648) == 1
|
||||
|
||||
function %iaddcout_i64_v(i64, i64) -> i64 {
|
||||
block0(v0: i64, v1: i64):
|
||||
@@ -75,13 +75,13 @@ block0(v0: i64, v1: i64):
|
||||
; run: %iaddcout_i64_v(2000000000, 147483647) == 2147483647
|
||||
; run: %iaddcout_i64_v(2000000000, 147483648) == 2147483648
|
||||
|
||||
function %iaddcout_i64_c(i64, i64) -> b1 {
|
||||
function %iaddcout_i64_c(i64, i64) -> i8 {
|
||||
block0(v0: i64, v1: i64):
|
||||
v2, v3 = iadd_cout v0, v1
|
||||
return v3
|
||||
}
|
||||
; run: %iaddcout_i64_c(0, 1) == false
|
||||
; run: %iaddcout_i64_c(100, 27) == false
|
||||
; run: %iaddcout_i64_c(100, 28) == false
|
||||
; run: %iaddcout_i64_c(2000000000, 147483647) == false
|
||||
; run: %iaddcout_i64_c(2000000000, 147483648) == false
|
||||
; run: %iaddcout_i64_c(0, 1) == 0
|
||||
; run: %iaddcout_i64_c(100, 27) == 0
|
||||
; run: %iaddcout_i64_c(100, 28) == 0
|
||||
; run: %iaddcout_i64_c(2000000000, 147483647) == 0
|
||||
; run: %iaddcout_i64_c(2000000000, 147483648) == 0
|
||||
|
||||
@@ -5,74 +5,74 @@ target x86_64
|
||||
target s390x
|
||||
target riscv64
|
||||
|
||||
function %icmp_imm_eq_i8(i8) -> b1 {
|
||||
function %icmp_imm_eq_i8(i8) -> i8 {
|
||||
block0(v0: i8):
|
||||
v1 = icmp_imm eq v0, 0x44
|
||||
return v1
|
||||
}
|
||||
; run: %icmp_imm_eq_i8(0) == false
|
||||
; run: %icmp_imm_eq_i8(-1) == false
|
||||
; run: %icmp_imm_eq_i8(0x44) == true
|
||||
; run: %icmp_imm_eq_i8(0) == 0
|
||||
; run: %icmp_imm_eq_i8(-1) == 0
|
||||
; run: %icmp_imm_eq_i8(0x44) == 1
|
||||
|
||||
function %icmp_neg_eq_i8(i8) -> b1 {
|
||||
function %icmp_neg_eq_i8(i8) -> i8 {
|
||||
block0(v0: i8):
|
||||
v1 = icmp_imm eq v0, 0xf4
|
||||
return v1
|
||||
}
|
||||
; run: %icmp_neg_eq_i8(0) == false
|
||||
; run: %icmp_neg_eq_i8(-1) == false
|
||||
; run: %icmp_neg_eq_i8(0xf4) == true
|
||||
; run: %icmp_neg_eq_i8(0) == 0
|
||||
; run: %icmp_neg_eq_i8(-1) == 0
|
||||
; run: %icmp_neg_eq_i8(0xf4) == 1
|
||||
|
||||
function %icmp_imm_eq_i16(i16) -> b1 {
|
||||
function %icmp_imm_eq_i16(i16) -> i8 {
|
||||
block0(v0: i16):
|
||||
v1 = icmp_imm eq v0, 0x4444
|
||||
return v1
|
||||
}
|
||||
; run: %icmp_imm_eq_i16(0) == false
|
||||
; run: %icmp_imm_eq_i16(-1) == false
|
||||
; run: %icmp_imm_eq_i16(0x4444) == true
|
||||
; run: %icmp_imm_eq_i16(0) == 0
|
||||
; run: %icmp_imm_eq_i16(-1) == 0
|
||||
; run: %icmp_imm_eq_i16(0x4444) == 1
|
||||
|
||||
function %icmp_neg_eq_i16(i16) -> b1 {
|
||||
function %icmp_neg_eq_i16(i16) -> i8 {
|
||||
block0(v0: i16):
|
||||
v1 = icmp_imm eq v0, 0xff44
|
||||
return v1
|
||||
}
|
||||
; run: %icmp_neg_eq_i16(0) == false
|
||||
; run: %icmp_neg_eq_i16(-1) == false
|
||||
; run: %icmp_neg_eq_i16(0xff44) == true
|
||||
; run: %icmp_neg_eq_i16(0) == 0
|
||||
; run: %icmp_neg_eq_i16(-1) == 0
|
||||
; run: %icmp_neg_eq_i16(0xff44) == 1
|
||||
|
||||
function %icmp_imm_eq_i32(i32) -> b1 {
|
||||
function %icmp_imm_eq_i32(i32) -> i8 {
|
||||
block0(v0: i32):
|
||||
v1 = icmp_imm eq v0, 0x4444_4444
|
||||
return v1
|
||||
}
|
||||
; run: %icmp_imm_eq_i32(0) == false
|
||||
; run: %icmp_imm_eq_i32(-1) == false
|
||||
; run: %icmp_imm_eq_i32(0x4444_4444) == true
|
||||
; run: %icmp_imm_eq_i32(0) == 0
|
||||
; run: %icmp_imm_eq_i32(-1) == 0
|
||||
; run: %icmp_imm_eq_i32(0x4444_4444) == 1
|
||||
|
||||
function %icmp_neg_eq_i32(i32) -> b1 {
|
||||
function %icmp_neg_eq_i32(i32) -> i8 {
|
||||
block0(v0: i32):
|
||||
v1 = icmp_imm eq v0, 0xffff_4444
|
||||
return v1
|
||||
}
|
||||
; run: %icmp_neg_eq_i32(0) == false
|
||||
; run: %icmp_neg_eq_i32(-1) == false
|
||||
; run: %icmp_neg_eq_i32(0xffff_4444) == true
|
||||
; run: %icmp_neg_eq_i32(0) == 0
|
||||
; run: %icmp_neg_eq_i32(-1) == 0
|
||||
; run: %icmp_neg_eq_i32(0xffff_4444) == 1
|
||||
|
||||
function %icmp_imm_eq_i64(i64) -> b1 {
|
||||
function %icmp_imm_eq_i64(i64) -> i8 {
|
||||
block0(v0: i64):
|
||||
v1 = icmp_imm eq v0, 0x4444_4444_4444_4444
|
||||
return v1
|
||||
}
|
||||
; run: %icmp_imm_eq_i64(0) == false
|
||||
; run: %icmp_imm_eq_i64(-1) == false
|
||||
; run: %icmp_imm_eq_i64(0x4444_4444_4444_4444) == true
|
||||
; run: %icmp_imm_eq_i64(0) == 0
|
||||
; run: %icmp_imm_eq_i64(-1) == 0
|
||||
; run: %icmp_imm_eq_i64(0x4444_4444_4444_4444) == 1
|
||||
|
||||
function %icmp_neg_eq_i64(i64) -> b1 {
|
||||
function %icmp_neg_eq_i64(i64) -> i8 {
|
||||
block0(v0: i64):
|
||||
v1 = icmp_imm eq v0, 0xffff_ffff_4444_4444
|
||||
return v1
|
||||
}
|
||||
; run: %icmp_neg_eq_i64(0) == false
|
||||
; run: %icmp_neg_eq_i64(-1) == false
|
||||
; run: %icmp_neg_eq_i64(0xffff_ffff_4444_4444) == true
|
||||
; run: %icmp_neg_eq_i64(0) == 0
|
||||
; run: %icmp_neg_eq_i64(-1) == 0
|
||||
; run: %icmp_neg_eq_i64(0xffff_ffff_4444_4444) == 1
|
||||
|
||||
@@ -5,38 +5,38 @@ target x86_64
|
||||
target riscv64
|
||||
target s390x
|
||||
|
||||
function %icmp_eq_i8(i8, i8) -> b1 {
|
||||
function %icmp_eq_i8(i8, i8) -> i8 {
|
||||
block0(v0: i8, v1: i8):
|
||||
v2 = icmp eq v0, v1
|
||||
return v2
|
||||
}
|
||||
; run: %icmp_eq_i8(0, 0) == true
|
||||
; run: %icmp_eq_i8(1, 0) == false
|
||||
; run: %icmp_eq_i8(-1, -1) == true
|
||||
; run: %icmp_eq_i8(0, 0) == 1
|
||||
; run: %icmp_eq_i8(1, 0) == 0
|
||||
; run: %icmp_eq_i8(-1, -1) == 1
|
||||
|
||||
function %icmp_eq_i16(i16, i16) -> b1 {
|
||||
function %icmp_eq_i16(i16, i16) -> i8 {
|
||||
block0(v0: i16, v1: i16):
|
||||
v2 = icmp eq v0, v1
|
||||
return v2
|
||||
}
|
||||
; run: %icmp_eq_i16(0, 0) == true
|
||||
; run: %icmp_eq_i16(1, 0) == false
|
||||
; run: %icmp_eq_i16(-1, -1) == true
|
||||
; run: %icmp_eq_i16(0, 0) == 1
|
||||
; run: %icmp_eq_i16(1, 0) == 0
|
||||
; run: %icmp_eq_i16(-1, -1) == 1
|
||||
|
||||
function %icmp_eq_i32(i32, i32) -> b1 {
|
||||
function %icmp_eq_i32(i32, i32) -> i8 {
|
||||
block0(v0: i32, v1: i32):
|
||||
v2 = icmp eq v0, v1
|
||||
return v2
|
||||
}
|
||||
; run: %icmp_eq_i32(0, 0) == true
|
||||
; run: %icmp_eq_i32(1, 0) == false
|
||||
; run: %icmp_eq_i32(-1, -1) == true
|
||||
; run: %icmp_eq_i32(0, 0) == 1
|
||||
; run: %icmp_eq_i32(1, 0) == 0
|
||||
; run: %icmp_eq_i32(-1, -1) == 1
|
||||
|
||||
function %icmp_eq_i64(i64, i64) -> b1 {
|
||||
function %icmp_eq_i64(i64, i64) -> i8 {
|
||||
block0(v0: i64, v1: i64):
|
||||
v2 = icmp eq v0, v1
|
||||
return v2
|
||||
}
|
||||
; run: %icmp_eq_i64(0, 0) == true
|
||||
; run: %icmp_eq_i64(1, 0) == false
|
||||
; run: %icmp_eq_i64(-1, -1) == true
|
||||
; run: %icmp_eq_i64(0, 0) == 1
|
||||
; run: %icmp_eq_i64(1, 0) == 0
|
||||
; run: %icmp_eq_i64(-1, -1) == 1
|
||||
|
||||
@@ -5,38 +5,38 @@ target x86_64
|
||||
target riscv64
|
||||
target s390x
|
||||
|
||||
function %icmp_ne_i8(i8, i8) -> b1 {
|
||||
function %icmp_ne_i8(i8, i8) -> i8 {
|
||||
block0(v0: i8, v1: i8):
|
||||
v2 = icmp ne v0, v1
|
||||
return v2
|
||||
}
|
||||
; run: %icmp_ne_i8(0, 0) == false
|
||||
; run: %icmp_ne_i8(1, 0) == true
|
||||
; run: %icmp_ne_i8(-1, -1) == false
|
||||
; run: %icmp_ne_i8(0, 0) == 0
|
||||
; run: %icmp_ne_i8(1, 0) == 1
|
||||
; run: %icmp_ne_i8(-1, -1) == 0
|
||||
|
||||
function %icmp_ne_i16(i16, i16) -> b1 {
|
||||
function %icmp_ne_i16(i16, i16) -> i8 {
|
||||
block0(v0: i16, v1: i16):
|
||||
v2 = icmp ne v0, v1
|
||||
return v2
|
||||
}
|
||||
; run: %icmp_ne_i16(0, 0) == false
|
||||
; run: %icmp_ne_i16(1, 0) == true
|
||||
; run: %icmp_ne_i16(-1, -1) == false
|
||||
; run: %icmp_ne_i16(0, 0) == 0
|
||||
; run: %icmp_ne_i16(1, 0) == 1
|
||||
; run: %icmp_ne_i16(-1, -1) == 0
|
||||
|
||||
function %icmp_ne_i32(i32, i32) -> b1 {
|
||||
function %icmp_ne_i32(i32, i32) -> i8 {
|
||||
block0(v0: i32, v1: i32):
|
||||
v2 = icmp ne v0, v1
|
||||
return v2
|
||||
}
|
||||
; run: %icmp_ne_i32(0, 0) == false
|
||||
; run: %icmp_ne_i32(1, 0) == true
|
||||
; run: %icmp_ne_i32(-1, -1) == false
|
||||
; run: %icmp_ne_i32(0, 0) == 0
|
||||
; run: %icmp_ne_i32(1, 0) == 1
|
||||
; run: %icmp_ne_i32(-1, -1) == 0
|
||||
|
||||
function %icmp_ne_i64(i64, i64) -> b1 {
|
||||
function %icmp_ne_i64(i64, i64) -> i8 {
|
||||
block0(v0: i64, v1: i64):
|
||||
v2 = icmp ne v0, v1
|
||||
return v2
|
||||
}
|
||||
; run: %icmp_ne_i64(0, 0) == false
|
||||
; run: %icmp_ne_i64(1, 0) == true
|
||||
; run: %icmp_ne_i64(-1, -1) == false
|
||||
; run: %icmp_ne_i64(0, 0) == 0
|
||||
; run: %icmp_ne_i64(1, 0) == 1
|
||||
; run: %icmp_ne_i64(-1, -1) == 0
|
||||
|
||||
@@ -6,50 +6,50 @@ target riscv64
|
||||
target s390x
|
||||
|
||||
|
||||
function %icmp_sge_i8(i8, i8) -> b1 {
|
||||
function %icmp_sge_i8(i8, i8) -> i8 {
|
||||
block0(v0: i8, v1: i8):
|
||||
v2 = icmp sge v0, v1
|
||||
return v2
|
||||
}
|
||||
; run: %icmp_sge_i8(0, 0) == true
|
||||
; run: %icmp_sge_i8(1, 0) == true
|
||||
; run: %icmp_sge_i8(-1, -1) == true
|
||||
; run: %icmp_sge_i8(0, 1) == false
|
||||
; run: %icmp_sge_i8(-5, -1) == false
|
||||
; run: %icmp_sge_i8(1, -1) == true
|
||||
; run: %icmp_sge_i8(0, 0) == 1
|
||||
; run: %icmp_sge_i8(1, 0) == 1
|
||||
; run: %icmp_sge_i8(-1, -1) == 1
|
||||
; run: %icmp_sge_i8(0, 1) == 0
|
||||
; run: %icmp_sge_i8(-5, -1) == 0
|
||||
; run: %icmp_sge_i8(1, -1) == 1
|
||||
|
||||
function %icmp_sge_i16(i16, i16) -> b1 {
|
||||
function %icmp_sge_i16(i16, i16) -> i8 {
|
||||
block0(v0: i16, v1: i16):
|
||||
v2 = icmp sge v0, v1
|
||||
return v2
|
||||
}
|
||||
; run: %icmp_sge_i16(0, 0) == true
|
||||
; run: %icmp_sge_i16(1, 0) == true
|
||||
; run: %icmp_sge_i16(-1, -1) == true
|
||||
; run: %icmp_sge_i16(0, 1) == false
|
||||
; run: %icmp_sge_i16(-5, -1) == false
|
||||
; run: %icmp_sge_i16(1, -1) == true
|
||||
; run: %icmp_sge_i16(0, 0) == 1
|
||||
; run: %icmp_sge_i16(1, 0) == 1
|
||||
; run: %icmp_sge_i16(-1, -1) == 1
|
||||
; run: %icmp_sge_i16(0, 1) == 0
|
||||
; run: %icmp_sge_i16(-5, -1) == 0
|
||||
; run: %icmp_sge_i16(1, -1) == 1
|
||||
|
||||
function %icmp_sge_i32(i32, i32) -> b1 {
|
||||
function %icmp_sge_i32(i32, i32) -> i8 {
|
||||
block0(v0: i32, v1: i32):
|
||||
v2 = icmp sge v0, v1
|
||||
return v2
|
||||
}
|
||||
; run: %icmp_sge_i32(0, 0) == true
|
||||
; run: %icmp_sge_i32(1, 0) == true
|
||||
; run: %icmp_sge_i32(-1, -1) == true
|
||||
; run: %icmp_sge_i32(0, 1) == false
|
||||
; run: %icmp_sge_i32(-5, -1) == false
|
||||
; run: %icmp_sge_i32(1, -1) == true
|
||||
; run: %icmp_sge_i32(0, 0) == 1
|
||||
; run: %icmp_sge_i32(1, 0) == 1
|
||||
; run: %icmp_sge_i32(-1, -1) == 1
|
||||
; run: %icmp_sge_i32(0, 1) == 0
|
||||
; run: %icmp_sge_i32(-5, -1) == 0
|
||||
; run: %icmp_sge_i32(1, -1) == 1
|
||||
|
||||
function %icmp_sge_i64(i64, i64) -> b1 {
|
||||
function %icmp_sge_i64(i64, i64) -> i8 {
|
||||
block0(v0: i64, v1: i64):
|
||||
v2 = icmp sge v0, v1
|
||||
return v2
|
||||
}
|
||||
; run: %icmp_sge_i64(0, 0) == true
|
||||
; run: %icmp_sge_i64(1, 0) == true
|
||||
; run: %icmp_sge_i64(-1, -1) == true
|
||||
; run: %icmp_sge_i64(0, 1) == false
|
||||
; run: %icmp_sge_i64(-5, -1) == false
|
||||
; run: %icmp_sge_i64(1, -1) == true
|
||||
; run: %icmp_sge_i64(0, 0) == 1
|
||||
; run: %icmp_sge_i64(1, 0) == 1
|
||||
; run: %icmp_sge_i64(-1, -1) == 1
|
||||
; run: %icmp_sge_i64(0, 1) == 0
|
||||
; run: %icmp_sge_i64(-5, -1) == 0
|
||||
; run: %icmp_sge_i64(1, -1) == 1
|
||||
|
||||
@@ -6,50 +6,50 @@ target riscv64
|
||||
target s390x
|
||||
|
||||
|
||||
function %icmp_sgt_i8(i8, i8) -> b1 {
|
||||
function %icmp_sgt_i8(i8, i8) -> i8 {
|
||||
block0(v0: i8, v1: i8):
|
||||
v2 = icmp sgt v0, v1
|
||||
return v2
|
||||
}
|
||||
; run: %icmp_sgt_i8(0, 0) == false
|
||||
; run: %icmp_sgt_i8(1, 0) == true
|
||||
; run: %icmp_sgt_i8(-1, -1) == false
|
||||
; run: %icmp_sgt_i8(0, 1) == false
|
||||
; run: %icmp_sgt_i8(-5, -1) == false
|
||||
; run: %icmp_sgt_i8(1, -1) == true
|
||||
; run: %icmp_sgt_i8(0, 0) == 0
|
||||
; run: %icmp_sgt_i8(1, 0) == 1
|
||||
; run: %icmp_sgt_i8(-1, -1) == 0
|
||||
; run: %icmp_sgt_i8(0, 1) == 0
|
||||
; run: %icmp_sgt_i8(-5, -1) == 0
|
||||
; run: %icmp_sgt_i8(1, -1) == 1
|
||||
|
||||
function %icmp_sgt_i16(i16, i16) -> b1 {
|
||||
function %icmp_sgt_i16(i16, i16) -> i8 {
|
||||
block0(v0: i16, v1: i16):
|
||||
v2 = icmp sgt v0, v1
|
||||
return v2
|
||||
}
|
||||
; run: %icmp_sgt_i16(0, 0) == false
|
||||
; run: %icmp_sgt_i16(1, 0) == true
|
||||
; run: %icmp_sgt_i16(-1, -1) == false
|
||||
; run: %icmp_sgt_i16(0, 1) == false
|
||||
; run: %icmp_sgt_i16(-5, -1) == false
|
||||
; run: %icmp_sgt_i16(1, -1) == true
|
||||
; run: %icmp_sgt_i16(0, 0) == 0
|
||||
; run: %icmp_sgt_i16(1, 0) == 1
|
||||
; run: %icmp_sgt_i16(-1, -1) == 0
|
||||
; run: %icmp_sgt_i16(0, 1) == 0
|
||||
; run: %icmp_sgt_i16(-5, -1) == 0
|
||||
; run: %icmp_sgt_i16(1, -1) == 1
|
||||
|
||||
function %icmp_sgt_i32(i32, i32) -> b1 {
|
||||
function %icmp_sgt_i32(i32, i32) -> i8 {
|
||||
block0(v0: i32, v1: i32):
|
||||
v2 = icmp sgt v0, v1
|
||||
return v2
|
||||
}
|
||||
; run: %icmp_sgt_i32(0, 0) == false
|
||||
; run: %icmp_sgt_i32(1, 0) == true
|
||||
; run: %icmp_sgt_i32(-1, -1) == false
|
||||
; run: %icmp_sgt_i32(0, 1) == false
|
||||
; run: %icmp_sgt_i32(-5, -1) == false
|
||||
; run: %icmp_sgt_i32(1, -1) == true
|
||||
; run: %icmp_sgt_i32(0, 0) == 0
|
||||
; run: %icmp_sgt_i32(1, 0) == 1
|
||||
; run: %icmp_sgt_i32(-1, -1) == 0
|
||||
; run: %icmp_sgt_i32(0, 1) == 0
|
||||
; run: %icmp_sgt_i32(-5, -1) == 0
|
||||
; run: %icmp_sgt_i32(1, -1) == 1
|
||||
|
||||
function %icmp_sgt_i64(i64, i64) -> b1 {
|
||||
function %icmp_sgt_i64(i64, i64) -> i8 {
|
||||
block0(v0: i64, v1: i64):
|
||||
v2 = icmp sgt v0, v1
|
||||
return v2
|
||||
}
|
||||
; run: %icmp_sgt_i64(0, 0) == false
|
||||
; run: %icmp_sgt_i64(1, 0) == true
|
||||
; run: %icmp_sgt_i64(-1, -1) == false
|
||||
; run: %icmp_sgt_i64(0, 1) == false
|
||||
; run: %icmp_sgt_i64(-5, -1) == false
|
||||
; run: %icmp_sgt_i64(1, -1) == true
|
||||
; run: %icmp_sgt_i64(0, 0) == 0
|
||||
; run: %icmp_sgt_i64(1, 0) == 1
|
||||
; run: %icmp_sgt_i64(-1, -1) == 0
|
||||
; run: %icmp_sgt_i64(0, 1) == 0
|
||||
; run: %icmp_sgt_i64(-5, -1) == 0
|
||||
; run: %icmp_sgt_i64(1, -1) == 1
|
||||
|
||||
@@ -6,50 +6,50 @@ target riscv64
|
||||
target s390x
|
||||
|
||||
|
||||
function %icmp_sle_i8(i8, i8) -> b1 {
|
||||
function %icmp_sle_i8(i8, i8) -> i8 {
|
||||
block0(v0: i8, v1: i8):
|
||||
v2 = icmp sle v0, v1
|
||||
return v2
|
||||
}
|
||||
; run: %icmp_sle_i8(0, 0) == true
|
||||
; run: %icmp_sle_i8(1, 0) == false
|
||||
; run: %icmp_sle_i8(-1, -1) == true
|
||||
; run: %icmp_sle_i8(0, 1) == true
|
||||
; run: %icmp_sle_i8(-5, -1) == true
|
||||
; run: %icmp_sle_i8(1, -1) == false
|
||||
; run: %icmp_sle_i8(0, 0) == 1
|
||||
; run: %icmp_sle_i8(1, 0) == 0
|
||||
; run: %icmp_sle_i8(-1, -1) == 1
|
||||
; run: %icmp_sle_i8(0, 1) == 1
|
||||
; run: %icmp_sle_i8(-5, -1) == 1
|
||||
; run: %icmp_sle_i8(1, -1) == 0
|
||||
|
||||
function %icmp_sle_i16(i16, i16) -> b1 {
|
||||
function %icmp_sle_i16(i16, i16) -> i8 {
|
||||
block0(v0: i16, v1: i16):
|
||||
v2 = icmp sle v0, v1
|
||||
return v2
|
||||
}
|
||||
; run: %icmp_sle_i16(0, 0) == true
|
||||
; run: %icmp_sle_i16(1, 0) == false
|
||||
; run: %icmp_sle_i16(-1, -1) == true
|
||||
; run: %icmp_sle_i16(0, 1) == true
|
||||
; run: %icmp_sle_i16(-5, -1) == true
|
||||
; run: %icmp_sle_i16(1, -1) == false
|
||||
; run: %icmp_sle_i16(0, 0) == 1
|
||||
; run: %icmp_sle_i16(1, 0) == 0
|
||||
; run: %icmp_sle_i16(-1, -1) == 1
|
||||
; run: %icmp_sle_i16(0, 1) == 1
|
||||
; run: %icmp_sle_i16(-5, -1) == 1
|
||||
; run: %icmp_sle_i16(1, -1) == 0
|
||||
|
||||
function %icmp_sle_i32(i32, i32) -> b1 {
|
||||
function %icmp_sle_i32(i32, i32) -> i8 {
|
||||
block0(v0: i32, v1: i32):
|
||||
v2 = icmp sle v0, v1
|
||||
return v2
|
||||
}
|
||||
; run: %icmp_sle_i32(0, 0) == true
|
||||
; run: %icmp_sle_i32(1, 0) == false
|
||||
; run: %icmp_sle_i32(-1, -1) == true
|
||||
; run: %icmp_sle_i32(0, 1) == true
|
||||
; run: %icmp_sle_i32(-5, -1) == true
|
||||
; run: %icmp_sle_i32(1, -1) == false
|
||||
; run: %icmp_sle_i32(0, 0) == 1
|
||||
; run: %icmp_sle_i32(1, 0) == 0
|
||||
; run: %icmp_sle_i32(-1, -1) == 1
|
||||
; run: %icmp_sle_i32(0, 1) == 1
|
||||
; run: %icmp_sle_i32(-5, -1) == 1
|
||||
; run: %icmp_sle_i32(1, -1) == 0
|
||||
|
||||
function %icmp_sle_i64(i64, i64) -> b1 {
|
||||
function %icmp_sle_i64(i64, i64) -> i8 {
|
||||
block0(v0: i64, v1: i64):
|
||||
v2 = icmp sle v0, v1
|
||||
return v2
|
||||
}
|
||||
; run: %icmp_sle_i64(0, 0) == true
|
||||
; run: %icmp_sle_i64(1, 0) == false
|
||||
; run: %icmp_sle_i64(-1, -1) == true
|
||||
; run: %icmp_sle_i64(0, 1) == true
|
||||
; run: %icmp_sle_i64(-5, -1) == true
|
||||
; run: %icmp_sle_i64(1, -1) == false
|
||||
; run: %icmp_sle_i64(0, 0) == 1
|
||||
; run: %icmp_sle_i64(1, 0) == 0
|
||||
; run: %icmp_sle_i64(-1, -1) == 1
|
||||
; run: %icmp_sle_i64(0, 1) == 1
|
||||
; run: %icmp_sle_i64(-5, -1) == 1
|
||||
; run: %icmp_sle_i64(1, -1) == 0
|
||||
|
||||
@@ -5,50 +5,50 @@ target x86_64
|
||||
target riscv64
|
||||
target s390x
|
||||
|
||||
function %icmp_slt_i8(i8, i8) -> b1 {
|
||||
function %icmp_slt_i8(i8, i8) -> i8 {
|
||||
block0(v0: i8, v1: i8):
|
||||
v2 = icmp slt v0, v1
|
||||
return v2
|
||||
}
|
||||
; run: %icmp_slt_i8(0, 0) == false
|
||||
; run: %icmp_slt_i8(1, 0) == false
|
||||
; run: %icmp_slt_i8(-1, -1) == false
|
||||
; run: %icmp_slt_i8(0, 1) == true
|
||||
; run: %icmp_slt_i8(-5, -1) == true
|
||||
; run: %icmp_slt_i8(1, -1) == false
|
||||
; run: %icmp_slt_i8(0, 0) == 0
|
||||
; run: %icmp_slt_i8(1, 0) == 0
|
||||
; run: %icmp_slt_i8(-1, -1) == 0
|
||||
; run: %icmp_slt_i8(0, 1) == 1
|
||||
; run: %icmp_slt_i8(-5, -1) == 1
|
||||
; run: %icmp_slt_i8(1, -1) == 0
|
||||
|
||||
function %icmp_slt_i16(i16, i16) -> b1 {
|
||||
function %icmp_slt_i16(i16, i16) -> i8 {
|
||||
block0(v0: i16, v1: i16):
|
||||
v2 = icmp slt v0, v1
|
||||
return v2
|
||||
}
|
||||
; run: %icmp_slt_i16(0, 0) == false
|
||||
; run: %icmp_slt_i16(1, 0) == false
|
||||
; run: %icmp_slt_i16(-1, -1) == false
|
||||
; run: %icmp_slt_i16(0, 1) == true
|
||||
; run: %icmp_slt_i16(-5, -1) == true
|
||||
; run: %icmp_slt_i16(1, -1) == false
|
||||
; run: %icmp_slt_i16(0, 0) == 0
|
||||
; run: %icmp_slt_i16(1, 0) == 0
|
||||
; run: %icmp_slt_i16(-1, -1) == 0
|
||||
; run: %icmp_slt_i16(0, 1) == 1
|
||||
; run: %icmp_slt_i16(-5, -1) == 1
|
||||
; run: %icmp_slt_i16(1, -1) == 0
|
||||
|
||||
function %icmp_slt_i32(i32, i32) -> b1 {
|
||||
function %icmp_slt_i32(i32, i32) -> i8 {
|
||||
block0(v0: i32, v1: i32):
|
||||
v2 = icmp slt v0, v1
|
||||
return v2
|
||||
}
|
||||
; run: %icmp_slt_i32(0, 0) == false
|
||||
; run: %icmp_slt_i32(1, 0) == false
|
||||
; run: %icmp_slt_i32(-1, -1) == false
|
||||
; run: %icmp_slt_i32(0, 1) == true
|
||||
; run: %icmp_slt_i32(-5, -1) == true
|
||||
; run: %icmp_slt_i32(1, -1) == false
|
||||
; run: %icmp_slt_i32(0, 0) == 0
|
||||
; run: %icmp_slt_i32(1, 0) == 0
|
||||
; run: %icmp_slt_i32(-1, -1) == 0
|
||||
; run: %icmp_slt_i32(0, 1) == 1
|
||||
; run: %icmp_slt_i32(-5, -1) == 1
|
||||
; run: %icmp_slt_i32(1, -1) == 0
|
||||
|
||||
function %icmp_slt_i64(i64, i64) -> b1 {
|
||||
function %icmp_slt_i64(i64, i64) -> i8 {
|
||||
block0(v0: i64, v1: i64):
|
||||
v2 = icmp slt v0, v1
|
||||
return v2
|
||||
}
|
||||
; run: %icmp_slt_i64(0, 0) == false
|
||||
; run: %icmp_slt_i64(1, 0) == false
|
||||
; run: %icmp_slt_i64(-1, -1) == false
|
||||
; run: %icmp_slt_i64(0, 1) == true
|
||||
; run: %icmp_slt_i64(-5, -1) == true
|
||||
; run: %icmp_slt_i64(1, -1) == false
|
||||
; run: %icmp_slt_i64(0, 0) == 0
|
||||
; run: %icmp_slt_i64(1, 0) == 0
|
||||
; run: %icmp_slt_i64(-1, -1) == 0
|
||||
; run: %icmp_slt_i64(0, 1) == 1
|
||||
; run: %icmp_slt_i64(-5, -1) == 1
|
||||
; run: %icmp_slt_i64(1, -1) == 0
|
||||
|
||||
@@ -5,50 +5,50 @@ target x86_64
|
||||
target riscv64
|
||||
target s390x
|
||||
|
||||
function %icmp_uge_i8(i8, i8) -> b1 {
|
||||
function %icmp_uge_i8(i8, i8) -> i8 {
|
||||
block0(v0: i8, v1: i8):
|
||||
v2 = icmp uge v0, v1
|
||||
return v2
|
||||
}
|
||||
; run: %icmp_uge_i8(0, 0) == true
|
||||
; run: %icmp_uge_i8(1, 0) == true
|
||||
; run: %icmp_uge_i8(-1, -1) == true
|
||||
; run: %icmp_uge_i8(0, 1) == false
|
||||
; run: %icmp_uge_i8(-5, -1) == false
|
||||
; run: %icmp_uge_i8(1, -1) == false
|
||||
; run: %icmp_uge_i8(0, 0) == 1
|
||||
; run: %icmp_uge_i8(1, 0) == 1
|
||||
; run: %icmp_uge_i8(-1, -1) == 1
|
||||
; run: %icmp_uge_i8(0, 1) == 0
|
||||
; run: %icmp_uge_i8(-5, -1) == 0
|
||||
; run: %icmp_uge_i8(1, -1) == 0
|
||||
|
||||
function %icmp_uge_i16(i16, i16) -> b1 {
|
||||
function %icmp_uge_i16(i16, i16) -> i8 {
|
||||
block0(v0: i16, v1: i16):
|
||||
v2 = icmp uge v0, v1
|
||||
return v2
|
||||
}
|
||||
; run: %icmp_uge_i16(0, 0) == true
|
||||
; run: %icmp_uge_i16(1, 0) == true
|
||||
; run: %icmp_uge_i16(-1, -1) == true
|
||||
; run: %icmp_uge_i16(0, 1) == false
|
||||
; run: %icmp_uge_i16(-5, -1) == false
|
||||
; run: %icmp_uge_i16(1, -1) == false
|
||||
; run: %icmp_uge_i16(0, 0) == 1
|
||||
; run: %icmp_uge_i16(1, 0) == 1
|
||||
; run: %icmp_uge_i16(-1, -1) == 1
|
||||
; run: %icmp_uge_i16(0, 1) == 0
|
||||
; run: %icmp_uge_i16(-5, -1) == 0
|
||||
; run: %icmp_uge_i16(1, -1) == 0
|
||||
|
||||
function %icmp_uge_i32(i32, i32) -> b1 {
|
||||
function %icmp_uge_i32(i32, i32) -> i8 {
|
||||
block0(v0: i32, v1: i32):
|
||||
v2 = icmp uge v0, v1
|
||||
return v2
|
||||
}
|
||||
; run: %icmp_uge_i32(0, 0) == true
|
||||
; run: %icmp_uge_i32(1, 0) == true
|
||||
; run: %icmp_uge_i32(-1, -1) == true
|
||||
; run: %icmp_uge_i32(0, 1) == false
|
||||
; run: %icmp_uge_i32(-5, -1) == false
|
||||
; run: %icmp_uge_i32(1, -1) == false
|
||||
; run: %icmp_uge_i32(0, 0) == 1
|
||||
; run: %icmp_uge_i32(1, 0) == 1
|
||||
; run: %icmp_uge_i32(-1, -1) == 1
|
||||
; run: %icmp_uge_i32(0, 1) == 0
|
||||
; run: %icmp_uge_i32(-5, -1) == 0
|
||||
; run: %icmp_uge_i32(1, -1) == 0
|
||||
|
||||
function %icmp_uge_i64(i64, i64) -> b1 {
|
||||
function %icmp_uge_i64(i64, i64) -> i8 {
|
||||
block0(v0: i64, v1: i64):
|
||||
v2 = icmp uge v0, v1
|
||||
return v2
|
||||
}
|
||||
; run: %icmp_uge_i64(0, 0) == true
|
||||
; run: %icmp_uge_i64(1, 0) == true
|
||||
; run: %icmp_uge_i64(-1, -1) == true
|
||||
; run: %icmp_uge_i64(0, 1) == false
|
||||
; run: %icmp_uge_i64(-5, -1) == false
|
||||
; run: %icmp_uge_i64(1, -1) == false
|
||||
; run: %icmp_uge_i64(0, 0) == 1
|
||||
; run: %icmp_uge_i64(1, 0) == 1
|
||||
; run: %icmp_uge_i64(-1, -1) == 1
|
||||
; run: %icmp_uge_i64(0, 1) == 0
|
||||
; run: %icmp_uge_i64(-5, -1) == 0
|
||||
; run: %icmp_uge_i64(1, -1) == 0
|
||||
|
||||
@@ -5,50 +5,50 @@ target s390x
|
||||
target x86_64
|
||||
target riscv64
|
||||
|
||||
function %icmp_ugt_i8(i8, i8) -> b1 {
|
||||
function %icmp_ugt_i8(i8, i8) -> i8 {
|
||||
block0(v0: i8, v1: i8):
|
||||
v2 = icmp ugt v0, v1
|
||||
return v2
|
||||
}
|
||||
; run: %icmp_ugt_i8(0, 0) == false
|
||||
; run: %icmp_ugt_i8(1, 0) == true
|
||||
; run: %icmp_ugt_i8(-1, -1) == false
|
||||
; run: %icmp_ugt_i8(0, 1) == false
|
||||
; run: %icmp_ugt_i8(-5, -1) == false
|
||||
; run: %icmp_ugt_i8(1, -1) == false
|
||||
; run: %icmp_ugt_i8(0, 0) == 0
|
||||
; run: %icmp_ugt_i8(1, 0) == 1
|
||||
; run: %icmp_ugt_i8(-1, -1) == 0
|
||||
; run: %icmp_ugt_i8(0, 1) == 0
|
||||
; run: %icmp_ugt_i8(-5, -1) == 0
|
||||
; run: %icmp_ugt_i8(1, -1) == 0
|
||||
|
||||
function %icmp_ugt_i16(i16, i16) -> b1 {
|
||||
function %icmp_ugt_i16(i16, i16) -> i8 {
|
||||
block0(v0: i16, v1: i16):
|
||||
v2 = icmp ugt v0, v1
|
||||
return v2
|
||||
}
|
||||
; run: %icmp_ugt_i16(0, 0) == false
|
||||
; run: %icmp_ugt_i16(1, 0) == true
|
||||
; run: %icmp_ugt_i16(-1, -1) == false
|
||||
; run: %icmp_ugt_i16(0, 1) == false
|
||||
; run: %icmp_ugt_i16(-5, -1) == false
|
||||
; run: %icmp_ugt_i16(1, -1) == false
|
||||
; run: %icmp_ugt_i16(0, 0) == 0
|
||||
; run: %icmp_ugt_i16(1, 0) == 1
|
||||
; run: %icmp_ugt_i16(-1, -1) == 0
|
||||
; run: %icmp_ugt_i16(0, 1) == 0
|
||||
; run: %icmp_ugt_i16(-5, -1) == 0
|
||||
; run: %icmp_ugt_i16(1, -1) == 0
|
||||
|
||||
function %icmp_ugt_i32(i32, i32) -> b1 {
|
||||
function %icmp_ugt_i32(i32, i32) -> i8 {
|
||||
block0(v0: i32, v1: i32):
|
||||
v2 = icmp ugt v0, v1
|
||||
return v2
|
||||
}
|
||||
; run: %icmp_ugt_i32(0, 0) == false
|
||||
; run: %icmp_ugt_i32(1, 0) == true
|
||||
; run: %icmp_ugt_i32(-1, -1) == false
|
||||
; run: %icmp_ugt_i32(0, 1) == false
|
||||
; run: %icmp_ugt_i32(-5, -1) == false
|
||||
; run: %icmp_ugt_i32(1, -1) == false
|
||||
; run: %icmp_ugt_i32(0, 0) == 0
|
||||
; run: %icmp_ugt_i32(1, 0) == 1
|
||||
; run: %icmp_ugt_i32(-1, -1) == 0
|
||||
; run: %icmp_ugt_i32(0, 1) == 0
|
||||
; run: %icmp_ugt_i32(-5, -1) == 0
|
||||
; run: %icmp_ugt_i32(1, -1) == 0
|
||||
|
||||
function %icmp_ugt_i64(i64, i64) -> b1 {
|
||||
function %icmp_ugt_i64(i64, i64) -> i8 {
|
||||
block0(v0: i64, v1: i64):
|
||||
v2 = icmp ugt v0, v1
|
||||
return v2
|
||||
}
|
||||
; run: %icmp_ugt_i64(0, 0) == false
|
||||
; run: %icmp_ugt_i64(1, 0) == true
|
||||
; run: %icmp_ugt_i64(-1, -1) == false
|
||||
; run: %icmp_ugt_i64(0, 1) == false
|
||||
; run: %icmp_ugt_i64(-5, -1) == false
|
||||
; run: %icmp_ugt_i64(1, -1) == false
|
||||
; run: %icmp_ugt_i64(0, 0) == 0
|
||||
; run: %icmp_ugt_i64(1, 0) == 1
|
||||
; run: %icmp_ugt_i64(-1, -1) == 0
|
||||
; run: %icmp_ugt_i64(0, 1) == 0
|
||||
; run: %icmp_ugt_i64(-5, -1) == 0
|
||||
; run: %icmp_ugt_i64(1, -1) == 0
|
||||
|
||||
@@ -5,50 +5,50 @@ target x86_64
|
||||
target riscv64
|
||||
target s390x
|
||||
|
||||
function %icmp_ule_i8(i8, i8) -> b1 {
|
||||
function %icmp_ule_i8(i8, i8) -> i8 {
|
||||
block0(v0: i8, v1: i8):
|
||||
v2 = icmp ule v0, v1
|
||||
return v2
|
||||
}
|
||||
; run: %icmp_ule_i8(0, 0) == true
|
||||
; run: %icmp_ule_i8(1, 0) == false
|
||||
; run: %icmp_ule_i8(-1, -1) == true
|
||||
; run: %icmp_ule_i8(0, 1) == true
|
||||
; run: %icmp_ule_i8(-5, -1) == true
|
||||
; run: %icmp_ule_i8(1, -1) == true
|
||||
; run: %icmp_ule_i8(0, 0) == 1
|
||||
; run: %icmp_ule_i8(1, 0) == 0
|
||||
; run: %icmp_ule_i8(-1, -1) == 1
|
||||
; run: %icmp_ule_i8(0, 1) == 1
|
||||
; run: %icmp_ule_i8(-5, -1) == 1
|
||||
; run: %icmp_ule_i8(1, -1) == 1
|
||||
|
||||
function %icmp_ule_i16(i16, i16) -> b1 {
|
||||
function %icmp_ule_i16(i16, i16) -> i8 {
|
||||
block0(v0: i16, v1: i16):
|
||||
v2 = icmp ule v0, v1
|
||||
return v2
|
||||
}
|
||||
; run: %icmp_ule_i16(0, 0) == true
|
||||
; run: %icmp_ule_i16(1, 0) == false
|
||||
; run: %icmp_ule_i16(-1, -1) == true
|
||||
; run: %icmp_ule_i16(0, 1) == true
|
||||
; run: %icmp_ule_i16(-5, -1) == true
|
||||
; run: %icmp_ule_i16(1, -1) == true
|
||||
; run: %icmp_ule_i16(0, 0) == 1
|
||||
; run: %icmp_ule_i16(1, 0) == 0
|
||||
; run: %icmp_ule_i16(-1, -1) == 1
|
||||
; run: %icmp_ule_i16(0, 1) == 1
|
||||
; run: %icmp_ule_i16(-5, -1) == 1
|
||||
; run: %icmp_ule_i16(1, -1) == 1
|
||||
|
||||
function %icmp_ule_i32(i32, i32) -> b1 {
|
||||
function %icmp_ule_i32(i32, i32) -> i8 {
|
||||
block0(v0: i32, v1: i32):
|
||||
v2 = icmp ule v0, v1
|
||||
return v2
|
||||
}
|
||||
; run: %icmp_ule_i32(0, 0) == true
|
||||
; run: %icmp_ule_i32(1, 0) == false
|
||||
; run: %icmp_ule_i32(-1, -1) == true
|
||||
; run: %icmp_ule_i32(0, 1) == true
|
||||
; run: %icmp_ule_i32(-5, -1) == true
|
||||
; run: %icmp_ule_i32(1, -1) == true
|
||||
; run: %icmp_ule_i32(0, 0) == 1
|
||||
; run: %icmp_ule_i32(1, 0) == 0
|
||||
; run: %icmp_ule_i32(-1, -1) == 1
|
||||
; run: %icmp_ule_i32(0, 1) == 1
|
||||
; run: %icmp_ule_i32(-5, -1) == 1
|
||||
; run: %icmp_ule_i32(1, -1) == 1
|
||||
|
||||
function %icmp_ule_i64(i64, i64) -> b1 {
|
||||
function %icmp_ule_i64(i64, i64) -> i8 {
|
||||
block0(v0: i64, v1: i64):
|
||||
v2 = icmp ule v0, v1
|
||||
return v2
|
||||
}
|
||||
; run: %icmp_ule_i64(0, 0) == true
|
||||
; run: %icmp_ule_i64(1, 0) == false
|
||||
; run: %icmp_ule_i64(-1, -1) == true
|
||||
; run: %icmp_ule_i64(0, 1) == true
|
||||
; run: %icmp_ule_i64(-5, -1) == true
|
||||
; run: %icmp_ule_i64(1, -1) == true
|
||||
; run: %icmp_ule_i64(0, 0) == 1
|
||||
; run: %icmp_ule_i64(1, 0) == 0
|
||||
; run: %icmp_ule_i64(-1, -1) == 1
|
||||
; run: %icmp_ule_i64(0, 1) == 1
|
||||
; run: %icmp_ule_i64(-5, -1) == 1
|
||||
; run: %icmp_ule_i64(1, -1) == 1
|
||||
|
||||
@@ -4,50 +4,50 @@ target aarch64
|
||||
target x86_64
|
||||
target s390x
|
||||
|
||||
function %icmp_ult_i8(i8, i8) -> b1 {
|
||||
function %icmp_ult_i8(i8, i8) -> i8 {
|
||||
block0(v0: i8, v1: i8):
|
||||
v2 = icmp ult v0, v1
|
||||
return v2
|
||||
}
|
||||
; run: %icmp_ult_i8(0, 0) == false
|
||||
; run: %icmp_ult_i8(1, 0) == false
|
||||
; run: %icmp_ult_i8(-1, -1) == false
|
||||
; run: %icmp_ult_i8(0, 1) == true
|
||||
; run: %icmp_ult_i8(-5, -1) == true
|
||||
; run: %icmp_ult_i8(1, -1) == true
|
||||
; run: %icmp_ult_i8(0, 0) == 0
|
||||
; run: %icmp_ult_i8(1, 0) == 0
|
||||
; run: %icmp_ult_i8(-1, -1) == 0
|
||||
; run: %icmp_ult_i8(0, 1) == 1
|
||||
; run: %icmp_ult_i8(-5, -1) == 1
|
||||
; run: %icmp_ult_i8(1, -1) == 1
|
||||
|
||||
function %icmp_ult_i16(i16, i16) -> b1 {
|
||||
function %icmp_ult_i16(i16, i16) -> i8 {
|
||||
block0(v0: i16, v1: i16):
|
||||
v2 = icmp ult v0, v1
|
||||
return v2
|
||||
}
|
||||
; run: %icmp_ult_i16(0, 0) == false
|
||||
; run: %icmp_ult_i16(1, 0) == false
|
||||
; run: %icmp_ult_i16(-1, -1) == false
|
||||
; run: %icmp_ult_i16(0, 1) == true
|
||||
; run: %icmp_ult_i16(-5, -1) == true
|
||||
; run: %icmp_ult_i16(1, -1) == true
|
||||
; run: %icmp_ult_i16(0, 0) == 0
|
||||
; run: %icmp_ult_i16(1, 0) == 0
|
||||
; run: %icmp_ult_i16(-1, -1) == 0
|
||||
; run: %icmp_ult_i16(0, 1) == 1
|
||||
; run: %icmp_ult_i16(-5, -1) == 1
|
||||
; run: %icmp_ult_i16(1, -1) == 1
|
||||
|
||||
function %icmp_ult_i32(i32, i32) -> b1 {
|
||||
function %icmp_ult_i32(i32, i32) -> i8 {
|
||||
block0(v0: i32, v1: i32):
|
||||
v2 = icmp ult v0, v1
|
||||
return v2
|
||||
}
|
||||
; run: %icmp_ult_i32(0, 0) == false
|
||||
; run: %icmp_ult_i32(1, 0) == false
|
||||
; run: %icmp_ult_i32(-1, -1) == false
|
||||
; run: %icmp_ult_i32(0, 1) == true
|
||||
; run: %icmp_ult_i32(-5, -1) == true
|
||||
; run: %icmp_ult_i32(1, -1) == true
|
||||
; run: %icmp_ult_i32(0, 0) == 0
|
||||
; run: %icmp_ult_i32(1, 0) == 0
|
||||
; run: %icmp_ult_i32(-1, -1) == 0
|
||||
; run: %icmp_ult_i32(0, 1) == 1
|
||||
; run: %icmp_ult_i32(-5, -1) == 1
|
||||
; run: %icmp_ult_i32(1, -1) == 1
|
||||
|
||||
function %icmp_ult_i64(i64, i64) -> b1 {
|
||||
function %icmp_ult_i64(i64, i64) -> i8 {
|
||||
block0(v0: i64, v1: i64):
|
||||
v2 = icmp ult v0, v1
|
||||
return v2
|
||||
}
|
||||
; run: %icmp_ult_i64(0, 0) == false
|
||||
; run: %icmp_ult_i64(1, 0) == false
|
||||
; run: %icmp_ult_i64(-1, -1) == false
|
||||
; run: %icmp_ult_i64(0, 1) == true
|
||||
; run: %icmp_ult_i64(-5, -1) == true
|
||||
; run: %icmp_ult_i64(1, -1) == true
|
||||
; run: %icmp_ult_i64(0, 0) == 0
|
||||
; run: %icmp_ult_i64(1, 0) == 0
|
||||
; run: %icmp_ult_i64(-1, -1) == 0
|
||||
; run: %icmp_ult_i64(0, 1) == 1
|
||||
; run: %icmp_ult_i64(-5, -1) == 1
|
||||
; run: %icmp_ult_i64(1, -1) == 1
|
||||
|
||||
@@ -9,11 +9,11 @@ target riscv64
|
||||
; We were not correctly handling the fact that the rhs constant value
|
||||
; overflows its type when viewed as a signed value, and thus encoding the wrong
|
||||
; value into the resulting instruction.
|
||||
function %overflow_rhs_const(i8) -> b1 {
|
||||
function %overflow_rhs_const(i8) -> i8 {
|
||||
block0(v0: i8):
|
||||
v1 = iconst.i8 192
|
||||
v2 = icmp sge v0, v1
|
||||
return v2
|
||||
}
|
||||
; run: %overflow_rhs_const(49) == true
|
||||
; run: %overflow_rhs_const(-65) == false
|
||||
; run: %overflow_rhs_const(49) == 1
|
||||
; run: %overflow_rhs_const(-65) == 0
|
||||
|
||||
@@ -1,49 +1,49 @@
|
||||
test interpret
|
||||
|
||||
function %isubbin_i8(i8, i8, b1) -> i8 {
|
||||
block0(v0: i8, v1: i8, v2: b1):
|
||||
function %isubbin_i8(i8, i8, i8) -> i8 {
|
||||
block0(v0: i8, v1: i8, v2: i8):
|
||||
v3 = isub_bin v0, v1, v2
|
||||
return v3
|
||||
}
|
||||
; run: %isubbin_i8(0, 1, true) == -2
|
||||
; run: %isubbin_i8(0, 1, false) == -1
|
||||
; run: %isubbin_i8(100, 20, true) == 79
|
||||
; run: %isubbin_i8(100, 20, false) == 80
|
||||
; run: %isubbin_i8(-128, 1, true) == 126
|
||||
; run: %isubbin_i8(-128, 1, false) == 127
|
||||
; run: %isubbin_i8(0, 1, 1) == -2
|
||||
; run: %isubbin_i8(0, 1, 0) == -1
|
||||
; run: %isubbin_i8(100, 20, 1) == 79
|
||||
; run: %isubbin_i8(100, 20, 0) == 80
|
||||
; run: %isubbin_i8(-128, 1, 1) == 126
|
||||
; run: %isubbin_i8(-128, 1, 0) == 127
|
||||
|
||||
function %isubbin_i16(i16, i16, b1) -> i16 {
|
||||
block0(v0: i16, v1: i16, v2: b1):
|
||||
function %isubbin_i16(i16, i16, i8) -> i16 {
|
||||
block0(v0: i16, v1: i16, v2: i8):
|
||||
v3 = isub_bin v0, v1, v2
|
||||
return v3
|
||||
}
|
||||
; run: %isubbin_i16(0, 1, true) == -2
|
||||
; run: %isubbin_i16(0, 1, false) == -1
|
||||
; run: %isubbin_i16(100, 20, true) == 79
|
||||
; run: %isubbin_i16(100, 20, false) == 80
|
||||
; run: %isubbin_i16(-32768, 1, true) == 32766
|
||||
; run: %isubbin_i16(-32768, 1, false) == 32767
|
||||
; run: %isubbin_i16(0, 1, 1) == -2
|
||||
; run: %isubbin_i16(0, 1, 0) == -1
|
||||
; run: %isubbin_i16(100, 20, 1) == 79
|
||||
; run: %isubbin_i16(100, 20, 0) == 80
|
||||
; run: %isubbin_i16(-32768, 1, 1) == 32766
|
||||
; run: %isubbin_i16(-32768, 1, 0) == 32767
|
||||
|
||||
function %isubbin_i32(i32, i32, b1) -> i32 {
|
||||
block0(v0: i32, v1: i32, v2: b1):
|
||||
function %isubbin_i32(i32, i32, i8) -> i32 {
|
||||
block0(v0: i32, v1: i32, v2: i8):
|
||||
v3 = isub_bin v0, v1, v2
|
||||
return v3
|
||||
}
|
||||
; run: %isubbin_i32(0, 1, true) == -2
|
||||
; run: %isubbin_i32(0, 1, false) == -1
|
||||
; run: %isubbin_i32(100, 20, true) == 79
|
||||
; run: %isubbin_i32(100, 20, false) == 80
|
||||
; run: %isubbin_i32(-2147483648, 1, true) == 2147483646
|
||||
; run: %isubbin_i32(-2147483648, 1, false) == 2147483647
|
||||
; run: %isubbin_i32(0, 1, 1) == -2
|
||||
; run: %isubbin_i32(0, 1, 0) == -1
|
||||
; run: %isubbin_i32(100, 20, 1) == 79
|
||||
; run: %isubbin_i32(100, 20, 0) == 80
|
||||
; run: %isubbin_i32(-2147483648, 1, 1) == 2147483646
|
||||
; run: %isubbin_i32(-2147483648, 1, 0) == 2147483647
|
||||
|
||||
function %isubbin_i64(i64, i64, b1) -> i64 {
|
||||
block0(v0: i64, v1: i64, v2: b1):
|
||||
function %isubbin_i64(i64, i64, i8) -> i64 {
|
||||
block0(v0: i64, v1: i64, v2: i8):
|
||||
v3 = isub_bin v0, v1, v2
|
||||
return v3
|
||||
}
|
||||
; run: %isubbin_i64(0, 1, true) == -2
|
||||
; run: %isubbin_i64(0, 1, false) == -1
|
||||
; run: %isubbin_i64(100, 20, true) == 79
|
||||
; run: %isubbin_i64(100, 20, false) == 80
|
||||
; run: %isubbin_i64(-2147483648, 1, true) == -2147483650
|
||||
; run: %isubbin_i64(-2147483648, 1, false) == -2147483649
|
||||
; run: %isubbin_i64(0, 1, 1) == -2
|
||||
; run: %isubbin_i64(0, 1, 0) == -1
|
||||
; run: %isubbin_i64(100, 20, 1) == 79
|
||||
; run: %isubbin_i64(100, 20, 0) == 80
|
||||
; run: %isubbin_i64(-2147483648, 1, 1) == -2147483650
|
||||
; run: %isubbin_i64(-2147483648, 1, 0) == -2147483649
|
||||
|
||||
@@ -1,98 +1,98 @@
|
||||
test interpret
|
||||
|
||||
function %isubborrow_i8_v(i8, i8, b1) -> i8 {
|
||||
block0(v0: i8, v1: i8, v2: b1):
|
||||
function %isubborrow_i8_v(i8, i8, i8) -> i8 {
|
||||
block0(v0: i8, v1: i8, v2: i8):
|
||||
v3, v4 = isub_borrow v0, v1, v2
|
||||
return v3
|
||||
}
|
||||
; run: %isubborrow_i8_v(0, 1, true) == -2
|
||||
; run: %isubborrow_i8_v(0, 1, false) == -1
|
||||
; run: %isubborrow_i8_v(100, 20, true) == 79
|
||||
; run: %isubborrow_i8_v(100, 20, false) == 80
|
||||
; run: %isubborrow_i8_v(127, 127, true) == -1
|
||||
; run: %isubborrow_i8_v(127, 127, false) == 0
|
||||
; run: %isubborrow_i8_v(0, 1, 1) == -2
|
||||
; run: %isubborrow_i8_v(0, 1, 0) == -1
|
||||
; run: %isubborrow_i8_v(100, 20, 1) == 79
|
||||
; run: %isubborrow_i8_v(100, 20, 0) == 80
|
||||
; run: %isubborrow_i8_v(127, 127, 1) == -1
|
||||
; run: %isubborrow_i8_v(127, 127, 0) == 0
|
||||
|
||||
function %isubborrow_i8_c(i8, i8, b1) -> b1 {
|
||||
block0(v0: i8, v1: i8, v2: b1):
|
||||
function %isubborrow_i8_c(i8, i8, i8) -> i8 {
|
||||
block0(v0: i8, v1: i8, v2: i8):
|
||||
v3, v4 = isub_borrow v0, v1, v2
|
||||
return v4
|
||||
}
|
||||
; run: %isubborrow_i8_c(0, 1, true) == true
|
||||
; run: %isubborrow_i8_c(0, 1, false) == true
|
||||
; run: %isubborrow_i8_c(100, 20, true) == false
|
||||
; run: %isubborrow_i8_c(100, 20, false) == false
|
||||
; run: %isubborrow_i8_c(127, 127, true) == false
|
||||
; run: %isubborrow_i8_c(127, 127, false) == false
|
||||
; run: %isubborrow_i8_c(0, 1, 1) == 1
|
||||
; run: %isubborrow_i8_c(0, 1, 0) == 1
|
||||
; run: %isubborrow_i8_c(100, 20, 1) == 0
|
||||
; run: %isubborrow_i8_c(100, 20, 0) == 0
|
||||
; run: %isubborrow_i8_c(127, 127, 1) == 0
|
||||
; run: %isubborrow_i8_c(127, 127, 0) == 0
|
||||
|
||||
function %isubborrow_i16_v(i16, i16, b1) -> i16 {
|
||||
block0(v0: i16, v1: i16, v2: b1):
|
||||
function %isubborrow_i16_v(i16, i16, i8) -> i16 {
|
||||
block0(v0: i16, v1: i16, v2: i8):
|
||||
v3, v4 = isub_borrow v0, v1, v2
|
||||
return v3
|
||||
}
|
||||
; run: %isubborrow_i16_v(0, 1, true) == -2
|
||||
; run: %isubborrow_i16_v(0, 1, false) == -1
|
||||
; run: %isubborrow_i16_v(100, 20, true) == 79
|
||||
; run: %isubborrow_i16_v(100, 20, false) == 80
|
||||
; run: %isubborrow_i16_v(-32000, 768, true) == 32767
|
||||
; run: %isubborrow_i16_v(-32000, 768, false) == -32768
|
||||
; run: %isubborrow_i16_v(0, 1, 1) == -2
|
||||
; run: %isubborrow_i16_v(0, 1, 0) == -1
|
||||
; run: %isubborrow_i16_v(100, 20, 1) == 79
|
||||
; run: %isubborrow_i16_v(100, 20, 0) == 80
|
||||
; run: %isubborrow_i16_v(-32000, 768, 1) == 32767
|
||||
; run: %isubborrow_i16_v(-32000, 768, 0) == -32768
|
||||
|
||||
function %isubborrow_i16_c(i16, i16, b1) -> b1 {
|
||||
block0(v0: i16, v1: i16, v2: b1):
|
||||
function %isubborrow_i16_c(i16, i16, i8) -> i8 {
|
||||
block0(v0: i16, v1: i16, v2: i8):
|
||||
v3, v4 = isub_borrow v0, v1, v2
|
||||
return v4
|
||||
}
|
||||
; run: %isubborrow_i16_c(0, 1, true) == true
|
||||
; run: %isubborrow_i16_c(0, 1, false) == true
|
||||
; run: %isubborrow_i16_c(100, 20, true) == false
|
||||
; run: %isubborrow_i16_c(100, 20, false) == false
|
||||
; run: %isubborrow_i16_c(-32000, 768, true) == true
|
||||
; run: %isubborrow_i16_c(-32000, 768, false) == true
|
||||
; run: %isubborrow_i16_c(0, 1, 1) == 1
|
||||
; run: %isubborrow_i16_c(0, 1, 0) == 1
|
||||
; run: %isubborrow_i16_c(100, 20, 1) == 0
|
||||
; run: %isubborrow_i16_c(100, 20, 0) == 0
|
||||
; run: %isubborrow_i16_c(-32000, 768, 1) == 1
|
||||
; run: %isubborrow_i16_c(-32000, 768, 0) == 1
|
||||
|
||||
function %isubborrow_i32_v(i32, i32, b1) -> i32 {
|
||||
block0(v0: i32, v1: i32, v2: b1):
|
||||
function %isubborrow_i32_v(i32, i32, i8) -> i32 {
|
||||
block0(v0: i32, v1: i32, v2: i8):
|
||||
v3, v4 = isub_borrow v0, v1, v2
|
||||
return v3
|
||||
}
|
||||
; run: %isubborrow_i32_v(0, 1, true) == -2
|
||||
; run: %isubborrow_i32_v(0, 1, false) == -1
|
||||
; run: %isubborrow_i32_v(100, 20, true) == 79
|
||||
; run: %isubborrow_i32_v(100, 20, false) == 80
|
||||
; run: %isubborrow_i32_v(-2147483640, 8, true) == 2147483647
|
||||
; run: %isubborrow_i32_v(-2147483640, 8, false) == -2147483648
|
||||
; run: %isubborrow_i32_v(0, 1, 1) == -2
|
||||
; run: %isubborrow_i32_v(0, 1, 0) == -1
|
||||
; run: %isubborrow_i32_v(100, 20, 1) == 79
|
||||
; run: %isubborrow_i32_v(100, 20, 0) == 80
|
||||
; run: %isubborrow_i32_v(-2147483640, 8, 1) == 2147483647
|
||||
; run: %isubborrow_i32_v(-2147483640, 8, 0) == -2147483648
|
||||
|
||||
function %isubborrow_i32_c(i32, i32, b1) -> b1 {
|
||||
block0(v0: i32, v1: i32, v2: b1):
|
||||
function %isubborrow_i32_c(i32, i32, i8) -> i8 {
|
||||
block0(v0: i32, v1: i32, v2: i8):
|
||||
v3, v4 = isub_borrow v0, v1, v2
|
||||
return v4
|
||||
}
|
||||
; run: %isubborrow_i32_c(0, 1, true) == true
|
||||
; run: %isubborrow_i32_c(0, 1, false) == true
|
||||
; run: %isubborrow_i32_c(100, 20, true) == false
|
||||
; run: %isubborrow_i32_c(100, 20, false) == false
|
||||
; run: %isubborrow_i32_c(-2147483640, 8, true) == true
|
||||
; run: %isubborrow_i32_c(-2147483640, 8, false) == true
|
||||
; run: %isubborrow_i32_c(0, 1, 1) == 1
|
||||
; run: %isubborrow_i32_c(0, 1, 0) == 1
|
||||
; run: %isubborrow_i32_c(100, 20, 1) == 0
|
||||
; run: %isubborrow_i32_c(100, 20, 0) == 0
|
||||
; run: %isubborrow_i32_c(-2147483640, 8, 1) == 1
|
||||
; run: %isubborrow_i32_c(-2147483640, 8, 0) == 1
|
||||
|
||||
|
||||
function %isubborrow_i64_v(i64, i64, b1) -> i64 {
|
||||
block0(v0: i64, v1: i64, v2: b1):
|
||||
function %isubborrow_i64_v(i64, i64, i8) -> i64 {
|
||||
block0(v0: i64, v1: i64, v2: i8):
|
||||
v3, v4 = isub_borrow v0, v1, v2
|
||||
return v3
|
||||
}
|
||||
; run: %isubborrow_i64_v(0, 1, true) == -2
|
||||
; run: %isubborrow_i64_v(0, 1, false) == -1
|
||||
; run: %isubborrow_i64_v(100, 20, true) == 79
|
||||
; run: %isubborrow_i64_v(100, 20, false) == 80
|
||||
; run: %isubborrow_i64_v(-9223372036854775800, 8, true) == 9223372036854775807
|
||||
; run: %isubborrow_i64_v(-9223372036854775800, 8, false) == -9223372036854775808
|
||||
; run: %isubborrow_i64_v(0, 1, 1) == -2
|
||||
; run: %isubborrow_i64_v(0, 1, 0) == -1
|
||||
; run: %isubborrow_i64_v(100, 20, 1) == 79
|
||||
; run: %isubborrow_i64_v(100, 20, 0) == 80
|
||||
; run: %isubborrow_i64_v(-9223372036854775800, 8, 1) == 9223372036854775807
|
||||
; run: %isubborrow_i64_v(-9223372036854775800, 8, 0) == -9223372036854775808
|
||||
|
||||
function %isubborrow_i64_c(i64, i64, b1) -> b1 {
|
||||
block0(v0: i64, v1: i64, v2: b1):
|
||||
function %isubborrow_i64_c(i64, i64, i8) -> i8 {
|
||||
block0(v0: i64, v1: i64, v2: i8):
|
||||
v3, v4 = isub_borrow v0, v1, v2
|
||||
return v4
|
||||
}
|
||||
; run: %isubborrow_i64_c(0, 1, true) == true
|
||||
; run: %isubborrow_i64_c(0, 1, false) == true
|
||||
; run: %isubborrow_i64_c(100, 20, true) == false
|
||||
; run: %isubborrow_i64_c(100, 20, false) == false
|
||||
; run: %isubborrow_i64_c(-9223372036854775800, 8, true) == true
|
||||
; run: %isubborrow_i64_c(-9223372036854775800, 8, false) == true
|
||||
; run: %isubborrow_i64_c(0, 1, 1) == 1
|
||||
; run: %isubborrow_i64_c(0, 1, 0) == 1
|
||||
; run: %isubborrow_i64_c(100, 20, 1) == 0
|
||||
; run: %isubborrow_i64_c(100, 20, 0) == 0
|
||||
; run: %isubborrow_i64_c(-9223372036854775800, 8, 1) == 1
|
||||
; run: %isubborrow_i64_c(-9223372036854775800, 8, 0) == 1
|
||||
|
||||
@@ -10,15 +10,15 @@ block0(v0: i8, v1: i8):
|
||||
; run: %isubbout_i8_v(100, -20) == 120
|
||||
; run: %isubbout_i8_v(-128, 1) == 127
|
||||
|
||||
function %isubbout_i8_c(i8, i8) -> b1 {
|
||||
function %isubbout_i8_c(i8, i8) -> i8 {
|
||||
block0(v0: i8, v1: i8):
|
||||
v2, v3 = isub_bout v0, v1
|
||||
return v3
|
||||
}
|
||||
; run: %isubbout_i8_c(0, 1) == true
|
||||
; run: %isubbout_i8_c(100, 20) == false
|
||||
; run: %isubbout_i8_c(100, -20) == false
|
||||
; run: %isubbout_i8_c(-128, 1) == true
|
||||
; run: %isubbout_i8_c(0, 1) == 1
|
||||
; run: %isubbout_i8_c(100, 20) == 0
|
||||
; run: %isubbout_i8_c(100, -20) == 0
|
||||
; run: %isubbout_i8_c(-128, 1) == 1
|
||||
|
||||
function %isubbout_i16_v(i16, i16) -> i16 {
|
||||
block0(v0: i16, v1: i16):
|
||||
@@ -31,16 +31,16 @@ block0(v0: i16, v1: i16):
|
||||
; run: %isubbout_i16_v(-32000, 768) == -32768
|
||||
; run: %isubbout_i16_v(-32000, 769) == 32767
|
||||
|
||||
function %isubbout_i16_c(i16, i16) -> b1 {
|
||||
function %isubbout_i16_c(i16, i16) -> i8 {
|
||||
block0(v0: i16, v1: i16):
|
||||
v2, v3 = isub_bout v0, v1
|
||||
return v3
|
||||
}
|
||||
; run: %isubbout_i16_c(0, 1) == true
|
||||
; run: %isubbout_i16_c(100, 20) == false
|
||||
; run: %isubbout_i16_c(100, -28) == false
|
||||
; run: %isubbout_i16_c(-32000, 768) == true
|
||||
; run: %isubbout_i16_c(-32000, 769) == true
|
||||
; run: %isubbout_i16_c(0, 1) == 1
|
||||
; run: %isubbout_i16_c(100, 20) == 0
|
||||
; run: %isubbout_i16_c(100, -28) == 0
|
||||
; run: %isubbout_i16_c(-32000, 768) == 1
|
||||
; run: %isubbout_i16_c(-32000, 769) == 1
|
||||
|
||||
function %isubbout_i32_v(i32, i32) -> i32 {
|
||||
block0(v0: i32, v1: i32):
|
||||
@@ -53,16 +53,16 @@ block0(v0: i32, v1: i32):
|
||||
; run: %isubbout_i32_v(-2147483640, 8) == -2147483648
|
||||
; run: %isubbout_i32_v(-2147483640, 9) == 2147483647
|
||||
|
||||
function %isubbout_i32_c(i32, i32) -> b1 {
|
||||
function %isubbout_i32_c(i32, i32) -> i8 {
|
||||
block0(v0: i32, v1: i32):
|
||||
v2, v3 = isub_bout v0, v1
|
||||
return v3
|
||||
}
|
||||
; run: %isubbout_i32_c(0, 1) == true
|
||||
; run: %isubbout_i32_c(100, 20) == false
|
||||
; run: %isubbout_i32_c(100, -28) == false
|
||||
; run: %isubbout_i32_c(-2147483640, 8) == true
|
||||
; run: %isubbout_i32_c(-2147483640, 9) == true
|
||||
; run: %isubbout_i32_c(0, 1) == 1
|
||||
; run: %isubbout_i32_c(100, 20) == 0
|
||||
; run: %isubbout_i32_c(100, -28) == 0
|
||||
; run: %isubbout_i32_c(-2147483640, 8) == 1
|
||||
; run: %isubbout_i32_c(-2147483640, 9) == 1
|
||||
|
||||
function %isubbout_i64_v(i64, i64) -> i64 {
|
||||
block0(v0: i64, v1: i64):
|
||||
@@ -75,13 +75,13 @@ block0(v0: i64, v1: i64):
|
||||
; run: %isubbout_i64_v(-2147483640, 8) == -2147483648
|
||||
; run: %isubbout_i64_v(-2147483640, 9) == -2147483649
|
||||
|
||||
function %isubbout_i64_c(i64, i64) -> b1 {
|
||||
function %isubbout_i64_c(i64, i64) -> i8 {
|
||||
block0(v0: i64, v1: i64):
|
||||
v2, v3 = isub_bout v0, v1
|
||||
return v3
|
||||
}
|
||||
; run: %isubbout_i64_c(0, 1) == true
|
||||
; run: %isubbout_i64_c(100, 20) == false
|
||||
; run: %isubbout_i64_c(100, -28) == false
|
||||
; run: %isubbout_i64_c(-2147483640, 8) == true
|
||||
; run: %isubbout_i64_c(-2147483640, 9) == true
|
||||
; run: %isubbout_i64_c(0, 1) == 1
|
||||
; run: %isubbout_i64_c(100, 20) == 0
|
||||
; run: %isubbout_i64_c(100, -28) == 0
|
||||
; run: %isubbout_i64_c(-2147483640, 8) == 1
|
||||
; run: %isubbout_i64_c(-2147483640, 9) == 1
|
||||
|
||||
@@ -59,7 +59,7 @@ function %near_is_nan_f32(f32) -> i32 {
|
||||
block0(v0: f32):
|
||||
v1 = nearest v0
|
||||
v2 = fcmp ne v1, v1
|
||||
v3 = bint.i32 v2
|
||||
v3 = uextend.i32 v2
|
||||
return v3
|
||||
}
|
||||
; run: %near_is_nan_f32(+NaN) == 1
|
||||
@@ -132,7 +132,7 @@ function %near_is_nan_f64(f64) -> i32 {
|
||||
block0(v0: f64):
|
||||
v1 = nearest v0
|
||||
v2 = fcmp ne v1, v1
|
||||
v3 = bint.i32 v2
|
||||
v3 = uextend.i32 v2
|
||||
return v3
|
||||
}
|
||||
; run: %near_is_nan_f64(+NaN) == 1
|
||||
|
||||
@@ -4,39 +4,39 @@ target aarch64
|
||||
target x86_64
|
||||
target s390x
|
||||
|
||||
function %is_null_true_r64() -> b1 {
|
||||
function %is_null_true_r64() -> i8 {
|
||||
block0:
|
||||
v0 = null.r64
|
||||
v1 = is_null v0
|
||||
return v1
|
||||
}
|
||||
; run: %is_null_true_r64() == true
|
||||
; run: %is_null_true_r64() == 1
|
||||
|
||||
function %is_null_r64(i64) -> b1 {
|
||||
function %is_null_r64(i64) -> i8 {
|
||||
block0(v0: i64):
|
||||
v1 = raw_bitcast.r64 v0
|
||||
v2 = is_null v1
|
||||
return v2
|
||||
}
|
||||
; run: %is_null_r64(256347) == false
|
||||
; run: %is_null_r64(-1) == false
|
||||
; run: %is_null_r64(0) == true
|
||||
; run: %is_null_r64(256347) == 0
|
||||
; run: %is_null_r64(-1) == 0
|
||||
; run: %is_null_r64(0) == 1
|
||||
|
||||
function %is_invalid_r64(i64) -> b1 {
|
||||
function %is_invalid_r64(i64) -> i8 {
|
||||
block0(v0: i64):
|
||||
v1 = raw_bitcast.r64 v0
|
||||
v2 = is_invalid v1
|
||||
return v2
|
||||
}
|
||||
; run: %is_invalid_r64(0xffffffffffffffff) == true
|
||||
; run: %is_invalid_r64(-1) == true
|
||||
; run: %is_invalid_r64(256347) == false
|
||||
; run: %is_invalid_r64(0) == false
|
||||
; run: %is_invalid_r64(0xffffffffffffffff) == 1
|
||||
; run: %is_invalid_r64(-1) == 1
|
||||
; run: %is_invalid_r64(256347) == 0
|
||||
; run: %is_invalid_r64(0) == 0
|
||||
|
||||
function %is_invalid_null_r64() -> b1 {
|
||||
function %is_invalid_null_r64() -> i8 {
|
||||
block0:
|
||||
v0 = null.r64
|
||||
v1 = is_invalid v0
|
||||
return v1
|
||||
}
|
||||
; run: %is_invalid_null_r64() == false
|
||||
; run: %is_invalid_null_r64() == 0
|
||||
|
||||
@@ -6,8 +6,8 @@ target riscv64
|
||||
; This is a regression test for https://github.com/bytecodealliance/wasmtime/issues/4996.
|
||||
function %issue4996() -> i128, i64 system_v {
|
||||
block0:
|
||||
v5 = bconst.b1 false
|
||||
brz v5, block3 ; v5 = false
|
||||
v5 = iconst.i8 0
|
||||
brz v5, block3 ; v5 = 0
|
||||
jump block1
|
||||
block1:
|
||||
v12 = iconst.i64 0
|
||||
@@ -21,4 +21,4 @@ function %issue4996() -> i128, i64 system_v {
|
||||
v29 = iconst.i64 0
|
||||
return v23, v29 ; v29 = 0
|
||||
}
|
||||
; run: %issue4996() == [0,0]
|
||||
; run: %issue4996() == [0,0]
|
||||
|
||||
@@ -17,6 +17,18 @@ block0(v0: f32, v1: f32):
|
||||
; run: %select_eq_f32(0x42.42, 0.0) == 0
|
||||
; run: %select_eq_f32(0x42.42, NaN) == 0
|
||||
|
||||
function %select_i8(i8) -> i32 {
|
||||
block0(v0: i8):
|
||||
v1 = iconst.i32 42
|
||||
v2 = iconst.i32 97
|
||||
v3 = select v0, v1, v2
|
||||
return v3
|
||||
}
|
||||
; run: %select_i8(0) == 97
|
||||
; run: %select_i8(1) == 42
|
||||
; run: %select_i8(2) == 42
|
||||
; run: %select_i8(-1) == 42
|
||||
|
||||
function %select_ne_f64(f64, f64) -> i32 {
|
||||
block0(v0: f64, v1: f64):
|
||||
v2 = fcmp ne v0, v1
|
||||
@@ -29,18 +41,18 @@ block0(v0: f64, v1: f64):
|
||||
; run: %select_ne_f64(0x42.42, 0.0) == 1
|
||||
; run: %select_ne_f64(NaN, NaN) == 1
|
||||
|
||||
function %select_gt_f64(f64, f64) -> b1 {
|
||||
function %select_gt_f64(f64, f64) -> i8 {
|
||||
block0(v0: f64, v1: f64):
|
||||
v2 = fcmp gt v0, v1
|
||||
v3 = bconst.b1 true
|
||||
v4 = bconst.b1 false
|
||||
v3 = iconst.i8 1
|
||||
v4 = iconst.i8 0
|
||||
v5 = select v2, v3, v4
|
||||
return v5
|
||||
}
|
||||
; run: %select_gt_f64(0x42.42, 0.0) == true
|
||||
; run: %select_gt_f64(0.0, 0.0) == false
|
||||
; run: %select_gt_f64(0x0.0, 0x42.42) == false
|
||||
; run: %select_gt_f64(NaN, 0x42.42) == false
|
||||
; run: %select_gt_f64(0x42.42, 0.0) == 1
|
||||
; run: %select_gt_f64(0.0, 0.0) == 0
|
||||
; run: %select_gt_f64(0x0.0, 0x42.42) == 0
|
||||
; run: %select_gt_f64(NaN, 0x42.42) == 0
|
||||
|
||||
function %select_ge_f64(f64, f64) -> i64 {
|
||||
block0(v0: f64, v1: f64):
|
||||
@@ -81,3 +93,48 @@ block0(v0: f32, v1: f32):
|
||||
; run: %select_uno_f32(0x0.0, 0x42.42) == 0
|
||||
; run: %select_uno_f32(0x0.0, NaN) == 1
|
||||
; run: %select_uno_f32(-NaN, 0x42.42) == 1
|
||||
|
||||
function %select_overflow_i8(i8) -> i8 {
|
||||
block0(v0: i8):
|
||||
v1 = iconst.i8 255
|
||||
v2 = iadd v0, v1
|
||||
v3 = iconst.i8 1
|
||||
v4 = iconst.i8 0
|
||||
v5 = select v2, v3, v4
|
||||
return v5
|
||||
}
|
||||
|
||||
; run: %select_overflow_i8(0) == 1
|
||||
; run: %select_overflow_i8(2) == 1
|
||||
; run: %select_overflow_i8(1) == 0
|
||||
; run: %select_overflow_i8(98) == 1
|
||||
|
||||
function %select_overflow_i16(i16) -> i8 {
|
||||
block0(v0: i16):
|
||||
v1 = iconst.i16 65535
|
||||
v2 = iadd v0, v1
|
||||
v3 = iconst.i8 1
|
||||
v4 = iconst.i8 0
|
||||
v5 = select v2, v3, v4
|
||||
return v5
|
||||
}
|
||||
|
||||
; run: %select_overflow_i16(0) == 1
|
||||
; run: %select_overflow_i16(2) == 1
|
||||
; run: %select_overflow_i16(1) == 0
|
||||
; run: %select_overflow_i16(98) == 1
|
||||
|
||||
function %select_overflow_i32(i32) -> i8 {
|
||||
block0(v0: i32):
|
||||
v1 = iconst.i32 4294967295
|
||||
v2 = iadd v0, v1
|
||||
v3 = iconst.i8 1
|
||||
v4 = iconst.i8 0
|
||||
v5 = select v2, v3, v4
|
||||
return v5
|
||||
}
|
||||
|
||||
; run: %select_overflow_i32(0) == 1
|
||||
; run: %select_overflow_i32(2) == 1
|
||||
; run: %select_overflow_i32(1) == 0
|
||||
; run: %select_overflow_i32(98) == 1
|
||||
|
||||
@@ -88,7 +88,7 @@ block0(v0: i8x16, v1: i8x16):
|
||||
}
|
||||
; run: %usub_sat_i8x16([0x80 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0], [1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1]) == [0x7f 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]
|
||||
|
||||
function %add_sub_f32x4() -> b1 {
|
||||
function %add_sub_f32x4() -> i8 {
|
||||
block0:
|
||||
v0 = vconst.f32x4 [0x4.2 0.0 0.0 0.0]
|
||||
v1 = vconst.f32x4 [0x1.0 0x1.0 0x1.0 0x1.0]
|
||||
@@ -106,7 +106,7 @@ block0:
|
||||
}
|
||||
; run
|
||||
|
||||
function %mul_div_f32x4() -> b1 {
|
||||
function %mul_div_f32x4() -> i8 {
|
||||
block0:
|
||||
v0 = vconst.f32x4 [0x4.2 -0x2.1 0x2.0 0.0]
|
||||
v1 = vconst.f32x4 [0x3.4 0x6.7 0x8.9 0xa.b]
|
||||
|
||||
@@ -22,7 +22,7 @@ block0(v0: i8x16, v1: i8x16, v2: i8x16):
|
||||
; Remember that bitselect accepts: 1) the selector vector, 2) the "if true" vector, and 3) the "if false" vector.
|
||||
; run: %bitselect_i8x16([0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 255], [127 0 0 0 0 0 0 0 0 0 0 0 0 0 0 42], [42 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127]) == [42 0 0 0 0 0 0 0 0 0 0 0 0 0 0 42]
|
||||
|
||||
function %bitselect_i8x16_1() -> b1 {
|
||||
function %bitselect_i8x16_1() -> i8 {
|
||||
block0:
|
||||
v0 = vconst.i8x16 [0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 255] ; the selector vector
|
||||
v1 = vconst.i8x16 [127 0 0 0 0 0 0 0 0 0 0 0 0 0 0 42] ; for each 1-bit in v0 the bit of v1 is selected
|
||||
|
||||
@@ -1,30 +1,30 @@
|
||||
test interpret
|
||||
|
||||
|
||||
function %bmask_i8x16(b8x16) -> i8x16 {
|
||||
block0(v0: b8x16):
|
||||
function %bmask_i8x16(i8x16) -> i8x16 {
|
||||
block0(v0: i8x16):
|
||||
v1 = bmask.i8x16 v0
|
||||
return v1
|
||||
}
|
||||
; run: %bmask_i8x16([true false true false true false true false true false true false true false true false]) == [-1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0]
|
||||
; 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(b16x8) -> i16x8 {
|
||||
block0(v0: b16x8):
|
||||
function %bmask_i16x8(i16x8) -> i16x8 {
|
||||
block0(v0: i16x8):
|
||||
v1 = bmask.i16x8 v0
|
||||
return v1
|
||||
}
|
||||
; run: %bmask_i16x8([true false true false true false true false]) == [-1 0 -1 0 -1 0 -1 0]
|
||||
; run: %bmask_i16x8([-1 0 -1 0 -1 0 -1 0]) == [-1 0 -1 0 -1 0 -1 0]
|
||||
|
||||
function %bmask_i32x4(b32x4) -> i32x4 {
|
||||
block0(v0: b32x4):
|
||||
function %bmask_i32x4(i32x4) -> i32x4 {
|
||||
block0(v0: i32x4):
|
||||
v1 = bmask.i32x4 v0
|
||||
return v1
|
||||
}
|
||||
; run: %bmask_i32x4([true false true false]) == [-1 0 -1 0]
|
||||
; run: %bmask_i32x4([-1 0 -1 0]) == [-1 0 -1 0]
|
||||
|
||||
function %bmask_i64x2(b64x2) -> i64x2 {
|
||||
block0(v0: b64x2):
|
||||
function %bmask_i64x2(i64x2) -> i64x2 {
|
||||
block0(v0: i64x2):
|
||||
v1 = bmask.i64x2 v0
|
||||
return v1
|
||||
}
|
||||
; run: %bmask_i64x2([true false]) == [-1 0]
|
||||
; run: %bmask_i64x2([-1 0]) == [-1 0]
|
||||
|
||||
@@ -4,7 +4,7 @@ target s390x
|
||||
set enable_simd
|
||||
target x86_64 has_sse3 has_ssse3 has_sse41
|
||||
|
||||
function %icmp_eq_i8x16() -> b8 {
|
||||
function %icmp_eq_i8x16() -> i8 {
|
||||
block0:
|
||||
v0 = vconst.i8x16 0x00
|
||||
v1 = vconst.i8x16 0x00
|
||||
@@ -14,7 +14,7 @@ block0:
|
||||
}
|
||||
; run
|
||||
|
||||
function %icmp_eq_i64x2() -> b64 {
|
||||
function %icmp_eq_i64x2() -> i64 {
|
||||
block0:
|
||||
v0 = vconst.i64x2 0xffffffffffffffffffffffffffffffff
|
||||
v1 = vconst.i64x2 0xffffffffffffffffffffffffffffffff
|
||||
@@ -24,7 +24,7 @@ block0:
|
||||
}
|
||||
; run
|
||||
|
||||
function %icmp_ne_i32x4() -> b1 {
|
||||
function %icmp_ne_i32x4() -> i8 {
|
||||
block0:
|
||||
v0 = vconst.i32x4 [0 1 2 3]
|
||||
v1 = vconst.i32x4 [7 7 7 7]
|
||||
@@ -34,19 +34,19 @@ block0:
|
||||
}
|
||||
; run
|
||||
|
||||
function %icmp_ne_i16x8() -> b1 {
|
||||
function %icmp_ne_i16x8() -> i8 {
|
||||
block0:
|
||||
v0 = vconst.i16x8 [0 1 2 3 4 5 6 7]
|
||||
v1 = vconst.i16x8 [0 1 2 3 4 5 6 7]
|
||||
v2 = icmp ne v0, v1
|
||||
v3 = vall_true v2
|
||||
v4 = bint.i32 v3
|
||||
v4 = uextend.i32 v3
|
||||
v5 = icmp_imm eq v4, 0
|
||||
return v5
|
||||
}
|
||||
; run
|
||||
|
||||
function %icmp_sgt_i8x16() -> b1 {
|
||||
function %icmp_sgt_i8x16() -> i8 {
|
||||
block0:
|
||||
v0 = vconst.i8x16 [0 1 2 0 0 0 0 0 0 0 0 0 0 0 0 0]
|
||||
v1 = vconst.i8x16 [1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0xff]
|
||||
@@ -59,7 +59,7 @@ block0:
|
||||
}
|
||||
; run
|
||||
|
||||
function %icmp_sgt_i64x2() -> b1 {
|
||||
function %icmp_sgt_i64x2() -> i8 {
|
||||
block0:
|
||||
v0 = vconst.i64x2 [0 -42]
|
||||
v1 = vconst.i64x2 [-1 -43]
|
||||
@@ -69,7 +69,7 @@ block0:
|
||||
}
|
||||
; run
|
||||
|
||||
function %icmp_ugt_i8x16() -> b1 {
|
||||
function %icmp_ugt_i8x16() -> i8 {
|
||||
block0:
|
||||
v0 = vconst.i8x16 [1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16]
|
||||
v1 = vconst.i8x16 [0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1]
|
||||
@@ -79,7 +79,7 @@ block0:
|
||||
}
|
||||
; run
|
||||
|
||||
function %icmp_sge_i16x8() -> b1 {
|
||||
function %icmp_sge_i16x8() -> i8 {
|
||||
block0:
|
||||
v0 = vconst.i16x8 [-1 1 2 3 4 5 6 7]
|
||||
v1 = vconst.i16x8 [-1 1 1 1 1 1 1 1]
|
||||
@@ -89,7 +89,7 @@ block0:
|
||||
}
|
||||
; run
|
||||
|
||||
function %icmp_uge_i32x4() -> b1 {
|
||||
function %icmp_uge_i32x4() -> i8 {
|
||||
block0:
|
||||
v0 = vconst.i32x4 [1 2 3 4]
|
||||
v1 = vconst.i32x4 [1 1 1 1]
|
||||
@@ -99,7 +99,7 @@ block0:
|
||||
}
|
||||
; run
|
||||
|
||||
function %icmp_slt_i32x4() -> b1 {
|
||||
function %icmp_slt_i32x4() -> i8 {
|
||||
block0:
|
||||
v0 = vconst.i32x4 [-1 1 1 1]
|
||||
v1 = vconst.i32x4 [1 2 3 4]
|
||||
@@ -109,7 +109,7 @@ block0:
|
||||
}
|
||||
; run
|
||||
|
||||
function %icmp_ult_i32x4() -> b1 {
|
||||
function %icmp_ult_i32x4() -> i8 {
|
||||
block0:
|
||||
v0 = vconst.i32x4 [1 1 1 1]
|
||||
v1 = vconst.i32x4 [-1 2 3 4] ; -1 = 0xffff... will be greater than 1 when unsigned
|
||||
@@ -120,7 +120,7 @@ block0:
|
||||
; run
|
||||
|
||||
|
||||
function %icmp_ult_i16x8() -> b1 {
|
||||
function %icmp_ult_i16x8() -> i8 {
|
||||
block0:
|
||||
v0 = vconst.i16x8 [-1 -1 -1 -1 -1 -1 -1 -1]
|
||||
v1 = vconst.i16x8 [-1 -1 -1 -1 -1 -1 -1 -1]
|
||||
@@ -133,7 +133,7 @@ block0:
|
||||
}
|
||||
; run
|
||||
|
||||
function %icmp_sle_i16x8() -> b1 {
|
||||
function %icmp_sle_i16x8() -> i8 {
|
||||
block0:
|
||||
v0 = vconst.i16x8 [-1 -1 0 0 0 0 0 0]
|
||||
v1 = vconst.i16x8 [-1 0 0 0 0 0 0 0]
|
||||
@@ -143,7 +143,7 @@ block0:
|
||||
}
|
||||
; run
|
||||
|
||||
function %icmp_ule_i16x8() -> b1 {
|
||||
function %icmp_ule_i16x8() -> i8 {
|
||||
block0:
|
||||
v0 = vconst.i16x8 [-1 0 0 0 0 0 0 0]
|
||||
v1 = vconst.i16x8 [-1 -1 0 0 0 0 0 0]
|
||||
@@ -153,7 +153,7 @@ block0:
|
||||
}
|
||||
; run
|
||||
|
||||
function %fcmp_eq_f32x4() -> b1 {
|
||||
function %fcmp_eq_f32x4() -> i8 {
|
||||
block0:
|
||||
v0 = vconst.f32x4 [0.0 -0x4.2 0x0.33333 -0.0]
|
||||
v1 = vconst.f32x4 [0.0 -0x4.2 0x0.33333 -0.0]
|
||||
@@ -163,7 +163,7 @@ block0:
|
||||
}
|
||||
; run
|
||||
|
||||
function %fcmp_lt_f32x4() -> b1 {
|
||||
function %fcmp_lt_f32x4() -> i8 {
|
||||
block0:
|
||||
v0 = vconst.f32x4 [0.0 -0x4.2 0x0.0 -0.0]
|
||||
v1 = vconst.f32x4 [0x0.001 0x4.2 0x0.33333 0x1.0]
|
||||
@@ -173,7 +173,7 @@ block0:
|
||||
}
|
||||
; run
|
||||
|
||||
function %fcmp_ge_f64x2() -> b1 {
|
||||
function %fcmp_ge_f64x2() -> i8 {
|
||||
block0:
|
||||
v0 = vconst.f64x2 [0x0.0 0x4.2]
|
||||
v1 = vconst.f64x2 [0.0 0x4.1]
|
||||
@@ -183,7 +183,7 @@ block0:
|
||||
}
|
||||
; run
|
||||
|
||||
function %fcmp_uno_f64x2() -> b1 {
|
||||
function %fcmp_uno_f64x2() -> i8 {
|
||||
block0:
|
||||
v0 = vconst.f64x2 [0.0 NaN]
|
||||
v1 = vconst.f64x2 [NaN 0x4.1]
|
||||
@@ -193,7 +193,7 @@ block0:
|
||||
}
|
||||
; run
|
||||
|
||||
function %fcmp_gt_nans_f32x4() -> b1 {
|
||||
function %fcmp_gt_nans_f32x4() -> i8 {
|
||||
block0:
|
||||
v0 = vconst.f32x4 [NaN 0x42.0 -NaN NaN]
|
||||
v1 = vconst.f32x4 [NaN NaN 0x42.0 Inf]
|
||||
|
||||
@@ -32,16 +32,16 @@ block0(v0: f32x2, v1: f32x2, v2: f32x2):
|
||||
|
||||
;; The IEEE754 Standard does not make a lot of guarantees about what
|
||||
;; comes out of NaN producing operations, we just check if its a NaN
|
||||
function %fma_is_nan_f32x2(f32x2, f32x2, f32x2) -> b1 {
|
||||
function %fma_is_nan_f32x2(f32x2, f32x2, f32x2) -> i8 {
|
||||
block0(v0: f32x2, v1: f32x2, v2: f32x2):
|
||||
v3 = fma v0, v1, v2
|
||||
v4 = fcmp ne v3, v3
|
||||
v5 = vall_true v4
|
||||
return v5
|
||||
}
|
||||
; run: %fma_is_nan_f32x2([Inf -Inf], [-Inf Inf], [Inf Inf]) == true
|
||||
; run: %fma_is_nan_f32x2([-Inf +NaN], [-Inf 0x0.0], [-Inf 0x0.0]) == true
|
||||
; run: %fma_is_nan_f32x2([0x0.0 0x0.0], [+NaN 0x0.0], [0x0.0 +NaN]) == true
|
||||
; run: %fma_is_nan_f32x2([-NaN 0x0.0], [0x0.0 -NaN], [0x0.0 0x0.0]) == true
|
||||
; run: %fma_is_nan_f32x2([0x0.0 NaN], [0x0.0 NaN], [-NaN NaN]) == true
|
||||
; run: %fma_is_nan_f32x2([NaN NaN], [NaN NaN], [NaN NaN]) == true
|
||||
; run: %fma_is_nan_f32x2([Inf -Inf], [-Inf Inf], [Inf Inf]) == 1
|
||||
; run: %fma_is_nan_f32x2([-Inf +NaN], [-Inf 0x0.0], [-Inf 0x0.0]) == 1
|
||||
; run: %fma_is_nan_f32x2([0x0.0 0x0.0], [+NaN 0x0.0], [0x0.0 +NaN]) == 1
|
||||
; run: %fma_is_nan_f32x2([-NaN 0x0.0], [0x0.0 -NaN], [0x0.0 0x0.0]) == 1
|
||||
; run: %fma_is_nan_f32x2([0x0.0 NaN], [0x0.0 NaN], [-NaN NaN]) == 1
|
||||
; run: %fma_is_nan_f32x2([NaN NaN], [NaN NaN], [NaN NaN]) == 1
|
||||
|
||||
@@ -29,16 +29,16 @@ block0(v0: f32x4, v1: f32x4, v2: f32x4):
|
||||
|
||||
;; The IEEE754 Standard does not make a lot of guarantees about what
|
||||
;; comes out of NaN producing operations, we just check if its a NaN
|
||||
function %fma_is_nan_f32x4(f32x4, f32x4, f32x4) -> b1 {
|
||||
function %fma_is_nan_f32x4(f32x4, f32x4, f32x4) -> i8 {
|
||||
block0(v0: f32x4, v1: f32x4, v2: f32x4):
|
||||
v3 = fma v0, v1, v2
|
||||
v4 = fcmp ne v3, v3
|
||||
v5 = vall_true v4
|
||||
return v5
|
||||
}
|
||||
; run: %fma_is_nan_f32x4([Inf -Inf -Inf +NaN], [-Inf Inf -Inf 0x0.0], [Inf Inf -Inf 0x0.0]) == true
|
||||
; run: %fma_is_nan_f32x4([0x0.0 0x0.0 -NaN 0x0.0], [+NaN 0x0.0 0x0.0 -NaN], [0x0.0 +NaN 0x0.0 0x0.0]) == true
|
||||
; run: %fma_is_nan_f32x4([0x0.0 NaN NaN NaN], [0x0.0 NaN NaN NaN], [-NaN NaN NaN NaN]) == true
|
||||
; run: %fma_is_nan_f32x4([Inf -Inf -Inf +NaN], [-Inf Inf -Inf 0x0.0], [Inf Inf -Inf 0x0.0]) == 1
|
||||
; run: %fma_is_nan_f32x4([0x0.0 0x0.0 -NaN 0x0.0], [+NaN 0x0.0 0x0.0 -NaN], [0x0.0 +NaN 0x0.0 0x0.0]) == 1
|
||||
; run: %fma_is_nan_f32x4([0x0.0 NaN NaN NaN], [0x0.0 NaN NaN NaN], [-NaN NaN NaN NaN]) == 1
|
||||
|
||||
|
||||
|
||||
@@ -73,15 +73,15 @@ block0(v0: f64x2, v1: f64x2, v2: f64x2):
|
||||
|
||||
;; The IEEE754 Standard does not make a lot of guarantees about what
|
||||
;; comes out of NaN producing operations, we just check if its a NaN
|
||||
function %fma_is_nan_f64x2(f64x2, f64x2, f64x2) -> b1 {
|
||||
function %fma_is_nan_f64x2(f64x2, f64x2, f64x2) -> i8 {
|
||||
block0(v0: f64x2, v1: f64x2, v2: f64x2):
|
||||
v3 = fma v0, v1, v2
|
||||
v4 = fcmp ne v3, v3
|
||||
v5 = vall_true v4
|
||||
return v5
|
||||
}
|
||||
; run: %fma_is_nan_f64x2([Inf -Inf], [-Inf Inf], [Inf Inf]) == true
|
||||
; run: %fma_is_nan_f64x2([-Inf +NaN], [-Inf 0x0.0], [-Inf 0x0.0]) == true
|
||||
; run: %fma_is_nan_f64x2([0x0.0 0x0.0], [+NaN 0x0.0], [0x0.0 +NaN]) == true
|
||||
; run: %fma_is_nan_f64x2([-NaN 0x0.0], [0x0.0 -NaN], [0x0.0 0x0.0]) == true
|
||||
; run: %fma_is_nan_f64x2([0x0.0 NaN], [0x0.0 NaN], [-NaN NaN]) == true
|
||||
; run: %fma_is_nan_f64x2([Inf -Inf], [-Inf Inf], [Inf Inf]) == 1
|
||||
; run: %fma_is_nan_f64x2([-Inf +NaN], [-Inf 0x0.0], [-Inf 0x0.0]) == 1
|
||||
; run: %fma_is_nan_f64x2([0x0.0 0x0.0], [+NaN 0x0.0], [0x0.0 +NaN]) == 1
|
||||
; run: %fma_is_nan_f64x2([-NaN 0x0.0], [0x0.0 -NaN], [0x0.0 0x0.0]) == 1
|
||||
; run: %fma_is_nan_f64x2([0x0.0 NaN], [0x0.0 NaN], [-NaN NaN]) == 1
|
||||
|
||||
@@ -1,30 +1,30 @@
|
||||
test interpret
|
||||
|
||||
function %simd_icmp_eq_i8(i8x16, i8x16) -> b8x16 {
|
||||
function %simd_icmp_eq_i8(i8x16, i8x16) -> i8x16 {
|
||||
block0(v0: i8x16, v1: i8x16):
|
||||
v2 = icmp eq v0, v1
|
||||
return v2
|
||||
}
|
||||
; run: %simd_icmp_eq_i8([1 0 -1 1 1 1 1 1 1 1 1 1 1 1 1 1], [1 0 -1 0 0 0 0 0 0 0 0 0 0 0 0 0]) == [true true true false false false false false false false false false false false false false]
|
||||
; run: %simd_icmp_eq_i8([1 0 -1 1 1 1 1 1 1 1 1 1 1 1 1 1], [1 0 -1 0 0 0 0 0 0 0 0 0 0 0 0 0]) == [-1 -1 -1 0 0 0 0 0 0 0 0 0 0 0 0 0]
|
||||
|
||||
function %simd_icmp_eq_i16(i16x8, i16x8) -> b16x8 {
|
||||
function %simd_icmp_eq_i16(i16x8, i16x8) -> i16x8 {
|
||||
block0(v0: i16x8, v1: i16x8):
|
||||
v2 = icmp eq v0, v1
|
||||
return v2
|
||||
}
|
||||
; run: %simd_icmp_eq_i16([1 0 -1 1 1 1 1 1], [1 0 -1 0 0 0 0 0]) == [true true true false false false false false]
|
||||
; run: %simd_icmp_eq_i16([1 0 -1 1 1 1 1 1], [1 0 -1 0 0 0 0 0]) == [-1 -1 -1 0 0 0 0 0]
|
||||
|
||||
function %simd_icmp_eq_i32(i32x4, i32x4) -> b32x4 {
|
||||
function %simd_icmp_eq_i32(i32x4, i32x4) -> i32x4 {
|
||||
block0(v0: i32x4, v1: i32x4):
|
||||
v2 = icmp eq v0, v1
|
||||
return v2
|
||||
}
|
||||
; run: %simd_icmp_eq_i32([1 0 -1 1], [1 0 -1 0]) == [true true true false]
|
||||
; run: %simd_icmp_eq_i32([1 0 -1 1], [1 0 -1 0]) == [-1 -1 -1 0]
|
||||
|
||||
function %simd_icmp_eq_i64(i64x2, i64x2) -> b64x2 {
|
||||
function %simd_icmp_eq_i64(i64x2, i64x2) -> i64x2 {
|
||||
block0(v0: i64x2, v1: i64x2):
|
||||
v2 = icmp eq v0, v1
|
||||
return v2
|
||||
}
|
||||
; run: %simd_icmp_eq_i64([10 0], [1 0]) == [false true]
|
||||
; run: %simd_icmp_eq_i64([-1 1], [-1 0]) == [true false]
|
||||
; run: %simd_icmp_eq_i64([10 0], [1 0]) == [0 -1]
|
||||
; run: %simd_icmp_eq_i64([-1 1], [-1 0]) == [-1 0]
|
||||
|
||||
@@ -1,30 +1,30 @@
|
||||
test interpret
|
||||
|
||||
function %simd_icmp_ne_i8(i8x16, i8x16) -> b8x16 {
|
||||
function %simd_icmp_ne_i8(i8x16, i8x16) -> i8x16 {
|
||||
block0(v0: i8x16, v1: i8x16):
|
||||
v2 = icmp ne v0, v1
|
||||
return v2
|
||||
}
|
||||
; run: %simd_icmp_ne_i8([1 0 -1 1 1 1 1 1 1 1 1 1 1 1 1 1], [1 0 -1 0 0 0 0 0 0 0 0 0 0 0 0 0]) == [false false false true true true true true true true true true true true true true]
|
||||
; run: %simd_icmp_ne_i8([1 0 -1 1 1 1 1 1 1 1 1 1 1 1 1 1], [1 0 -1 0 0 0 0 0 0 0 0 0 0 0 0 0]) == [0 0 0 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1]
|
||||
|
||||
function %simd_icmp_ne_i16(i16x8, i16x8) -> b16x8 {
|
||||
function %simd_icmp_ne_i16(i16x8, i16x8) -> i16x8 {
|
||||
block0(v0: i16x8, v1: i16x8):
|
||||
v2 = icmp ne v0, v1
|
||||
return v2
|
||||
}
|
||||
; run: %simd_icmp_ne_i16([1 0 -1 1 1 1 1 1], [1 0 -1 0 0 0 0 0]) == [false false false true true true true true]
|
||||
; run: %simd_icmp_ne_i16([1 0 -1 1 1 1 1 1], [1 0 -1 0 0 0 0 0]) == [0 0 0 -1 -1 -1 -1 -1]
|
||||
|
||||
function %simd_icmp_ne_i32(i32x4, i32x4) -> b32x4 {
|
||||
function %simd_icmp_ne_i32(i32x4, i32x4) -> i32x4 {
|
||||
block0(v0: i32x4, v1: i32x4):
|
||||
v2 = icmp ne v0, v1
|
||||
return v2
|
||||
}
|
||||
; run: %simd_icmp_ne_i32([1 0 -1 1], [1 0 -1 0]) == [false false false true]
|
||||
; run: %simd_icmp_ne_i32([1 0 -1 1], [1 0 -1 0]) == [0 0 0 -1]
|
||||
|
||||
function %simd_icmp_ne_i64(i64x2, i64x2) -> b64x2 {
|
||||
function %simd_icmp_ne_i64(i64x2, i64x2) -> i64x2 {
|
||||
block0(v0: i64x2, v1: i64x2):
|
||||
v2 = icmp ne v0, v1
|
||||
return v2
|
||||
}
|
||||
; run: %simd_icmp_ne_i64([10 0], [1 0]) == [true false]
|
||||
; run: %simd_icmp_ne_i64([-1 1], [-1 0]) == [false true]
|
||||
; run: %simd_icmp_ne_i64([10 0], [1 0]) == [-1 0]
|
||||
; run: %simd_icmp_ne_i64([-1 1], [-1 0]) == [0 -1]
|
||||
|
||||
@@ -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]
|
||||
|
||||
@@ -1,35 +1,35 @@
|
||||
test interpret
|
||||
|
||||
function %simd_icmp_sgt_i8(i8x16, i8x16) -> b8x16 {
|
||||
function %simd_icmp_sgt_i8(i8x16, i8x16) -> i8x16 {
|
||||
block0(v0: i8x16, v1: i8x16):
|
||||
v2 = icmp sgt v0, v1
|
||||
return v2
|
||||
}
|
||||
; run: %simd_icmp_sgt_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]) == [false true false false false true false false false false false false false false false false]
|
||||
; run: %simd_icmp_sgt_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]) == [0 -1 0 0 0 -1 0 0 0 0 0 0 0 0 0 0]
|
||||
|
||||
function %simd_icmp_sgt_i16(i16x8, i16x8) -> b16x8 {
|
||||
function %simd_icmp_sgt_i16(i16x8, i16x8) -> i16x8 {
|
||||
block0(v0: i16x8, v1: i16x8):
|
||||
v2 = icmp sgt v0, v1
|
||||
return v2
|
||||
}
|
||||
; run: %simd_icmp_sgt_i16([0 1 -1 0 -5 1 0 0], [0 0 -1 1 -1 -1 0 0]) == [false true false false false true false false]
|
||||
; run: %simd_icmp_sgt_i16([0 1 -1 0 -5 1 0 0], [0 0 -1 1 -1 -1 0 0]) == [0 -1 0 0 0 -1 0 0]
|
||||
|
||||
|
||||
function %simd_icmp_sgt_i32(i32x4, i32x4) -> b32x4 {
|
||||
function %simd_icmp_sgt_i32(i32x4, i32x4) -> i32x4 {
|
||||
block0(v0: i32x4, v1: i32x4):
|
||||
v2 = icmp sgt v0, v1
|
||||
return v2
|
||||
}
|
||||
; run: %simd_icmp_sgt_i32([0 1 -1 0], [0 0 -1 1]) == [false true false false]
|
||||
; run: %simd_icmp_sgt_i32([-5 1 0 0], [-1 -1 0 0]) == [false true false false]
|
||||
; run: %simd_icmp_sgt_i32([0 1 -1 0], [0 0 -1 1]) == [0 -1 0 0]
|
||||
; run: %simd_icmp_sgt_i32([-5 1 0 0], [-1 -1 0 0]) == [0 -1 0 0]
|
||||
|
||||
|
||||
function %simd_icmp_sgt_i64(i64x2, i64x2) -> b64x2 {
|
||||
function %simd_icmp_sgt_i64(i64x2, i64x2) -> i64x2 {
|
||||
block0(v0: i64x2, v1: i64x2):
|
||||
v2 = icmp sgt v0, v1
|
||||
return v2
|
||||
}
|
||||
; run: %simd_icmp_sgt_i64([0 1], [0 0 ]) == [false true]
|
||||
; run: %simd_icmp_sgt_i64([-1 0], [-1 1]) == [false false]
|
||||
; run: %simd_icmp_sgt_i64([-5 1], [-1 -1]) == [false true]
|
||||
; run: %simd_icmp_sgt_i64([0 0], [0 0]) == [false false]
|
||||
; run: %simd_icmp_sgt_i64([0 1], [0 0 ]) == [0 -1]
|
||||
; run: %simd_icmp_sgt_i64([-1 0], [-1 1]) == [0 0]
|
||||
; run: %simd_icmp_sgt_i64([-5 1], [-1 -1]) == [0 -1]
|
||||
; run: %simd_icmp_sgt_i64([0 0], [0 0]) == [0 0]
|
||||
|
||||
@@ -1,35 +1,35 @@
|
||||
test interpret
|
||||
|
||||
function %simd_icmp_sle_i8(i8x16, i8x16) -> b8x16 {
|
||||
function %simd_icmp_sle_i8(i8x16, i8x16) -> i8x16 {
|
||||
block0(v0: i8x16, v1: i8x16):
|
||||
v2 = icmp sle v0, v1
|
||||
return v2
|
||||
}
|
||||
; run: %simd_icmp_sle_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 false true true true false true true true true true true true true true true]
|
||||
; run: %simd_icmp_sle_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 0 -1 -1 -1 0 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1]
|
||||
|
||||
function %simd_icmp_sle_i16(i16x8, i16x8) -> b16x8 {
|
||||
function %simd_icmp_sle_i16(i16x8, i16x8) -> i16x8 {
|
||||
block0(v0: i16x8, v1: i16x8):
|
||||
v2 = icmp sle v0, v1
|
||||
return v2
|
||||
}
|
||||
; run: %simd_icmp_sle_i16([0 1 -1 0 -5 1 0 0], [0 0 -1 1 -1 -1 0 0]) == [true false true true true false true true]
|
||||
; run: %simd_icmp_sle_i16([0 1 -1 0 -5 1 0 0], [0 0 -1 1 -1 -1 0 0]) == [-1 0 -1 -1 -1 0 -1 -1]
|
||||
|
||||
|
||||
function %simd_icmp_sle_i32(i32x4, i32x4) -> b32x4 {
|
||||
function %simd_icmp_sle_i32(i32x4, i32x4) -> i32x4 {
|
||||
block0(v0: i32x4, v1: i32x4):
|
||||
v2 = icmp sle v0, v1
|
||||
return v2
|
||||
}
|
||||
; run: %simd_icmp_sle_i32([0 1 -1 0], [0 0 -1 1]) == [true false true true]
|
||||
; run: %simd_icmp_sle_i32([-5 1 0 0], [-1 -1 0 0]) == [true false true true]
|
||||
; run: %simd_icmp_sle_i32([0 1 -1 0], [0 0 -1 1]) == [-1 0 -1 -1]
|
||||
; run: %simd_icmp_sle_i32([-5 1 0 0], [-1 -1 0 0]) == [-1 0 -1 -1]
|
||||
|
||||
|
||||
function %simd_icmp_sle_i64(i64x2, i64x2) -> b64x2 {
|
||||
function %simd_icmp_sle_i64(i64x2, i64x2) -> i64x2 {
|
||||
block0(v0: i64x2, v1: i64x2):
|
||||
v2 = icmp sle v0, v1
|
||||
return v2
|
||||
}
|
||||
; run: %simd_icmp_sle_i64([0 1], [0 0 ]) == [true false]
|
||||
; run: %simd_icmp_sle_i64([-1 0], [-1 1]) == [true true]
|
||||
; run: %simd_icmp_sle_i64([-5 1], [-1 -1]) == [true false]
|
||||
; run: %simd_icmp_sle_i64([0 0], [0 0]) == [true true]
|
||||
; run: %simd_icmp_sle_i64([0 1], [0 0 ]) == [-1 0]
|
||||
; run: %simd_icmp_sle_i64([-1 0], [-1 1]) == [-1 -1]
|
||||
; run: %simd_icmp_sle_i64([-5 1], [-1 -1]) == [-1 0]
|
||||
; run: %simd_icmp_sle_i64([0 0], [0 0]) == [-1 -1]
|
||||
|
||||
@@ -1,33 +1,33 @@
|
||||
test interpret
|
||||
|
||||
function %simd_icmp_slt_i8(i8x16, i8x16) -> b8x16 {
|
||||
function %simd_icmp_slt_i8(i8x16, i8x16) -> i8x16 {
|
||||
block0(v0: i8x16, v1: i8x16):
|
||||
v2 = icmp slt v0, v1
|
||||
return v2
|
||||
}
|
||||
; run: %simd_icmp_slt_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]) == [false false false true true false false false false false false false false false false false]
|
||||
; run: %simd_icmp_slt_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]) == [0 0 0 -1 -1 0 0 0 0 0 0 0 0 0 0 0]
|
||||
|
||||
function %simd_icmp_slt_i16(i16x8, i16x8) -> b16x8 {
|
||||
function %simd_icmp_slt_i16(i16x8, i16x8) -> i16x8 {
|
||||
block0(v0: i16x8, v1: i16x8):
|
||||
v2 = icmp slt v0, v1
|
||||
return v2
|
||||
}
|
||||
; run: %simd_icmp_slt_i16([0 1 -1 0 -5 1 0 0], [0 0 -1 1 -1 1 0 0]) == [false false false true true false false false]
|
||||
; run: %simd_icmp_slt_i16([0 1 -1 0 -5 1 0 0], [0 0 -1 1 -1 1 0 0]) == [0 0 0 -1 -1 0 0 0]
|
||||
|
||||
function %simd_icmp_slt_i32(i32x4, i32x4) -> b32x4 {
|
||||
function %simd_icmp_slt_i32(i32x4, i32x4) -> i32x4 {
|
||||
block0(v0: i32x4, v1: i32x4):
|
||||
v2 = icmp slt v0, v1
|
||||
return v2
|
||||
}
|
||||
; run: %simd_icmp_slt_i32([0 1 -1 0], [0 0 -1 1]) == [false false false true]
|
||||
; run: %simd_icmp_slt_i32([-5 1 0 0], [-1 1 0 0]) == [true false false false]
|
||||
; run: %simd_icmp_slt_i32([0 1 -1 0], [0 0 -1 1]) == [0 0 0 -1]
|
||||
; run: %simd_icmp_slt_i32([-5 1 0 0], [-1 1 0 0]) == [-1 0 0 0]
|
||||
|
||||
function %simd_icmp_slt_i64(i64x2, i64x2) -> b64x2 {
|
||||
function %simd_icmp_slt_i64(i64x2, i64x2) -> i64x2 {
|
||||
block0(v0: i64x2, v1: i64x2):
|
||||
v2 = icmp slt v0, v1
|
||||
return v2
|
||||
}
|
||||
; run: %simd_icmp_slt_i64([0 1], [0 0]) == [false false]
|
||||
; run: %simd_icmp_slt_i64([-1 0], [-1 1]) == [false true]
|
||||
; run: %simd_icmp_slt_i64([-5 1], [-1 1]) == [true false]
|
||||
; run: %simd_icmp_slt_i64([0 0], [0 0]) == [false false]
|
||||
; run: %simd_icmp_slt_i64([0 1], [0 0]) == [0 0]
|
||||
; run: %simd_icmp_slt_i64([-1 0], [-1 1]) == [0 -1]
|
||||
; run: %simd_icmp_slt_i64([-5 1], [-1 1]) == [-1 0]
|
||||
; run: %simd_icmp_slt_i64([0 0], [0 0]) == [0 0]
|
||||
|
||||
@@ -1,33 +1,33 @@
|
||||
test interpret
|
||||
|
||||
function %simd_icmp_uge_i8(i8x16, i8x16) -> b8x16 {
|
||||
function %simd_icmp_uge_i8(i8x16, i8x16) -> i8x16 {
|
||||
block0(v0: i8x16, v1: i8x16):
|
||||
v2 = icmp uge v0, v1
|
||||
return v2
|
||||
}
|
||||
; run: %simd_icmp_uge_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 false true true true true true true true true true true]
|
||||
; run: %simd_icmp_uge_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 0 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1]
|
||||
|
||||
function %simd_icmp_uge_i16(i16x8, i16x8) -> b16x8 {
|
||||
function %simd_icmp_uge_i16(i16x8, i16x8) -> i16x8 {
|
||||
block0(v0: i16x8, v1: i16x8):
|
||||
v2 = icmp uge v0, v1
|
||||
return v2
|
||||
}
|
||||
; run: %simd_icmp_uge_i16([0 1 -1 0 -5 1 0 0], [0 0 -1 1 -1 -1 0 0]) == [true true true false false false true true]
|
||||
; run: %simd_icmp_uge_i16([0 1 -1 0 -5 1 0 0], [0 0 -1 1 -1 -1 0 0]) == [-1 -1 -1 0 0 0 -1 -1]
|
||||
|
||||
function %simd_icmp_uge_i32(i32x4, i32x4) -> b32x4 {
|
||||
function %simd_icmp_uge_i32(i32x4, i32x4) -> i32x4 {
|
||||
block0(v0: i32x4, v1: i32x4):
|
||||
v2 = icmp uge v0, v1
|
||||
return v2
|
||||
}
|
||||
; run: %simd_icmp_uge_i32([0 1 -1 0], [0 0 -1 1]) == [true true true false]
|
||||
; run: %simd_icmp_uge_i32([-5 1 0 0], [-1 -1 0 0]) == [false false true true]
|
||||
; run: %simd_icmp_uge_i32([0 1 -1 0], [0 0 -1 1]) == [-1 -1 -1 0]
|
||||
; run: %simd_icmp_uge_i32([-5 1 0 0], [-1 -1 0 0]) == [0 0 -1 -1]
|
||||
|
||||
function %simd_icmp_uge_i64(i64x2, i64x2) -> b64x2 {
|
||||
function %simd_icmp_uge_i64(i64x2, i64x2) -> i64x2 {
|
||||
block0(v0: i64x2, v1: i64x2):
|
||||
v2 = icmp uge v0, v1
|
||||
return v2
|
||||
}
|
||||
; run: %simd_icmp_uge_i64([0 1], [0 0]) == [true true]
|
||||
; run: %simd_icmp_uge_i64([-1 0], [-1 1]) == [true false]
|
||||
; run: %simd_icmp_uge_i64([-5 1], [-1 -1]) == [false false]
|
||||
; run: %simd_icmp_uge_i64([0 0], [0 0]) == [true true]
|
||||
; run: %simd_icmp_uge_i64([0 1], [0 0]) == [-1 -1]
|
||||
; run: %simd_icmp_uge_i64([-1 0], [-1 1]) == [-1 0]
|
||||
; run: %simd_icmp_uge_i64([-5 1], [-1 -1]) == [0 0]
|
||||
; run: %simd_icmp_uge_i64([0 0], [0 0]) == [-1 -1]
|
||||
|
||||
@@ -1,33 +1,33 @@
|
||||
test interpret
|
||||
|
||||
function %simd_icmp_ugt_i8(i8x16, i8x16) -> b8x16 {
|
||||
function %simd_icmp_ugt_i8(i8x16, i8x16) -> i8x16 {
|
||||
block0(v0: i8x16, v1: i8x16):
|
||||
v2 = icmp ugt v0, v1
|
||||
return v2
|
||||
}
|
||||
; run: %simd_icmp_ugt_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]) == [false true false false false false false false false false false false false false false false]
|
||||
; run: %simd_icmp_ugt_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]) == [0 -1 0 0 0 0 0 0 0 0 0 0 0 0 0 0]
|
||||
|
||||
function %simd_icmp_ugt_i16(i16x8, i16x8) -> b16x8 {
|
||||
function %simd_icmp_ugt_i16(i16x8, i16x8) -> i16x8 {
|
||||
block0(v0: i16x8, v1: i16x8):
|
||||
v2 = icmp ugt v0, v1
|
||||
return v2
|
||||
}
|
||||
; run: %simd_icmp_ugt_i16([0 1 -1 0 -5 1 0 0], [0 0 -1 1 -1 -1 0 0]) == [false true false false false false false false]
|
||||
; run: %simd_icmp_ugt_i16([0 1 -1 0 -5 1 0 0], [0 0 -1 1 -1 -1 0 0]) == [0 -1 0 0 0 0 0 0]
|
||||
|
||||
function %simd_icmp_ugt_i32(i32x4, i32x4) -> b32x4 {
|
||||
function %simd_icmp_ugt_i32(i32x4, i32x4) -> i32x4 {
|
||||
block0(v0: i32x4, v1: i32x4):
|
||||
v2 = icmp ugt v0, v1
|
||||
return v2
|
||||
}
|
||||
; run: %simd_icmp_ugt_i32([0 1 -1 0], [0 0 -1 1]) == [false true false false]
|
||||
; run: %simd_icmp_ugt_i32([-5 1 0 0], [-1 -1 0 0]) == [false false false false]
|
||||
; run: %simd_icmp_ugt_i32([0 1 -1 0], [0 0 -1 1]) == [0 -1 0 0]
|
||||
; run: %simd_icmp_ugt_i32([-5 1 0 0], [-1 -1 0 0]) == [0 0 0 0]
|
||||
|
||||
function %simd_icmp_ugt_i64(i64x2, i64x2) -> b64x2 {
|
||||
function %simd_icmp_ugt_i64(i64x2, i64x2) -> i64x2 {
|
||||
block0(v0: i64x2, v1: i64x2):
|
||||
v2 = icmp ugt v0, v1
|
||||
return v2
|
||||
}
|
||||
; run: %simd_icmp_ugt_i64([0 1], [0 0]) == [false true]
|
||||
; run: %simd_icmp_ugt_i64([-1 0], [-1 1]) == [false false]
|
||||
; run: %simd_icmp_ugt_i64([-5 1], [-1 -1]) == [false false]
|
||||
; run: %simd_icmp_ugt_i64([0 0], [0 0]) == [false false]
|
||||
; run: %simd_icmp_ugt_i64([0 1], [0 0]) == [0 -1]
|
||||
; run: %simd_icmp_ugt_i64([-1 0], [-1 1]) == [0 0]
|
||||
; run: %simd_icmp_ugt_i64([-5 1], [-1 -1]) == [0 0]
|
||||
; run: %simd_icmp_ugt_i64([0 0], [0 0]) == [0 0]
|
||||
|
||||
@@ -1,33 +1,33 @@
|
||||
test interpret
|
||||
|
||||
function %simd_icmp_ule_i8(i8x16, i8x16) -> b8x16 {
|
||||
function %simd_icmp_ule_i8(i8x16, i8x16) -> i8x16 {
|
||||
block0(v0: i8x16, v1: i8x16):
|
||||
v2 = icmp ule v0, v1
|
||||
return v2
|
||||
}
|
||||
; run: %simd_icmp_ule_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 false true true true true true true true true true true true true true true]
|
||||
; run: %simd_icmp_ule_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 0 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1]
|
||||
|
||||
function %simd_icmp_ule_i16(i16x8, i16x8) -> b16x8 {
|
||||
function %simd_icmp_ule_i16(i16x8, i16x8) -> i16x8 {
|
||||
block0(v0: i16x8, v1: i16x8):
|
||||
v2 = icmp ule v0, v1
|
||||
return v2
|
||||
}
|
||||
; run: %simd_icmp_ule_i16([0 1 -1 0 -5 1 0 0], [0 0 -1 1 -1 -1 0 0]) == [true false true true true true true true]
|
||||
; run: %simd_icmp_ule_i16([0 1 -1 0 -5 1 0 0], [0 0 -1 1 -1 -1 0 0]) == [-1 0 -1 -1 -1 -1 -1 -1]
|
||||
|
||||
function %simd_icmp_ule_i32(i32x4, i32x4) -> b32x4 {
|
||||
function %simd_icmp_ule_i32(i32x4, i32x4) -> i32x4 {
|
||||
block0(v0: i32x4, v1: i32x4):
|
||||
v2 = icmp ule v0, v1
|
||||
return v2
|
||||
}
|
||||
; run: %simd_icmp_ule_i32([0 1 -1 0], [0 0 -1 1]) == [true false true true]
|
||||
; run: %simd_icmp_ule_i32([-5 1 0 0], [-1 -1 0 0]) == [true true true true]
|
||||
; run: %simd_icmp_ule_i32([0 1 -1 0], [0 0 -1 1]) == [-1 0 -1 -1]
|
||||
; run: %simd_icmp_ule_i32([-5 1 0 0], [-1 -1 0 0]) == [-1 -1 -1 -1]
|
||||
|
||||
function %simd_icmp_ule_i64(i64x2, i64x2) -> b64x2 {
|
||||
function %simd_icmp_ule_i64(i64x2, i64x2) -> i64x2 {
|
||||
block0(v0: i64x2, v1: i64x2):
|
||||
v2 = icmp ule v0, v1
|
||||
return v2
|
||||
}
|
||||
; run: %simd_icmp_ule_i64([0 1], [0 0]) == [true false]
|
||||
; run: %simd_icmp_ule_i64([-1 0], [-1 1]) == [true true]
|
||||
; run: %simd_icmp_ule_i64([-5 1], [-1 -1]) == [true true]
|
||||
; run: %simd_icmp_ule_i64([0 0], [0 0]) == [true true]
|
||||
; run: %simd_icmp_ule_i64([0 1], [0 0]) == [-1 0]
|
||||
; run: %simd_icmp_ule_i64([-1 0], [-1 1]) == [-1 -1]
|
||||
; run: %simd_icmp_ule_i64([-5 1], [-1 -1]) == [-1 -1]
|
||||
; run: %simd_icmp_ule_i64([0 0], [0 0]) == [-1 -1]
|
||||
|
||||
@@ -1,33 +1,33 @@
|
||||
test interpret
|
||||
|
||||
function %simd_icmp_ult_i8(i8x16, i8x16) -> b8x16 {
|
||||
function %simd_icmp_ult_i8(i8x16, i8x16) -> i8x16 {
|
||||
block0(v0: i8x16, v1: i8x16):
|
||||
v2 = icmp ult v0, v1
|
||||
return v2
|
||||
}
|
||||
; run: %simd_icmp_ult_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]) == [false false false true true true false false false false false false false false false false]
|
||||
; run: %simd_icmp_ult_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]) == [0 0 0 -1 -1 -1 0 0 0 0 0 0 0 0 0 0]
|
||||
|
||||
function %simd_icmp_ult_i16(i16x8, i16x8) -> b16x8 {
|
||||
function %simd_icmp_ult_i16(i16x8, i16x8) -> i16x8 {
|
||||
block0(v0: i16x8, v1: i16x8):
|
||||
v2 = icmp ult v0, v1
|
||||
return v2
|
||||
}
|
||||
; run: %simd_icmp_ult_i16([0 1 -1 0 -5 1 0 0], [0 0 -1 1 -1 -1 0 0]) == [false false false true true true false false]
|
||||
; run: %simd_icmp_ult_i16([0 1 -1 0 -5 1 0 0], [0 0 -1 1 -1 -1 0 0]) == [0 0 0 -1 -1 -1 0 0]
|
||||
|
||||
function %simd_icmp_ult_i32(i32x4, i32x4) -> b32x4 {
|
||||
function %simd_icmp_ult_i32(i32x4, i32x4) -> i32x4 {
|
||||
block0(v0: i32x4, v1: i32x4):
|
||||
v2 = icmp ult v0, v1
|
||||
return v2
|
||||
}
|
||||
; run: %simd_icmp_ult_i32([0 1 -1 0], [0 0 -1 1]) == [false false false true]
|
||||
; run: %simd_icmp_ult_i32([-5 1 0 0], [-1 -1 0 0]) == [true true false false]
|
||||
; run: %simd_icmp_ult_i32([0 1 -1 0], [0 0 -1 1]) == [0 0 0 -1]
|
||||
; run: %simd_icmp_ult_i32([-5 1 0 0], [-1 -1 0 0]) == [-1 -1 0 0]
|
||||
|
||||
function %simd_icmp_ult_i64(i64x2, i64x2) -> b64x2 {
|
||||
function %simd_icmp_ult_i64(i64x2, i64x2) -> i64x2 {
|
||||
block0(v0: i64x2, v1: i64x2):
|
||||
v2 = icmp ult v0, v1
|
||||
return v2
|
||||
}
|
||||
; run: %simd_icmp_ult_i64([0 1], [0 0]) == [false false]
|
||||
; run: %simd_icmp_ult_i64([-1 0], [-1 1]) == [false true]
|
||||
; run: %simd_icmp_ult_i64([-5 1], [-1 -1]) == [true true]
|
||||
; run: %simd_icmp_ult_i64([0 0], [0 0]) == [false false]
|
||||
; run: %simd_icmp_ult_i64([0 1], [0 0]) == [0 0]
|
||||
; run: %simd_icmp_ult_i64([-1 0], [-1 1]) == [0 -1]
|
||||
; run: %simd_icmp_ult_i64([-5 1], [-1 -1]) == [-1 -1]
|
||||
; run: %simd_icmp_ult_i64([0 0], [0 0]) == [0 0]
|
||||
|
||||
@@ -34,16 +34,16 @@ block0:
|
||||
}
|
||||
; run: %shuffle_in_same_place() == [0 1 2 3]
|
||||
|
||||
function %shuffle_b32x4_to_all_true() -> i32x4 {
|
||||
function %shuffle_i32x4_to_all_true() -> i32x4 {
|
||||
block0:
|
||||
v1 = vconst.b32x4 [true false true false]
|
||||
v2 = raw_bitcast.b8x16 v1 ; we have to cast because shuffle is type-limited to Tx16
|
||||
v1 = vconst.i32x4 [-1 0 -1 0]
|
||||
v2 = raw_bitcast.i8x16 v1 ; we have to cast because shuffle is type-limited to Tx16
|
||||
; pair up the true values to make the entire vector true
|
||||
v3 = shuffle v2, v2, [0 1 2 3 0 1 2 3 8 9 10 11 8 9 10 11]
|
||||
v4 = raw_bitcast.i32x4 v3 ; TODO store.b32x4 is unavailable; see https://github.com/bytecodealliance/wasmtime/issues/2237
|
||||
v4 = raw_bitcast.i32x4 v3 ; TODO store.i32x4 is unavailable; see https://github.com/bytecodealliance/wasmtime/issues/2237
|
||||
return v4
|
||||
}
|
||||
; run: %shuffle_b32x4_to_all_true() == [0xffffffff 0xffffffff 0xffffffff 0xffffffff]
|
||||
; run: %shuffle_i32x4_to_all_true() == [0xffffffff 0xffffffff 0xffffffff 0xffffffff]
|
||||
|
||||
|
||||
|
||||
@@ -95,15 +95,15 @@ block0(v1: f64x2, v2: f64):
|
||||
|
||||
;; extractlane
|
||||
|
||||
function %extractlane_b8x16() -> i8 {
|
||||
function %extractlane_i8x16() -> i8 {
|
||||
block0:
|
||||
v1 = vconst.b8x16 [false false false false false false false false false false true false false
|
||||
false false false]
|
||||
v1 = vconst.i8x16 [0 0 0 0 0 0 0 0 0 0 -1 0 0
|
||||
0 0 0]
|
||||
v2 = extractlane v1, 10
|
||||
v3 = raw_bitcast.i8 v2
|
||||
return v3
|
||||
}
|
||||
; run: %extractlane_b8x16_last() == 0xff
|
||||
; run: %extractlane_i8x16_last() == 0xff
|
||||
|
||||
function %extractlane_i16x8_second(i16x8) -> i16 {
|
||||
block0(v0: i16x8):
|
||||
@@ -119,7 +119,7 @@ block0(v0: f32x4):
|
||||
}
|
||||
; run: %extractlane_f32x4_last([0x00.00 0x00.00 0x00.00 0x42.42]) == 0x42.42
|
||||
|
||||
function %extractlane_i32_with_vector_reuse() -> b1 {
|
||||
function %extractlane_i32_with_vector_reuse() -> i8 {
|
||||
block0:
|
||||
v0 = iconst.i32 42
|
||||
v1 = iconst.i32 99
|
||||
@@ -138,7 +138,7 @@ block0:
|
||||
}
|
||||
; run
|
||||
|
||||
function %extractlane_f32_with_vector_reuse() -> b1 {
|
||||
function %extractlane_f32_with_vector_reuse() -> i8 {
|
||||
block0:
|
||||
v0 = f32const 0x42.42
|
||||
v1 = f32const 0x99.99
|
||||
@@ -161,7 +161,7 @@ block0:
|
||||
|
||||
;; splat
|
||||
|
||||
function %splat_i64x2() -> b1 {
|
||||
function %splat_i64x2() -> i8 {
|
||||
block0:
|
||||
v0 = iconst.i64 -1
|
||||
v1 = splat.i64x2 v0
|
||||
|
||||
@@ -4,16 +4,16 @@ target s390x
|
||||
set enable_simd
|
||||
target x86_64 has_sse3 has_ssse3 has_sse41
|
||||
|
||||
function %bnot() -> b32 {
|
||||
function %bnot() -> i32 {
|
||||
block0:
|
||||
v0 = vconst.b32x4 [true true true false]
|
||||
v0 = vconst.i32x4 [-1 -1 -1 0]
|
||||
v1 = bnot v0
|
||||
v2 = extractlane v1, 3
|
||||
return v2
|
||||
}
|
||||
; run
|
||||
|
||||
function %band_not() -> b1 {
|
||||
function %band_not() -> i8 {
|
||||
block0:
|
||||
v0 = vconst.i16x8 [1 0 0 0 0 0 0 0]
|
||||
v1 = vconst.i16x8 [0 0 0 0 0 0 0 0]
|
||||
@@ -24,7 +24,7 @@ block0:
|
||||
}
|
||||
; run
|
||||
|
||||
function %vany_true_i8x16() -> b1, b1 {
|
||||
function %vany_true_i8x16() -> i8, i8 {
|
||||
block0:
|
||||
v0 = vconst.i8x16 [0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]
|
||||
v1 = vany_true v0
|
||||
@@ -34,9 +34,9 @@ block0:
|
||||
|
||||
return v1, v3
|
||||
}
|
||||
; run: %vany_true_i8x16() == [false, true]
|
||||
; run: %vany_true_i8x16() == [0, 1]
|
||||
|
||||
function %vany_true_i16x8() -> b1, b1 {
|
||||
function %vany_true_i16x8() -> i8, i8 {
|
||||
block0:
|
||||
v0 = vconst.i16x8 [0 0 0 0 0 0 0 0]
|
||||
v1 = vany_true v0
|
||||
@@ -46,9 +46,9 @@ block0:
|
||||
|
||||
return v1, v3
|
||||
}
|
||||
; run: %vany_true_i16x8() == [false, true]
|
||||
; run: %vany_true_i16x8() == [0, 1]
|
||||
|
||||
function %vany_true_i32x4() -> b1, b1 {
|
||||
function %vany_true_i32x4() -> i8, i8 {
|
||||
block0:
|
||||
v0 = vconst.i32x4 [0 0 0 0]
|
||||
v1 = vany_true v0
|
||||
@@ -58,9 +58,9 @@ block0:
|
||||
|
||||
return v1, v3
|
||||
}
|
||||
; run: %vany_true_i32x4() == [false, true]
|
||||
; run: %vany_true_i32x4() == [0, 1]
|
||||
|
||||
function %vany_true_i64x2() -> b1, b1 {
|
||||
function %vany_true_i64x2() -> i8, i8 {
|
||||
block0:
|
||||
v0 = vconst.i64x2 [0 0]
|
||||
v1 = vany_true v0
|
||||
@@ -70,9 +70,9 @@ block0:
|
||||
|
||||
return v1, v3
|
||||
}
|
||||
; run: %vany_true_i64x2() == [false, true]
|
||||
; run: %vany_true_i64x2() == [0, 1]
|
||||
|
||||
function %vany_true_f32x4() -> b1, b1 {
|
||||
function %vany_true_f32x4() -> i8, i8 {
|
||||
block0:
|
||||
v0 = vconst.f32x4 [0.0 0.0 0.0 0.0]
|
||||
v1 = vany_true v0
|
||||
@@ -82,9 +82,9 @@ block0:
|
||||
|
||||
return v1, v3
|
||||
}
|
||||
; run: %vany_true_f32x4() == [false, true]
|
||||
; run: %vany_true_f32x4() == [0, 1]
|
||||
|
||||
function %vany_true_f64x2() -> b1, b1 {
|
||||
function %vany_true_f64x2() -> i8, i8 {
|
||||
block0:
|
||||
v0 = vconst.f64x2 [0.0 0.0]
|
||||
v1 = vany_true v0
|
||||
@@ -94,31 +94,31 @@ block0:
|
||||
|
||||
return v1, v3
|
||||
}
|
||||
; run: %vany_true_f64x2() == [false, true]
|
||||
; run: %vany_true_f64x2() == [0, 1]
|
||||
|
||||
function %vany_true_b32x4() -> b1 {
|
||||
function %vany_true_i32x4_imm() -> i8 {
|
||||
block0:
|
||||
v0 = vconst.b32x4 [false false false false]
|
||||
v0 = vconst.i32x4 [0 0 0 0]
|
||||
v1 = vany_true v0
|
||||
v2 = bint.i32 v1
|
||||
v2 = uextend.i32 v1
|
||||
v3 = icmp_imm eq v2, 0
|
||||
return v3
|
||||
}
|
||||
; run
|
||||
|
||||
function %vall_true_i16x8() -> b1 {
|
||||
function %vall_true_i16x8() -> i8 {
|
||||
block0:
|
||||
v0 = vconst.i16x8 [1 0 0 0 0 0 0 0]
|
||||
v1 = vall_true v0
|
||||
v2 = bint.i32 v1
|
||||
v2 = uextend.i32 v1
|
||||
v3 = icmp_imm eq v2, 0
|
||||
return v3
|
||||
}
|
||||
; run
|
||||
|
||||
function %vall_true_b32x4() -> b1 {
|
||||
function %vall_true_i32x4() -> i8 {
|
||||
block0:
|
||||
v0 = vconst.b32x4 [true true true true]
|
||||
v0 = vconst.i32x4 [-1 -1 -1 -1]
|
||||
v1 = vall_true v0
|
||||
return v1
|
||||
}
|
||||
|
||||
@@ -59,9 +59,6 @@ block0(v0: f64):
|
||||
; run: %splat_f64x2(0x2.0) == [0x2.0 0x2.0]
|
||||
; run: %splat_f64x2(NaN) == [NaN NaN]
|
||||
|
||||
; TODO: Test combinations of `bconst` and `splat`, potentially with `breduce` in
|
||||
; the middle
|
||||
|
||||
function %splat_i8x16_2(i8x16) -> i8x16 {
|
||||
block0(v0: i8x16):
|
||||
v1 = iconst.i8 116
|
||||
|
||||
@@ -39,7 +39,7 @@ block0(v0: i64x2, v1: i32):
|
||||
; run: %ushr_i64x2([1 2], 65) == [0 1]
|
||||
|
||||
|
||||
function %sshr_imm_i16x8() -> b1 {
|
||||
function %sshr_imm_i16x8() -> i8 {
|
||||
block0:
|
||||
v1 = vconst.i16x8 [1 2 4 -8 0 0 0 0]
|
||||
v2 = ushr_imm v1, 1
|
||||
|
||||
@@ -3,56 +3,56 @@ test run
|
||||
target aarch64
|
||||
; s390x and x86_64 do not support 64-bit vectors.
|
||||
|
||||
function %valltrue_b8x8_f() -> b1 {
|
||||
function %valltrue_i8x8_f() -> i8 {
|
||||
block0:
|
||||
v0 = bconst.b8 false
|
||||
v1 = splat.b8x8 v0
|
||||
v0 = iconst.i8 0
|
||||
v1 = splat.i8x8 v0
|
||||
v2 = vall_true v1
|
||||
return v2
|
||||
}
|
||||
; run: %valltrue_b8x8_f() == false
|
||||
; run: %valltrue_i8x8_f() == 0
|
||||
|
||||
function %valltrue_b8x8_t() -> b1 {
|
||||
function %valltrue_i8x8_t() -> i8 {
|
||||
block0:
|
||||
v0 = bconst.b8 true
|
||||
v1 = splat.b8x8 v0
|
||||
v0 = iconst.i8 -1
|
||||
v1 = splat.i8x8 v0
|
||||
v2 = vall_true v1
|
||||
return v2
|
||||
}
|
||||
; run: %valltrue_b8x8_t() == true
|
||||
; run: %valltrue_i8x8_t() == 1
|
||||
|
||||
function %valltrue_b16x4_f() -> b1 {
|
||||
function %valltrue_i16x4_f() -> i8 {
|
||||
block0:
|
||||
v0 = bconst.b16 false
|
||||
v1 = splat.b16x4 v0
|
||||
v0 = iconst.i16 0
|
||||
v1 = splat.i16x4 v0
|
||||
v2 = vall_true v1
|
||||
return v2
|
||||
}
|
||||
; run: %valltrue_b16x4_f() == false
|
||||
; run: %valltrue_i16x4_f() == 0
|
||||
|
||||
function %valltrue_b16x4_t() -> b1 {
|
||||
function %valltrue_i16x4_t() -> i8 {
|
||||
block0:
|
||||
v0 = bconst.b16 true
|
||||
v1 = splat.b16x4 v0
|
||||
v0 = iconst.i16 -1
|
||||
v1 = splat.i16x4 v0
|
||||
v2 = vall_true v1
|
||||
return v2
|
||||
}
|
||||
; run: %valltrue_b16x4_t() == true
|
||||
; run: %valltrue_i16x4_t() == 1
|
||||
|
||||
function %valltrue_b32x2_f() -> b1 {
|
||||
function %valltrue_i32x2_f() -> i8 {
|
||||
block0:
|
||||
v0 = bconst.b32 false
|
||||
v1 = splat.b32x2 v0
|
||||
v0 = iconst.i32 0
|
||||
v1 = splat.i32x2 v0
|
||||
v2 = vall_true v1
|
||||
return v2
|
||||
}
|
||||
; run: %valltrue_b32x2_f() == false
|
||||
; run: %valltrue_i32x2_f() == 0
|
||||
|
||||
function %valltrue_b32x2_t() -> b1 {
|
||||
function %valltrue_i32x2_t() -> i8 {
|
||||
block0:
|
||||
v0 = bconst.b32 true
|
||||
v1 = splat.b32x2 v0
|
||||
v0 = iconst.i32 -1
|
||||
v1 = splat.i32x2 v0
|
||||
v2 = vall_true v1
|
||||
return v2
|
||||
}
|
||||
; run: %valltrue_b32x2_t() == true
|
||||
; run: %valltrue_i32x2_t() == 1
|
||||
|
||||
@@ -4,41 +4,41 @@ target aarch64
|
||||
target s390x
|
||||
target x86_64
|
||||
|
||||
function %vall_true_b8x16(b8x16) -> b1 {
|
||||
block0(v0: b8x16):
|
||||
function %vall_true_i8x16(i8x16) -> i8 {
|
||||
block0(v0: i8x16):
|
||||
v1 = vall_true v0
|
||||
return v1
|
||||
}
|
||||
; 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
|
||||
; run: %vall_true_i8x16([0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]) == 0
|
||||
; run: %vall_true_i8x16([-1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]) == 0
|
||||
; run: %vall_true_i8x16([-1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1]) == 1
|
||||
|
||||
|
||||
function %vall_true_b16x8(b16x8) -> b1 {
|
||||
block0(v0: b16x8):
|
||||
function %vall_true_i16x8(i16x8) -> i8 {
|
||||
block0(v0: i16x8):
|
||||
v1 = vall_true v0
|
||||
return v1
|
||||
}
|
||||
; 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
|
||||
; run: %vall_true_i16x8([0 0 0 0 0 0 0 0]) == 0
|
||||
; run: %vall_true_i16x8([-1 0 0 0 0 0 0 0]) == 0
|
||||
; run: %vall_true_i16x8([-1 -1 -1 -1 -1 -1 -1 -1]) == 1
|
||||
|
||||
|
||||
function %vall_true_b32x4(b32x4) -> b1 {
|
||||
block0(v0: b32x4):
|
||||
function %vall_true_i32x4(i32x4) -> i8 {
|
||||
block0(v0: i32x4):
|
||||
v1 = vall_true v0
|
||||
return v1
|
||||
}
|
||||
; 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
|
||||
; run: %vall_true_i32x4([0 0 0 0]) == 0
|
||||
; run: %vall_true_i32x4([-1 0 0 0]) == 0
|
||||
; run: %vall_true_i32x4([-1 -1 -1 -1]) == 1
|
||||
|
||||
|
||||
function %vall_true_b64x2(b64x2) -> b1 {
|
||||
block0(v0: b64x2):
|
||||
function %vall_true_i64x2(i64x2) -> i8 {
|
||||
block0(v0: i64x2):
|
||||
v1 = vall_true v0
|
||||
return v1
|
||||
}
|
||||
; run: %vall_true_b64x2([false false]) == false
|
||||
; run: %vall_true_b64x2([true false]) == false
|
||||
; run: %vall_true_b64x2([true true]) == true
|
||||
; run: %vall_true_i64x2([0 0]) == 0
|
||||
; run: %vall_true_i64x2([-1 0]) == 0
|
||||
; run: %vall_true_i64x2([-1 -1]) == 1
|
||||
|
||||
@@ -3,56 +3,56 @@ test run
|
||||
target aarch64
|
||||
; s390x and x86_64 do not support 64-bit vectors.
|
||||
|
||||
function %vanytrue_b8x8_f() -> b1 {
|
||||
function %vanytrue_i8x8_f() -> i8 {
|
||||
block0:
|
||||
v0 = bconst.b8 false
|
||||
v1 = splat.b8x8 v0
|
||||
v0 = iconst.i8 0
|
||||
v1 = splat.i8x8 v0
|
||||
v2 = vany_true v1
|
||||
return v2
|
||||
}
|
||||
; run: %vanytrue_b8x8_f() == false
|
||||
; run: %vanytrue_i8x8_f() == 0
|
||||
|
||||
function %vanytrue_b8x8_t() -> b1 {
|
||||
function %vanytrue_i8x8_t() -> i8 {
|
||||
block0:
|
||||
v0 = bconst.b8 true
|
||||
v1 = splat.b8x8 v0
|
||||
v0 = iconst.i8 -1
|
||||
v1 = splat.i8x8 v0
|
||||
v2 = vany_true v1
|
||||
return v2
|
||||
}
|
||||
; run: %vanytrue_b8x8_t() == true
|
||||
; run: %vanytrue_i8x8_t() == 1
|
||||
|
||||
function %vanytrue_b16x4_f() -> b1 {
|
||||
function %vanytrue_i16x4_f() -> i8 {
|
||||
block0:
|
||||
v0 = bconst.b16 false
|
||||
v1 = splat.b16x4 v0
|
||||
v0 = iconst.i16 0
|
||||
v1 = splat.i16x4 v0
|
||||
v2 = vany_true v1
|
||||
return v2
|
||||
}
|
||||
; run: %vanytrue_b16x4_f() == false
|
||||
; run: %vanytrue_i16x4_f() == 0
|
||||
|
||||
function %vanytrue_b16x4_t() -> b1 {
|
||||
function %vanytrue_i16x4_t() -> i8 {
|
||||
block0:
|
||||
v0 = bconst.b16 true
|
||||
v1 = splat.b16x4 v0
|
||||
v0 = iconst.i16 -1
|
||||
v1 = splat.i16x4 v0
|
||||
v2 = vany_true v1
|
||||
return v2
|
||||
}
|
||||
; run: %vanytrue_b16x4_t() == true
|
||||
; run: %vanytrue_i16x4_t() == 1
|
||||
|
||||
function %vanytrue_b32x2_f() -> b1 {
|
||||
function %vanytrue_i32x2_f() -> i8 {
|
||||
block0:
|
||||
v0 = bconst.b32 false
|
||||
v1 = splat.b32x2 v0
|
||||
v0 = iconst.i32 0
|
||||
v1 = splat.i32x2 v0
|
||||
v2 = vany_true v1
|
||||
return v2
|
||||
}
|
||||
; run: %vanytrue_b32x2_f() == false
|
||||
; run: %vanytrue_i32x2_f() == 0
|
||||
|
||||
function %vanytrue_b32x2_t() -> b1 {
|
||||
function %vanytrue_i32x2_t() -> i8 {
|
||||
block0:
|
||||
v0 = bconst.b32 true
|
||||
v1 = splat.b32x2 v0
|
||||
v0 = iconst.i32 -1
|
||||
v1 = splat.i32x2 v0
|
||||
v2 = vany_true v1
|
||||
return v2
|
||||
}
|
||||
; run: %vanytrue_b32x2_t() == true
|
||||
; run: %vanytrue_i32x2_t() == 1
|
||||
|
||||
@@ -4,41 +4,41 @@ target aarch64
|
||||
target s390x
|
||||
target x86_64
|
||||
|
||||
function %vany_true_b8x16(b8x16) -> b1 {
|
||||
block0(v0: b8x16):
|
||||
function %vany_true_i8x16(i8x16) -> i8 {
|
||||
block0(v0: i8x16):
|
||||
v1 = vany_true v0
|
||||
return v1
|
||||
}
|
||||
; 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
|
||||
; run: %vany_true_i8x16([0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]) == 0
|
||||
; run: %vany_true_i8x16([-1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]) == 1
|
||||
; run: %vany_true_i8x16([-1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1]) == 1
|
||||
|
||||
|
||||
function %vany_true_b16x8(b16x8) -> b1 {
|
||||
block0(v0: b16x8):
|
||||
function %vany_true_i16x8(i16x8) -> i8 {
|
||||
block0(v0: i16x8):
|
||||
v1 = vany_true v0
|
||||
return v1
|
||||
}
|
||||
; 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
|
||||
; run: %vany_true_i16x8([0 0 0 0 0 0 0 0]) == 0
|
||||
; run: %vany_true_i16x8([-1 0 0 0 0 0 0 0]) == 1
|
||||
; run: %vany_true_i16x8([-1 -1 -1 -1 -1 -1 -1 -1]) == 1
|
||||
|
||||
|
||||
function %vany_true_b32x4(b32x4) -> b1 {
|
||||
block0(v0: b32x4):
|
||||
function %vany_true_i32x4(i32x4) -> i8 {
|
||||
block0(v0: i32x4):
|
||||
v1 = vany_true v0
|
||||
return v1
|
||||
}
|
||||
; 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
|
||||
; run: %vany_true_i32x4([0 0 0 0]) == 0
|
||||
; run: %vany_true_i32x4([-1 0 0 0]) == 1
|
||||
; run: %vany_true_i32x4([-1 -1 -1 -1]) == 1
|
||||
|
||||
|
||||
function %vany_true_b64x2(b64x2) -> b1 {
|
||||
block0(v0: b64x2):
|
||||
function %vany_true_i64x2(i64x2) -> i8 {
|
||||
block0(v0: i64x2):
|
||||
v1 = vany_true v0
|
||||
return v1
|
||||
}
|
||||
; run: %vany_true_b64x2([false false]) == false
|
||||
; run: %vany_true_b64x2([true false]) == true
|
||||
; run: %vany_true_b64x2([true true]) == true
|
||||
; run: %vany_true_i64x2([0 0]) == 0
|
||||
; run: %vany_true_i64x2([-1 0]) == 1
|
||||
; run: %vany_true_i64x2([-1 -1]) == 1
|
||||
|
||||
@@ -5,7 +5,7 @@ set enable_simd
|
||||
target x86_64 has_sse3 has_ssse3 has_sse41
|
||||
|
||||
|
||||
function %vconst_zeroes() -> b1 {
|
||||
function %vconst_zeroes() -> i8 {
|
||||
block0:
|
||||
v0 = vconst.i8x16 0x00
|
||||
v1 = extractlane v0, 4
|
||||
@@ -14,7 +14,7 @@ block0:
|
||||
}
|
||||
; run
|
||||
|
||||
function %vconst_ones() -> b1 {
|
||||
function %vconst_ones() -> i8 {
|
||||
block0:
|
||||
v0 = vconst.i8x16 0xffffffffffffffffffffffffffffffff
|
||||
v1 = extractlane v0, 2
|
||||
@@ -24,7 +24,7 @@ block0:
|
||||
; run
|
||||
|
||||
|
||||
function %splat_i64x2() -> b1 {
|
||||
function %splat_i64x2() -> i8 {
|
||||
block0:
|
||||
v0 = iconst.i64 -1
|
||||
v1 = splat.i64x2 v0
|
||||
|
||||
@@ -7,7 +7,7 @@ target x86_64 has_sse3 has_ssse3 has_sse41
|
||||
|
||||
function %vselect_i8x16() -> i8x16 {
|
||||
block0:
|
||||
v1 = vconst.b8x16 [false true false true false true true true true true false false false false false false]
|
||||
v1 = vconst.i8x16 [0 -1 0 -1 0 -1 -1 -1 -1 -1 0 0 0 0 0 0]
|
||||
v2 = vconst.i8x16 [100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115]
|
||||
v3 = vconst.i8x16 [200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215]
|
||||
v4 = vselect v1, v2, v3
|
||||
@@ -17,7 +17,7 @@ block0:
|
||||
|
||||
function %vselect_i16x8() -> i16x8 {
|
||||
block0:
|
||||
v1 = vconst.b16x8 [false true false true false true true true]
|
||||
v1 = vconst.i16x8 [0 -1 0 -1 0 -1 -1 -1]
|
||||
v2 = vconst.i16x8 [100 101 102 103 104 105 106 107]
|
||||
v3 = vconst.i16x8 [200 201 202 203 204 205 206 207]
|
||||
v4 = vselect v1, v2, v3
|
||||
@@ -27,7 +27,7 @@ block0:
|
||||
|
||||
function %vselect_i32x4_const() -> i32x4 {
|
||||
block0:
|
||||
v1 = vconst.b32x4 [false true false true]
|
||||
v1 = vconst.i32x4 [0 -1 0 -1]
|
||||
v2 = vconst.i32x4 [100 101 102 103]
|
||||
v3 = vconst.i32x4 [200 201 202 203]
|
||||
v4 = vselect v1, v2, v3
|
||||
@@ -35,17 +35,17 @@ block0:
|
||||
}
|
||||
; run: %vselect_i32x4_const() == [200 101 202 103]
|
||||
|
||||
function %vselect_i32x4(b32x4, i32x4, i32x4) -> i32x4 {
|
||||
block0(v0: b32x4, v1: i32x4, v2: i32x4):
|
||||
function %vselect_i32x4(i32x4, i32x4, i32x4) -> i32x4 {
|
||||
block0(v0: i32x4, v1: i32x4, v2: i32x4):
|
||||
v3 = vselect v0, v1, v2
|
||||
return v3
|
||||
}
|
||||
; Remember that vselect accepts: 1) the selector vector, 2) the "if true" vector, and 3) the "if false" vector.
|
||||
; run: %vselect_i32x4([true true false false], [1 2 -1 -1], [-1 -1 3 4]) == [1 2 3 4]
|
||||
; run: %vselect_i32x4([-1 -1 0 0], [1 2 -1 -1], [-1 -1 3 4]) == [1 2 3 4]
|
||||
|
||||
function %vselect_i64x2() -> i64x2 {
|
||||
block0:
|
||||
v1 = vconst.b64x2 [false true]
|
||||
v1 = vconst.i64x2 [0 -1]
|
||||
v2 = vconst.i64x2 [100 101]
|
||||
v3 = vconst.i64x2 [200 201]
|
||||
v4 = vselect v1, v2, v3
|
||||
@@ -53,30 +53,30 @@ block0:
|
||||
}
|
||||
; run: %vselect_i64x2() == [200 101]
|
||||
|
||||
function %vselect_p_i8x16(b8x16, i8x16, i8x16) -> i8x16 {
|
||||
block0(v0: b8x16, v1: i8x16, v2: i8x16):
|
||||
function %vselect_p_i8x16(i8x16, i8x16, i8x16) -> i8x16 {
|
||||
block0(v0: i8x16, v1: i8x16, v2: i8x16):
|
||||
v3 = vselect v0, v1, v2
|
||||
return v3
|
||||
}
|
||||
; run: %vselect_p_i8x16([true false true true true false false false true false true true true false false false], [1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16], [17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32]) == [1 18 3 4 5 22 23 24 9 26 11 12 13 30 31 32]
|
||||
; run: %vselect_p_i8x16([-1 0 -1 -1 -1 0 0 0 -1 0 -1 -1 -1 0 0 0], [1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16], [17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32]) == [1 18 3 4 5 22 23 24 9 26 11 12 13 30 31 32]
|
||||
|
||||
function %vselect_p_i16x8(b16x8, i16x8, i16x8) -> i16x8 {
|
||||
block0(v0: b16x8, v1: i16x8, v2: i16x8):
|
||||
function %vselect_p_i16x8(i16x8, i16x8, i16x8) -> i16x8 {
|
||||
block0(v0: i16x8, v1: i16x8, v2: i16x8):
|
||||
v3 = vselect v0, v1, v2
|
||||
return v3
|
||||
}
|
||||
; run: %vselect_p_i16x8([true false true true true false false false], [1 2 3 4 5 6 7 8], [17 18 19 20 21 22 23 24]) == [1 18 3 4 5 22 23 24]
|
||||
; run: %vselect_p_i16x8([-1 0 -1 -1 -1 0 0 0], [1 2 3 4 5 6 7 8], [17 18 19 20 21 22 23 24]) == [1 18 3 4 5 22 23 24]
|
||||
|
||||
function %vselect_p_i32x4(b32x4, i32x4, i32x4) -> i32x4 {
|
||||
block0(v0: b32x4, v1: i32x4, v2: i32x4):
|
||||
function %vselect_p_i32x4(i32x4, i32x4, i32x4) -> i32x4 {
|
||||
block0(v0: i32x4, v1: i32x4, v2: i32x4):
|
||||
v3 = vselect v0, v1, v2
|
||||
return v3
|
||||
}
|
||||
; run: %vselect_p_i32x4([true false true true], [1 2 3 4], [100000 200000 300000 400000]) == [1 200000 3 4]
|
||||
; run: %vselect_p_i32x4([-1 0 -1 -1], [1 2 3 4], [100000 200000 300000 400000]) == [1 200000 3 4]
|
||||
|
||||
function %vselect_p_i64x2(b64x2, i64x2, i64x2) -> i64x2 {
|
||||
block0(v0: b64x2, v1: i64x2, v2: i64x2):
|
||||
function %vselect_p_i64x2(i64x2, i64x2, i64x2) -> i64x2 {
|
||||
block0(v0: i64x2, v1: i64x2, v2: i64x2):
|
||||
v3 = vselect v0, v1, v2
|
||||
return v3
|
||||
}
|
||||
; run: %vselect_p_i64x2([true false], [1 2], [100000000000 200000000000]) == [1 200000000000]
|
||||
; run: %vselect_p_i64x2([-1 0], [1 2], [100000000000 200000000000]) == [1 200000000000]
|
||||
|
||||
@@ -2,15 +2,12 @@ test run
|
||||
target aarch64
|
||||
target s390x
|
||||
|
||||
; raw_bitcast is needed to get around issue with "bint" on aarch64
|
||||
|
||||
function %simd_icmp_eq_i8(i8x16) -> i8x16 {
|
||||
block0(v0: i8x16):
|
||||
v1 = iconst.i8 0
|
||||
v3 = splat.i8x16 v1
|
||||
v2 = icmp eq v0, v3
|
||||
v4 = raw_bitcast.i8x16 v2
|
||||
return v4
|
||||
return v2
|
||||
}
|
||||
; run: %simd_icmp_eq_i8([-1 0 1 100 -1 0 1 100 -1 0 1 100 -1 0 1 100]) == [0 0xff 0 0 0 0xff 0 0 0 0xff 0 0 0 0xff 0 0]
|
||||
|
||||
@@ -19,8 +16,7 @@ block0(v0: i16x8):
|
||||
v1 = iconst.i16 0
|
||||
v3 = splat.i16x8 v1
|
||||
v2 = icmp ne v0, v3
|
||||
v4 = raw_bitcast.i16x8 v2
|
||||
return v4
|
||||
return v2
|
||||
}
|
||||
; run: %simd_icmp_ne_i16([-1 0 1 100 -1 0 1 100]) == [0xffff 0 0xffff 0xffff 0xffff 0 0xffff 0xffff]
|
||||
|
||||
@@ -29,8 +25,7 @@ block0(v0: i32x4):
|
||||
v1 = iconst.i32 0
|
||||
v3 = splat.i32x4 v1
|
||||
v2 = icmp sle v0, v3
|
||||
v4 = raw_bitcast.i32x4 v2
|
||||
return v4
|
||||
return v2
|
||||
}
|
||||
; run: %simd_icmp_le_i32([-1 0 1 100]) == [0xffffffff 0xffffffff 0 0]
|
||||
|
||||
@@ -39,8 +34,7 @@ block0(v0: i64x2):
|
||||
v1 = iconst.i64 0
|
||||
v3 = splat.i64x2 v1
|
||||
v2 = icmp sge v0, v3
|
||||
v4 = raw_bitcast.i64x2 v2
|
||||
return v4
|
||||
return v2
|
||||
}
|
||||
; run: %simd_icmp_ge_i64([-1 0]) == [0 0xffffffffffffffff]
|
||||
; run: %simd_icmp_ge_i64([1 100]) == [0xffffffffffffffff 0xffffffffffffffff]
|
||||
@@ -50,8 +44,7 @@ block0(v0: i8x16):
|
||||
v1 = iconst.i8 0
|
||||
v3 = splat.i8x16 v1
|
||||
v2 = icmp slt v0, v3
|
||||
v4 = raw_bitcast.i8x16 v2
|
||||
return v4
|
||||
return v2
|
||||
}
|
||||
; run: %simd_icmp_lt_i8([-1 0 1 100 -1 0 1 100 -1 0 1 100 -1 0 1 100]) == [0xff 0 0 0 0xff 0 0 0 0xff 0 0 0 0xff 0 0 0]
|
||||
|
||||
@@ -60,8 +53,7 @@ block0(v0: i16x8):
|
||||
v1 = iconst.i16 0
|
||||
v3 = splat.i16x8 v1
|
||||
v2 = icmp sgt v0, v3
|
||||
v4 = raw_bitcast.i16x8 v2
|
||||
return v4
|
||||
return v2
|
||||
}
|
||||
; run: %simd_icmp_gt_i16([-1 0 1 100 -1 0 1 100]) == [0 0 0xffff 0xffff 0 0 0xffff 0xffff]
|
||||
|
||||
@@ -70,8 +62,7 @@ block0(v0: f32x4):
|
||||
v1 = f32const 0.0
|
||||
v3 = splat.f32x4 v1
|
||||
v2 = fcmp eq v0, v3
|
||||
v4 = raw_bitcast.i32x4 v2
|
||||
return v4
|
||||
return v2
|
||||
}
|
||||
; run: %simd_fcmp_eq_f32([-0x1.0 0x0.0 0x1.0 NaN]) == [0 0xffffffff 0 0]
|
||||
|
||||
@@ -80,8 +71,7 @@ block0(v0: f64x2):
|
||||
v1 = f64const 0.0
|
||||
v3 = splat.f64x2 v1
|
||||
v2 = fcmp ne v0, v3
|
||||
v4 = raw_bitcast.i64x2 v2
|
||||
return v4
|
||||
return v2
|
||||
}
|
||||
; run: %simd_fcmp_ne_f64([-0x1.0 0x0.0]) == [0xffffffffffffffff 0]
|
||||
; run: %simd_fcmp_ne_f64([0x1.0 NaN]) == [0xffffffffffffffff 0xffffffffffffffff]
|
||||
@@ -91,8 +81,7 @@ block0(v0: f32x4):
|
||||
v1 = f32const 0.0
|
||||
v3 = splat.f32x4 v1
|
||||
v2 = fcmp le v0, v3
|
||||
v4 = raw_bitcast.i32x4 v2
|
||||
return v4
|
||||
return v2
|
||||
}
|
||||
; run: %simd_fcmp_le_f32([-0x1.0 0x0.0 0x1.0 NaN]) == [0xffffffff 0xffffffff 0 0]
|
||||
|
||||
@@ -101,8 +90,7 @@ block0(v0: f64x2):
|
||||
v1 = f64const 0.0
|
||||
v3 = splat.f64x2 v1
|
||||
v2 = fcmp ge v0, v3
|
||||
v4 = raw_bitcast.i64x2 v2
|
||||
return v4
|
||||
return v2
|
||||
}
|
||||
|
||||
; run: %simd_fcmp_ge_f64([-0x1.0 0x0.0]) == [0 0xffffffffffffffff]
|
||||
@@ -113,8 +101,7 @@ block0(v0: f32x4):
|
||||
v1 = f32const 0.0
|
||||
v3 = splat.f32x4 v1
|
||||
v2 = fcmp lt v0, v3
|
||||
v4 = raw_bitcast.i32x4 v2
|
||||
return v4
|
||||
return v2
|
||||
}
|
||||
; run: %simd_fcmp_lt_f32([-0x1.0 0x0.0 0x1.0 NaN]) == [0xffffffff 0 0 0]
|
||||
|
||||
@@ -123,8 +110,7 @@ block0(v0: f64x2):
|
||||
v1 = f64const 0.0
|
||||
v3 = splat.f64x2 v1
|
||||
v2 = fcmp gt v0, v3
|
||||
v4 = raw_bitcast.i64x2 v2
|
||||
return v4
|
||||
return v2
|
||||
}
|
||||
|
||||
; run: %simd_fcmp_gt_f64([-0x1.0 0x0.0]) == [0 0]
|
||||
@@ -135,8 +121,7 @@ block0(v0: i32x4):
|
||||
v1 = iconst.i32 0
|
||||
v3 = splat.i32x4 v1
|
||||
v2 = icmp eq v3, v0
|
||||
v4 = raw_bitcast.i32x4 v2
|
||||
return v4
|
||||
return v2
|
||||
}
|
||||
; run: %simd_icmp_eq_i32([1 0 -1 100]) == [0 0xffffffff 0 0]
|
||||
|
||||
@@ -145,8 +130,7 @@ block0(v0: i64x2):
|
||||
v1 = iconst.i64 0
|
||||
v3 = splat.i64x2 v1
|
||||
v2 = icmp ne v3, v0
|
||||
v4 = raw_bitcast.i64x2 v2
|
||||
return v4
|
||||
return v2
|
||||
}
|
||||
; run: %simd_icmp_ne_i64([-1 0]) == [0xffffffffffffffff 0]
|
||||
; run: %simd_icmp_ne_i64([1 100]) == [0xffffffffffffffff 0xffffffffffffffff]
|
||||
@@ -156,8 +140,7 @@ block0(v0: i8x16):
|
||||
v1 = iconst.i8 0
|
||||
v3 = splat.i8x16 v1
|
||||
v2 = icmp sle v3, v0
|
||||
v4 = raw_bitcast.i8x16 v2
|
||||
return v4
|
||||
return v2
|
||||
}
|
||||
; run: %simd_icmp_le_i8([-1 0 1 100 -1 0 1 100 -1 0 1 100 -1 0 1 100]) == [0 0xff 0xff 0xff 0 0xff 0xff 0xff 0 0xff 0xff 0xff 0 0xff 0xff 0xff]
|
||||
|
||||
@@ -166,8 +149,7 @@ block0(v0: i16x8):
|
||||
v1 = iconst.i16 0
|
||||
v3 = splat.i16x8 v1
|
||||
v2 = icmp sge v3, v0
|
||||
v4 = raw_bitcast.i16x8 v2
|
||||
return v4
|
||||
return v2
|
||||
}
|
||||
; run: %simd_icmp_ge_i16([-1 0 1 100 -1 0 1 100]) == [0xffff 0xffff 0 0 0xffff 0xffff 0 0]
|
||||
|
||||
@@ -176,8 +158,7 @@ block0(v0: i32x4):
|
||||
v1 = iconst.i32 0
|
||||
v3 = splat.i32x4 v1
|
||||
v2 = icmp slt v3, v0
|
||||
v4 = raw_bitcast.i32x4 v2
|
||||
return v4
|
||||
return v2
|
||||
}
|
||||
; run: %simd_icmp_lt_i32([-1 0 1 100]) == [0 0 0xffffffff 0xffffffff]
|
||||
|
||||
@@ -186,8 +167,7 @@ block0(v0: i64x2):
|
||||
v1 = iconst.i64 0
|
||||
v3 = splat.i64x2 v1
|
||||
v2 = icmp sgt v3, v0
|
||||
v4 = raw_bitcast.i64x2 v2
|
||||
return v4
|
||||
return v2
|
||||
}
|
||||
; run: %simd_icmp_gt_i64([-1 0]) == [0xffffffffffffffff 0]
|
||||
; run: %simd_icmp_gt_i64([1 100]) == [0 0]
|
||||
@@ -197,8 +177,7 @@ block0(v0: f64x2):
|
||||
v1 = f64const 0.0
|
||||
v3 = splat.f64x2 v1
|
||||
v2 = fcmp eq v3, v0
|
||||
v4 = raw_bitcast.i64x2 v2
|
||||
return v4
|
||||
return v2
|
||||
}
|
||||
; run: %simd_fcmp_eq_f64([-0x1.0 0x0.0]) == [0 0xffffffffffffffff]
|
||||
; run: %simd_fcmp_eq_f64([0x1.0 NaN]) == [0 0]
|
||||
@@ -208,8 +187,7 @@ block0(v0: f32x4):
|
||||
v1 = f32const 0.0
|
||||
v3 = splat.f32x4 v1
|
||||
v2 = fcmp ne v3, v0
|
||||
v4 = raw_bitcast.i32x4 v2
|
||||
return v4
|
||||
return v2
|
||||
}
|
||||
; run: %simd_fcmp_ne_f32([-0x1.0 0x0.0 0x1.0 NaN]) == [0xffffffff 0 0xffffffff 0xffffffff]
|
||||
|
||||
@@ -218,8 +196,7 @@ block0(v0: f64x2):
|
||||
v1 = f64const 0.0
|
||||
v3 = splat.f64x2 v1
|
||||
v2 = fcmp le v3, v0
|
||||
v4 = raw_bitcast.i64x2 v2
|
||||
return v4
|
||||
return v2
|
||||
}
|
||||
; run: %simd_fcmp_le_f64([-0x1.0 0x0.0]) == [0 0xffffffffffffffff]
|
||||
; run: %simd_fcmp_le_f64([0x1.0 NaN]) == [0xffffffffffffffff 0]
|
||||
@@ -229,8 +206,7 @@ block0(v0: f32x4):
|
||||
v1 = f32const 0.0
|
||||
v3 = splat.f32x4 v1
|
||||
v2 = fcmp ge v3, v0
|
||||
v4 = raw_bitcast.i32x4 v2
|
||||
return v4
|
||||
return v2
|
||||
}
|
||||
; run: %simd_fcmp_ge_f32([-0x1.0 0x0.0 0x1.0 NaN]) == [0xffffffff 0xffffffff 0 0]
|
||||
|
||||
@@ -239,8 +215,7 @@ block0(v0: f64x2):
|
||||
v1 = f64const 0.0
|
||||
v3 = splat.f64x2 v1
|
||||
v2 = fcmp lt v3, v0
|
||||
v4 = raw_bitcast.i64x2 v2
|
||||
return v4
|
||||
return v2
|
||||
}
|
||||
; run: %simd_fcmp_lt_f64([-0x1.0 0x0.0]) == [0 0]
|
||||
; run: %simd_fcmp_lt_f64([0x1.0 NaN]) == [0xffffffffffffffff 0]
|
||||
@@ -250,7 +225,6 @@ block0(v0: f32x4):
|
||||
v1 = f32const 0.0
|
||||
v3 = splat.f32x4 v1
|
||||
v2 = fcmp gt v3, v0
|
||||
v4 = raw_bitcast.i32x4 v2
|
||||
return v4
|
||||
return v2
|
||||
}
|
||||
; run: %simd_fcmp_gt_f32([-0x1.0 0x0.0 0x1.0 NaN]) == [0xffffffff 0 0 0]
|
||||
|
||||
@@ -31,7 +31,7 @@ function %sqrt_is_nan_f32(f32) -> i32 {
|
||||
block0(v0: f32):
|
||||
v2 = sqrt v0
|
||||
v3 = fcmp ne v2, v2
|
||||
v4 = bint.i32 v3
|
||||
v4 = uextend.i32 v3
|
||||
return v4
|
||||
}
|
||||
; run: %sqrt_is_nan_f32(-0x9.0) == 1
|
||||
@@ -78,7 +78,7 @@ function %sqrt_is_nan_f64(f64) -> i32 {
|
||||
block0(v0: f64):
|
||||
v2 = sqrt v0
|
||||
v3 = fcmp ne v2, v2
|
||||
v4 = bint.i32 v3
|
||||
v4 = uextend.i32 v3
|
||||
return v4
|
||||
}
|
||||
; run: %sqrt_is_nan_f64(-0x9.0) == 1
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
test interpret
|
||||
|
||||
function %stack_addr_iadd(i64) -> b1 {
|
||||
function %stack_addr_iadd(i64) -> i8 {
|
||||
ss0 = explicit_slot 16
|
||||
|
||||
block0(v0: i64):
|
||||
@@ -19,12 +19,12 @@ block0(v0: i64):
|
||||
v9 = band v7, v8
|
||||
return v9
|
||||
}
|
||||
; run: %stack_addr_iadd(0) == true
|
||||
; run: %stack_addr_iadd(1) == true
|
||||
; run: %stack_addr_iadd(-1) == true
|
||||
; run: %stack_addr_iadd(0) == 1
|
||||
; run: %stack_addr_iadd(1) == 1
|
||||
; run: %stack_addr_iadd(-1) == 1
|
||||
|
||||
|
||||
function %stack_addr_32(i64) -> b1 {
|
||||
function %stack_addr_32(i64) -> i8 {
|
||||
ss0 = explicit_slot 24
|
||||
|
||||
block0(v0: i64):
|
||||
@@ -47,13 +47,13 @@ block0(v0: i64):
|
||||
v11 = band v10, v9
|
||||
return v11
|
||||
}
|
||||
; run: %stack_addr_32(0) == true
|
||||
; run: %stack_addr_32(1) == true
|
||||
; run: %stack_addr_32(-1) == true
|
||||
; run: %stack_addr_32(0) == 1
|
||||
; run: %stack_addr_32(1) == 1
|
||||
; run: %stack_addr_32(-1) == 1
|
||||
|
||||
|
||||
|
||||
function %addr32_64(i64) -> b1 {
|
||||
function %addr32_64(i64) -> i8 {
|
||||
ss0 = explicit_slot 16
|
||||
|
||||
block0(v0: i64):
|
||||
@@ -67,12 +67,12 @@ block0(v0: i64):
|
||||
|
||||
return v4
|
||||
}
|
||||
; run: %addr32_64(0) == true
|
||||
; run: %addr32_64(1) == true
|
||||
; run: %addr32_64(-1) == true
|
||||
; run: %addr32_64(0) == 1
|
||||
; run: %addr32_64(1) == 1
|
||||
; run: %addr32_64(-1) == 1
|
||||
|
||||
|
||||
function %multi_slot_different_addrs() -> b1 {
|
||||
function %multi_slot_different_addrs() -> i8 {
|
||||
ss0 = explicit_slot 8
|
||||
ss1 = explicit_slot 8
|
||||
|
||||
@@ -82,4 +82,4 @@ block0:
|
||||
v2 = icmp ne v0, v1
|
||||
return v2
|
||||
}
|
||||
; run: %multi_slot_different_addrs() == true
|
||||
; run: %multi_slot_different_addrs() == 1
|
||||
|
||||
@@ -5,7 +5,7 @@ target s390x
|
||||
target aarch64
|
||||
target riscv64
|
||||
|
||||
function %stack_addr_iadd(i64) -> b1 {
|
||||
function %stack_addr_iadd(i64) -> i8 {
|
||||
ss0 = explicit_slot 16
|
||||
|
||||
block0(v0: i64):
|
||||
@@ -24,11 +24,11 @@ block0(v0: i64):
|
||||
v9 = band v7, v8
|
||||
return v9
|
||||
}
|
||||
; run: %stack_addr_iadd(0) == true
|
||||
; run: %stack_addr_iadd(1) == true
|
||||
; run: %stack_addr_iadd(-1) == true
|
||||
; run: %stack_addr_iadd(0) == 1
|
||||
; run: %stack_addr_iadd(1) == 1
|
||||
; run: %stack_addr_iadd(-1) == 1
|
||||
|
||||
function %stack_addr_64(i64) -> b1 {
|
||||
function %stack_addr_64(i64) -> i8 {
|
||||
ss0 = explicit_slot 24
|
||||
|
||||
block0(v0: i64):
|
||||
@@ -51,6 +51,6 @@ block0(v0: i64):
|
||||
v11 = band v10, v9
|
||||
return v11
|
||||
}
|
||||
; run: %stack_addr_64(0) == true
|
||||
; run: %stack_addr_64(1) == true
|
||||
; run: %stack_addr_64(-1) == true
|
||||
; run: %stack_addr_64(0) == 1
|
||||
; run: %stack_addr_64(1) == 1
|
||||
; run: %stack_addr_64(-1) == 1
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user