https://gcc.gnu.org/bugzilla/show_bug.cgi?id=119189
--- Comment #2 from Jeffrey A. Law <law at gcc dot gnu.org> --- Almost certainly the change I made to cut down on the size of the livein sets. It can leave the RTX iterator in an undesirable place in some cases resulting in missed optimizations. I saw it right before I went to bed last night on rv64 and saw it in my aarch64 run that completed overnight as well: Tests that now fail, but worked before (7 tests): gcc: gcc.target/aarch64/popcnt-eq-1.c check-function-bodies h16 gcc: gcc.target/aarch64/popcnt-le-3.c check-function-bodies gt16 gcc: gcc.target/aarch64/popcnt-le-3.c check-function-bodies le16 gcc: gcc.target/aarch64/tbz_2.c check-function-bodies g6 gcc: gcc.target/aarch64/tbz_2.c check-function-bodies g7 gcc: gcc.target/aarch64/tbz_2.c check-function-bodies g8 gcc: gcc.target/aarch64/vec-init-22-speed.c scan-assembler-times \\tfmov\\ts[0-9]+, w[0-9]+ 2 The fix records where we want the RTX iterator to point so it won't matter if we advanced over the SET_DEST or not. We can just advance it until we hit the right point.