https://gcc.gnu.org/bugzilla/show_bug.cgi?id=96166
Jakub Jelinek <jakub at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |uros at gcc dot gnu.org --- Comment #5 from Jakub Jelinek <jakub at gcc dot gnu.org> --- So perhaps a peephole2 that matches (insn 15 6 9 2 (set (reg:V2SI 21 xmm1 [91]) (mem:V2SI (reg/v/f:DI 5 di [orig:86 x ] [86]) [0 MEM <long unsigned int> [(char * {ref-all})x_2(D)]+0 S8 A8])) "pr96166.c":13:19 1288 {*movv2si_internal} (nil)) (insn 9 15 10 2 (set (reg:V2SI 20 xmm0 [88]) (vec_select:V2SI (reg:V2SI 21 xmm1 [91]) (parallel [ (const_int 1 [0x1]) (const_int 0 [0]) ]))) "pr96166.c":13:19 1410 {*mmx_pshufd_1} (expr_list:REG_DEAD (reg:V2SI 21 xmm1 [91]) (expr_list:REG_EQUIV (mem:V2SI (reg/v/f:DI 5 di [orig:86 x ] [86]) [0 MEM <long unsigned int> [(char * {ref-all})x_2(D)]+0 S8 A8]) (nil)))) (insn 10 9 17 2 (set (mem:V2SI (reg/v/f:DI 5 di [orig:86 x ] [86]) [0 MEM <long unsigned int> [(char * {ref-all})x_2(D)]+0 S8 A8]) (reg:V2SI 20 xmm0 [88])) "pr96166.c":13:19 1288 {*movv2si_internal} (expr_list:REG_DEAD (reg:V2SI 20 xmm0 [88]) (expr_list:REG_DEAD (reg/v/f:DI 5 di [orig:86 x ] [86]) (nil)))) back into the rotate of the MEM? No other ideas on my side :(