With this change we now reuse tests across multiple arches. Duplicate tests were merged into the same file where possible. Some legacy x86 tests were left in separate files due to incompatibilities with the rest of the test suite.
42 lines
1.3 KiB
Plaintext
42 lines
1.3 KiB
Plaintext
test run
|
|
target aarch64
|
|
; target s390x TODO: Not yet implemented on s390x
|
|
set enable_simd
|
|
target x86_64 machinst
|
|
set enable_simd
|
|
target x86_64 legacy
|
|
|
|
function %fcvt_from_sint(i32x4) -> f32x4 {
|
|
block0(v0: i32x4):
|
|
v1 = fcvt_from_sint.f32x4 v0
|
|
return v1
|
|
}
|
|
; run: %fcvt_from_sint([-1 0 1 123456789]) == [-0x1.0 0.0 0x1.0 0x75bcd18.0]
|
|
; Note that 123456789 rounds to 123456792.0, an error of 3
|
|
|
|
function %fcvt_from_uint(i32x4) -> f32x4 {
|
|
block0(v0: i32x4):
|
|
v1 = fcvt_from_uint.f32x4 v0
|
|
return v1
|
|
}
|
|
; run: %fcvt_from_uint([0 0 0 0]) == [0x0.0 0x0.0 0x0.0 0x0.0]
|
|
; run: %fcvt_from_uint([0xFFFFFFFF 0 1 123456789]) == [0x100000000.0 0.0 0x1.0 0x75bcd18.0]
|
|
; Note that 0xFFFFFFFF is decimal 4,294,967,295 and is rounded up 1 to 4,294,967,296 in f32x4.
|
|
|
|
function %fcvt_to_sint_sat(f32x4) -> i32x4 {
|
|
block0(v0:f32x4):
|
|
v1 = fcvt_to_sint_sat.i32x4 v0
|
|
return v1
|
|
}
|
|
; run: %fcvt_to_sint_sat([0x0.0 -0x1.0 0x1.0 0x1.0p100]) == [0 -1 1 0x7FFFFFFF]
|
|
; run: %fcvt_to_sint_sat([-0x8.1 0x0.0 0x0.0 -0x1.0p100]) == [-8 0 0 0x80000000]
|
|
|
|
function %fcvt_to_uint_sat(f32x4) -> i32x4 {
|
|
block0(v0:f32x4):
|
|
v1 = fcvt_to_uint_sat.i32x4 v0
|
|
return v1
|
|
}
|
|
; run: %fcvt_to_uint_sat([0x1.0 0x4.2 0x4.6 0x1.0p100]) == [1 4 4 0xFFFFFFFF]
|
|
; run: %fcvt_to_uint_sat([-0x8.1 -0x0.0 0x0.0 -0x1.0p100]) == [0 0 0 0]
|
|
; run: %fcvt_to_uint_sat([0xB2D05E00.0 0.0 0.0 0.0]) == [3000000000 0 0 0]
|