https://gcc.gnu.org/bugzilla/show_bug.cgi?id=100711
Richard Biener <rguenth at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |segher at gcc dot gnu.org --- Comment #1 from Richard Biener <rguenth at gcc dot gnu.org> --- 7: r82:SI=~r89:SI REG_DEAD r89:SI 8: r88:V4SI=vec_duplicate(r82:SI) REG_DEAD r82:SI 9: r87:V4SI=r88:V4SI&r90:V4SI REG_DEAD r90:V4SI REG_DEAD r88:V4SI I suppose we're confused about the vec_duplicate. Would generally swapping the duplicate and the bit_not be profitable? Eventually it's a simplification combine could try - I belive it has some cases where it tries variants of the original instructions when combining. Adding a combine helper pattern looks like putting too much burden on the backend IMHO. We don't have a generic nand optab so handling this in ISEL on gimple isn't straight-forward. But combine and/or forwprop could do this.