[i386] Mask generation in avx2intrin.h

Marc Glisse marc.glisse@inria.fr
Tue Dec 5 12:19:00 GMT 2017


Adding Cc: Uros and Kirill
https://gcc.gnu.org/ml/gcc-patches/2017-11/msg02233.html

On Sat, 25 Nov 2017, Marc Glisse wrote:

> Hello,
>
> the way full masks are generated currently in avx2intrin.h is questionable: 
> opaque for the inline functions, weird/wrong for the macros.
>
> It is possible we may want to add code so the constant mask with all ones may 
> be generated with vxorpd+vcmpeqpd instead of loading it from memory, but that 
> looks like something that should be decided globally, not in each instruction 
> that uses it.
>
> Bootstrap+regtest on x86_64-pc-linux-gnu (skylake).
>
> 2017-11-27  Marc Glisse  <marc.glisse@inria.fr>
>
> 	PR target/80885
> 	* config/i386/avx2intrin.h (_mm_i32gather_pd): Rewrite mask generation.
> 	(_mm256_i32gather_pd): Likewise.
> 	(_mm_i64gather_pd): Likewise.
> 	(_mm256_i64gather_pd): Likewise.
> 	(_mm_i32gather_ps): Likewise.
> 	(_mm256_i32gather_ps): Likewise.
> 	(_mm_i64gather_ps): Likewise.
> 	(_mm256_i64gather_ps): Likewise.

-- 
Marc Glisse



More information about the Gcc-patches mailing list