https://gcc.gnu.org/bugzilla/show_bug.cgi?id=118067
--- Comment #5 from Uroš Bizjak <ubizjak at gmail dot com> ---
The problematic insn is still:
(insn 9 5 10 2 (parallel [
(set (reg:HI 99 [ _2 ])
(lshiftrt:HI (subreg:HI (reg/v:V32HI 165 [ u ]) 0)
(const_int 1 [0x1])))
(clobber (reg:CC 17 flags))
]) "pr118067.c":10:8 1215 {*lshrhi3_1}
(expr_list:REG_UNUSED (reg:CC 17 flags)
(nil)))
But now reload tries to reload input operand with:
Inserting insn reload before:
191: r337:HI=r165:V32HI#0
Creating newreg=338, assigning class NO_REGS to secondary r338
191: r337:HI=r165:V32HI#0
Inserting the sec. move after:
192: r337:HI#0=r338:SI
191: r337:HI=r165:V32HI#0
Changing on before:
193: r338:SI=r165:V32HI#0
deleting insn with uid = 191.
Choosing alt 0 in insn 192: (0) =r (1) g {*movsi_internal}
Creating newreg=339, assigning class GENERAL_REGS to r339
192: r339:SI=r338:SI
Inserting insn reload after:
194: r337:HI#0=r339:SI
Choosing alt 1 in insn 194: (0) m (1) re {*movsi_internal}
Change to class INDEX_GPR16 for r339
Creating newreg=340, assigning class NO_REGS to r340
194: r340:SI=r339:SI
Inserting insn reload after:
195: r337:HI#0=r340:SI
Choosing alt 0 in insn 195: (0) =r (1) g {*movsi_internal}
Creating newreg=341, assigning class GENERAL_REGS to r341
195: r341:SI=r340:SI
Inserting insn reload after:
196: r337:HI#0=r341:SI
Choosing alt 1 in insn 196: (0) m (1) re {*movsi_internal}
Change to class INDEX_GPR16 for r341
Creating newreg=342, assigning class NO_REGS to r342
196: r342:SI=r341:SI
Inserting insn reload after:
197: r337:HI#0=r342:SI
And looping from here.