summaryrefslogtreecommitdiffstats
path: root/llvm
diff options
context:
space:
mode:
authorIgor Breger <igor.breger@intel.com>2016-05-01 13:29:12 +0000
committerIgor Breger <igor.breger@intel.com>2016-05-01 13:29:12 +0000
commit110af565c7d46b7d521759ac2ef29de3baf2d09b (patch)
tree59b472ce7de250c39c345c61a0e7a7e255864589 /llvm
parentcdbc450ad6f1d72adcdf787655dc9b3517e290ef (diff)
downloadbcm5719-llvm-110af565c7d46b7d521759ac2ef29de3baf2d09b.tar.gz
bcm5719-llvm-110af565c7d46b7d521759ac2ef29de3baf2d09b.zip
getelementptr instruction, support index vector of EVT.
Differential Revision: http://reviews.llvm.org/D19775 llvm-svn: 268195
Diffstat (limited to 'llvm')
-rw-r--r--llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp3
-rw-r--r--llvm/test/CodeGen/X86/vector-gep.ll9
2 files changed, 11 insertions, 1 deletions
diff --git a/llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp b/llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp
index 25a4d7c32b5..58751b785e4 100644
--- a/llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp
+++ b/llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp
@@ -3245,7 +3245,8 @@ void SelectionDAGBuilder::visitGetElementPtr(const User &I) {
cast<VectorType>(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<SDValue, 16> Ops(VectorWidth, N);
N = DAG.getNode(ISD::BUILD_VECTOR, dl, VT, Ops);
}
diff --git a/llvm/test/CodeGen/X86/vector-gep.ll b/llvm/test/CodeGen/X86/vector-gep.ll
index 47878360ca0..4c5c348302b 100644
--- a/llvm/test/CodeGen/X86/vector-gep.ll
+++ b/llvm/test/CodeGen/X86/vector-gep.ll
@@ -114,3 +114,12 @@ entry:
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
+}
OpenPOWER on IntegriCloud