From 62189f7ab3040566ffbe17d104709b56c718df8a Mon Sep 17 00:00:00 2001 From: Craig Topper Date: Mon, 27 Nov 2017 17:51:55 +0000 Subject: [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 --- llvm/lib/Target/X86/X86ISelLowering.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'llvm/lib') 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) -- cgit v1.2.3