Index: llvm/trunk/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp =================================================================== --- llvm/trunk/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp +++ llvm/trunk/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp @@ -3245,7 +3245,8 @@ cast(I.getType())->getVectorNumElements() : 0; if (VectorWidth && !N.getValueType().isVector()) { - MVT VT = MVT::getVectorVT(N.getValueType().getSimpleVT(), VectorWidth); + LLVMContext &Context = *DAG.getContext(); + EVT VT = EVT::getVectorVT(Context, N.getValueType(), VectorWidth); SmallVector Ops(VectorWidth, N); N = DAG.getNode(ISD::BUILD_VECTOR, dl, VT, Ops); } Index: llvm/trunk/test/CodeGen/X86/vector-gep.ll =================================================================== --- llvm/trunk/test/CodeGen/X86/vector-gep.ll +++ llvm/trunk/test/CodeGen/X86/vector-gep.ll @@ -114,3 +114,12 @@ ret <4 x i16*> %A ;CHECK: ret } + +;CHECK-LABEL: AGEP9: +define <64 x i16*> @AGEP9(i16* %param, <64 x i32> %off) nounwind { +entry: +;CHECK: vbroadcastss + %A = getelementptr i16, i16* %param, <64 x i32> %off + ret <64 x i16*> %A +;CHECK: ret +}