aboutsummaryrefslogtreecommitdiff
path: root/gcc/fortran/trans-decl.cc
diff options
context:
space:
mode:
authorRichard Biener <rguenther@suse.de>2023-10-13 12:32:51 +0200
committerRichard Biener <rguenther@suse.de>2023-10-13 14:29:39 +0200
commit3179ad72f67f31824c444ef30ef171ad7495d274 (patch)
treeccde04de737ecbd00200d75549fa6de153aeede7 /gcc/fortran/trans-decl.cc
parent63eaccd114393f4692976bb78b30148e6d77a89e (diff)
downloadgcc-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