https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63281
Jiu Fu Guo <guojiufu at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |guojiufu at gcc dot gnu.org --- Comment #10 from Jiu Fu Guo <guojiufu at gcc dot gnu.org> --- With the latest trunk (AT14 is similar), the generated code looks like this: -O lis %r9,0x8123 ori %r9,%r9,0x4567 rldimi %r9,%r9,32,0 std %r9,0(%r10) Or -O3 lis %r11,0x1234 lis %r31,0x2345 lis %r12,0x3456 ori %r11,%r11,0x5678 ori %r31,%r31,0x6781 ori %r12,%r12,0x7812 rldimi %r11,%r11,32,0 rldimi %r31,%r31,32,0 rldimi %r12,%r12,32,0 ... This code seems better than the previous one.