https://gcc.gnu.org/bugzilla/show_bug.cgi?id=104479
Richard Biener <rguenth at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Target Milestone|--- |12.0 CC| |rguenth at gcc dot gnu.org, | |rsandifo at gcc dot gnu.org Ever confirmed|0 |1 Status|UNCONFIRMED |NEW Last reconfirmed| |2022-02-10 --- Comment #1 from Richard Biener <rguenth at gcc dot gnu.org> --- Confirmed. When uncond_op is expensive (there's *div amongst them) that's definitely unwanted. OTOH when it is cheap then combining will reduce latency. GIMPLE wise it's a neutral transform if uncond_op is not single-use unless we need two v_c_es. In the assembly it's masked vpsrld vs. masked vpblendmd, it's not entirely clear why one should be slower than the other (but yes, blends are usually very cheap and also not resource constrained).