[llvm] 9474c30 - [LV] Move unrelated tests from first-order-recurrence-chains.ll
Florian Hahn via llvm-commits
llvm-commits at lists.llvm.org
Fri Feb 11 01:16:02 PST 2022
Author: Florian Hahn
Date: 2022-02-11T09:15:42Z
New Revision: 9474c3009e806cd72225a199fd08662649ce9efa
URL: https://github.com/llvm/llvm-project/commit/9474c3009e806cd72225a199fd08662649ce9efa
DIFF: https://github.com/llvm/llvm-project/commit/9474c3009e806cd72225a199fd08662649ce9efa.diff
LOG: [LV] Move unrelated tests from first-order-recurrence-chains.ll
Added:
Modified:
llvm/test/Transforms/LoopVectorize/first-order-recurrence-chains.ll
llvm/test/Transforms/LoopVectorize/first-order-recurrence-complex.ll
Removed:
################################################################################
diff --git a/llvm/test/Transforms/LoopVectorize/first-order-recurrence-chains.ll b/llvm/test/Transforms/LoopVectorize/first-order-recurrence-chains.ll
index cd4fe1caf7b99..6d2544ae4600e 100644
--- a/llvm/test/Transforms/LoopVectorize/first-order-recurrence-chains.ll
+++ b/llvm/test/Transforms/LoopVectorize/first-order-recurrence-chains.ll
@@ -135,7 +135,6 @@ exit:
ret void
}
-
define void @test_chained_first_order_recurrence_sink_users_1(double* %ptr) {
; CHECK-LABEL: @test_chained_first_order_recurrence_sink_users_1
; CHECK-NOT: vector.body:
@@ -150,53 +149,9 @@ loop:
%add.1 = fadd double 10.0, %for.2
%add.2 = fadd double %add.1, %for.1
%iv.next = add nuw nsw i64 %iv, 1
- %for.1.next = load double, double* undef, align 8
- %exitcond.not = icmp eq i64 %iv.next, 1000
- br i1 %exitcond.not, label %exit, label %loop
-
-exit:
- ret void
-}
-
-
-define void @test_chained_first_order_recurrence_sink_users_2(double* %ptr) {
-; CHECK-LABEL: @test_chained_first_order_recurrence_sink_users_2
-; CHECK-NOT: vector.body:
-;
-entry:
- br label %loop
-
-loop:
- %for.1 = phi double [ 10.0, %entry ], [ %for.1.next, %loop ]
- %for.2 = phi double [ 20.0, %entry ], [ %for.1.next, %loop ]
- %iv = phi i64 [ 1, %entry ], [ %iv.next, %loop ]
- %add.1 = fadd double 10.0, %for.2
- %add.2 = fadd double %add.1, %for.1
- %iv.next = add nuw nsw i64 %iv, 1
- %for.1.next = load double, double* undef, align 8
- %exitcond.not = icmp eq i64 %iv.next, 1000
- br i1 %exitcond.not, label %exit, label %loop
-
-exit:
- ret void
-}
-
-
-define void @test_chained_first_order_recurrence_sink_users_3(double* %ptr) {
-; CHECK-LABEL: @test_chained_first_order_recurrence_sink_users_3
-; CHECK-NOT: vector.body:
-;
-entry:
- br label %loop
-
-loop:
- %for.1 = phi double [ 10.0, %entry ], [ %for.1.next, %loop ]
- %for.2 = phi double [ 20.0, %entry ], [ %for.1.next, %loop ]
- %iv = phi i64 [ 1, %entry ], [ %iv.next, %loop ]
- %add.1 = fadd double 10.0, %for.2
- %add.2 = fadd double %add.1, %for.1
- %iv.next = add nuw nsw i64 %iv, 1
- %for.1.next = load double, double* undef, align 8
+ %gep.ptr = getelementptr inbounds double, double* %ptr, i64 %iv
+ %for.1.next = load double, double* %gep.ptr, align 8
+ store double %add.2, double* %gep.ptr
%exitcond.not = icmp eq i64 %iv.next, 1000
br i1 %exitcond.not, label %exit, label %loop
diff --git a/llvm/test/Transforms/LoopVectorize/first-order-recurrence-complex.ll b/llvm/test/Transforms/LoopVectorize/first-order-recurrence-complex.ll
index 8e3c72f79fd32..14d2dc9d2b586 100644
--- a/llvm/test/Transforms/LoopVectorize/first-order-recurrence-complex.ll
+++ b/llvm/test/Transforms/LoopVectorize/first-order-recurrence-complex.ll
@@ -899,3 +899,51 @@ loop:
exit:
ret void
}
+
+define void @test_for_sink_instruction_after_same_incoming_1(double* %ptr) {
+; CHECK-LABEL: @test_for_sink_instruction_after_same_incoming_1
+; CHECK-NOT: vector.body:
+;
+entry:
+ br label %loop
+
+loop:
+ %for.1 = phi double [ 10.0, %entry ], [ %for.1.next, %loop ]
+ %for.2 = phi double [ 20.0, %entry ], [ %for.1.next, %loop ]
+ %iv = phi i64 [ 1, %entry ], [ %iv.next, %loop ]
+ %add.1 = fadd double 10.0, %for.2
+ %add.2 = fadd double %add.1, %for.1
+ %iv.next = add nuw nsw i64 %iv, 1
+ %gep.ptr = getelementptr inbounds double, double* %ptr, i64 %iv
+ %for.1.next = load double, double* %gep.ptr, align 8
+ store double %add.2, double* %gep.ptr
+ %exitcond.not = icmp eq i64 %iv.next, 1000
+ br i1 %exitcond.not, label %exit, label %loop
+
+exit:
+ ret void
+}
+
+
+define void @test_for_sink_instruction_after_same_incoming_2(double* %ptr) {
+; CHECK-LABEL: @test_for_sink_instruction_after_same_incoming_2
+; CHECK-NOT: vector.body:
+entry:
+ br label %loop
+
+loop:
+ %for.2 = phi double [ 20.0, %entry ], [ %for.1.next, %loop ]
+ %for.1 = phi double [ 10.0, %entry ], [ %for.1.next, %loop ]
+ %iv = phi i64 [ 1, %entry ], [ %iv.next, %loop ]
+ %add.1 = fadd double 10.0, %for.2
+ %add.2 = fadd double %add.1, %for.1
+ %iv.next = add nuw nsw i64 %iv, 1
+ %gep.ptr = getelementptr inbounds double, double* %ptr, i64 %iv
+ %for.1.next = load double, double* %gep.ptr, align 8
+ store double %add.2, double* %gep.ptr
+ %exitcond.not = icmp eq i64 %iv.next, 1000
+ br i1 %exitcond.not, label %exit, label %loop
+
+exit:
+ ret void
+}
More information about the llvm-commits
mailing list