https://gcc.gnu.org/bugzilla/show_bug.cgi?id=118145
Andrew Pinski <pinskia at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Last reconfirmed| |2024-12-20 Summary|Regression of code |[14/15 Regression] SLP cost |generation due to an overly |model for ior/add reduction |eager vectorization attempt |should be improved Keywords| |missed-optimization Ever confirmed|0 |1 Status|UNCONFIRMED |NEW --- Comment #1 from Andrew Pinski <pinskia at gcc dot gnu.org> --- /app/example.c:10:12: note: Cost model analysis for part in loop 0: Vector cost: 24 Scalar cost: 28 If you replace | with +, it still gets vectorized. And using aarch64 with addition, the cost model for aarch64 is better and rejects the vectorization: /app/example.cpp:6:12: note: Cost model analysis for part in loop 0: Vector cost: 6 Scalar cost: 3 I suspect this is a dup of another cost model issue too.