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.

Reply via email to