Constant fold extractelement(zero, x) -> zero
authorChris Lattner <sabre@nondot.org>
Fri, 7 Apr 2006 04:44:06 +0000 (04:44 +0000)
committerChris Lattner <sabre@nondot.org>
Fri, 7 Apr 2006 04:44:06 +0000 (04:44 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27479 91177308-0d34-0410-b5e6-96231b3b80d8

lib/VMCore/ConstantFold.cpp

index d63fb6b2db1040faf2e0fb3a851aaf7cad5427bd..94c8651609d8bba3001e00536dc6cacaba30abc4 100644 (file)
@@ -836,6 +836,9 @@ Constant *llvm::ConstantFoldExtractElementInstruction(const Constant *Val,
                                                       const Constant *Idx) {
   if (isa<UndefValue>(Val))  // ee(undef, x) -> undef
     return UndefValue::get(cast<PackedType>(Val->getType())->getElementType());
+  if (Val->isNullValue())  // ee(zero, x) -> zero
+    return Constant::getNullValue(
+                          cast<PackedType>(Val->getType())->getElementType());
   
   if (const ConstantPacked *CVal = dyn_cast<ConstantPacked>(Val)) {
     if (const ConstantUInt *CIdx = dyn_cast<ConstantUInt>(Idx)) {