https://gcc.gnu.org/bugzilla/show_bug.cgi?id=122095
Andrew Pinski <pinskia at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Ever confirmed|0 |1
Status|UNCONFIRMED |NEW
Last reconfirmed| |2025-09-29
Severity|normal |enhancement
--- Comment #2 from Andrew Pinski <pinskia at gcc dot gnu.org> ---
The original testcase there is not much to be done on the tree level because
of:
```
_6 = __builtin_ia32_vec_set_v16qi (_5, 10, 1);
```
But we could do it for:
```
#define vect16 __attribute__((vector_size(16)))
void ins1(vect16 char *s1)
{
vect16 char t = (vect16 char)*s1;
t[10] = 1;
*s1 = (vect16 char)t;
}
```
Where we get:
```
_1 = *s1_3(D);
t_4 = BIT_INSERT_EXPR <_1, 1, 80 (8 bits)>;
*s1_3(D) = t_4;
```
But this is context sensitive and maybe should be done late in the pipeline.