On Wed, 18 Oct 2023, Jiang, Haochen wrote:

> On Linux/x86_64,
> 
> 3179ad72f67f31824c444ef30ef171ad7495d274 is the first bad commit
> commit 3179ad72f67f31824c444ef30ef171ad7495d274
> Author: Richard Biener rguent...@suse.de<mailto:rguent...@suse.de>
> Date:   Fri Oct 13 12:32:51 2023 +0200
> 
>     OMP SIMD inbranch call vectorization for AVX512 style masks
> 
> caused
> 
> FAIL: gcc.dg/vect/vect-simd-clone-16b.c scan-tree-dump-times vect "[\\n\\r] 
> [^\\n]* = foo\\.simdclone" 3
> FAIL: gcc.dg/vect/vect-simd-clone-16.c scan-tree-dump-times vect "[\\n\\r] 
> [^\\n]* = foo\\.simdclone" 2
> FAIL: gcc.dg/vect/vect-simd-clone-16e.c scan-tree-dump-times vect "[\\n\\r] 
> [^\\n]* = foo\\.simdclone" 3
> FAIL: gcc.dg/vect/vect-simd-clone-16f.c scan-tree-dump-times vect "[\\n\\r] 
> [^\\n]* = foo\\.simdclone" 2
> FAIL: gcc.dg/vect/vect-simd-clone-17b.c scan-tree-dump-times vect "[\\n\\r] 
> [^\\n]* = foo\\.simdclone" 3
> FAIL: gcc.dg/vect/vect-simd-clone-17.c scan-tree-dump-times vect "[\\n\\r] 
> [^\\n]* = foo\\.simdclone" 2
> FAIL: gcc.dg/vect/vect-simd-clone-17e.c scan-tree-dump-times vect "[\\n\\r] 
> [^\\n]* = foo\\.simdclone" 3
> FAIL: gcc.dg/vect/vect-simd-clone-17f.c scan-tree-dump-times vect "[\\n\\r] 
> [^\\n]* = foo\\.simdclone" 2
> FAIL: gcc.dg/vect/vect-simd-clone-18b.c scan-tree-dump-times vect "[\\n\\r] 
> [^\\n]* = foo\\.simdclone" 3
> FAIL: gcc.dg/vect/vect-simd-clone-18.c scan-tree-dump-times vect "[\\n\\r] 
> [^\\n]* = foo\\.simdclone" 2
> FAIL: gcc.dg/vect/vect-simd-clone-18e.c scan-tree-dump-times vect "[\\n\\r] 
> [^\\n]* = foo\\.simdclone" 3
> FAIL: gcc.dg/vect/vect-simd-clone-18f.c scan-tree-dump-times vect "[\\n\\r] 
> [^\\n]* = foo\\.simdclone" 2
...

It's interesting that when the target has AVX512 enabled we get
AVX512 style masks used also for SSE and AVX vector sizes but the
OMP SIMD clones for SSE and AVX vector sizes use SSE/AVX style
masks and only the AVX512 size clone uses the AVX512 integer mode
mask.  That necessarily requires an extra setup instruction for
the mask argument.

With my change I removed the ability to pass integer masks as traditional
vector mask arguments, will restore that - it's the other way around
we cannot easily support, the vectorizer using traditional vector masks
but the simd clone expecting integer modes.

Richard..

Reply via email to