about summary refs log tree commit diff
path: root/src/rustllvm/RustWrapper.cpp
diff options
context:
space:
mode:
authorkennytm <kennytm@gmail.com>2018-03-22 17:51:37 +0800
committerkennytm <kennytm@gmail.com>2018-03-22 22:43:51 +0800
commit87f5a4b6f299784b97abdece47445d27693314b6 (patch)
treebe4e2df77ff20b16774004633335e082e3904afe /src/rustllvm/RustWrapper.cpp
parent3e95c71c18208c8e4ed7cf0bece80b6cb27587bc (diff)
parente0165af94b034dacde7f9a598c5e72b9c1a1898c (diff)
downloadrust-87f5a4b6f299784b97abdece47445d27693314b6.tar.gz
rust-87f5a4b6f299784b97abdece47445d27693314b6.zip
Rollup merge of #49231 - gnzlbg:fix_vec_fminmax, r=rkruppe
fix vector fmin/fmax non-fast/fast intrinsics NaN handling

This bugs shows up in release mode tests of `stdsimd`: https://github.com/rust-lang-nursery/stdsimd/pull/391 . The intrinsics are thoroughly tested there for roundoff errors, NaN, and overflow behavior.

The problem was that the non-fast intrinsics where specifying `NoNaNs == true`, which meant that they don't support NaNs. This is incorrect, the non-fast intrinsics should handle NaNs properly.

Also, the "fast" intrinsics where specifying `NoNaNs == false` which meant that they support NaNs and then fast-math, which probably disables this support. This was not intended either.

I've added a comment specifying what the boolean flags do.
Diffstat (limited to 'src/rustllvm/RustWrapper.cpp')
0 files changed, 0 insertions, 0 deletions