summaryrefslogtreecommitdiffstats
path: root/clang-tools-extra/clang-tidy/llvm
diff options
context:
space:
mode:
authorMichael Zuckerman <Michael.zuckerman@intel.com>2016-12-14 14:57:10 +0000
committerMichael Zuckerman <Michael.zuckerman@intel.com>2016-12-14 14:57:10 +0000
commit1ce2a23a1e22b7ceded0c989fc7b79da05cfe9bb (patch)
treedbac8fb2901a705fc16b5d2582fa9b8d203e2fe7 /clang-tools-extra/clang-tidy/llvm
parentebe58191c8cb58badad3707e90ed4c7c43410674 (diff)
downloadbcm5719-llvm-1ce2a23a1e22b7ceded0c989fc7b79da05cfe9bb.tar.gz
bcm5719-llvm-1ce2a23a1e22b7ceded0c989fc7b79da05cfe9bb.zip
Fix bug 30945- [AVX512] Failure to flip vector comparison to remove not mask instruction
adding new optimization opportunity by adding new X86ISelLowering pattern. The test case was shown in https://llvm.org/bugs/show_bug.cgi?id=30945. Test explanation: Select gets three arguments mask, op and op2. In this case, the Mask is a result of ICMP. The ICMP instruction compares (with equal operand) the zero initializer vector and the result of the first ICMP. In general, The result of "cmp eq, op1, zero initializers" is "not(op1)" where op1 is a mask. By rearranging of the two arguments inside the Select instruction, we can get the same result. Without the necessary of the middle phase ("cmp eq, op1, zero initializers"). Missed optimization opportunity: vpcmpled %zmm0, %zmm1, %k0 knotw %k0, %k1 can be combine to vpcmpgtd %zmm0, %zmm2, %k1 Reviewers: 1. delena 2. igorb Commited after check all Differential Revision: https://reviews.llvm.org/D27160 llvm-svn: 289653
Diffstat (limited to 'clang-tools-extra/clang-tidy/llvm')
0 files changed, 0 insertions, 0 deletions
OpenPOWER on IntegriCloud