[Bug tree-optimization/92768] [8/9/10 Regression] Maybe a wrong code for vector constants

jakub at gcc dot gnu.org gcc-bugzilla@gcc.gnu.org
Tue Dec 3 13:18:00 GMT 2019


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

--- Comment #5 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
Even more reduced:
#include <xmmintrin.h>

__m128
foo (__m128 x)
{
  int f[4] __attribute__((aligned (16)))
    = { 0x00000000, 0x80000000, 0x00000000, 0x80000000 };
  return _mm_xor_ps (x, *(__m128 *) f);
}

int
main ()
{
  __m128 a = { -1.0f, -1.0f, -1.0f, -1.0f };
  if (foo (a)[1] != 1.0)
    __builtin_abort ();
  return 0;
}

Though, with -fno-signed-zeros, we say that the sign of a zero isn't
significant, but for this testcase it is very much significant.
So, maybe invalid?


More information about the Gcc-bugs mailing list