http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52113
Georg-Johann Lay <gjl at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Target| |avr Status|UNCONFIRMED |NEW Known to work| |4.6.2 Keywords| |ice-on-valid-code Last reconfirmed| |2012-02-03 Component|target |rtl-optimization CC| |gjl at gcc dot gnu.org Ever Confirmed|0 |1 Summary|[4.7 regression][avr] ICE: |[4.7 |in extract_insn, at |regression][lower-subreg.c] |recog.c:2123 |ICE: in extract_insn, at | |recog.c:2123 Target Milestone|--- |4.7.0 --- Comment #1 from Georg-Johann Lay <gjl at gcc dot gnu.org> 2012-02-03 18:47:10 UTC --- The ICE happens in .split2 and can be avoided by -fno-split-wide-types The strange concatn insn 26 is generated in pass .subreg2 after .split1 generated the following sequence for the multiply: (insn 26 6 27 2 (set (reg:HI 55) (zero_extend:HI (reg:QI 48 [ inactivityTimer ]))) pr52113.cpp:10 -1 (nil)) (insn 27 26 29 2 (set (reg:HI 56) (const_int 1000 [0x3e8])) pr52113.cpp:10 -1 (nil)) (insn 29 27 30 2 (set (reg:HI 18 r18) (reg:HI 55)) pr52113.cpp:10 -1 (nil)) (insn 30 29 31 2 (set (reg:HI 26 r26) (reg:HI 56)) pr52113.cpp:10 -1 (nil)) (insn 31 30 32 2 (set (reg:SI 22 r22) (mult:SI (zero_extend:SI (reg:HI 18 r18)) (zero_extend:SI (reg:HI 26 r26)))) pr52113.cpp:10 -1 (nil)) (insn 32 31 9 2 (set (reg:SI 49) (reg:SI 22 r22)) pr52113.cpp:10 -1 (nil)) The sequence comes from .split1 that splitted the following pattern that was sythesized by combine: (insn 8 6 9 2 (parallel [ (set (reg:SI 49) (mult:SI (zero_extend:SI (reg:QI 48 [ inactivityTimer ])) (const_int 1000 [0x3e8]))) (clobber (reg:HI 26 r26)) (clobber (reg:DI 18 r18)) ]) pr52113.cpp:10 111 {muluqisi3}