brintos

brintos / llvm-project-archived public Read only

0
0
Text · 2.2 KiB · 2df807d Raw
46 lines · plain
1// RUN: fir-opt --canonicalize %s | FileCheck %s2 3// No folding for !fir.box<none>.4func.func @test_none(%arg0: !fir.box<none>) -> index {5  %0 = fir.box_total_elements %arg0 : (!fir.box<none>) -> index6  return %0 : index7}8// CHECK-LABEL:   func.func @test_none(9// CHECK-SAME:                         %[[VAL_0:[0-9]+|[a-zA-Z$._-][a-zA-Z0-9$._-]*]]: !fir.box<none>) -> index {10// CHECK:           %[[VAL_1:.*]] = fir.box_total_elements %[[VAL_0]] : (!fir.box<none>) -> index11// CHECK:           return %[[VAL_1]] : index12// CHECK:         }13 14// No folding for assumed rank arrays.15func.func @test_assumed_rank(%arg0: !fir.box<!fir.array<*:f32>>) -> index {16  %0 = fir.box_total_elements %arg0 : (!fir.box<!fir.array<*:f32>>) -> index17  return %0 : index18}19// CHECK-LABEL:   func.func @test_assumed_rank(20// CHECK-SAME:                                 %[[VAL_0:[0-9]+|[a-zA-Z$._-][a-zA-Z0-9$._-]*]]: !fir.box<!fir.array<*:f32>>) -> index {21// CHECK:           %[[VAL_1:.*]] = fir.box_total_elements %[[VAL_0]] : (!fir.box<!fir.array<*:f32>>) -> index22// CHECK:           return %[[VAL_1]] : index23// CHECK:         }24 25// Scalar boxes hold one element.26func.func @test_scalar_i32(%arg0: !fir.class<!fir.type<sometype{i:i32}>>) -> i32 {27  %0 = fir.box_total_elements %arg0 : (!fir.class<!fir.type<sometype{i:i32}>>) -> i3228  return %0 : i3229}30// CHECK-LABEL:   func.func @test_scalar_i32(31// CHECK-SAME:                               %[[VAL_0:[0-9]+|[a-zA-Z$._-][a-zA-Z0-9$._-]*]]: !fir.class<!fir.type<sometype{i:i32}>>) -> i32 {32// CHECK:           %[[VAL_1:.*]] = arith.constant 1 : i3233// CHECK:           return %[[VAL_1]] : i3234// CHECK:         }35 36// Scalar boxes hold one element.37func.func @test_scalar_index(%arg0: !fir.class<!fir.type<sometype{i:i32}>>) -> index {38  %0 = fir.box_total_elements %arg0 : (!fir.class<!fir.type<sometype{i:i32}>>) -> index39  return %0 : index40}41// CHECK-LABEL:   func.func @test_scalar_index(42// CHECK-SAME:                                 %[[VAL_0:[0-9]+|[a-zA-Z$._-][a-zA-Z0-9$._-]*]]: !fir.class<!fir.type<sometype{i:i32}>>) -> index {43// CHECK:           %[[VAL_1:.*]] = arith.constant 1 : index44// CHECK:           return %[[VAL_1]] : index45// CHECK:         }46