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

Jakub Jelinek <jakub at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |jakub at gcc dot gnu.org

--- Comment #2 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
Testcase in C and with fewer casts, plus portable between -m32/-m64:
typedef long long __m128i __attribute__((__may_alias__, __vector_size__(2 *
sizeof (long long))));

void
foo (__m128i *x)
{
  __m128i a;
  *x = a;
}

void
bar (__m128i *x)
{
  foo (x);
  foo (x + 1);
}

unsigned long long b[4];

void
baz (long long *x)
{
  bar ((__m128i *) b);
  *x = b[0] + b[1] + b[2] + b[3];
}

Reply via email to