summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSanjay Patel <spatel@rotateright.com>2019-09-09 17:16:03 +0000
committerSanjay Patel <spatel@rotateright.com>2019-09-09 17:16:03 +0000
commitc0728eac15b416206a715f4ee84e5956aa169c91 (patch)
tree2bc5371463afda5bf603189e6777fc05424c8b4e
parentbfb00e3d536e4a907f257684eba7836951677864 (diff)
downloadbcm5719-llvm-c0728eac15b416206a715f4ee84e5956aa169c91.tar.gz
bcm5719-llvm-c0728eac15b416206a715f4ee84e5956aa169c91.zip
[SLP] add test for over-vectorization (PR33958); NFC
llvm-svn: 371426
-rw-r--r--llvm/test/Transforms/SLPVectorizer/X86/consecutive-access.ll16
1 files changed, 16 insertions, 0 deletions
diff --git a/llvm/test/Transforms/SLPVectorizer/X86/consecutive-access.ll b/llvm/test/Transforms/SLPVectorizer/X86/consecutive-access.ll
index f394dc74397..cb4d7b707e9 100644
--- a/llvm/test/Transforms/SLPVectorizer/X86/consecutive-access.ll
+++ b/llvm/test/Transforms/SLPVectorizer/X86/consecutive-access.ll
@@ -549,6 +549,22 @@ for.body: ; preds = %entry, %for.body
br i1 %cmp, label %for.body, label %for.cond.cleanup
}
+@g1 = external global i32, align 4
+@g2 = external global i32, align 4
+
+define void @PR33958(i32** nocapture %p) {
+; CHECK-LABEL: @PR33958(
+; CHECK-NEXT: [[ARRAYIDX1:%.*]] = getelementptr inbounds i32*, i32** [[P:%.*]], i64 1
+; CHECK-NEXT: [[TMP1:%.*]] = bitcast i32** [[P]] to <2 x i32*>*
+; CHECK-NEXT: store <2 x i32*> <i32* @g1, i32* @g2>, <2 x i32*>* [[TMP1]], align 8
+; CHECK-NEXT: ret void
+;
+ store i32* @g1, i32** %p, align 8
+ %arrayidx1 = getelementptr inbounds i32*, i32** %p, i64 1
+ store i32* @g2, i32** %arrayidx1, align 8
+ ret void
+}
+
attributes #0 = { nounwind ssp uwtable "less-precise-fpmad"="false" "no-frame-pointer-elim"="true" "no-frame-pointer-elim-non-leaf" "no-infs-fp-math"="false" "no-nans-fp-math"="false" "stack-protector-buffer-size"="8" "unsafe-fp-math"="false" "use-soft-float"="false" }
!llvm.ident = !{!0}
OpenPOWER on IntegriCloud