x86: Optimize load of const FP all bits set vectors
authorH.J. Lu <hjl.tools@gmail.com>
Fri, 6 Aug 2021 19:32:01 +0000 (12:32 -0700)
committerH.J. Lu <hjl.tools@gmail.com>
Tue, 10 Aug 2021 04:41:35 +0000 (21:41 -0700)
commit3d7ccbc1efbd475031a9a4a6110c531f71fbf631
tree0161a6c4b497a2dec9b32bb14801f336cd26b141
parent813ccbe9d272cd67a8f075beea280de95f807492
x86: Optimize load of const FP all bits set vectors

Check float_vector_all_ones_operand for vector floating-point modes to
optimize load of const floating-point all bits set vectors.

gcc/

PR target/101804
* config/i386/constraints.md (BC): Document for integer SSE
constant all bits set operand.
(BF): New constraint for const floating-point all bits set
vectors.
* config/i386/i386.c (standard_sse_constant_p): Likewise.
(standard_sse_constant_opcode): Likewise.
* config/i386/sse.md (sseconstm1): New mode attribute.
(mov<mode>_internal): Replace BC with <sseconstm1>.

gcc/testsuite/

PR target/101804
* gcc.target/i386/avx2-gather-2.c: Pass -march=skylake instead
of "-mavx2 -mtune=skylake".  Scan vpcmpeqd.
gcc/config/i386/constraints.md
gcc/config/i386/i386.c
gcc/config/i386/sse.md
gcc/testsuite/gcc.target/i386/avx2-gather-2.c