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

--- Comment #2 from Andrew Pinski <pinskia at gcc dot gnu.org> ---
A simple testcase:
void f(unsigned short *a)
{
  unsigned short t0 = a[0];
  unsigned short t1 = a[1];
  a[1] = t0;
  a[0] = t1;
}
---- CUT ----
Should produce the same as:

void f0(unsigned short *a)
{
  unsigned t0 = ((unsigned int*)a)[0];
  unsigned t1 = t0>>sizeof(unsigned short)*8;
  unsigned t2 = t0<<sizeof(unsigned short)*8;
  ((unsigned int*)a)[0] = t1 | t2;
}

--- CUT ---

Reply via email to