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; ```