@@ -135,7 +135,6 @@ exit:
135
135
ret void
136
136
}
137
137
138
-
139
138
define void @test_chained_first_order_recurrence_sink_users_1 (double * %ptr ) {
140
139
; CHECK-LABEL: @test_chained_first_order_recurrence_sink_users_1
141
140
; CHECK-NOT: vector.body:
@@ -150,53 +149,9 @@ loop:
150
149
%add.1 = fadd double 10 .0 , %for.2
151
150
%add.2 = fadd double %add.1 , %for.1
152
151
%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
200
155
%exitcond.not = icmp eq i64 %iv.next , 1000
201
156
br i1 %exitcond.not , label %exit , label %loop
202
157
0 commit comments