[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