Skip to content

Commit 9474c30

Browse files
committed
[LV] Move unrelated tests from first-order-recurrence-chains.ll
1 parent 0b41238 commit 9474c30

File tree

2 files changed

+51
-48
lines changed

2 files changed

+51
-48
lines changed

llvm/test/Transforms/LoopVectorize/first-order-recurrence-chains.ll

Lines changed: 3 additions & 48 deletions
Original file line numberDiff line numberDiff line change
@@ -135,7 +135,6 @@ exit:
135135
ret void
136136
}
137137

138-
139138
define void @test_chained_first_order_recurrence_sink_users_1(double* %ptr) {
140139
; CHECK-LABEL: @test_chained_first_order_recurrence_sink_users_1
141140
; CHECK-NOT: vector.body:
@@ -150,53 +149,9 @@ loop:
150149
%add.1 = fadd double 10.0, %for.2
151150
%add.2 = fadd double %add.1, %for.1
152151
%iv.next = add nuw nsw i64 %iv, 1
153-
%for.1.next = load double, double* undef, align 8
154-
%exitcond.not = icmp eq i64 %iv.next, 1000
155-
br i1 %exitcond.not, label %exit, label %loop
156-
157-
exit:
158-
ret void
159-
}
160-
161-
162-
define void @test_chained_first_order_recurrence_sink_users_2(double* %ptr) {
163-
; CHECK-LABEL: @test_chained_first_order_recurrence_sink_users_2
164-
; CHECK-NOT: vector.body:
165-
;
166-
entry:
167-
br label %loop
168-
169-
loop:
170-
%for.1 = phi double [ 10.0, %entry ], [ %for.1.next, %loop ]
171-
%for.2 = phi double [ 20.0, %entry ], [ %for.1.next, %loop ]
172-
%iv = phi i64 [ 1, %entry ], [ %iv.next, %loop ]
173-
%add.1 = fadd double 10.0, %for.2
174-
%add.2 = fadd double %add.1, %for.1
175-
%iv.next = add nuw nsw i64 %iv, 1
176-
%for.1.next = load double, double* undef, align 8
177-
%exitcond.not = icmp eq i64 %iv.next, 1000
178-
br i1 %exitcond.not, label %exit, label %loop
179-
180-
exit:
181-
ret void
182-
}
183-
184-
185-
define void @test_chained_first_order_recurrence_sink_users_3(double* %ptr) {
186-
; CHECK-LABEL: @test_chained_first_order_recurrence_sink_users_3
187-
; CHECK-NOT: vector.body:
188-
;
189-
entry:
190-
br label %loop
191-
192-
loop:
193-
%for.1 = phi double [ 10.0, %entry ], [ %for.1.next, %loop ]
194-
%for.2 = phi double [ 20.0, %entry ], [ %for.1.next, %loop ]
195-
%iv = phi i64 [ 1, %entry ], [ %iv.next, %loop ]
196-
%add.1 = fadd double 10.0, %for.2
197-
%add.2 = fadd double %add.1, %for.1
198-
%iv.next = add nuw nsw i64 %iv, 1
199-
%for.1.next = load double, double* undef, align 8
152+
%gep.ptr = getelementptr inbounds double, double* %ptr, i64 %iv
153+
%for.1.next = load double, double* %gep.ptr, align 8
154+
store double %add.2, double* %gep.ptr
200155
%exitcond.not = icmp eq i64 %iv.next, 1000
201156
br i1 %exitcond.not, label %exit, label %loop
202157

llvm/test/Transforms/LoopVectorize/first-order-recurrence-complex.ll

Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -899,3 +899,51 @@ loop:
899899
exit:
900900
ret void
901901
}
902+
903+
define void @test_for_sink_instruction_after_same_incoming_1(double* %ptr) {
904+
; CHECK-LABEL: @test_for_sink_instruction_after_same_incoming_1
905+
; CHECK-NOT: vector.body:
906+
;
907+
entry:
908+
br label %loop
909+
910+
loop:
911+
%for.1 = phi double [ 10.0, %entry ], [ %for.1.next, %loop ]
912+
%for.2 = phi double [ 20.0, %entry ], [ %for.1.next, %loop ]
913+
%iv = phi i64 [ 1, %entry ], [ %iv.next, %loop ]
914+
%add.1 = fadd double 10.0, %for.2
915+
%add.2 = fadd double %add.1, %for.1
916+
%iv.next = add nuw nsw i64 %iv, 1
917+
%gep.ptr = getelementptr inbounds double, double* %ptr, i64 %iv
918+
%for.1.next = load double, double* %gep.ptr, align 8
919+
store double %add.2, double* %gep.ptr
920+
%exitcond.not = icmp eq i64 %iv.next, 1000
921+
br i1 %exitcond.not, label %exit, label %loop
922+
923+
exit:
924+
ret void
925+
}
926+
927+
928+
define void @test_for_sink_instruction_after_same_incoming_2(double* %ptr) {
929+
; CHECK-LABEL: @test_for_sink_instruction_after_same_incoming_2
930+
; CHECK-NOT: vector.body:
931+
entry:
932+
br label %loop
933+
934+
loop:
935+
%for.2 = phi double [ 20.0, %entry ], [ %for.1.next, %loop ]
936+
%for.1 = phi double [ 10.0, %entry ], [ %for.1.next, %loop ]
937+
%iv = phi i64 [ 1, %entry ], [ %iv.next, %loop ]
938+
%add.1 = fadd double 10.0, %for.2
939+
%add.2 = fadd double %add.1, %for.1
940+
%iv.next = add nuw nsw i64 %iv, 1
941+
%gep.ptr = getelementptr inbounds double, double* %ptr, i64 %iv
942+
%for.1.next = load double, double* %gep.ptr, align 8
943+
store double %add.2, double* %gep.ptr
944+
%exitcond.not = icmp eq i64 %iv.next, 1000
945+
br i1 %exitcond.not, label %exit, label %loop
946+
947+
exit:
948+
ret void
949+
}

0 commit comments

Comments
 (0)