https://gcc.gnu.org/bugzilla/show_bug.cgi?id=77541
Uroš Bizjak <ubizjak at gmail dot com> changed: What |Removed |Added ---------------------------------------------------------------------------- Keywords| |ra Status|UNCONFIRMED |NEW Last reconfirmed| |2016-09-09 CC| |ubizjak at gmail dot com, | |vmakarov at gcc dot gnu.org Component|target |rtl-optimization Ever confirmed|0 |1 --- Comment #1 from Uroš Bizjak <ubizjak at gmail dot com> --- This is RA failure, where reload tries to fix up: (insn 54 10 12 2 (parallel [ (set (reg:DI 105 [ x4 ]) (lshiftrt:DI (reg:DI 37 r8 [ x4 ]) (reg:QI 37 r8 [ x4 ]))) (clobber (reg:CC 17 flags)) ]) pr77541.c:10 564 {*lshrdi3_1} (expr_list:REG_DEAD (reg:QI 37 r8 [ x4 ]) (expr_list:REG_UNUSED (reg:CC 17 flags) (nil)))) with: (insn 56 10 58 2 (set (reg:DI 2 cx [orig:127 x4 ] [127]) (reg:DI 37 r8 [ x4 ])) pr77541.c:10 81 {*movdi_internal} (nil)) (insn 58 56 54 2 (set (reg:QI 2 cx [orig:128 x4 ] [128]) (reg:QI 37 r8 [ x4 ])) pr77541.c:10 85 {*movqi_internal} (nil)) (insn 54 58 12 2 (parallel [ (set (reg:DI 2 cx [orig:127 x4 ] [127]) (lshiftrt:DI (reg:DI 2 cx [orig:127 x4 ] [127]) (reg:QI 2 cx [orig:128 x4 ] [128]))) (clobber (reg:CC 17 flags)) ]) pr77541.c:10 564 {*lshrdi3_1} (nil)) Please note (insn 58) that overwrites the result of (insn 56), needed in (insn 54).