Skip to content

Commit a5aa287

Browse files
committed
Fix test array-expression-assumed-size.f90
1 parent 6bc3fff commit a5aa287

File tree

1 file changed

+70
-68
lines changed

1 file changed

+70
-68
lines changed

flang/test/Lower/array-expression-assumed-size.f90

Lines changed: 70 additions & 68 deletions
Original file line numberDiff line numberDiff line change
@@ -139,22 +139,22 @@ end subroutine assumed_size_forall_test
139139

140140
! PostOpt-LABEL: func @_QPassumed_size_test(
141141
! PostOpt-SAME: %[[VAL_0:.*]]: !fir.ref<!fir.array<10x?xi32>>) {
142-
! PostOpt: %[[VAL_1:.*]] = arith.constant 2 : index
142+
! PostOpt: %[[VAL_1:.*]] = arith.constant 10 : index
143143
! PostOpt: %[[VAL_2:.*]] = arith.constant 1 : index
144-
! PostOpt: %[[VAL_3:.*]] = arith.constant 0 : index
145-
! PostOpt: %[[VAL_4:.*]] = arith.constant 4 : index
144+
! PostOpt: %[[VAL_3:.*]] = arith.constant 2 : index
145+
! PostOpt: %[[VAL_4:.*]] = arith.constant 0 : index
146146
! PostOpt: %[[VAL_5:.*]] = arith.constant 3 : index
147-
! PostOpt: %[[VAL_6:.*]] = arith.constant 10 : index
147+
! PostOpt: %[[VAL_6:.*]] = arith.constant 4 : index
148148
! PostOpt: %[[VAL_7:.*]] = fir.undefined index
149-
! PostOpt: %[[VAL_8:.*]] = fir.shape %[[VAL_6]], %[[VAL_7]] : (index, index) -> !fir.shape<2>
150-
! PostOpt: %[[VAL_9:.*]] = fir.slice %[[VAL_2]], %[[VAL_6]], %[[VAL_2]], %[[VAL_2]], %[[VAL_1]], %[[VAL_2]] : (index, index, index, index, index, index) -> !fir.slice<2>
151-
! PostOpt: %[[VAL_10:.*]] = fir.allocmem !fir.array<10x?xi32>, %[[VAL_1]]
152-
! PostOpt: br ^bb1(%[[VAL_3]], %[[VAL_1]] : index, index)
149+
! PostOpt: %[[VAL_8:.*]] = fir.shape %[[VAL_1]], %[[VAL_7]] : (index, index) -> !fir.shape<2>
150+
! PostOpt: %[[VAL_9:.*]] = fir.slice %[[VAL_2]], %[[VAL_1]], %[[VAL_2]], %[[VAL_2]], %[[VAL_3]], %[[VAL_2]] : (index, index, index, index, index, index) -> !fir.slice<2>
151+
! PostOpt: %[[VAL_10:.*]] = fir.allocmem !fir.array<10x?xi32>, %[[VAL_3]]
152+
! PostOpt: br ^bb1(%[[VAL_4]], %[[VAL_3]] : index, index)
153153
! PostOpt: ^bb1(%[[VAL_11:.*]]: index, %[[VAL_12:.*]]: index):
154-
! PostOpt: %[[VAL_13:.*]] = arith.cmpi sgt, %[[VAL_12]], %[[VAL_3]] : index
155-
! PostOpt: cond_br %[[VAL_13]], ^bb2(%[[VAL_3]], %[[VAL_6]] : index, index), ^bb5
154+
! PostOpt: %[[VAL_13:.*]] = arith.cmpi sgt, %[[VAL_12]], %[[VAL_4]] : index
155+
! PostOpt: cond_br %[[VAL_13]], ^bb2(%[[VAL_4]], %[[VAL_1]] : index, index), ^bb5
156156
! PostOpt: ^bb2(%[[VAL_14:.*]]: index, %[[VAL_15:.*]]: index):
157-
! PostOpt: %[[VAL_16:.*]] = arith.cmpi sgt, %[[VAL_15]], %[[VAL_3]] : index
157+
! PostOpt: %[[VAL_16:.*]] = arith.cmpi sgt, %[[VAL_15]], %[[VAL_4]] : index
158158
! PostOpt: cond_br %[[VAL_16]], ^bb3, ^bb4
159159
! PostOpt: ^bb3:
160160
! PostOpt: %[[VAL_17:.*]] = arith.addi %[[VAL_14]], %[[VAL_2]] : index
@@ -170,13 +170,13 @@ end subroutine assumed_size_forall_test
170170
! PostOpt: %[[VAL_24:.*]] = arith.subi %[[VAL_12]], %[[VAL_2]] : index
171171
! PostOpt: br ^bb1(%[[VAL_23]], %[[VAL_24]] : index, index)
172172
! PostOpt: ^bb5:
173-
! PostOpt: %[[VAL_25:.*]] = fir.slice %[[VAL_2]], %[[VAL_6]], %[[VAL_2]], %[[VAL_5]], %[[VAL_4]], %[[VAL_2]] : (index, index, index, index, index, index) -> !fir.slice<2>
174-
! PostOpt: br ^bb6(%[[VAL_3]], %[[VAL_1]] : index, index)
173+
! PostOpt: %[[VAL_25:.*]] = fir.slice %[[VAL_2]], %[[VAL_1]], %[[VAL_2]], %[[VAL_5]], %[[VAL_6]], %[[VAL_2]] : (index, index, index, index, index, index) -> !fir.slice<2>
174+
! PostOpt: br ^bb6(%[[VAL_4]], %[[VAL_3]] : index, index)
175175
! PostOpt: ^bb6(%[[VAL_26:.*]]: index, %[[VAL_27:.*]]: index):
176-
! PostOpt: %[[VAL_28:.*]] = arith.cmpi sgt, %[[VAL_27]], %[[VAL_3]] : index
177-
! PostOpt: cond_br %[[VAL_28]], ^bb7(%[[VAL_3]], %[[VAL_6]] : index, index), ^bb10(%[[VAL_3]], %[[VAL_1]] : index, index)
176+
! PostOpt: %[[VAL_28:.*]] = arith.cmpi sgt, %[[VAL_27]], %[[VAL_4]] : index
177+
! PostOpt: cond_br %[[VAL_28]], ^bb7(%[[VAL_4]], %[[VAL_1]] : index, index), ^bb10(%[[VAL_4]], %[[VAL_3]] : index, index)
178178
! PostOpt: ^bb7(%[[VAL_29:.*]]: index, %[[VAL_30:.*]]: index):
179-
! PostOpt: %[[VAL_31:.*]] = arith.cmpi sgt, %[[VAL_30]], %[[VAL_3]] : index
179+
! PostOpt: %[[VAL_31:.*]] = arith.cmpi sgt, %[[VAL_30]], %[[VAL_4]] : index
180180
! PostOpt: cond_br %[[VAL_31]], ^bb8, ^bb9
181181
! PostOpt: ^bb8:
182182
! PostOpt: %[[VAL_32:.*]] = arith.addi %[[VAL_29]], %[[VAL_2]] : index
@@ -192,10 +192,10 @@ end subroutine assumed_size_forall_test
192192
! PostOpt: %[[VAL_39:.*]] = arith.subi %[[VAL_27]], %[[VAL_2]] : index
193193
! PostOpt: br ^bb6(%[[VAL_38]], %[[VAL_39]] : index, index)
194194
! PostOpt: ^bb10(%[[VAL_40:.*]]: index, %[[VAL_41:.*]]: index):
195-
! PostOpt: %[[VAL_42:.*]] = arith.cmpi sgt, %[[VAL_41]], %[[VAL_3]] : index
196-
! PostOpt: cond_br %[[VAL_42]], ^bb11(%[[VAL_3]], %[[VAL_6]] : index, index), ^bb14
195+
! PostOpt: %[[VAL_42:.*]] = arith.cmpi sgt, %[[VAL_41]], %[[VAL_4]] : index
196+
! PostOpt: cond_br %[[VAL_42]], ^bb11(%[[VAL_4]], %[[VAL_1]] : index, index), ^bb14
197197
! PostOpt: ^bb11(%[[VAL_43:.*]]: index, %[[VAL_44:.*]]: index):
198-
! PostOpt: %[[VAL_45:.*]] = arith.cmpi sgt, %[[VAL_44]], %[[VAL_3]] : index
198+
! PostOpt: %[[VAL_45:.*]] = arith.cmpi sgt, %[[VAL_44]], %[[VAL_4]] : index
199199
! PostOpt: cond_br %[[VAL_45]], ^bb12, ^bb13
200200
! PostOpt: ^bb12:
201201
! PostOpt: %[[VAL_46:.*]] = arith.addi %[[VAL_43]], %[[VAL_2]] : index
@@ -217,81 +217,83 @@ end subroutine assumed_size_forall_test
217217

218218
! PostOpt-LABEL: func @_QPassumed_size_forall_test(
219219
! PostOpt-SAME: %[[VAL_0:.*]]: !fir.ref<!fir.array<10x?xi32>>) {
220-
! PostOpt: %[[VAL_1:.*]] = arith.constant 5 : index
221-
! PostOpt: %[[VAL_2:.*]] = arith.constant 1 : index
222-
! PostOpt: %[[VAL_3:.*]] = arith.constant 0 : index
223-
! PostOpt: %[[VAL_4:.*]] = arith.constant 3 : index
224-
! PostOpt: %[[VAL_5:.*]] = arith.constant 2 : index
225-
! PostOpt: %[[VAL_6:.*]] = arith.constant 10 : index
220+
! PostOpt: %[[VAL_1:.*]] = arith.constant 3 : index
221+
! PostOpt: %[[VAL_2:.*]] = arith.constant 10 : index
222+
! PostOpt: %[[VAL_3:.*]] = arith.constant 2 : index
223+
! PostOpt: %[[VAL_4:.*]] = arith.constant 1 : index
224+
! PostOpt: %[[VAL_5:.*]] = arith.constant 0 : index
225+
! PostOpt: %[[VAL_6:.*]] = arith.constant 5 : index
226226
! PostOpt: %[[VAL_7:.*]] = fir.alloca i32 {adapt.valuebyref, bindc_name = "i"}
227227
! PostOpt: %[[VAL_8:.*]] = fir.undefined index
228-
! PostOpt: %[[VAL_9:.*]] = fir.shape %[[VAL_6]], %[[VAL_8]] : (index, index) -> !fir.shape<2>
229-
! PostOpt: %[[VAL_10:.*]] = fir.allocmem !fir.array<10x?xi32>, %[[VAL_2]]
230-
! PostOpt: br ^bb1(%[[VAL_3]], %[[VAL_2]] : index, index)
228+
! PostOpt: %[[VAL_9:.*]] = fir.shape %[[VAL_2]], %[[VAL_8]] : (index, index) -> !fir.shape<2>
229+
! PostOpt: %[[VAL_10:.*]] = fir.allocmem !fir.array<10x?xi32>, %[[VAL_4]]
230+
! PostOpt: br ^bb1(%[[VAL_5]], %[[VAL_4]] : index, index)
231231
! PostOpt: ^bb1(%[[VAL_11:.*]]: index, %[[VAL_12:.*]]: index):
232-
! PostOpt: %[[VAL_13:.*]] = arith.cmpi sgt, %[[VAL_12]], %[[VAL_3]] : index
233-
! PostOpt: cond_br %[[VAL_13]], ^bb2(%[[VAL_3]], %[[VAL_6]] : index, index), ^bb5(%[[VAL_5]], %[[VAL_1]] : index, index)
232+
! PostOpt: %[[VAL_13:.*]] = arith.cmpi sgt, %[[VAL_12]], %[[VAL_5]] : index
233+
! PostOpt: cond_br %[[VAL_13]], ^bb2(%[[VAL_5]], %[[VAL_2]] : index, index), ^bb5
234234
! PostOpt: ^bb2(%[[VAL_14:.*]]: index, %[[VAL_15:.*]]: index):
235-
! PostOpt: %[[VAL_16:.*]] = arith.cmpi sgt, %[[VAL_15]], %[[VAL_3]] : index
235+
! PostOpt: %[[VAL_16:.*]] = arith.cmpi sgt, %[[VAL_15]], %[[VAL_5]] : index
236236
! PostOpt: cond_br %[[VAL_16]], ^bb3, ^bb4
237237
! PostOpt: ^bb3:
238-
! PostOpt: %[[VAL_17:.*]] = arith.addi %[[VAL_14]], %[[VAL_2]] : index
239-
! PostOpt: %[[VAL_18:.*]] = arith.addi %[[VAL_11]], %[[VAL_2]] : index
238+
! PostOpt: %[[VAL_17:.*]] = arith.addi %[[VAL_14]], %[[VAL_4]] : index
239+
! PostOpt: %[[VAL_18:.*]] = arith.addi %[[VAL_11]], %[[VAL_4]] : index
240240
! PostOpt: %[[VAL_19:.*]] = fir.array_coor %[[VAL_0]](%[[VAL_9]]) %[[VAL_17]], %[[VAL_18]] : (!fir.ref<!fir.array<10x?xi32>>, !fir.shape<2>, index, index) -> !fir.ref<i32>
241241
! PostOpt: %[[VAL_20:.*]] = fir.array_coor %[[VAL_10]](%[[VAL_9]]) %[[VAL_17]], %[[VAL_18]] : (!fir.heap<!fir.array<10x?xi32>>, !fir.shape<2>, index, index) -> !fir.ref<i32>
242242
! PostOpt: %[[VAL_21:.*]] = fir.load %[[VAL_19]] : !fir.ref<i32>
243243
! PostOpt: fir.store %[[VAL_21]] to %[[VAL_20]] : !fir.ref<i32>
244-
! PostOpt: %[[VAL_22:.*]] = arith.subi %[[VAL_15]], %[[VAL_2]] : index
244+
! PostOpt: %[[VAL_22:.*]] = arith.subi %[[VAL_15]], %[[VAL_4]] : index
245245
! PostOpt: br ^bb2(%[[VAL_17]], %[[VAL_22]] : index, index)
246246
! PostOpt: ^bb4:
247-
! PostOpt: %[[VAL_23:.*]] = arith.addi %[[VAL_11]], %[[VAL_2]] : index
248-
! PostOpt: %[[VAL_24:.*]] = arith.subi %[[VAL_12]], %[[VAL_2]] : index
247+
! PostOpt: %[[VAL_23:.*]] = arith.addi %[[VAL_11]], %[[VAL_4]] : index
248+
! PostOpt: %[[VAL_24:.*]] = arith.subi %[[VAL_12]], %[[VAL_4]] : index
249249
! PostOpt: br ^bb1(%[[VAL_23]], %[[VAL_24]] : index, index)
250-
! PostOpt: ^bb5(%[[VAL_25:.*]]: index, %[[VAL_26:.*]]: index):
251-
! PostOpt: %[[VAL_27:.*]] = arith.cmpi sgt, %[[VAL_26]], %[[VAL_3]] : index
252-
! PostOpt: cond_br %[[VAL_27]], ^bb6, ^bb10(%[[VAL_3]], %[[VAL_2]] : index, index)
253-
! PostOpt: ^bb6:
250+
! PostOpt: ^bb5:
251+
! PostOpt: br ^bb6(%[[VAL_3]], %[[VAL_6]] : index, index)
252+
! PostOpt: ^bb6(%[[VAL_25:.*]]: index, %[[VAL_26:.*]]: index):
253+
! PostOpt: %[[VAL_27:.*]] = arith.cmpi sgt, %[[VAL_26]], %[[VAL_5]] : index
254+
! PostOpt: cond_br %[[VAL_27]], ^bb7, ^bb11(%[[VAL_5]], %[[VAL_4]] : index, index)
255+
! PostOpt: ^bb7:
254256
! PostOpt: %[[VAL_28:.*]] = fir.convert %[[VAL_25]] : (index) -> i32
255257
! PostOpt: fir.store %[[VAL_28]] to %[[VAL_7]] : !fir.ref<i32>
256258
! PostOpt: %[[VAL_29:.*]] = fir.load %[[VAL_7]] : !fir.ref<i32>
257259
! PostOpt: %[[VAL_30:.*]] = fir.convert %[[VAL_29]] : (i32) -> index
258-
! PostOpt: br ^bb7(%[[VAL_3]], %[[VAL_5]] : index, index)
259-
! PostOpt: ^bb7(%[[VAL_31:.*]]: index, %[[VAL_32:.*]]: index):
260-
! PostOpt: %[[VAL_33:.*]] = arith.cmpi sgt, %[[VAL_32]], %[[VAL_3]] : index
261-
! PostOpt: cond_br %[[VAL_33]], ^bb8, ^bb9
262-
! PostOpt: ^bb8:
263-
! PostOpt: %[[VAL_34:.*]] = arith.addi %[[VAL_31]], %[[VAL_4]] : index
260+
! PostOpt: br ^bb8(%[[VAL_5]], %[[VAL_3]] : index, index)
261+
! PostOpt: ^bb8(%[[VAL_31:.*]]: index, %[[VAL_32:.*]]: index):
262+
! PostOpt: %[[VAL_33:.*]] = arith.cmpi sgt, %[[VAL_32]], %[[VAL_5]] : index
263+
! PostOpt: cond_br %[[VAL_33]], ^bb9, ^bb10
264+
! PostOpt: ^bb9:
265+
! PostOpt: %[[VAL_34:.*]] = arith.addi %[[VAL_31]], %[[VAL_1]] : index
264266
! PostOpt: %[[VAL_35:.*]] = fir.array_coor %[[VAL_0]](%[[VAL_9]]) %[[VAL_30]], %[[VAL_34]] : (!fir.ref<!fir.array<10x?xi32>>, !fir.shape<2>, index, index) -> !fir.ref<i32>
265267
! PostOpt: %[[VAL_36:.*]] = fir.load %[[VAL_35]] : !fir.ref<i32>
266-
! PostOpt: %[[VAL_37:.*]] = arith.addi %[[VAL_31]], %[[VAL_2]] : index
268+
! PostOpt: %[[VAL_37:.*]] = arith.addi %[[VAL_31]], %[[VAL_4]] : index
267269
! PostOpt: %[[VAL_38:.*]] = fir.array_coor %[[VAL_10]](%[[VAL_9]]) %[[VAL_30]], %[[VAL_37]] : (!fir.heap<!fir.array<10x?xi32>>, !fir.shape<2>, index, index) -> !fir.ref<i32>
268270
! PostOpt: fir.store %[[VAL_36]] to %[[VAL_38]] : !fir.ref<i32>
269-
! PostOpt: %[[VAL_39:.*]] = arith.subi %[[VAL_32]], %[[VAL_2]] : index
270-
! PostOpt: br ^bb7(%[[VAL_37]], %[[VAL_39]] : index, index)
271-
! PostOpt: ^bb9:
272-
! PostOpt: %[[VAL_40:.*]] = arith.addi %[[VAL_25]], %[[VAL_2]] : index
273-
! PostOpt: %[[VAL_41:.*]] = arith.subi %[[VAL_26]], %[[VAL_2]] : index
274-
! PostOpt: br ^bb5(%[[VAL_40]], %[[VAL_41]] : index, index)
275-
! PostOpt: ^bb10(%[[VAL_42:.*]]: index, %[[VAL_43:.*]]: index):
276-
! PostOpt: %[[VAL_44:.*]] = arith.cmpi sgt, %[[VAL_43]], %[[VAL_3]] : index
277-
! PostOpt: cond_br %[[VAL_44]], ^bb11(%[[VAL_3]], %[[VAL_6]] : index, index), ^bb14
278-
! PostOpt: ^bb11(%[[VAL_45:.*]]: index, %[[VAL_46:.*]]: index):
279-
! PostOpt: %[[VAL_47:.*]] = arith.cmpi sgt, %[[VAL_46]], %[[VAL_3]] : index
280-
! PostOpt: cond_br %[[VAL_47]], ^bb12, ^bb13
281-
! PostOpt: ^bb12:
282-
! PostOpt: %[[VAL_48:.*]] = arith.addi %[[VAL_45]], %[[VAL_2]] : index
283-
! PostOpt: %[[VAL_49:.*]] = arith.addi %[[VAL_42]], %[[VAL_2]] : index
271+
! PostOpt: %[[VAL_39:.*]] = arith.subi %[[VAL_32]], %[[VAL_4]] : index
272+
! PostOpt: br ^bb8(%[[VAL_37]], %[[VAL_39]] : index, index)
273+
! PostOpt: ^bb10:
274+
! PostOpt: %[[VAL_40:.*]] = arith.addi %[[VAL_25]], %[[VAL_4]] : index
275+
! PostOpt: %[[VAL_41:.*]] = arith.subi %[[VAL_26]], %[[VAL_4]] : index
276+
! PostOpt: br ^bb6(%[[VAL_40]], %[[VAL_41]] : index, index)
277+
! PostOpt: ^bb11(%[[VAL_42:.*]]: index, %[[VAL_43:.*]]: index):
278+
! PostOpt: %[[VAL_44:.*]] = arith.cmpi sgt, %[[VAL_43]], %[[VAL_5]] : index
279+
! PostOpt: cond_br %[[VAL_44]], ^bb12(%[[VAL_5]], %[[VAL_2]] : index, index), ^bb15
280+
! PostOpt: ^bb12(%[[VAL_45:.*]]: index, %[[VAL_46:.*]]: index):
281+
! PostOpt: %[[VAL_47:.*]] = arith.cmpi sgt, %[[VAL_46]], %[[VAL_5]] : index
282+
! PostOpt: cond_br %[[VAL_47]], ^bb13, ^bb14
283+
! PostOpt: ^bb13:
284+
! PostOpt: %[[VAL_48:.*]] = arith.addi %[[VAL_45]], %[[VAL_4]] : index
285+
! PostOpt: %[[VAL_49:.*]] = arith.addi %[[VAL_42]], %[[VAL_4]] : index
284286
! PostOpt: %[[VAL_50:.*]] = fir.array_coor %[[VAL_10]](%[[VAL_9]]) %[[VAL_48]], %[[VAL_49]] : (!fir.heap<!fir.array<10x?xi32>>, !fir.shape<2>, index, index) -> !fir.ref<i32>
285287
! PostOpt: %[[VAL_51:.*]] = fir.array_coor %[[VAL_0]](%[[VAL_9]]) %[[VAL_48]], %[[VAL_49]] : (!fir.ref<!fir.array<10x?xi32>>, !fir.shape<2>, index, index) -> !fir.ref<i32>
286288
! PostOpt: %[[VAL_52:.*]] = fir.load %[[VAL_50]] : !fir.ref<i32>
287289
! PostOpt: fir.store %[[VAL_52]] to %[[VAL_51]] : !fir.ref<i32>
288-
! PostOpt: %[[VAL_53:.*]] = arith.subi %[[VAL_46]], %[[VAL_2]] : index
289-
! PostOpt: br ^bb11(%[[VAL_48]], %[[VAL_53]] : index, index)
290-
! PostOpt: ^bb13:
291-
! PostOpt: %[[VAL_54:.*]] = arith.addi %[[VAL_42]], %[[VAL_2]] : index
292-
! PostOpt: %[[VAL_55:.*]] = arith.subi %[[VAL_43]], %[[VAL_2]] : index
293-
! PostOpt: br ^bb10(%[[VAL_54]], %[[VAL_55]] : index, index)
290+
! PostOpt: %[[VAL_53:.*]] = arith.subi %[[VAL_46]], %[[VAL_4]] : index
291+
! PostOpt: br ^bb12(%[[VAL_48]], %[[VAL_53]] : index, index)
294292
! PostOpt: ^bb14:
293+
! PostOpt: %[[VAL_54:.*]] = arith.addi %[[VAL_42]], %[[VAL_4]] : index
294+
! PostOpt: %[[VAL_55:.*]] = arith.subi %[[VAL_43]], %[[VAL_4]] : index
295+
! PostOpt: br ^bb11(%[[VAL_54]], %[[VAL_55]] : index, index)
296+
! PostOpt: ^bb15:
295297
! PostOpt: fir.freemem %[[VAL_10]] : !fir.heap<!fir.array<10x?xi32>>
296298
! PostOpt: return
297299
! PostOpt: }

0 commit comments

Comments
 (0)