@@ -155,3 +155,32 @@ func.func @_QPtest6(%arg0: !fir.ref<!fir.box<!fir.heap<!fir.array<?x?xi32>>>> {f
155
155
// CHECK: }
156
156
// CHECK: return
157
157
// CHECK: }
158
+
159
+ func.func @_QQmain() {
160
+ return
161
+ }
162
+
163
+ func.func private @_QFPtest7(%arg0: !fir.ref<tuple<!fir.box<!fir.array<2x2xi32>>>> {fir.host_assoc}) attributes {fir.host_symbol = @_QQmain, llvm.linkage = #llvm.linkage<internal>} {
164
+ %0 = fir.dummy_scope : !fir.dscope
165
+ %c0_i32 = arith.constant 0 : i32
166
+ %1 = fir.coordinate_of %arg0, %c0_i32 : (!fir.ref<tuple<!fir.box<!fir.array<2x2xi32>>>>, i32) -> !fir.ref<!fir.box<!fir.array<2x2xi32>>>
167
+ %2 = fir.load %1 : !fir.ref<!fir.box<!fir.array<2x2xi32>>>
168
+ %3 = fir.box_addr %2 : (!fir.box<!fir.array<2x2xi32>>) -> !fir.ref<!fir.array<2x2xi32>>
169
+ %c0 = arith.constant 0 : index
170
+ %4:3 = fir.box_dims %2, %c0 : (!fir.box<!fir.array<2x2xi32>>, index) -> (index, index, index)
171
+ %c1 = arith.constant 1 : index
172
+ %5:3 = fir.box_dims %2, %c1 : (!fir.box<!fir.array<2x2xi32>>, index) -> (index, index, index)
173
+ %6 = fir.shape %4#1, %5#1 : (index, index) -> !fir.shape<2>
174
+ %7:2 = hlfir.declare %3(%6) {fortran_attrs = #fir.var_attrs<host_assoc>, uniq_name = "_QFEa"} : (!fir.ref<!fir.array<2x2xi32>>, !fir.shape<2>) -> (!fir.ref<!fir.array<2x2xi32>>, !fir.ref<!fir.array<2x2xi32>>)
175
+ %c0_i32_0 = arith.constant 0 : i32
176
+ hlfir.assign %c0_i32_0 to %7#0 : i32, !fir.ref<!fir.array<2x2xi32>>
177
+ return
178
+ }
179
+
180
+ // CHECK-LABEL: func.func private @_QFPtest7({{.*}}) {{.*}} {
181
+ // CHECK: %[[VAL_0:.*]] = arith.constant 0 : i32
182
+ // CHECK: fir.do_loop %[[VAL_1:.*]] = %{{.*}} to %{{.*}} step %{{.*}} unordered {
183
+ // CHECK: %[[VAL_2:.*]] = hlfir.designate %{{.*}} (%[[VAL_1]]) : (!fir.ref<!fir.array<4xi32>>, index) -> !fir.ref<i32>
184
+ // CHECK: hlfir.assign %[[VAL_0]] to %[[VAL_2]] : i32, !fir.ref<i32>
185
+ // CHECK: }
186
+ // CHECK: }
0 commit comments