@@ -139,22 +139,22 @@ end subroutine assumed_size_forall_test
139
139
140
140
! PostOpt-LABEL: func @_QPassumed_size_test(
141
141
! 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
143
143
! 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
146
146
! PostOpt: %[[VAL_5:.*]] = arith.constant 3 : index
147
- ! PostOpt: %[[VAL_6:.*]] = arith.constant 10 : index
147
+ ! PostOpt: %[[VAL_6:.*]] = arith.constant 4 : index
148
148
! 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)
153
153
! 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
156
156
! 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
158
158
! PostOpt: cond_br %[[VAL_16]], ^bb3, ^bb4
159
159
! PostOpt: ^bb3:
160
160
! PostOpt: %[[VAL_17:.*]] = arith.addi %[[VAL_14]], %[[VAL_2]] : index
@@ -170,13 +170,13 @@ end subroutine assumed_size_forall_test
170
170
! PostOpt: %[[VAL_24:.*]] = arith.subi %[[VAL_12]], %[[VAL_2]] : index
171
171
! PostOpt: br ^bb1(%[[VAL_23]], %[[VAL_24]] : index, index)
172
172
! 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)
175
175
! 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)
178
178
! 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
180
180
! PostOpt: cond_br %[[VAL_31]], ^bb8, ^bb9
181
181
! PostOpt: ^bb8:
182
182
! PostOpt: %[[VAL_32:.*]] = arith.addi %[[VAL_29]], %[[VAL_2]] : index
@@ -192,10 +192,10 @@ end subroutine assumed_size_forall_test
192
192
! PostOpt: %[[VAL_39:.*]] = arith.subi %[[VAL_27]], %[[VAL_2]] : index
193
193
! PostOpt: br ^bb6(%[[VAL_38]], %[[VAL_39]] : index, index)
194
194
! 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
197
197
! 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
199
199
! PostOpt: cond_br %[[VAL_45]], ^bb12, ^bb13
200
200
! PostOpt: ^bb12:
201
201
! PostOpt: %[[VAL_46:.*]] = arith.addi %[[VAL_43]], %[[VAL_2]] : index
@@ -217,81 +217,83 @@ end subroutine assumed_size_forall_test
217
217
218
218
! PostOpt-LABEL: func @_QPassumed_size_forall_test(
219
219
! 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
226
226
! PostOpt: %[[VAL_7:.*]] = fir.alloca i32 {adapt.valuebyref, bindc_name = "i"}
227
227
! 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)
231
231
! 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
234
234
! 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
236
236
! PostOpt: cond_br %[[VAL_16]], ^bb3, ^bb4
237
237
! 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
240
240
! 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>
241
241
! 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>
242
242
! PostOpt: %[[VAL_21:.*]] = fir.load %[[VAL_19]] : !fir.ref<i32>
243
243
! 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
245
245
! PostOpt: br ^bb2(%[[VAL_17]], %[[VAL_22]] : index, index)
246
246
! 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
249
249
! 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:
254
256
! PostOpt: %[[VAL_28:.*]] = fir.convert %[[VAL_25]] : (index) -> i32
255
257
! PostOpt: fir.store %[[VAL_28]] to %[[VAL_7]] : !fir.ref<i32>
256
258
! PostOpt: %[[VAL_29:.*]] = fir.load %[[VAL_7]] : !fir.ref<i32>
257
259
! 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
264
266
! 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>
265
267
! 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
267
269
! 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>
268
270
! 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
284
286
! 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>
285
287
! 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>
286
288
! PostOpt: %[[VAL_52:.*]] = fir.load %[[VAL_50]] : !fir.ref<i32>
287
289
! 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)
294
292
! 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:
295
297
! PostOpt: fir.freemem %[[VAL_10]] : !fir.heap<!fir.array<10x?xi32>>
296
298
! PostOpt: return
297
299
! PostOpt: }
0 commit comments