Avoid doing something dumb like rewriting using a 64-bit iv in 32-bit mode.
authorEvan Cheng <evan.cheng@apple.com>
Mon, 29 Oct 2007 07:57:50 +0000 (07:57 +0000)
committerEvan Cheng <evan.cheng@apple.com>
Mon, 29 Oct 2007 07:57:50 +0000 (07:57 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43446 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Target/X86/X86ISelLowering.cpp

index 172aa5338b94abef708d3ca6a6d0c04fafd04f70..5decef2dfa550a40cdbb3de16148f70bab890b49 100644 (file)
@@ -5125,7 +5125,11 @@ bool X86TargetLowering::isLegalAddressingMode(const AddrMode &AM,
 bool X86TargetLowering::isTruncateFree(const Type *Ty1, const Type *Ty2) const {
   if (!Ty1->isInteger() || !Ty2->isInteger())
     return false;
-  return Ty1->getPrimitiveSizeInBits() > Ty2->getPrimitiveSizeInBits();
+  unsigned NumBits1 = Ty1->getPrimitiveSizeInBits();
+  unsigned NumBits2 = Ty2->getPrimitiveSizeInBits();
+  if (NumBits1 <= NumBits2)
+    return false;
+  return Subtarget->is64Bit() || NumBits1 < 64;
 }