aboutsummaryrefslogtreecommitdiff
path: root/gcc/cp/lambda.cc
diff options
context:
space:
mode:
authorliuhongt <hongtao.liu@intel.com>2022-04-27 16:24:44 +0800
committerliuhongt <hongtao.liu@intel.com>2022-05-09 21:21:32 +0800
commitfcda0efccad41eba9134c1bd9d024a93d93fb82f (patch)
treec194330658a2754b92a252b80699c174472a80a1 /gcc/cp/lambda.cc
parentaddedd48e805edcf555c4fef80e531cd7dbf0c45 (diff)
downloadgcc-fcda0efccad41eba9134c1bd9d024a93d93fb82f.zip
gcc-fcda0efccad41eba9134c1bd9d024a93d93fb82f.tar.gz
gcc-fcda0efccad41eba9134c1bd9d024a93d93fb82f.tar.bz2
Implement permutation with pslldq + psrldq + por when pshufb is not available.
pand/pandn may be used to clear upper/lower bits of the operands, in that case there will be 4-5 instructions for permutation, and it's still better than scalar codes. gcc/ChangeLog: PR target/105354 * config/i386/i386-expand.cc (expand_vec_perm_pslldq_psrldq_por): New function. (ix86_expand_vec_perm_const_1): Try expand_vec_perm_pslldq_psrldq_por for both 3-instruction and 4/5-instruction sequence. gcc/testsuite/ChangeLog: * gcc.target/i386/pr105354-1.c: New test. * gcc.target/i386/pr105354-2.c: New test.
Diffstat (limited to 'gcc/cp/lambda.cc')
0 files changed, 0 insertions, 0 deletions