[PATCH] D38677: [ConstantFold] Fix a crash when folding a GEP that has vector index
Haicheng Wu via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Fri Oct 27 19:27:44 PDT 2017
This revision was automatically updated to reflect the committed changes.
Closed by commit rL316824: [ConstantFold] Fix a crash when folding a GEP that has vector index (authored by haicheng).
Changed prior to commit:
https://reviews.llvm.org/D38677?vs=120646&id=120727#toc
Repository:
rL LLVM
https://reviews.llvm.org/D38677
Files:
llvm/trunk/lib/IR/ConstantFold.cpp
llvm/trunk/test/Transforms/InstCombine/gep-vector.ll
Index: llvm/trunk/test/Transforms/InstCombine/gep-vector.ll
===================================================================
--- llvm/trunk/test/Transforms/InstCombine/gep-vector.ll
+++ llvm/trunk/test/Transforms/InstCombine/gep-vector.ll
@@ -13,3 +13,12 @@
%el = getelementptr inbounds i64, i64* undef, <8 x i64> undef
ret <8 x i64*> %el
}
+
+ at block = global [64 x [8192 x i8]] zeroinitializer, align 1
+
+; CHECK-LABEL:vectorindex
+; CHECK-NEXT: ret <2 x i8*> getelementptr inbounds ([64 x [8192 x i8]], [64 x [8192 x i8]]* @block, <2 x i64> zeroinitializer, <2 x i64> <i64 0, i64 1>, <2 x i64> <i64 8192, i64 8192>)
+define <2 x i8*> @vectorindex() {
+ %1 = getelementptr inbounds [64 x [8192 x i8]], [64 x [8192 x i8]]* @block, i64 0, <2 x i64> <i64 0, i64 1>, i64 8192
+ ret <2 x i8*> %1
+}
Index: llvm/trunk/lib/IR/ConstantFold.cpp
===================================================================
--- llvm/trunk/lib/IR/ConstantFold.cpp
+++ llvm/trunk/lib/IR/ConstantFold.cpp
@@ -2219,6 +2219,9 @@
Unknown = true;
continue;
}
+ if (!isa<ConstantInt>(Idxs[i - 1]))
+ // FIXME: add the support of cosntant vector index.
+ continue;
if (InRangeIndex && i == *InRangeIndex + 1) {
// If an index is marked inrange, we cannot apply this canonicalization to
// the following index, as that will cause the inrange index to point to
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D38677.120727.patch
Type: text/x-patch
Size: 1395 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20171028/50f4f362/attachment.bin>
More information about the llvm-commits
mailing list