[flang-commits] [flang] de5e081 - [flang][NFC] Converted five tests from old lowering to new lowering (part 23) (#184533)

via flang-commits flang-commits at lists.llvm.org
Wed Mar 4 03:10:39 PST 2026


Author: Eugene Epshteyn
Date: 2026-03-04T06:10:31-05:00
New Revision: de5e081a833910ec33e8017b6be8247a7788ee27

URL: https://github.com/llvm/llvm-project/commit/de5e081a833910ec33e8017b6be8247a7788ee27
DIFF: https://github.com/llvm/llvm-project/commit/de5e081a833910ec33e8017b6be8247a7788ee27.diff

LOG: [flang][NFC] Converted five tests from old lowering to new lowering (part 23) (#184533)

Tests converted from test/Lower/Intrinsics: adjustr.f90, all.f90,
any.f90, asinpi.f90, associated.f90

Added: 
    

Modified: 
    flang/test/Lower/Intrinsics/adjustr.f90
    flang/test/Lower/Intrinsics/all.f90
    flang/test/Lower/Intrinsics/any.f90
    flang/test/Lower/Intrinsics/asinpi.f90
    flang/test/Lower/Intrinsics/associated.f90

Removed: 
    


################################################################################
diff  --git a/flang/test/Lower/Intrinsics/adjustr.f90 b/flang/test/Lower/Intrinsics/adjustr.f90
index 8e823718db9f2..6b6402bb80ff0 100644
--- a/flang/test/Lower/Intrinsics/adjustr.f90
+++ b/flang/test/Lower/Intrinsics/adjustr.f90
@@ -1,16 +1,18 @@
-! RUN: bbc -emit-fir -hlfir=false %s -o - | FileCheck %s
+! RUN: %flang_fc1 -emit-hlfir %s -o - | FileCheck %s
 
-! CHECK-LABEL: adjustr_test
+! CHECK-LABEL: func.func @_QPadjustr_test() {
 subroutine adjustr_test
     character(len=12) :: adjust_str = '0123456789  '
-  ! CHECK: %[[strBox:.*]] = fir.alloca !fir.box<!fir.heap<!fir.char<1,?>>>
-  ! CHECK: %[[addr0:.*]] = fir.address_of(@_QFadjustr{{.*}}) : !fir.ref<!fir.char<1,12>>
-  ! CHECK: %[[eBox:.*]] = fir.embox %[[addr0]] : (!fir.ref<!fir.char<1,12>>) -> !fir.box<!fir.char<1,12>>
-  ! CHECK: %[[r0:.*]] = fir.zero_bits !fir.heap<!fir.char<1,?>>
-  ! CHECK: %[[r1:.*]] = fir.embox %[[r0]] typeparams %{{.*}} : (!fir.heap<!fir.char<1,?>>, index) -> !fir.box<!fir.heap<!fir.char<1,?>>>
-  ! CHECK: fir.store %[[r1]] to %[[strBox]] : !fir.ref<!fir.box<!fir.heap<!fir.char<1,?>>>>
+  ! CHECK: %[[strBox:.*]] = fir.alloca !fir.box<!fir.heap<!fir.char<1,12>>>
+  ! CHECK: %[[addr0:.*]] = fir.address_of(@_QFadjustr_testEadjust_str) : !fir.ref<!fir.char<1,12>>
+  ! CHECK: %[[c12:.*]] = arith.constant 12 : index
+  ! CHECK: %[[decl:.*]]:2 = hlfir.declare %[[addr0]] typeparams %[[c12]] {{.*}} : (!fir.ref<!fir.char<1,12>>, index) -> (!fir.ref<!fir.char<1,12>>, !fir.ref<!fir.char<1,12>>)
+  ! CHECK: %[[eBox:.*]] = fir.embox %[[decl]]#0 : (!fir.ref<!fir.char<1,12>>) -> !fir.box<!fir.char<1,12>>
+  ! CHECK: %[[r0:.*]] = fir.zero_bits !fir.heap<!fir.char<1,12>>
+  ! CHECK: %[[r1:.*]] = fir.embox %[[r0]] : (!fir.heap<!fir.char<1,12>>) -> !fir.box<!fir.heap<!fir.char<1,12>>>
+  ! CHECK: fir.store %[[r1]] to %[[strBox]] : !fir.ref<!fir.box<!fir.heap<!fir.char<1,12>>>>
   ! CHECK: %[[r2:.*]] = fir.address_of(@_QQ{{.*}}) : !fir.ref<!fir.char<1,{{.*}}>>
-  ! CHECK: %[[r3:.*]] = fir.convert %[[strBox]] : (!fir.ref<!fir.box<!fir.heap<!fir.char<1,?>>>>) -> !fir.ref<!fir.box<none>>
+  ! CHECK: %[[r3:.*]] = fir.convert %[[strBox]] : (!fir.ref<!fir.box<!fir.heap<!fir.char<1,12>>>>) -> !fir.ref<!fir.box<none>>
   ! CHECK: %[[r4:.*]] = fir.convert %[[eBox]] : (!fir.box<!fir.char<1,12>>) -> !fir.box<none>
   ! CHECK: %[[r5:.*]] = fir.convert %[[r2]] : (!fir.ref<!fir.char<1,{{.*}}>>) -> !fir.ref<i8>
   ! CHECK: fir.call @_FortranAAdjustr(%[[r3]], %[[r4]], %[[r5]], %{{.*}}) {{.*}}: (!fir.ref<!fir.box<none>>, !fir.box<none>, !fir.ref<i8>, i32) -> ()

diff  --git a/flang/test/Lower/Intrinsics/all.f90 b/flang/test/Lower/Intrinsics/all.f90
index 343169f0b10ea..c6f4544653994 100644
--- a/flang/test/Lower/Intrinsics/all.f90
+++ b/flang/test/Lower/Intrinsics/all.f90
@@ -1,31 +1,27 @@
-! RUN: bbc -emit-fir -hlfir=false %s -o - | FileCheck %s
+! RUN: %flang_fc1 -emit-hlfir %s -o - | FileCheck %s
 
-! CHECK-LABEL: all_test
-! CHECK-SAME: %[[arg0:.*]]: !fir.box<!fir.array<?x!fir.logical<4>>>{{.*}}) -> !fir.logical<4>
+! CHECK-LABEL: func.func @_QPall_test(
+! CHECK-SAME: %[[arg0:.*]]: !fir.box<!fir.array<?x!fir.logical<4>>> {{.*}}) -> !fir.logical<4>
 logical function all_test(mask)
 logical :: mask(:)
-! CHECK: %[[c1:.*]] = arith.constant 1 : index
-! CHECK: %[[a1:.*]] = fir.convert %[[arg0]] : (!fir.box<!fir.array<?x!fir.logical<4>>>) -> !fir.box<none>
-! CHECK: %[[a2:.*]] = fir.convert %[[c1]] : (index) -> i32
+! CHECK: %[[mask_decl:.*]]:2 = hlfir.declare %[[arg0]] {{.*}}
+! CHECK: %[[res:.*]] = hlfir.all %[[mask_decl]]#0 : (!fir.box<!fir.array<?x!fir.logical<4>>>) -> !fir.logical<4>
+! CHECK: hlfir.assign %[[res]] to %{{.*}} : !fir.logical<4>, !fir.ref<!fir.logical<4>>
 all_test = all(mask)
-! CHECK:  %[[a3:.*]] = fir.call @_FortranAAll(%[[a1]], %{{.*}}, %{{.*}}, %[[a2]]) {{.*}}: (!fir.box<none>, !fir.ref<i8>, i32, i32) -> i1
 end function all_test
 
-! CHECK-LABEL: all_test2
-! CHECK-SAME: %[[arg0:.*]]: !fir.box<!fir.array<?x?x!fir.logical<4>>>
-! CHECK-SAME: %[[arg1:.*]]: !fir.ref<i32>
-! CHECK-SAME: %[[arg2:.*]]: !fir.box<!fir.array<?x!fir.logical<4>>>
+! CHECK-LABEL: func.func @_QPall_test2(
+! CHECK-SAME: %[[arg0:.*]]: !fir.box<!fir.array<?x?x!fir.logical<4>>> {{.*}}, %[[arg1:.*]]: !fir.ref<i32> {{.*}}, %[[arg2:.*]]: !fir.box<!fir.array<?x!fir.logical<4>>> {{.*}})
 subroutine all_test2(mask, d, rslt)
 logical :: mask(:,:)
 integer :: d
 logical :: rslt(:)
-! CHECK:  %[[a0:.*]] = fir.alloca !fir.box<!fir.heap<!fir.array<?x!fir.logical<4>>>>
-! CHECK:  %[[a1:.*]] = fir.load %[[arg1:.*]] : !fir.ref<i32>
-! CHECK:  %[[a6:.*]] = fir.convert %[[a0:.*]] : (!fir.ref<!fir.box<!fir.heap<!fir.array<?x!fir.logical<4>>>>>) -> !fir.ref<!fir.box<none>>
-! CHECK:  %[[a7:.*]] = fir.convert %[[arg0:.*]]: (!fir.box<!fir.array<?x?x!fir.logical<4>>>) -> !fir.box<none>
+! CHECK: %[[d_decl:.*]]:2 = hlfir.declare %[[arg1]] {{.*}}
+! CHECK: %[[mask_decl:.*]]:2 = hlfir.declare %[[arg0]] {{.*}}
+! CHECK: %[[rslt_decl:.*]]:2 = hlfir.declare %[[arg2]] {{.*}}
+! CHECK: %[[d_val:.*]] = fir.load %[[d_decl]]#0 : !fir.ref<i32>
+! CHECK: %[[res:.*]] = hlfir.all %[[mask_decl]]#0 dim %[[d_val]] : (!fir.box<!fir.array<?x?x!fir.logical<4>>>, i32) -> !hlfir.expr<?x!fir.logical<4>>
+! CHECK: hlfir.assign %[[res]] to %[[rslt_decl]]#0 : !hlfir.expr<?x!fir.logical<4>>, !fir.box<!fir.array<?x!fir.logical<4>>>
+! CHECK: hlfir.destroy %[[res]] : !hlfir.expr<?x!fir.logical<4>>
 rslt = all(mask, d)
-! CHECK:  fir.call @_FortranAAllDim(%[[a6:.*]], %[[a7:.*]], %[[a1:.*]], %{{.*}}, %{{.*}}) {{.*}}: (!fir.ref<!fir.box<none>>, !fir.box<none>, i32, !fir.ref<i8>, i32) -> ()
-! CHECK:  %[[a10:.*]] = fir.load %[[a0:.*]] : !fir.ref<!fir.box<!fir.heap<!fir.array<?x!fir.logical<4>>>>>
-! CHECK:  %[[a12:.*]] = fir.box_addr %[[a10:.*]] : (!fir.box<!fir.heap<!fir.array<?x!fir.logical<4>>>>) -> !fir.heap<!fir.array<?x!fir.logical<4>>>
-! CHECK:  fir.freemem %[[a12:.*]]
 end subroutine

diff  --git a/flang/test/Lower/Intrinsics/any.f90 b/flang/test/Lower/Intrinsics/any.f90
index 2c0b92fcc1d74..3ad4109784b19 100644
--- a/flang/test/Lower/Intrinsics/any.f90
+++ b/flang/test/Lower/Intrinsics/any.f90
@@ -1,31 +1,27 @@
-! RUN: bbc -emit-fir -hlfir=false %s -o - | FileCheck %s
+! RUN: %flang_fc1 -emit-hlfir %s -o - | FileCheck %s
 
-! CHECK-LABEL: any_test
-! CHECK-SAME: %[[arg0:.*]]: !fir.box<!fir.array<?x!fir.logical<4>>>{{.*}}) -> !fir.logical<4>
+! CHECK-LABEL: func.func @_QPany_test(
+! CHECK-SAME: %[[arg0:.*]]: !fir.box<!fir.array<?x!fir.logical<4>>> {{.*}}) -> !fir.logical<4>
 logical function any_test(mask)
 logical :: mask(:)
-! CHECK: %[[c1:.*]] = arith.constant 1 : index
-! CHECK: %[[a1:.*]] = fir.convert %[[arg0]] : (!fir.box<!fir.array<?x!fir.logical<4>>>) -> !fir.box<none>
-! CHECK: %[[a2:.*]] = fir.convert %[[c1]] : (index) -> i32
+! CHECK: %[[mask_decl:.*]]:2 = hlfir.declare %[[arg0]] {{.*}}
+! CHECK: %[[res:.*]] = hlfir.any %[[mask_decl]]#0 : (!fir.box<!fir.array<?x!fir.logical<4>>>) -> !fir.logical<4>
+! CHECK: hlfir.assign %[[res]] to %{{.*}} : !fir.logical<4>, !fir.ref<!fir.logical<4>>
 any_test = any(mask)
-! CHECK:  %[[a3:.*]] = fir.call @_FortranAAny(%[[a1]], %{{.*}},  %{{.*}}, %[[a2]]) {{.*}}: (!fir.box<none>, !fir.ref<i8>, i32, i32) -> i1
 end function any_test
 
-! CHECK-LABEL: any_test2
-! CHECK-SAME: %[[arg0:.*]]: !fir.box<!fir.array<?x?x!fir.logical<4>>>
-! CHECK-SAME: %[[arg1:.*]]: !fir.ref<i32>
-! CHECK-SAME: %[[arg2:.*]]: !fir.box<!fir.array<?x!fir.logical<4>>>
+! CHECK-LABEL: func.func @_QPany_test2(
+! CHECK-SAME: %[[arg0:.*]]: !fir.box<!fir.array<?x?x!fir.logical<4>>> {{.*}}, %[[arg1:.*]]: !fir.ref<i32> {{.*}}, %[[arg2:.*]]: !fir.box<!fir.array<?x!fir.logical<4>>> {{.*}})
 subroutine any_test2(mask, d, rslt)
 logical :: mask(:,:)
 integer :: d
 logical :: rslt(:)
-! CHECK-DAG:  %[[a0:.*]] = fir.alloca !fir.box<!fir.heap<!fir.array<?x!fir.logical<4>>>>
-! CHECK-DAG:  %[[a1:.*]] = fir.load %[[arg1:.*]] : !fir.ref<i32>
-! CHECK-DAG:  %[[a6:.*]] = fir.convert %[[a0:.*]] : (!fir.ref<!fir.box<!fir.heap<!fir.array<?x!fir.logical<4>>>>>) -> !fir.ref<!fir.box<none>>
-! CHECK-DAG:  %[[a7:.*]] = fir.convert %[[arg0:.*]]: (!fir.box<!fir.array<?x?x!fir.logical<4>>>) -> !fir.box<none>
+! CHECK: %[[d_decl:.*]]:2 = hlfir.declare %[[arg1]] {{.*}}
+! CHECK: %[[mask_decl:.*]]:2 = hlfir.declare %[[arg0]] {{.*}}
+! CHECK: %[[rslt_decl:.*]]:2 = hlfir.declare %[[arg2]] {{.*}}
+! CHECK: %[[d_val:.*]] = fir.load %[[d_decl]]#0 : !fir.ref<i32>
+! CHECK: %[[res:.*]] = hlfir.any %[[mask_decl]]#0 dim %[[d_val]] : (!fir.box<!fir.array<?x?x!fir.logical<4>>>, i32) -> !hlfir.expr<?x!fir.logical<4>>
+! CHECK: hlfir.assign %[[res]] to %[[rslt_decl]]#0 : !hlfir.expr<?x!fir.logical<4>>, !fir.box<!fir.array<?x!fir.logical<4>>>
+! CHECK: hlfir.destroy %[[res]] : !hlfir.expr<?x!fir.logical<4>>
 rslt = any(mask, d)
-! CHECK:  fir.call @_FortranAAnyDim(%[[a6:.*]], %[[a7:.*]], %[[a1:.*]], %{{.*}}, %{{.*}}) {{.*}}: (!fir.ref<!fir.box<none>>, !fir.box<none>, i32, !fir.ref<i8>, i32) -> ()
-! CHECK-DAG:  %[[a10:.*]] = fir.load %[[a0:.*]] : !fir.ref<!fir.box<!fir.heap<!fir.array<?x!fir.logical<4>>>>>
-! CHECK-DAG:  %[[a12:.*]] = fir.box_addr %[[a10:.*]] : (!fir.box<!fir.heap<!fir.array<?x!fir.logical<4>>>>) -> !fir.heap<!fir.array<?x!fir.logical<4>>>
-! CHECK-DAG:  fir.freemem %[[a12:.*]]
 end subroutine

diff  --git a/flang/test/Lower/Intrinsics/asinpi.f90 b/flang/test/Lower/Intrinsics/asinpi.f90
index bceba3cf1be5c..5a3be16634597 100644
--- a/flang/test/Lower/Intrinsics/asinpi.f90
+++ b/flang/test/Lower/Intrinsics/asinpi.f90
@@ -1,16 +1,15 @@
 ! REQUIRES: flang-supports-f128-math
-! RUN: bbc -emit-fir -hlfir=false %s -o - | FileCheck %s --check-prefixes="CHECK,CHECK-FAST"
-! RUN: bbc --math-runtime=precise -emit-fir -hlfir=false %s -o - | FileCheck %s --check-prefixes="CHECK,CHECK-PRECISE"
-! RUN: %flang_fc1 -emit-fir -flang-deprecated-no-hlfir %s -o - | FileCheck %s --check-prefixes="CHECK,CHECK-FAST"
+! RUN: %flang_fc1 -emit-hlfir %s -o - | FileCheck %s --check-prefixes="CHECK,CHECK-FAST"
+! RUN: %flang_fc1 -mllvm --math-runtime=precise -emit-hlfir %s -o - | FileCheck %s --check-prefixes="CHECK,CHECK-PRECISE"
 
 function test_real4(x)
   real :: x, test_real4
   test_real4 = asinpi(x)
 end function
 
-! CHECK-LABEL: @_QPtest_real4
+! CHECK-LABEL: func.func @_QPtest_real4
 ! CHECK-PRECISE: %[[asin:.*]] = fir.call @asinf({{%[A-Za-z0-9._]+}}) fastmath<contract> : (f32) -> f32
-! CHECK-FAST: %[[asin:.*]] = math.asin %{{.*}} : f32
+! CHECK-FAST: %[[asin:.*]] = math.asin %{{.*}} fastmath<contract> : f32
 ! CHECK: %[[inv_pi:.*]] = arith.constant 0.318309873 : f32
 ! CHECK: %{{.*}} = arith.mulf %[[asin]], %[[inv_pi]] fastmath<contract> : f32
 
@@ -19,9 +18,9 @@ function test_real8(x)
   test_real8 = asinpi(x)
 end function
 
-! CHECK-LABEL: @_QPtest_real8
+! CHECK-LABEL: func.func @_QPtest_real8
 ! CHECK-PRECISE: %[[asin:.*]] = fir.call @asin({{%[A-Za-z0-9._]+}}) fastmath<contract> : (f64) -> f64
-! CHECK-FAST: %[[asin:.*]] = math.asin %{{.*}} : f64
+! CHECK-FAST: %[[asin:.*]] = math.asin %{{.*}} fastmath<contract> : f64
 ! CHECK: %[[inv_pi:.*]] = arith.constant 0.31830988618379069 : f64
 ! CHECK: %{{.*}} = arith.mulf %[[asin]], %[[inv_pi]] fastmath<contract> : f64
 
@@ -30,7 +29,7 @@ function test_real16(x)
   test_real16 = asinpi(x)
 end function
 
-! CHECK-LABEL: @_QPtest_real16
+! CHECK-LABEL: func.func @_QPtest_real16
 ! CHECK: %[[asin:.*]] = fir.call @_FortranAAsinF128({{.*}}) fastmath<contract> : (f128) -> f128
 ! CHECK: %[[inv_pi:.*]] = arith.constant 0.3183098861837906715377675267450{{.*}} : f128
 ! CHECK: %{{.*}} = arith.mulf %[[asin]], %[[inv_pi]] fastmath<contract> : f128

diff  --git a/flang/test/Lower/Intrinsics/associated.f90 b/flang/test/Lower/Intrinsics/associated.f90
index b32e0abd9bb0a..6c322138d5134 100644
--- a/flang/test/Lower/Intrinsics/associated.f90
+++ b/flang/test/Lower/Intrinsics/associated.f90
@@ -1,29 +1,30 @@
-! RUN: bbc -emit-fir -hlfir=false %s -o - | FileCheck %s
+! RUN: %flang_fc1 -emit-hlfir %s -o - | FileCheck %s
 
-! CHECK-LABEL: associated_test
+! CHECK-LABEL: func.func @_QPassociated_test(
 ! CHECK-SAME: %[[arg0:.*]]: !fir.ref<!fir.box<!fir.ptr<f32>>>{{.*}}, %[[arg1:.*]]: !fir.ref<!fir.box<!fir.ptr<!fir.array<?xf32>>>>{{.*}})
 subroutine associated_test(scalar, array)
     real, pointer :: scalar, array(:)
     real, target :: ziel
     ! CHECK: %[[ziel:.*]] = fir.alloca f32 {bindc_name = "ziel"
-    ! CHECK: %[[scalar:.*]] = fir.load %[[arg0]] : !fir.ref<!fir.box<!fir.ptr<f32>>>
-    ! CHECK: %[[addr0:.*]] = fir.box_addr %[[scalar]] : (!fir.box<!fir.ptr<f32>>) -> !fir.ptr<f32>
+    ! CHECK: %[[scalar_load:.*]] = fir.load %{{.*}} : !fir.ref<!fir.box<!fir.ptr<f32>>>
+    ! CHECK: %[[addr0:.*]] = fir.box_addr %[[scalar_load]] : (!fir.box<!fir.ptr<f32>>) -> !fir.ptr<f32>
     ! CHECK: %[[addrToInt0:.*]] = fir.convert %[[addr0]]
-    ! CHECK: cmpi ne, %[[addrToInt0]], %c0{{.*}}
+    ! CHECK: arith.cmpi ne, %[[addrToInt0]], %{{.*}}
     print *, associated(scalar)
-    ! CHECK: %[[array:.*]] = fir.load %[[arg1]] : !fir.ref<!fir.box<!fir.ptr<!fir.array<?xf32>>>>
-    ! CHECK: %[[addr1:.*]] = fir.box_addr %[[array]] : (!fir.box<!fir.ptr<!fir.array<?xf32>>>) -> !fir.ptr<!fir.array<?xf32>>
+    ! CHECK: %[[array_load:.*]] = fir.load %{{.*}} : !fir.ref<!fir.box<!fir.ptr<!fir.array<?xf32>>>>
+    ! CHECK: %[[addr1:.*]] = fir.box_addr %[[array_load]] : (!fir.box<!fir.ptr<!fir.array<?xf32>>>) -> !fir.ptr<!fir.array<?xf32>>
     ! CHECK: %[[addrToInt1:.*]] = fir.convert %[[addr1]]
-    ! CHECK: cmpi ne, %[[addrToInt1]], %c0{{.*}}
+    ! CHECK: arith.cmpi ne, %[[addrToInt1]], %{{.*}}
     print *, associated(array)
-    ! CHECK: %[[zbox0:.*]] = fir.embox %[[ziel]] : (!fir.ref<f32>) -> !fir.box<f32>
-    ! CHECK: %[[scalar:.*]] = fir.load %[[arg0]] : !fir.ref<!fir.box<!fir.ptr<f32>>>
-    ! CHECK: %[[sbox:.*]] = fir.convert %[[scalar]] : (!fir.box<!fir.ptr<f32>>) -> !fir.box<none>
+    ! CHECK: %[[zbox0:.*]] = fir.embox %{{.*}} : (!fir.ref<f32>) -> !fir.box<f32>
+    ! CHECK: %[[scalar_load2:.*]] = fir.load %{{.*}} : !fir.ref<!fir.box<!fir.ptr<f32>>>
+    ! CHECK: %[[sbox:.*]] = fir.convert %[[scalar_load2]] : (!fir.box<!fir.ptr<f32>>) -> !fir.box<none>
     ! CHECK: %[[zbox:.*]] = fir.convert %[[zbox0]] : (!fir.box<f32>) -> !fir.box<none>
     ! CHECK: fir.call @_FortranAPointerIsAssociatedWith(%[[sbox]], %[[zbox]]) {{.*}}: (!fir.box<none>, !fir.box<none>) -> i1
     print *, associated(scalar, ziel)
   end subroutine
 
+  ! CHECK-LABEL: func.func @_QPtest_func_results() {
   subroutine test_func_results()
     interface
       function get_pointer()
@@ -32,120 +33,118 @@ function get_pointer()
     end interface
     ! CHECK: %[[result:.*]] = fir.call @_QPget_pointer() {{.*}}: () -> !fir.box<!fir.ptr<!fir.array<?xf32>>>
     ! CHECK: fir.save_result %[[result]] to %[[box_storage:.*]] : !fir.box<!fir.ptr<!fir.array<?xf32>>>, !fir.ref<!fir.box<!fir.ptr<!fir.array<?xf32>>>>
-    ! CHECK: %[[box:.*]] = fir.load %[[box_storage]] : !fir.ref<!fir.box<!fir.ptr<!fir.array<?xf32>>>>
+    ! CHECK: %[[box:.*]] = fir.load %{{.*}} : !fir.ref<!fir.box<!fir.ptr<!fir.array<?xf32>>>>
     ! CHECK: %[[addr:.*]] = fir.box_addr %[[box]] : (!fir.box<!fir.ptr<!fir.array<?xf32>>>) -> !fir.ptr<!fir.array<?xf32>>
     ! CHECK: %[[addr_cast:.*]] = fir.convert %[[addr]] : (!fir.ptr<!fir.array<?xf32>>) -> i64
-    ! CHECK:  arith.cmpi ne, %[[addr_cast]], %c0{{.*}} : i64
+    ! CHECK: arith.cmpi ne, %[[addr_cast]], %{{.*}} : i64
     print *, associated(get_pointer())
   end subroutine
 
-  ! CHECK-LABEL: func @_QPtest_optional_target_1(
+  ! CHECK-LABEL: func.func @_QPtest_optional_target_1(
   ! CHECK-SAME:  %[[VAL_0:.*]]: !fir.ref<!fir.box<!fir.ptr<!fir.array<?xf32>>>> {fir.bindc_name = "p"},
   ! CHECK-SAME:  %[[VAL_1:.*]]: !fir.ref<!fir.array<10xf32>> {fir.bindc_name = "optionales_ziel", fir.optional, fir.target}) {
   subroutine test_optional_target_1(p, optionales_ziel)
     real, pointer :: p(:)
     real, optional, target :: optionales_ziel(10)
     print *, associated(p, optionales_ziel)
-  ! CHECK:  %[[VAL_2:.*]] = arith.constant 10 : index
-  ! CHECK:  %[[VAL_3:.*]] = fir.is_present %[[VAL_1]] : (!fir.ref<!fir.array<10xf32>>) -> i1
+  ! CHECK:  %[[VAL_3:.*]] = fir.is_present %{{.*}} : (!fir.ref<!fir.array<10xf32>>) -> i1
   ! CHECK:  %[[VAL_4:.*]] = fir.if %[[VAL_3]] -> (!fir.box<!fir.array<10xf32>>) {
-  ! CHECK:    %[[VAL_5:.*]] = fir.shape %[[VAL_2]] : (index) -> !fir.shape<1>
-  ! CHECK:    %[[VAL_6:.*]] = fir.embox %[[VAL_1]](%[[VAL_5]]) : (!fir.ref<!fir.array<10xf32>>, !fir.shape<1>) -> !fir.box<!fir.array<10xf32>>
+  ! CHECK:    %[[VAL_6:.*]] = fir.embox %{{.*}}(%{{.*}}) : (!fir.ref<!fir.array<10xf32>>, !fir.shape<1>) -> !fir.box<!fir.array<10xf32>>
   ! CHECK:    fir.result %[[VAL_6]] : !fir.box<!fir.array<10xf32>>
   ! CHECK:  } else {
   ! CHECK:    %[[VAL_8:.*]] = fir.absent !fir.box<!fir.array<10xf32>>
   ! CHECK:    fir.result %[[VAL_8]] : !fir.box<!fir.array<10xf32>>
   ! CHECK:  }
-  ! CHECK:  %[[VAL_13:.*]] = fir.load %[[VAL_0]] : !fir.ref<!fir.box<!fir.ptr<!fir.array<?xf32>>>>
+  ! CHECK:  %[[VAL_13:.*]] = fir.load %{{.*}} : !fir.ref<!fir.box<!fir.ptr<!fir.array<?xf32>>>>
   ! CHECK:  %[[VAL_14:.*]] = fir.convert %[[VAL_13]] : (!fir.box<!fir.ptr<!fir.array<?xf32>>>) -> !fir.box<none>
   ! CHECK:  %[[VAL_15:.*]] = fir.convert %[[VAL_4]] : (!fir.box<!fir.array<10xf32>>) -> !fir.box<none>
   ! CHECK:  fir.call @_FortranAPointerIsAssociatedWith(%[[VAL_14]], %[[VAL_15]]) {{.*}}: (!fir.box<none>, !fir.box<none>) -> i1
   end subroutine
 
-  ! CHECK-LABEL: func @_QPtest_optional_target_2(
+  ! CHECK-LABEL: func.func @_QPtest_optional_target_2(
   ! CHECK-SAME:  %[[VAL_0:.*]]: !fir.ref<!fir.box<!fir.ptr<!fir.array<?xf32>>>> {fir.bindc_name = "p"},
   ! CHECK-SAME:  %[[VAL_1:.*]]: !fir.box<!fir.array<?xf32>> {fir.bindc_name = "optionales_ziel", fir.optional, fir.target}) {
   subroutine test_optional_target_2(p, optionales_ziel)
     real, pointer :: p(:)
     real, optional, target :: optionales_ziel(:)
     print *, associated(p, optionales_ziel)
-  ! CHECK:  %[[VAL_7:.*]] = fir.is_present %[[VAL_1]] : (!fir.box<!fir.array<?xf32>>) -> i1
+  ! CHECK:  %[[VAL_7:.*]] = fir.is_present %{{.*}} : (!fir.box<!fir.array<?xf32>>) -> i1
   ! CHECK:  %[[VAL_8:.*]] = fir.if %[[VAL_7]] -> (!fir.box<!fir.array<?xf32>>) {
-  ! CHECK:    fir.result %[[VAL_1]] : !fir.box<!fir.array<?xf32>>
+  ! CHECK:    fir.result %{{.*}} : !fir.box<!fir.array<?xf32>>
   ! CHECK:  } else {
   ! CHECK:    %[[VAL_10:.*]] = fir.absent !fir.box<!fir.array<?xf32>>
   ! CHECK:    fir.result %[[VAL_10]] : !fir.box<!fir.array<?xf32>>
   ! CHECK:  }
-  ! CHECK:  %[[VAL_10:.*]] = fir.load %[[VAL_0]] : !fir.ref<!fir.box<!fir.ptr<!fir.array<?xf32>>>>
-  ! CHECK:  %[[VAL_11:.*]] = fir.convert %[[VAL_10]] : (!fir.box<!fir.ptr<!fir.array<?xf32>>>) -> !fir.box<none>
+  ! CHECK:  %[[VAL_10_load:.*]] = fir.load %{{.*}} : !fir.ref<!fir.box<!fir.ptr<!fir.array<?xf32>>>>
+  ! CHECK:  %[[VAL_11:.*]] = fir.convert %[[VAL_10_load]] : (!fir.box<!fir.ptr<!fir.array<?xf32>>>) -> !fir.box<none>
   ! CHECK:  %[[VAL_12:.*]] = fir.convert %[[VAL_8]] : (!fir.box<!fir.array<?xf32>>) -> !fir.box<none>
   ! CHECK:  fir.call @_FortranAPointerIsAssociatedWith(%[[VAL_11]], %[[VAL_12]]) {{.*}}: (!fir.box<none>, !fir.box<none>) -> i1
   end subroutine
 
-  ! CHECK-LABEL: func @_QPtest_optional_target_3(
+  ! CHECK-LABEL: func.func @_QPtest_optional_target_3(
   ! CHECK-SAME:  %[[VAL_0:.*]]: !fir.ref<!fir.box<!fir.ptr<!fir.array<?xf32>>>> {fir.bindc_name = "p"},
   ! CHECK-SAME:  %[[VAL_1:.*]]: !fir.ref<!fir.box<!fir.ptr<!fir.array<?xf32>>>> {fir.bindc_name = "optionales_ziel", fir.optional}) {
   subroutine test_optional_target_3(p, optionales_ziel)
     real, pointer :: p(:)
     real, optional, pointer :: optionales_ziel(:)
     print *, associated(p, optionales_ziel)
-  ! CHECK:  %[[VAL_8:.*]] = fir.is_present %[[VAL_1]] : (!fir.ref<!fir.box<!fir.ptr<!fir.array<?xf32>>>>) -> i1
+  ! CHECK:  %[[VAL_8:.*]] = fir.is_present %{{.*}} : (!fir.ref<!fir.box<!fir.ptr<!fir.array<?xf32>>>>) -> i1
   ! CHECK:  %[[VAL_9:.*]] = fir.if %[[VAL_8]] -> (!fir.box<!fir.ptr<!fir.array<?xf32>>>) {
-  ! CHECK:    %[[VAL_10:.*]] = fir.load %[[VAL_1]] : !fir.ref<!fir.box<!fir.ptr<!fir.array<?xf32>>>>
+  ! CHECK:    %[[VAL_10:.*]] = fir.load %{{.*}} : !fir.ref<!fir.box<!fir.ptr<!fir.array<?xf32>>>>
   ! CHECK:    fir.result %[[VAL_10]] : !fir.box<!fir.ptr<!fir.array<?xf32>>>
   ! CHECK:  } else {
   ! CHECK:    %[[VAL_12:.*]] = fir.absent !fir.box<!fir.ptr<!fir.array<?xf32>>>
   ! CHECK:    fir.result %[[VAL_12]] : !fir.box<!fir.ptr<!fir.array<?xf32>>>
   ! CHECK:  }
-  ! CHECK:  %[[VAL_11:.*]] = fir.load %[[VAL_0]] : !fir.ref<!fir.box<!fir.ptr<!fir.array<?xf32>>>>
-  ! CHECK:  %[[VAL_12:.*]] = fir.convert %[[VAL_11]] : (!fir.box<!fir.ptr<!fir.array<?xf32>>>) -> !fir.box<none>
+  ! CHECK:  %[[VAL_11:.*]] = fir.load %{{.*}} : !fir.ref<!fir.box<!fir.ptr<!fir.array<?xf32>>>>
+  ! CHECK:  %[[VAL_12_conv:.*]] = fir.convert %[[VAL_11]] : (!fir.box<!fir.ptr<!fir.array<?xf32>>>) -> !fir.box<none>
   ! CHECK:  %[[VAL_13:.*]] = fir.convert %[[VAL_9]] : (!fir.box<!fir.ptr<!fir.array<?xf32>>>) -> !fir.box<none>
-  ! CHECK:  fir.call @_FortranAPointerIsAssociatedWith(%[[VAL_12]], %[[VAL_13]]) {{.*}}: (!fir.box<none>, !fir.box<none>) -> i1
+  ! CHECK:  fir.call @_FortranAPointerIsAssociatedWith(%[[VAL_12_conv]], %[[VAL_13]]) {{.*}}: (!fir.box<none>, !fir.box<none>) -> i1
   end subroutine
 
-  ! CHECK-LABEL: func @_QPtest_optional_target_4(
+  ! CHECK-LABEL: func.func @_QPtest_optional_target_4(
   ! CHECK-SAME:  %[[VAL_0:.*]]: !fir.ref<!fir.box<!fir.ptr<!fir.array<?xf32>>>> {fir.bindc_name = "p"},
   ! CHECK-SAME:  %[[VAL_1:.*]]: !fir.ref<!fir.box<!fir.heap<!fir.array<?xf32>>>> {fir.bindc_name = "optionales_ziel", fir.optional, fir.target}) {
   subroutine test_optional_target_4(p, optionales_ziel)
     real, pointer :: p(:)
     real, optional, allocatable, target :: optionales_ziel(:)
     print *, associated(p, optionales_ziel)
-  ! CHECK:  %[[VAL_8:.*]] = fir.is_present %[[VAL_1]] : (!fir.ref<!fir.box<!fir.heap<!fir.array<?xf32>>>>) -> i1
+  ! CHECK:  %[[VAL_8:.*]] = fir.is_present %{{.*}} : (!fir.ref<!fir.box<!fir.heap<!fir.array<?xf32>>>>) -> i1
   ! CHECK:  %[[VAL_9:.*]] = fir.if %[[VAL_8]] -> (!fir.box<!fir.heap<!fir.array<?xf32>>>) {
-  ! CHECK:    %[[VAL_10:.*]] = fir.load %[[VAL_1]] : !fir.ref<!fir.box<!fir.heap<!fir.array<?xf32>>>>
+  ! CHECK:    %[[VAL_10:.*]] = fir.load %{{.*}} : !fir.ref<!fir.box<!fir.heap<!fir.array<?xf32>>>>
   ! CHECK:    fir.result %[[VAL_10]] : !fir.box<!fir.heap<!fir.array<?xf32>>>
   ! CHECK:  } else {
   ! CHECK:    %[[VAL_12:.*]] = fir.absent !fir.box<!fir.heap<!fir.array<?xf32>>>
   ! CHECK:    fir.result %[[VAL_12]] : !fir.box<!fir.heap<!fir.array<?xf32>>>
   ! CHECK:  }
-  ! CHECK:  %[[VAL_11:.*]] = fir.load %[[VAL_0]] : !fir.ref<!fir.box<!fir.ptr<!fir.array<?xf32>>>>
-  ! CHECK:  %[[VAL_12:.*]] = fir.convert %[[VAL_11]] : (!fir.box<!fir.ptr<!fir.array<?xf32>>>) -> !fir.box<none>
+  ! CHECK:  %[[VAL_11:.*]] = fir.load %{{.*}} : !fir.ref<!fir.box<!fir.ptr<!fir.array<?xf32>>>>
+  ! CHECK:  %[[VAL_12_conv:.*]] = fir.convert %[[VAL_11]] : (!fir.box<!fir.ptr<!fir.array<?xf32>>>) -> !fir.box<none>
   ! CHECK:  %[[VAL_13:.*]] = fir.convert %[[VAL_9]] : (!fir.box<!fir.heap<!fir.array<?xf32>>>) -> !fir.box<none>
-  ! CHECK:  fir.call @_FortranAPointerIsAssociatedWith(%[[VAL_12]], %[[VAL_13]]) {{.*}}: (!fir.box<none>, !fir.box<none>) -> i1
+  ! CHECK:  fir.call @_FortranAPointerIsAssociatedWith(%[[VAL_12_conv]], %[[VAL_13]]) {{.*}}: (!fir.box<none>, !fir.box<none>) -> i1
   end subroutine
 
-  ! CHECK-LABEL: func @_QPtest_pointer_target(
+  ! CHECK-LABEL: func.func @_QPtest_pointer_target(
   ! CHECK-SAME:  %[[VAL_0:.*]]: !fir.ref<!fir.box<!fir.ptr<!fir.array<?xf32>>>> {fir.bindc_name = "p"},
   ! CHECK-SAME:  %[[VAL_1:.*]]: !fir.ref<!fir.box<!fir.ptr<!fir.array<?xf32>>>> {fir.bindc_name = "pointer_ziel"}) {
   subroutine test_pointer_target(p, pointer_ziel)
     real, pointer :: p(:)
     real, pointer :: pointer_ziel(:)
     print *, associated(p, pointer_ziel)
-  ! CHECK:  %[[VAL_7:.*]] = fir.load %[[VAL_1]] : !fir.ref<!fir.box<!fir.ptr<!fir.array<?xf32>>>>
-  ! CHECK:  %[[VAL_8:.*]] = fir.load %[[VAL_0]] : !fir.ref<!fir.box<!fir.ptr<!fir.array<?xf32>>>>
+  ! CHECK:  %[[VAL_7:.*]] = fir.load %{{.*}} : !fir.ref<!fir.box<!fir.ptr<!fir.array<?xf32>>>>
+  ! CHECK:  %[[VAL_8:.*]] = fir.load %{{.*}} : !fir.ref<!fir.box<!fir.ptr<!fir.array<?xf32>>>>
   ! CHECK:  %[[VAL_9:.*]] = fir.convert %[[VAL_8]] : (!fir.box<!fir.ptr<!fir.array<?xf32>>>) -> !fir.box<none>
   ! CHECK:  %[[VAL_10:.*]] = fir.convert %[[VAL_7]] : (!fir.box<!fir.ptr<!fir.array<?xf32>>>) -> !fir.box<none>
   ! CHECK:  fir.call @_FortranAPointerIsAssociatedWith(%[[VAL_9]], %[[VAL_10]]) {{.*}}: (!fir.box<none>, !fir.box<none>) -> i1
   end subroutine
 
-  ! CHECK-LABEL: func @_QPtest_allocatable_target(
+  ! CHECK-LABEL: func.func @_QPtest_allocatable_target(
   ! CHECK-SAME:  %[[VAL_0:.*]]: !fir.ref<!fir.box<!fir.ptr<!fir.array<?xf32>>>> {fir.bindc_name = "p"},
   ! CHECK-SAME:  %[[VAL_1:.*]]: !fir.ref<!fir.box<!fir.heap<!fir.array<?xf32>>>> {fir.bindc_name = "allocatable_ziel", fir.target}) {
   subroutine test_allocatable_target(p, allocatable_ziel)
     real, pointer :: p(:)
     real, allocatable, target :: allocatable_ziel(:)
-  ! CHECK:  %[[VAL_7:.*]] = fir.load %[[VAL_1]] : !fir.ref<!fir.box<!fir.heap<!fir.array<?xf32>>>>
-  ! CHECK:  %[[VAL_8:.*]] = fir.load %[[VAL_0]] : !fir.ref<!fir.box<!fir.ptr<!fir.array<?xf32>>>>
+  ! CHECK:  %[[VAL_7:.*]] = fir.load %{{.*}} : !fir.ref<!fir.box<!fir.heap<!fir.array<?xf32>>>>
+  ! CHECK:  %[[VAL_8:.*]] = fir.load %{{.*}} : !fir.ref<!fir.box<!fir.ptr<!fir.array<?xf32>>>>
   ! CHECK:  %[[VAL_9:.*]] = fir.convert %[[VAL_8]] : (!fir.box<!fir.ptr<!fir.array<?xf32>>>) -> !fir.box<none>
   ! CHECK:  %[[VAL_10:.*]] = fir.convert %[[VAL_7]] : (!fir.box<!fir.heap<!fir.array<?xf32>>>) -> !fir.box<none>
   ! CHECK:  fir.call @_FortranAPointerIsAssociatedWith(%[[VAL_9]], %[[VAL_10]]) {{.*}}: (!fir.box<none>, !fir.box<none>) -> i1
@@ -162,15 +161,15 @@ subroutine test_optional_argument(a, b)
 
 ! CHECK-LABEL: func.func @_QPtest_optional_argument(
 ! CHECK-SAME: %[[A:.*]]: !fir.ref<!fir.box<!fir.ptr<i32>>> {fir.bindc_name = "a"}, %[[B:.*]]: !fir.ref<!fir.box<!fir.ptr<i32>>> {fir.bindc_name = "b", fir.optional}) {
-! CHECK: %[[IS_PRESENT_B:.*]] = fir.is_present %[[B]] : (!fir.ref<!fir.box<!fir.ptr<i32>>>) -> i1
+! CHECK: %[[IS_PRESENT_B:.*]] = fir.is_present %{{.*}} : (!fir.ref<!fir.box<!fir.ptr<i32>>>) -> i1
 ! CHECK: %[[BOX_B:.*]] = fir.if %[[IS_PRESENT_B]] -> (!fir.box<!fir.ptr<i32>>) {
-! CHECK:   %[[LOADED_B:.*]] = fir.load %[[B]] : !fir.ref<!fir.box<!fir.ptr<i32>>>
+! CHECK:   %[[LOADED_B:.*]] = fir.load %{{.*}} : !fir.ref<!fir.box<!fir.ptr<i32>>>
 ! CHECK:   fir.result %[[LOADED_B]] : !fir.box<!fir.ptr<i32>>
 ! CHECK: } else {
 ! CHECK:   %[[ABSENT_B:.*]] = fir.absent !fir.box<!fir.ptr<i32>>
 ! CHECK:   fir.result %[[ABSENT_B]] : !fir.box<!fir.ptr<i32>>
 ! CHECK: }
-! CHECK: %[[LOADED_A:.*]] = fir.load %[[A]] : !fir.ref<!fir.box<!fir.ptr<i32>>>
+! CHECK: %[[LOADED_A:.*]] = fir.load %{{.*}} : !fir.ref<!fir.box<!fir.ptr<i32>>>
 ! CHECK: %[[BOX_NONE_A:.*]] = fir.convert %[[LOADED_A]] : (!fir.box<!fir.ptr<i32>>) -> !fir.box<none>
 ! CHECK: %[[BOX_NONE_B:.*]] = fir.convert %[[BOX_B]] : (!fir.box<!fir.ptr<i32>>) -> !fir.box<none>
 ! CHECK: %{{.*}} fir.call @_FortranAPointerIsAssociatedWith(%[[BOX_NONE_A]], %[[BOX_NONE_B]]) fastmath<contract> : (!fir.box<none>, !fir.box<none>) -> i1


        


More information about the flang-commits mailing list