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.