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

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

           What    |Removed                     |Added
----------------------------------------------------------------------------
            Summary|-ftree-vectorize optimizes  |[13/14/15 Regression]
                   |away volatile write on      |-ftree-vectorize optimizes
                   |x86_64                      |away volatile write on
                   |                            |x86_64
   Target Milestone|---                         |13.4
   Last reconfirmed|                            |2024-05-29
             Status|UNCONFIRMED                 |NEW
     Ever confirmed|0                           |1

--- Comment #1 from Andrew Pinski <pinskia at gcc dot gnu.org> ---
Confirmed.
ifcvt removes it:
We go from:
```
  rt.D.2911.value_low = _25;
  rt.D.2911.value_high = _26;
  rt.D.2906.a = 99;
  rt.D.2906.b = 1;
  _32 = rt.D.2911.value_low;
  *WRITE.0_1 ={v} _32;
  _34 = rt.D.2911.value_high;
  *WRITE.0_1 ={v} _34;
```
to:
```
  rt.D.2911.value_low = _2;
  rt.D.2911.value_high = _3;
  _ifc__41 = rt.D.2906.D.2905;
  _ifc__42 = BIT_INSERT_EXPR <_ifc__41, 99, 0 (17 bits)>;
  _ifc__40 = BIT_INSERT_EXPR <_ifc__42, 1, 56 (8 bits)>;
  _44 = BIT_FIELD_REF <_ifc__42, 32, 0>;
  _46 = BIT_FIELD_REF <_ifc__40, 32, 32>;
  *WRITE.0_1 ={v} _46;
```

Reply via email to