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

Manjunath S Matti <mmatti at linux dot vnet.ibm.com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |mmatti at linux dot 
vnet.ibm.com

--- Comment #9 from Manjunath S Matti <mmatti at linux dot vnet.ibm.com> ---
the following code 

unsigned char g(unsigned char t[], unsigned char v)
{
        return (t[v & 0x7f] & 0x7f) | (v & 0x80);
}

on the gcc trunk and 15.2.0

      rlwinm %r9,%r4,0,25,31
      rlwinm %r4,%r4,0,0,24
      lbzx %r3,%r3,%r9
      rlwinm %r3,%r3,0,25,31
      or %r3,%r3,%r4
      blr


clang generates
       clrldi  %r5, %r4, 57
       lbzx %r3, %r3, %r5
       rlwimi %r4, %r3, 0, 25, 31
       clrldi  %r3, %r4, 32
       blr

Reply via email to