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

--- Comment #3 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
Slightly cleaned up testcase:
#include <xmmintrin.h>

struct S { int f[4]; };

__m128
foo (__m128 x)
{
  const struct S a = { {0x00000000, 0x80000000, 0x00000000, 0x80000000}};
  return _mm_xor_ps (x, _mm_load_ps ((float *) a.f));
}

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

  return 0;
}

Reply via email to