https://gcc.gnu.org/bugzilla/show_bug.cgi?id=82731
--- Comment #7 from Hongtao Liu ---
(In reply to Hongtao Liu from comment #4)
> (In reply to Hongtao Liu from comment #3)
> > Looks like ix86_vect_estimate_reg_pressure doesn't work here, taking a look.
>
> Oh, ix86_vect_estimate_reg_pressure
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=82731
--- Comment #6 from Richard Biener ---
That's ix86_expand_vector_init_interleave which for QI inner_mode extends
to SImode, likely because it tries to work with just SSE2?
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=82731
--- Comment #5 from Richard Biener ---
We do not BB vectorize gathers I think (ISTR some "loop" uses in the
infrastructure, not too difficult to fix I guess).
In the end the problem is RTL expansion of the CTOR and then lack of
combine?
Look
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=82731
--- Comment #4 from Hongtao Liu ---
(In reply to Hongtao Liu from comment #3)
> Looks like ix86_vect_estimate_reg_pressure doesn't work here, taking a look.
Oh, ix86_vect_estimate_reg_pressure is only for loop, BB vectorizer only use
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=82731
Hongtao Liu changed:
What|Removed |Added
CC||liuhongt at gcc dot gnu.org
--- Comment
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=82731
--- Comment #2 from Andrew Pinski ---
Note you can reproduce the same issue with SSE2 (and not just AVX):
```
#define vect16 __attribute__((vector_size(16)))
vect16 char gather(char *array, unsigned short *offset) {
return (vect16
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=82731
Andrew Pinski changed:
What|Removed |Added
Last reconfirmed||2024-04-15
Severity|normal