https://gcc.gnu.org/bugzilla/show_bug.cgi?id=93271

Andrew Pinski <pinskia at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
           Keywords|                            |wrong-code
             Target|                            |i?86-linux-gnu
             Status|UNCONFIRMED                 |NEW
   Last reconfirmed|                            |2020-01-15
     Ever confirmed|0                           |1

--- Comment #3 from Andrew Pinski <pinskia at gcc dot gnu.org> ---
(In reply to Richard Biener from comment #1)
> Thought SRA avoids float modes for total scalarization...

It is not doing total scalarization here.

Created a replacement for a offset: 0, size: 32: a$b

Access trees for a (UID: 1941):
access { base = (1941)'a', offset = 0, size = 32, expr = a.b, type = float,
reverse = 0, grp_read = 1, grp_write = 1, grp_assignment_read = 1,
grp_assignment_write = 1, grp_scalar_read = 1, grp_scalar_write = 1,
grp_total_scalarization = 0, grp_hint = 0, grp_covered = 1,
grp_unscalarizable_region = 0, grp_unscalarized_data = 0, grp_same_access_path
= 1, grp_partial_lhs = 0, grp_to_be_replaced = 1, grp_to_be_debug_replaced = 0}
...
  a$b_7 = a.b;
  goto <bb 4>; [INV]

  <bb 3> :
  _1 = a$b_8;
  _2 = _1 + 1.0e+0;
  a$b_13 = _2;

  <bb 4> :
  # a$b_8 = PHI <a$b_7(2), a$b_13(3)>
  val.0_3 ={v} val;
  if (val.0_3 != 0)
    goto <bb 3>; [INV]
  else
    goto <bb 5>; [INV]

  <bb 5> :
  a.b = a$b_8;

Reply via email to