rust/src/librustc_trans
kennytm 87f5a4b6f2
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.
2018-03-22 22:43:51 +08:00
..
2018-03-14 12:44:51 +08:00
2018-03-14 12:44:51 +08:00
2018-01-14 08:56:44 +02:00
2018-01-14 08:56:44 +02:00
2018-01-14 08:56:44 +02:00
2018-01-14 08:56:44 +02:00
2018-01-14 08:56:44 +02:00
2018-01-14 08:56:44 +02:00
2018-01-14 08:56:44 +02:00
2018-03-06 12:37:28 -08:00
2018-03-08 08:34:05 +01:00
2018-01-14 08:56:44 +02:00
2018-03-20 02:27:40 +03:00
2018-01-14 08:56:44 +02:00
2017-10-07 08:17:52 -07:00
2018-03-08 08:34:05 +01:00
2018-01-14 08:56:44 +02:00

The trans crate contains the code to convert from MIR into LLVM IR, and then from LLVM IR into machine code. In general it contains code that runs towards the end of the compilation process.

For more information about how trans works, see the rustc guide.