http://gcc.gnu.org/bugzilla/show_bug.cgi?id=56347
--- Comment #3 from John David Anglin <danglin at gcc dot gnu.org> 2013-02-15 19:07:29 UTC --- In final: (note 135 134 137 [bb 11] NOTE_INSN_BASIC_BLOCK) (insn:TI 137 135 138 (set (reg:SF 68 %fr22 [orig:303 D.1185 ] [303]) (minus:SF (reg:SF 58 %fr17 [orig:107 D.1185 ] [107]) (reg:SF 58 %fr17 [orig:107 D.1185 ] [107]))) integer_exponentiation_2.f90:83 140 {subsf3} (nil)) (insn:TI 138 137 139 (set (reg:SF 68 %fr22 [orig:304 D.1185 ] [304]) (abs:SF (reg:SF 68 %fr22 [orig:303 D.1185 ] [303]))) integer_exponentiation_2.f90:83 150 {abssf2} (nil)) In expand: ;; Generating RTL for gimple basic block 12 ;; if (_131 < _143) (insn 136 135 137 (set (reg:SF 302 [ D.1185 ]) (mult:SF (reg:SF 104 [ D.1185 ]) (reg:SF 200 [ D.1185 ]))) integer_exponentiation_2.f90:39 -1 (nil)) (insn 137 136 138 (set (reg:SF 303 [ D.1185 ]) (minus:SF (reg:SF 302 [ D.1185 ]) (reg:SF 107 [ D.1185 ]))) integer_exponentiation_2.f90:83 -1 (nil)) (insn 138 137 139 (set (reg:SF 304 [ D.1185 ]) (abs:SF (reg:SF 303 [ D.1185 ]))) integer_exponentiation_2.f90:83 -1 (nil)) The tree code is: _131 = _130 * 9.99999974737875163555145263671875e-6; ... ;; basic block 12, loop depth 0 ;; pred: 11 powmult_43 = _12 * powmult_177; _142 = powmult_43 - _17; _143 = ABS_EXPR <_142>; if (_131 < _143) goto <bb 3>; else goto <bb 13>;