]> granicus.if.org Git - clang/commitdiff
simplify my previous patch.
authorChris Lattner <sabre@nondot.org>
Wed, 23 Dec 2009 21:33:41 +0000 (21:33 +0000)
committerChris Lattner <sabre@nondot.org>
Wed, 23 Dec 2009 21:33:41 +0000 (21:33 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@92057 91177308-0d34-0410-b5e6-96231b3b80d8

lib/CodeGen/CGExpr.cpp

index 6b54d969f8e1f00d3fb196e1ab97a65aafdc50de..66831c293d66e96a67eb75682bba9a9b641825e9 100644 (file)
@@ -1215,17 +1215,10 @@ EmitExtVectorElementExpr(const ExtVectorElementExpr *E) {
     assert(VT && "Result must be a vector");
     llvm::Value *Vec = EmitScalarExpr(E->getBase());
     
-    // Store the vector to memory (because LValue wants an address) and use an
-    // index list of 0,1,2,3 which is the full vector.
+    // Store the vector to memory (because LValue wants an address).
     llvm::Value *VecMem =CreateTempAlloca(ConvertType(E->getBase()->getType()));
     Builder.CreateStore(Vec, VecMem);
-
-    llvm::SmallVector<llvm::Constant *, 4> CElts;
-    for (unsigned i = 0, e = VT->getNumElements(); i != e; ++i)
-      CElts.push_back(llvm::ConstantInt::get(Int32Ty, i));
-                      
-    llvm::Constant *Elts = llvm::ConstantVector::get(&CElts[0], CElts.size());
-    Base = LValue::MakeExtVectorElt(VecMem, Elts, 0);
+    Base = LValue::MakeAddr(VecMem, Qualifiers());
   }
   
   // Encode the element access list into a vector of unsigned indices.