https://gcc.gnu.org/bugzilla/show_bug.cgi?id=127177

Matthias Kretz (Vir) <mkretz at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
           Keywords|                            |wrong-code

--- Comment #3 from Matthias Kretz (Vir) <mkretz at gcc dot gnu.org> ---
I just added an isinf unit test to the std::simd testsuite and it fails when
GCC vectorizes 4 calls to std::isinf because it raises FE_INVALID, on
isinf(nan). IIUC, slp2 generates

  vect__2.4_28 = ABS_EXPR <x_17(D)>;
  mask__3.5_29 = vect__2.4_28 u<= {
3.4028234663852885981170418348451692544e+38,
3.4028234663852885981170418348451692544e+38,
3.4028234663852885981170418348451692544e+38,
3.4028234663852885981170418348451692544e+38 };

and that u<= is subsequently translated into vcmpnltps, which is <= not u<=. Is
there a reason that it doesn't compare against infinity?

Reply via email to