http://gcc.gnu.org/bugzilla/show_bug.cgi?id=48353
Summary: Bootstrap fail due to invalid register pair being assigned to pseudo Product: gcc Version: 4.7.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: middle-end AssignedTo: unassig...@gcc.gnu.org ReportedBy: kreb...@gcc.gnu.org Created attachment 23811 --> http://gcc.gnu.org/bugzilla/attachment.cgi?id=23811 testcase Compiling the attached testcase with -O2 produces an invalid divide instruction: dsgfr %r7,%r1 The first parameter needs to an even numbered register. from ira dump: Try Assign 103(a10), cost=226: reassign to 7 changing reg in insn 50 Register 93 now in 3. Register 103 now in 7. (insn 50 40 62 4 (set (reg:TI 7 %r7 [103]) (ior:TI (ashift:TI (zero_extend:TI (mod:DI (reg:DI 8 %r8 [99]) (sign_extend:DI (reg/v:SI 1 %r1 [orig:49 copy_nregs ] [49])))) (const_int 64 [0x40])) (zero_extend:TI (div:DI (reg:DI 8 %r8 [99]) (sign_extend:DI (reg/v:SI 1 %r1 [orig:49 copy_nregs ] [49])))))) t.c:32 380 {divmodtisi3} (nil))