brintos

brintos / llvm-project-archived public Read only

0
0
Text · 2.3 KiB · e9e6939 Raw
49 lines · plain
1// Test hlfir.get_length operation parse, verify (no errors), and unparse.2 3// RUN: fir-opt %s | fir-opt | FileCheck %s --check-prefix CHECK --check-prefix CHECK-ALL4 5// Test canonicalization.6// RUN: fir-opt %s --canonicalize | FileCheck %s --check-prefix CHECK-CANON --check-prefix CHECK-ALL7 8func.func @fixed_len_scalar(%arg0: !hlfir.expr<!fir.char<1,10>>) -> index {9  %1 = hlfir.get_length %arg0 : (!hlfir.expr<!fir.char<1,10>>) -> index10  return %1 : index11}12// CHECK-ALL-LABEL:   func.func @fixed_len_scalar(13// CHECK-ALL-SAME:      %[[VAL_0:.*]]: !hlfir.expr<!fir.char<1,10>>) -> index {14// CHECK:               %[[VAL_1:.*]] = hlfir.get_length %[[VAL_0]] : (!hlfir.expr<!fir.char<1,10>>) -> index15// CHECK-CANON:         %[[VAL_1:.*]] = arith.constant 10 : index16// CHECK-ALL:           return %[[VAL_1]] : index17// CHECK-ALL:         }18 19func.func @assumed_len_scalar(%arg0: !hlfir.expr<!fir.char<1,?>>) -> index {20  %1 = hlfir.get_length %arg0 : (!hlfir.expr<!fir.char<1,?>>) -> index21  return %1 : index22}23// CHECK-ALL-LABEL:   func.func @assumed_len_scalar(24// CHECK-ALL-SAME:      %[[VAL_0:.*]]: !hlfir.expr<!fir.char<1,?>>) -> index {25// CHECK-ALL:           %[[VAL_1:.*]] = hlfir.get_length %[[VAL_0]] : (!hlfir.expr<!fir.char<1,?>>) -> index26// CHECK-ALL:           return %[[VAL_1]] : index27// CHECK-ALL:         }28 29func.func @fixed_len_array(%arg0: !hlfir.expr<?x!fir.char<1,10>>) -> index {30  %1 = hlfir.get_length %arg0 : (!hlfir.expr<?x!fir.char<1,10>>) -> index31  return %1 : index32}33// CHECK-ALL-LABEL:   func.func @fixed_len_array(34// CHECK-ALL-SAME:      %[[VAL_0:.*]]: !hlfir.expr<?x!fir.char<1,10>>) -> index {35// CHECK:               %[[VAL_1:.*]] = hlfir.get_length %[[VAL_0]] : (!hlfir.expr<?x!fir.char<1,10>>) -> index36// CHECK-CANON:         %[[VAL_1:.*]] = arith.constant 10 : index37// CHECK-ALL:           return %[[VAL_1]] : index38// CHECK-ALL:         }39 40func.func @assumed_len_array(%arg0: !hlfir.expr<?x!fir.char<1,?>>) -> index {41  %1 = hlfir.get_length %arg0 : (!hlfir.expr<?x!fir.char<1,?>>) -> index42  return %1 : index43}44// CHECK-ALL-LABEL:   func.func @assumed_len_array(45// CHECK-ALL-SAME:      %[[VAL_0:.*]]: !hlfir.expr<?x!fir.char<1,?>>) -> index {46// CHECK-ALL:           %[[VAL_1:.*]] = hlfir.get_length %[[VAL_0]] : (!hlfir.expr<?x!fir.char<1,?>>) -> index47// CHECK-ALL:           return %[[VAL_1]] : index48// CHECK-ALL:         }49