https://gcc.gnu.org/bugzilla/show_bug.cgi?id=119702
--- Comment #6 from Peter Bergner <bergner at gcc dot gnu.org> --- (In reply to Avinash Jayakar from comment #2) > And should the same behaviour happen with the following code as well? > > 1. a[0] *= 2; a[1] *= 2; > 2. a[0] += a[0]; a[1] += a[1]; > > All of these emit the same left shift by 1 instruction with current gcc's > trunk. If the vaddudm is the fastest sequence, then yes. I think you should fire off a git bisect to track down which commit changed the behavior from GCC 14 and then you can decide how to fix it.