diff options
author | Richard Biener <rguenther@suse.de> | 2023-10-13 12:32:51 +0200 |
---|---|---|
committer | Richard Biener <rguenther@suse.de> | 2023-10-13 14:29:39 +0200 |
commit | 3179ad72f67f31824c444ef30ef171ad7495d274 (patch) | |
tree | ccde04de737ecbd00200d75549fa6de153aeede7 /gcc/fortran/trans-decl.cc | |
parent | 63eaccd114393f4692976bb78b30148e6d77a89e (diff) | |
download | gcc-3179ad72f67f31824c444ef30ef171ad7495d274.zip gcc-3179ad72f67f31824c444ef30ef171ad7495d274.tar.gz gcc-3179ad72f67f31824c444ef30ef171ad7495d274.tar.bz2 |
OMP SIMD inbranch call vectorization for AVX512 style masks
The following teaches vectorizable_simd_clone_call to handle
integer mode masks. The tricky bit is to second-guess the
number of lanes represented by a single mask argument - the following
uses simdlen and the number of mask arguments to calculate that,
assuming ABIs have them uniform.
Similar to the VOIDmode handling there's a restriction on not
supporting splitting/merging of incoming vector masks to
more/less SIMD call arguments.
PR tree-optimization/111795
* tree-vect-stmts.cc (vectorizable_simd_clone_call): Handle
integer mode mask arguments.
* gcc.target/i386/vect-simd-clone-avx512-1.c: New testcase.
* gcc.target/i386/vect-simd-clone-avx512-2.c: Likewise.
* gcc.target/i386/vect-simd-clone-avx512-3.c: Likewise.
Diffstat (limited to 'gcc/fortran/trans-decl.cc')
0 files changed, 0 insertions, 0 deletions