https://gcc.gnu.org/bugzilla/show_bug.cgi?id=117012
Andrew Pinski <pinskia at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |NEW Target Milestone|--- |15.0 Last reconfirmed| |2024-10-08 Ever confirmed|0 |1 --- Comment #2 from Andrew Pinski <pinskia at gcc dot gnu.org> --- Confirmed. Here is a testcase which shows the issue without that match patch: ``` #define vector16 __attribute__((vector_size(16))) vector16 unsigned char g (vector16 unsigned char a) { vector16 signed char b = (vector16 signed char)a; b = b >> 7; vector16 unsigned char c = (vector16 unsigned char)b; vector16 unsigned char d = { 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0 }; return c & d; } ``` 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.