26 lines · plain
1// REQUIRES: asserts2// RUN: fir-opt %s -pass-pipeline='builtin.module(func.func(test-fir-alias-analysis))' -debug-only=fir-alias-analysis 2>&1 | FileCheck %s3 4// CHECK-LABEL: Testing : "_QFPtest"5 6// Checking that the source kind of a load of a load is SourceKind::Indirect7// CHECK: {test.ptr = "load_load"}8// CHECK-NEXT: SourceKind: Indirect9 10// Checking that the source kind of a load of an arg is SourceKind::Argument11// CHECK: {test.ptr = "load_arg"}12// CHECK-NEXT: SourceKind: Argument13 14func.func @_QFPtest(%arg0: !fir.ref<!fir.box<!fir.ptr<f32>>> ) attributes {test.ptr = "func"} {15 16 %0 = fir.alloca !fir.llvm_ptr<!fir.box<!fir.ptr<f32>>>17 %1 = fir.convert %arg0 : (!fir.ref<!fir.box<!fir.ptr<f32>>>) -> !fir.llvm_ptr<!fir.box<!fir.ptr<f32>>>18 fir.store %1 to %0 : !fir.ref<!fir.llvm_ptr<!fir.box<!fir.ptr<f32>>>>19 %2 = fir.load %0 : !fir.ref<!fir.llvm_ptr<!fir.box<!fir.ptr<f32>>>>20 %3 = fir.convert %2 : (!fir.llvm_ptr<!fir.box<!fir.ptr<f32>>>) -> !fir.ref<!fir.box<!fir.ptr<f32>>>21 %15 = fir.load %3 : !fir.ref<!fir.box<!fir.ptr<f32>>>22 %16 = fir.box_addr %15 {test.ptr = "load_load"} : (!fir.box<!fir.ptr<f32>>) -> !fir.ptr<f32>23 %17 = fir.load %arg0 : !fir.ref<!fir.box<!fir.ptr<f32>>>24 %18 = fir.box_addr %17 {test.ptr = "load_arg"} : (!fir.box<!fir.ptr<f32>>) -> !fir.ptr<f32>25 return26}