// RUN: fir-opt --character-conversion %s | FileCheck %s func @char_convert() { %1 = fir.undefined i32 %2 = fir.undefined !fir.ref> %3 = fir.undefined !fir.ref>> fir.char_convert %2 for %1 to %3 : !fir.ref>, i32, !fir.ref>> return } // CHECK-LABEL: func @char_convert() { // CHECK: %[[VAL_0:.*]] = fir.undefined i32 // CHECK: %[[VAL_1:.*]] = fir.undefined !fir.ref> // CHECK: %[[VAL_2:.*]] = fir.undefined !fir.ref>> // CHECK: %[[VAL_3:.*]] = arith.constant 0 : index // CHECK: %[[VAL_4:.*]] = arith.constant 1 : index // CHECK: %[[VAL_5:.*]] = fir.convert %[[VAL_0]] : (i32) -> index // CHECK: %[[VAL_6:.*]] = arith.subi %[[VAL_5]], %[[VAL_4]] : index // CHECK: fir.do_loop %[[VAL_7:.*]] = %[[VAL_3]] to %[[VAL_6]] step %[[VAL_4]] { // CHECK: %[[VAL_8:.*]] = fir.convert %[[VAL_1]] : (!fir.ref>) -> !fir.ref> // CHECK: %[[VAL_9:.*]] = fir.convert %[[VAL_2]] : (!fir.ref>>) -> !fir.ref> // CHECK: %[[VAL_10:.*]] = fir.coordinate_of %[[VAL_8]], %[[VAL_7]] : (!fir.ref>, index) -> !fir.ref // CHECK: %[[VAL_11:.*]] = fir.coordinate_of %[[VAL_9]], %[[VAL_7]] : (!fir.ref>, index) -> !fir.ref // CHECK: %[[VAL_12:.*]] = fir.load %[[VAL_10]] : !fir.ref // CHECK: %[[VAL_13:.*]] = arith.extui %[[VAL_12]] : i8 to i16 // CHECK: fir.store %[[VAL_13]] to %[[VAL_11]] : !fir.ref // CHECK: } // CHECK: return // CHECK: }