Clarify a comment.
authorMatthijs Kooijman <matthijs@stdin.nl>
Wed, 11 Jun 2008 09:00:12 +0000 (09:00 +0000)
committerMatthijs Kooijman <matthijs@stdin.nl>
Wed, 11 Jun 2008 09:00:12 +0000 (09:00 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52212 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Transforms/Scalar/InstructionCombining.cpp

index 3b181c85d261afff70c01891efa38f72b1c44ff9..a1a3333382b3a465b7166209a34198ac5f929ecf 100644 (file)
@@ -10613,7 +10613,6 @@ static Value *FindScalarElement(Value *V, unsigned EltNo) {
 }
 
 Instruction *InstCombiner::visitExtractElementInst(ExtractElementInst &EI) {
-
   // If vector val is undef, replace extract with scalar undef.
   if (isa<UndefValue>(EI.getOperand(0)))
     return ReplaceInstUsesWith(EI, UndefValue::get(EI.getType()));
@@ -10623,8 +10622,9 @@ Instruction *InstCombiner::visitExtractElementInst(ExtractElementInst &EI) {
     return ReplaceInstUsesWith(EI, Constant::getNullValue(EI.getType()));
   
   if (ConstantVector *C = dyn_cast<ConstantVector>(EI.getOperand(0))) {
-    // If vector val is constant with uniform operands, replace EI
-    // with that operand
+    // If vector val is constant with all elements the same, replace EI with
+    // that element. When the elements are not identical, we cannot replace yet
+    // (we do that below, but only when the index is constant).
     Constant *op0 = C->getOperand(0);
     for (unsigned i = 1; i < C->getNumOperands(); ++i)
       if (C->getOperand(i) != op0) {