diff --git a/cranelift/filetests/filetests/isa/x64/simd-conversion-run.clif b/cranelift/filetests/filetests/isa/x64/simd-conversion-run.clif new file mode 100644 index 0000000000..3e33b27670 --- /dev/null +++ b/cranelift/filetests/filetests/isa/x64/simd-conversion-run.clif @@ -0,0 +1,25 @@ +test run +set enable_simd +target x86_64 +feature "experimental_x64" + +function %fcvt_from_sint() -> b1 { +block0: + v0 = vconst.i32x4 [-1 0 1 123456789] + v1 = fcvt_from_sint.f32x4 v0 + + v2 = vconst.f32x4 [-0x1.0 0.0 0x1.0 0x75bcd18.0] ; 123456789 rounds to 123456792.0, an error of 3 + v3 = fcmp eq v1, v2 + v4 = vall_true v3 + return v4 +} +; run + +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] +