diff options
Diffstat (limited to 'llvm/test/Transforms/SLPVectorizer/X86/diamond.ll')
| -rw-r--r-- | llvm/test/Transforms/SLPVectorizer/X86/diamond.ll | 39 |
1 files changed, 17 insertions, 22 deletions
diff --git a/llvm/test/Transforms/SLPVectorizer/X86/diamond.ll b/llvm/test/Transforms/SLPVectorizer/X86/diamond.ll index 83b4fdce4e5..8e85cb6c9b8 100644 --- a/llvm/test/Transforms/SLPVectorizer/X86/diamond.ll +++ b/llvm/test/Transforms/SLPVectorizer/X86/diamond.ll @@ -18,25 +18,25 @@ target triple = "x86_64-apple-macosx10.8.0" ; CHECK: ret define i32 @foo(i32* noalias nocapture %B, i32* noalias nocapture %A, i32 %n, i32 %m) #0 { entry: - %0 = load i32* %A, align 4, !tbaa !0 + %0 = load i32* %A, align 4 %mul238 = add i32 %m, %n %add = mul i32 %0, %mul238 - store i32 %add, i32* %B, align 4, !tbaa !0 + store i32 %add, i32* %B, align 4 %arrayidx4 = getelementptr inbounds i32* %A, i64 1 - %1 = load i32* %arrayidx4, align 4, !tbaa !0 + %1 = load i32* %arrayidx4, align 4 %add8 = mul i32 %1, %mul238 %arrayidx9 = getelementptr inbounds i32* %B, i64 1 - store i32 %add8, i32* %arrayidx9, align 4, !tbaa !0 + store i32 %add8, i32* %arrayidx9, align 4 %arrayidx10 = getelementptr inbounds i32* %A, i64 2 - %2 = load i32* %arrayidx10, align 4, !tbaa !0 + %2 = load i32* %arrayidx10, align 4 %add14 = mul i32 %2, %mul238 %arrayidx15 = getelementptr inbounds i32* %B, i64 2 - store i32 %add14, i32* %arrayidx15, align 4, !tbaa !0 + store i32 %add14, i32* %arrayidx15, align 4 %arrayidx16 = getelementptr inbounds i32* %A, i64 3 - %3 = load i32* %arrayidx16, align 4, !tbaa !0 + %3 = load i32* %arrayidx16, align 4 %add20 = mul i32 %3, %mul238 %arrayidx21 = getelementptr inbounds i32* %B, i64 3 - store i32 %add20, i32* %arrayidx21, align 4, !tbaa !0 + store i32 %add20, i32* %arrayidx21, align 4 ret i32 0 } @@ -52,32 +52,27 @@ entry: ; CHECK: @foo_fail ; CHECK-NOT: load <4 x i32> ; CHECK: ret -define i32 @foo_fail(i32* noalias nocapture %B, i32* noalias nocapture %A, i32 %n, i32 %m) #0 { +define i32 @foo_fail(i32* noalias nocapture %B, i32* noalias nocapture %A, i32 %n, i32 %m) { entry: - %0 = load i32* %A, align 4, !tbaa !0 + %0 = load i32* %A, align 4 %mul238 = add i32 %m, %n %add = mul i32 %0, %mul238 - store i32 %add, i32* %B, align 4, !tbaa !0 + store i32 %add, i32* %B, align 4 %arrayidx4 = getelementptr inbounds i32* %A, i64 1 - %1 = load i32* %arrayidx4, align 4, !tbaa !0 + %1 = load i32* %arrayidx4, align 4 %add8 = mul i32 %1, %mul238 %arrayidx9 = getelementptr inbounds i32* %B, i64 1 - store i32 %add8, i32* %arrayidx9, align 4, !tbaa !0 + store i32 %add8, i32* %arrayidx9, align 4 %arrayidx10 = getelementptr inbounds i32* %A, i64 2 - %2 = load i32* %arrayidx10, align 4, !tbaa !0 + %2 = load i32* %arrayidx10, align 4 %add14 = mul i32 %2, %mul238 %arrayidx15 = getelementptr inbounds i32* %B, i64 2 - store i32 %add14, i32* %arrayidx15, align 4, !tbaa !0 + store i32 %add14, i32* %arrayidx15, align 4 %arrayidx16 = getelementptr inbounds i32* %A, i64 3 - %3 = load i32* %arrayidx16, align 4, !tbaa !0 + %3 = load i32* %arrayidx16, align 4 %add20 = mul i32 %3, %mul238 %arrayidx21 = getelementptr inbounds i32* %B, i64 3 - store i32 %add20, i32* %arrayidx21, align 4, !tbaa !0 + store i32 %add20, i32* %arrayidx21, align 4 ret i32 %0 ;<--------- This value has multiple users and can't be vectorized. } -attributes #0 = { nounwind ssp uwtable "less-precise-fpmad"="false" "no-frame-pointer-elim"="true" "no-frame-pointer-elim-non-leaf"="true" "no-infs-fp-math"="false" "no-nans-fp-math"="false" "unsafe-fp-math"="false" "use-soft-float"="false" } - -!0 = metadata !{metadata !"int", metadata !1} -!1 = metadata !{metadata !"omnipotent char", metadata !2} -!2 = metadata !{metadata !"Simple C/C++ TBAA"} |

