diff options
| author | Craig Topper <craig.topper@intel.com> | 2017-11-27 17:51:55 +0000 | 
|---|---|---|
| committer | Craig Topper <craig.topper@intel.com> | 2017-11-27 17:51:55 +0000 | 
| commit | 62189f7ab3040566ffbe17d104709b56c718df8a (patch) | |
| tree | d58461a719aa7a6281a007c8a0343ff54564b3ff /llvm/lib | |
| parent | 052436f76868808789b403a246a60859d5c9c60f (diff) | |
| download | bcm5719-llvm-62189f7ab3040566ffbe17d104709b56c718df8a.tar.gz bcm5719-llvm-62189f7ab3040566ffbe17d104709b56c718df8a.zip | |
[X86] Make getSetCCResultType return vXi1 for any vXi32/vXi64 vector over 512 bits long when AVX512 is enabled.
Similar for vXi16/vXi8 with BWI.
Any vector larger than 512 bits will be split to 512 bits during legalization. But without this we will fold sexts with them before that making it difficult to recover leading to scalarization.
llvm-svn: 319059
Diffstat (limited to 'llvm/lib')
| -rw-r--r-- | llvm/lib/Target/X86/X86ISelLowering.cpp | 2 | 
1 files changed, 1 insertions, 1 deletions
| diff --git a/llvm/lib/Target/X86/X86ISelLowering.cpp b/llvm/lib/Target/X86/X86ISelLowering.cpp index 5f4e4d7a113..7dd3e638055 100644 --- a/llvm/lib/Target/X86/X86ISelLowering.cpp +++ b/llvm/lib/Target/X86/X86ISelLowering.cpp @@ -1722,7 +1722,7 @@ EVT X86TargetLowering::getSetCCResultType(const DataLayout &DL,      MVT VVT = VT.getSimpleVT();      const unsigned NumElts = VVT.getVectorNumElements();      MVT EltVT = VVT.getVectorElementType(); -    if (VVT.is512BitVector()) { +    if (VVT.getSizeInBits() >= 512) {        if (Subtarget.hasAVX512())          if (EltVT == MVT::i32 || EltVT == MVT::i64 ||              EltVT == MVT::f32 || EltVT == MVT::f64) | 

