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.

Reply via email to