summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-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