how it started: (set (reg:CC 136) (compare:CC (reg:DI 151 [+8 ]) (const_int 0 [0x0]))) 464 {*cmpdi_internal1} (nil)) what was tried: (set (reg:CC 136) (compare:CC (neg:DI (reg:DI 149 [ a+8 ])) (const_int 0 [0x0]))) -1 (nil)) what it became: (parallel [ (set (reg:CC 136) (compare:CC (neg:DI (reg:DI 149 [ a+8 ])) (const_int 0 [0x0]))) (clobber (scratch:DI)) ]) 105 {*rs6000.md:2102} (nil)) what it was "restored" as: (parallel [ (set (reg:CC 136) (compare:CC (reg:DI 151 [+8 ]) (const_int 0 [0x0]))) (clobber (scratch:DI)) ]) 464 {*cmpdi_internal1} (nil))