diff options
Diffstat (limited to 'llvm/lib')
| -rw-r--r-- | llvm/lib/Analysis/VectorUtils.cpp | 7 | 
1 files changed, 4 insertions, 3 deletions
| diff --git a/llvm/lib/Analysis/VectorUtils.cpp b/llvm/lib/Analysis/VectorUtils.cpp index 2f4f72aaa6c..c639f36c512 100644 --- a/llvm/lib/Analysis/VectorUtils.cpp +++ b/llvm/lib/Analysis/VectorUtils.cpp @@ -280,9 +280,10 @@ Value *llvm::findScalarElement(Value *V, unsigned EltNo) {    }    // Extract a value from a vector add operation with a constant zero. -  Value *Val = nullptr; Constant *Con = nullptr; -  if (match(V, m_Add(m_Value(Val), m_Constant(Con)))) -    if (Constant *Elt = Con->getAggregateElement(EltNo)) +  // TODO: Use getBinOpIdentity() to generalize this. +  Value *Val; Constant *C; +  if (match(V, m_Add(m_Value(Val), m_Constant(C)))) +    if (Constant *Elt = C->getAggregateElement(EltNo))        if (Elt->isNullValue())          return findScalarElement(Val, EltNo); | 

