]> git.ipfire.org Git - thirdparty/gcc.git/commit
Add new microarchitecture tune for SRF/GRR/CWF.
authorliuhongt <hongtao.liu@intel.com>
Tue, 24 Sep 2024 07:53:14 +0000 (15:53 +0800)
committerliuhongt <hongtao.liu@intel.com>
Thu, 10 Oct 2024 02:21:29 +0000 (10:21 +0800)
commit9c8cea8feb6cd54ef73113a0b74f1df7b60d09dc
treeefcd53d6a4f137194d58f73774349bfc3385b5a3
parent8718727509b2d038d00afa3bd5ef8e0df216a287
Add new microarchitecture tune for SRF/GRR/CWF.

For Crestmont, 4-operand vex blendv instructions come from MSROM and
is slower than 3-instructions sequence (op1 & mask) | (op2 & ~mask).
legacy blendv instruction can still be handled by the decoder.

The patch add a new tune which is enabled for all processors except
for SRF/CWF. It will use vpand + vpandn + vpor instead of
vpblendvb(similar for vblendvps/vblendvpd) for SRF/CWF.

gcc/ChangeLog:

* config/i386/i386-expand.cc (ix86_expand_sse_movcc): Guard
instruction blendv generation under new tune.
* config/i386/i386.h (TARGET_SSE_MOVCC_USE_BLENDV): New Macro.
* config/i386/x86-tune.def (X86_TUNE_SSE_MOVCC_USE_BLENDV):
New tune.
gcc/config/i386/i386-expand.cc
gcc/config/i386/i386.h
gcc/config/i386/x86-tune.def
gcc/testsuite/gcc.target/i386/sse_movcc_use_blendv.c [new file with mode: 0644]