diff options
| author | Elad Cohen <elad2.cohen@intel.com> | 2017-01-12 06:49:03 +0000 |
|---|---|---|
| committer | Elad Cohen <elad2.cohen@intel.com> | 2017-01-12 06:49:03 +0000 |
| commit | c5ba925ef248b217950ed4c63398394775a9006e (patch) | |
| tree | f2ede87900a57b1e0703adc7239bf12d02dde1c4 /llvm/lib/Target/TargetMachineC.cpp | |
| parent | 56f9610b98410e22ba9c279c3e5717564654553b (diff) | |
| download | bcm5719-llvm-c5ba925ef248b217950ed4c63398394775a9006e.tar.gz bcm5719-llvm-c5ba925ef248b217950ed4c63398394775a9006e.zip | |
[X86][AVX512] Fix PR31515 - Do not flip vselect condition if it's not a vXi1 mask
r289653 added a case where `vselect <cond> <vector1> <all-zeros>`
is transformed to:
`vselect xor(cond, DAG.getConstant(1, DL, CondVT) <all-zeros> <vector1>`
This was not aimed to catch cases where Cond is not a vXi1
mask but it does. Moreover, when Cond type is VxiN (N > 1)
then xor(cond, DAG.getConstant(1, DL, CondVT) != NOT(cond).
This patch changes the above to xor with allones, and avoids
entering the case for non-mask Conds.
llvm-svn: 291745
Diffstat (limited to 'llvm/lib/Target/TargetMachineC.cpp')
0 files changed, 0 insertions, 0 deletions

