https://gcc.gnu.org/bugzilla/show_bug.cgi?id=69225
Uroš Bizjak <ubizjak at gmail dot com> changed: What |Removed |Added ---------------------------------------------------------------------------- Component|target |middle-end --- Comment #1 from Uroš Bizjak <ubizjak at gmail dot com> --- Not a target issue, this is what middle-end gives us with -std=c99, even for: float test (float a, float b) { return a + b; } ~/gcc-build/gcc/cc1 -O2 -m32 -std=c99 -msoft-float -fdump-tree-optimized float.c.208t.optimized: ;; Function test (test, funcdef_no=0, decl_uid=1275, cgraph_uid=0, symbol_order=0) test (float a, float b) { long double _2; long double _4; long double _5; float _6; <bb 2>: _2 = (long double) a_1(D); _4 = (long double) b_3(D); _5 = _2 + _4; _6 = (float) _5; return _6; } Without -std=c99, we get: ;; Function test (test, funcdef_no=0, decl_uid=1405, cgraph_uid=0, symbol_order=0) test (float a, float b) { float _3; <bb 2>: _3 = a_1(D) + b_2(D); return _3; }