https://gcc.gnu.org/bugzilla/show_bug.cgi?id=117012
--- Comment #6 from Tamar Christina <tnfchris at gcc dot gnu.org> --- (In reply to Andrew Pinski from comment #2) > But it is still only a GCC 15 regression. > > GCC 14 produced: > ``` > cmlt v0.16b, v0.16b, #0 > adrp x0, .LC0 > ldr q31, [x0, #:lo12:.LC0] > and v0.16b, v0.16b, v31.16b > ``` > For the above one. which shows the other regression, the match.md pattern de-optimizes the aarch64 codegen because it changes the shift into an unsigned shift, which means the cmlt optimization doesn't trigger anymore. In this particular case since you need the AND anyway the pattern shouldn't match.