summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Target/X86/X86InstrInfo.cpp
diff options
context:
space:
mode:
authorElena Demikhovsky <elena.demikhovsky@intel.com>2015-09-17 06:53:12 +0000
committerElena Demikhovsky <elena.demikhovsky@intel.com>2015-09-17 06:53:12 +0000
commit702a6adfaa94181ae7d9788403ffc65610910d13 (patch)
tree7d35002ff3b9b00af1f28b6719c3019af1c68561 /llvm/lib/Target/X86/X86InstrInfo.cpp
parent809aad31a05c0c93d35700024f79ac088ae72715 (diff)
downloadbcm5719-llvm-702a6adfaa94181ae7d9788403ffc65610910d13.tar.gz
bcm5719-llvm-702a6adfaa94181ae7d9788403ffc65610910d13.zip
AVX-512: shufflevector for i1 vectors <2 x i1> .. <64 x i1>
AVX-512 does not provide an instruction that shuffles mask register. So I do the following way: mask-2-simd , shuffle simd , simd-2-mask Differential Revision: http://reviews.llvm.org/D12727 llvm-svn: 247876
Diffstat (limited to 'llvm/lib/Target/X86/X86InstrInfo.cpp')
-rw-r--r--llvm/lib/Target/X86/X86InstrInfo.cpp4
1 files changed, 4 insertions, 0 deletions
diff --git a/llvm/lib/Target/X86/X86InstrInfo.cpp b/llvm/lib/Target/X86/X86InstrInfo.cpp
index 446d4bce155..d1498bb72bc 100644
--- a/llvm/lib/Target/X86/X86InstrInfo.cpp
+++ b/llvm/lib/Target/X86/X86InstrInfo.cpp
@@ -4807,8 +4807,12 @@ bool X86InstrInfo::expandPostRAPseudo(MachineBasicBlock::iterator MI) const {
return true;
case X86::KSET0B:
case X86::KSET0W: return Expand2AddrUndef(MIB, get(X86::KXORWrr));
+ case X86::KSET0D: return Expand2AddrUndef(MIB, get(X86::KXORDrr));
+ case X86::KSET0Q: return Expand2AddrUndef(MIB, get(X86::KXORQrr));
case X86::KSET1B:
case X86::KSET1W: return Expand2AddrUndef(MIB, get(X86::KXNORWrr));
+ case X86::KSET1D: return Expand2AddrUndef(MIB, get(X86::KXNORDrr));
+ case X86::KSET1Q: return Expand2AddrUndef(MIB, get(X86::KXNORQrr));
case TargetOpcode::LOAD_STACK_GUARD:
expandLoadStackGuard(MIB, *this);
return true;
OpenPOWER on IntegriCloud