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

--- Comment #1 from Uroš Bizjak <ubizjak at gmail dot com> ---
But, x86 doesn't have 128bit rotate.

For:

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

  ((unsigned long *)a)[0] = t1 | t2;
}

gcc generates:

        rolq    $32, (%rdi)
        ret

Reply via email to