https://gcc.gnu.org/bugzilla/show_bug.cgi?id=88531

--- Comment #3 from Florian Schornbaum <florian.schornbaum at siemens dot com> 
---
Thank you for your very quick replies!

I'm aware of 88464 (I think this is the recent work you are referring to?), but
this had no effect on the index data type issue I was describing.

Even if the gathers/scatters do widening themselves, my code example is not
vectorized when using int16_t. Probably because no gather/scatter is created by
GCC in the first place?

As for uint32_t with -m64 (= unsgined int on x86-64, and sadly the problem that
we are facing): I'm aware that manually transforming the index array from
uint32_t to int64_t is a solution, but one that comes at a cost for us.
Looking at clang, they use "vpmovzxdq" when loading the data. Which is the only
difference to the int64_t/uint64_t version, which uses a different load.

Are there any plans for GCC to make these "unfitting" index data types work
with AVX-512 gathers/scatters?

Reply via email to