You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The following comparison between min and 0.0 fails on 32-bit ARM:
/// Minimal positive 32-bit float value.
const min = 1.401298464324817e-45;
var p = Float32x4(0.0, nan, min, nan);
var q = Float32x4(-0.0, nan, 0.0, 3.14);
cmp = p.lessThanOrEqual(q);
Expect.equals(0, cmp.z);
The difference in behavior from other platforms is likely caused by flushing denormalized numbers to zero, so min is treated as 0.0 and min <= 0.0 is true/-1. We should probably document this behavior and fix the test to avoid denormalized numbers.
(I assume we don't want to stop using SIMD/NEON instructions on 32-bit ARM due to this non-compliance to IEEE 754.)
I'll check if I can make the tests expect all the possible results, not just the "correct" ones.
(Not sure we've guaranteed any specific semantics for SIMD operations, and this is why we shouldn't.)
There are new test failures on Add documentation, tests and better parameter names to Float32x4..
The tests
are failing on configurations
Log:
https://dart-ci.appspot.com/log/vm-aot-android-release-arm_x64/vm-aot-android-release-arm_x64/4823/lib/typed_data/float32x4_test/0
/cc @lrhn
The text was updated successfully, but these errors were encountered: