Enable more CLIF tests on AArch64

The tests for the SIMD floating-point maximum and minimum operations
require particular care because the handling of the NaN values is
non-deterministic and may vary between platforms. There is no way to
match several NaN values in a test, so the solution is to extract the
non-deterministic test cases into a separate file that is subsequently
replicated for every backend under test, with adjustments made to the
expected results.

Copyright (c) 2021, Arm Limited.
This commit is contained in:
Anton Kirilov
2021-07-06 13:22:11 +01:00
parent fb32e49ed7
commit a1b39276e1
78 changed files with 258 additions and 77 deletions

View File

@@ -3597,9 +3597,12 @@ pub(crate) fn define(
Inst::new(
"fmin",
r#"
Floating point minimum, propagating NaNs.
Floating point minimum, propagating NaNs using the WebAssembly rules.
If either operand is NaN, this returns a NaN.
If either operand is NaN, this returns NaN with an unspecified sign. Furthermore, if
each input NaN consists of a mantissa whose most significant bit is 1 and the rest is
0, then the output has the same form. Otherwise, the output mantissa's most significant
bit is 1 and the rest is unspecified.
"#,
&formats.binary,
)
@@ -3629,9 +3632,12 @@ pub(crate) fn define(
Inst::new(
"fmax",
r#"
Floating point maximum, propagating NaNs.
Floating point maximum, propagating NaNs using the WebAssembly rules.
If either operand is NaN, this returns a NaN.
If either operand is NaN, this returns NaN with an unspecified sign. Furthermore, if
each input NaN consists of a mantissa whose most significant bit is 1 and the rest is
0, then the output has the same form. Otherwise, the output mantissa's most significant
bit is 1 and the rest is unspecified.
"#,
&formats.binary,
)