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;

}

Reply via email to