Skip to content

Commit cc9f176

Browse files
authored
[flang][openacc][NFC] Get rid of use-desc-for-alloc=false option in atomic tests (#72291)
This option change the default lowering and should not be used. Make the atomic tests more homogenous to the rest of the OpenACC tests. No OpenACC tests use this option.
1 parent 8f7e9f3 commit cc9f176

File tree

3 files changed

+32
-51
lines changed

3 files changed

+32
-51
lines changed

flang/test/Lower/OpenACC/acc-atomic-read.f90

Lines changed: 9 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
! RUN: bbc --use-desc-for-alloc=false -fopenacc -emit-fir -hlfir=false %s -o - | FileCheck %s
1+
! RUN: bbc -fopenacc -emit-fir -hlfir=false %s -o - | FileCheck %s
22

33
! This test checks the lowering of atomic read
44

@@ -20,23 +20,14 @@ end program acc_atomic_test
2020
! operation, instead of %[[VAL_3]] and %[[VAL_0]].
2121

2222
!CHECK-LABEL: func.func @_QPatomic_read_pointer() {
23-
!CHECK: %[[VAL_0:.*]] = fir.alloca !fir.box<!fir.ptr<i32>> {bindc_name = "x", uniq_name = "_QFatomic_read_pointerEx"}
24-
!CHECK: %[[VAL_1:.*]] = fir.alloca !fir.ptr<i32> {uniq_name = "_QFatomic_read_pointerEx.addr"}
25-
!CHECK: %[[VAL_2:.*]] = fir.zero_bits !fir.ptr<i32>
26-
!CHECK: fir.store %[[VAL_2]] to %[[VAL_1]] : !fir.ref<!fir.ptr<i32>>
27-
!CHECK: %[[VAL_3:.*]] = fir.alloca !fir.box<!fir.ptr<i32>> {bindc_name = "y", uniq_name = "_QFatomic_read_pointerEy"}
28-
!CHECK: %[[VAL_4:.*]] = fir.alloca !fir.ptr<i32> {uniq_name = "_QFatomic_read_pointerEy.addr"}
29-
!CHECK: %[[VAL_5:.*]] = fir.zero_bits !fir.ptr<i32>
30-
!CHECK: fir.store %[[VAL_5]] to %[[VAL_4]] : !fir.ref<!fir.ptr<i32>>
31-
!CHECK: %[[VAL_6:.*]] = fir.load %[[VAL_1]] : !fir.ref<!fir.ptr<i32>>
32-
!CHECK: %[[VAL_7:.*]] = fir.load %[[VAL_4]] : !fir.ref<!fir.ptr<i32>>
33-
!CHECK: acc.atomic.read %[[VAL_7]] = %[[VAL_6]] : !fir.ptr<i32>, i32
34-
!CHECK: %[[VAL_8:.*]] = fir.load %[[VAL_4]] : !fir.ref<!fir.ptr<i32>>
35-
!CHECK: %[[VAL_9:.*]] = fir.load %[[VAL_8]] : !fir.ptr<i32>
36-
!CHECK: %[[VAL_10:.*]] = fir.load %[[VAL_1]] : !fir.ref<!fir.ptr<i32>>
37-
!CHECK: fir.store %[[VAL_9]] to %[[VAL_10]] : !fir.ptr<i32>
38-
!CHECK: return
39-
!CHECK: }
23+
! CHECK: %[[X:.*]] = fir.alloca !fir.box<!fir.ptr<i32>> {bindc_name = "x", uniq_name = "_QFatomic_read_pointerEx"}
24+
! CHECK: %[[Y:.*]] = fir.alloca !fir.box<!fir.ptr<i32>> {bindc_name = "y", uniq_name = "_QFatomic_read_pointerEy"}
25+
! CHECK: %[[LOAD_X:.*]] = fir.load %[[X]] : !fir.ref<!fir.box<!fir.ptr<i32>>>
26+
! CHECK: %[[BOX_ADDR_X:.*]] = fir.box_addr %[[LOAD_X]] : (!fir.box<!fir.ptr<i32>>) -> !fir.ptr<i32>
27+
! CHECK: %[[LOAD_Y:.*]] = fir.load %[[Y]] : !fir.ref<!fir.box<!fir.ptr<i32>>>
28+
! CHECK: %[[BOX_ADDR_Y:.*]] = fir.box_addr %[[LOAD_Y]] : (!fir.box<!fir.ptr<i32>>) -> !fir.ptr<i32>
29+
! CHECK: acc.atomic.read %[[BOX_ADDR_Y]] = %[[BOX_ADDR_X]] : !fir.ptr<i32>, i32
30+
! CHECK: }
4031

4132
subroutine atomic_read_pointer()
4233
integer, pointer :: x, y

flang/test/Lower/OpenACC/acc-atomic-update.f90

Lines changed: 13 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
! This test checks lowering of atomic and atomic update constructs
2-
! RUN: bbc --use-desc-for-alloc=false -fopenacc -emit-fir -hlfir=false %s -o - | FileCheck %s
3-
! RUN: %flang_fc1 -mllvm --use-desc-for-alloc=false -emit-fir -flang-deprecated-no-hlfir -fopenacc %s -o - | FileCheck %s
2+
! RUN: bbc -fopenacc -emit-fir -hlfir=false %s -o - | FileCheck %s
3+
! RUN: %flang_fc1 -emit-fir -flang-deprecated-no-hlfir -fopenacc %s -o - | FileCheck %s
44

55
program acc_atomic_update_test
66
integer :: x, y, z
@@ -11,33 +11,25 @@ program acc_atomic_update_test
1111
a=>c
1212
b=>d
1313

14-
!CHECK: func.func @_QQmain() attributes {fir.bindc_name = "acc_atomic_update_test"} {
1514
!CHECK: %[[A:.*]] = fir.alloca !fir.box<!fir.ptr<i32>> {bindc_name = "a", uniq_name = "_QFEa"}
16-
!CHECK: %[[A_ADDR:.*]] = fir.alloca !fir.ptr<i32> {uniq_name = "_QFEa.addr"}
17-
!CHECK: %{{.*}} = fir.zero_bits !fir.ptr<i32>
18-
!CHECK: fir.store %{{.*}} to %[[A_ADDR]] : !fir.ref<!fir.ptr<i32>>
1915
!CHECK: %[[B:.*]] = fir.alloca !fir.box<!fir.ptr<i32>> {bindc_name = "b", uniq_name = "_QFEb"}
20-
!CHECK: %[[B_ADDR:.*]] = fir.alloca !fir.ptr<i32> {uniq_name = "_QFEb.addr"}
21-
!CHECK: %{{.*}} = fir.zero_bits !fir.ptr<i32>
22-
!CHECK: fir.store %{{.*}} to %[[B_ADDR]] : !fir.ref<!fir.ptr<i32>>
2316
!CHECK: %[[C_ADDR:.*]] = fir.address_of(@_QFEc) : !fir.ref<i32>
2417
!CHECK: %[[D_ADDR:.*]] = fir.address_of(@_QFEd) : !fir.ref<i32>
2518
!CHECK: %[[I1:.*]] = fir.alloca i8 {bindc_name = "i1", uniq_name = "_QFEi1"}
2619
!CHECK: %[[X:.*]] = fir.alloca i32 {bindc_name = "x", uniq_name = "_QFEx"}
2720
!CHECK: %[[Y:.*]] = fir.alloca i32 {bindc_name = "y", uniq_name = "_QFEy"}
2821
!CHECK: %[[Z:.*]] = fir.alloca i32 {bindc_name = "z", uniq_name = "_QFEz"}
29-
!CHECK: %{{.*}} = fir.convert %[[C_ADDR]] : (!fir.ref<i32>) -> !fir.ptr<i32>
30-
!CHECK: fir.store %{{.*}} to %[[A_ADDR]] : !fir.ref<!fir.ptr<i32>>
31-
!CHECK: %{{.*}} = fir.convert %[[D_ADDR]] : (!fir.ref<i32>) -> !fir.ptr<i32>
32-
!CHECK: fir.store {{.*}} to %[[B_ADDR]] : !fir.ref<!fir.ptr<i32>>
33-
!CHECK: %[[LOADED_A:.*]] = fir.load %[[A_ADDR]] : !fir.ref<!fir.ptr<i32>>
34-
!CHECK: %[[LOADED_B:.*]] = fir.load %[[B_ADDR]] : !fir.ref<!fir.ptr<i32>>
35-
!CHECK: %{{.*}} = fir.load %[[LOADED_B]] : !fir.ptr<i32>
36-
!CHECK: acc.atomic.update %[[LOADED_A]] : !fir.ptr<i32> {
37-
!CHECK: ^bb0(%[[ARG:.*]]: i32):
38-
!CHECK: %[[RESULT:.*]] = arith.addi %[[ARG]], %{{.*}} : i32
39-
!CHECK: acc.yield %[[RESULT]] : i32
22+
!CHECK: %[[LOAD_A:.*]] = fir.load %[[A]] : !fir.ref<!fir.box<!fir.ptr<i32>>>
23+
!CHECK: %[[BOX_ADDR_A:.*]] = fir.box_addr %[[LOAD_A]] : (!fir.box<!fir.ptr<i32>>) -> !fir.ptr<i32>
24+
!CHECK: %[[LOAD_B:.*]] = fir.load %[[B]] : !fir.ref<!fir.box<!fir.ptr<i32>>>
25+
!CHECK: %[[BOX_ADDR_B:.*]] = fir.box_addr %[[LOAD_B]] : (!fir.box<!fir.ptr<i32>>) -> !fir.ptr<i32>
26+
!CHECK: %[[LOAD_BOX_ADDR_B:.*]] = fir.load %[[BOX_ADDR_B]] : !fir.ptr<i32>
27+
!CHECK: acc.atomic.update %[[BOX_ADDR_A]] : !fir.ptr<i32> {
28+
!CHECK: ^bb0(%[[ARG0:.*]]: i32):
29+
!CHECK: %[[ADD:.*]] = arith.addi %[[ARG0]], %[[LOAD_BOX_ADDR_B]] : i32
30+
!CHECK: acc.yield %[[ADD]] : i32
4031
!CHECK: }
32+
4133
!$acc atomic update
4234
a = a + b
4335

@@ -72,3 +64,4 @@ program acc_atomic_update_test
7264
!CHECK: return
7365
!CHECK: }
7466
end program acc_atomic_update_test
67+

flang/test/Lower/OpenACC/acc-atomic-write.f90

Lines changed: 10 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
! RUN: bbc --use-desc-for-alloc=false -fopenacc -emit-fir -hlfir=false %s -o - | FileCheck %s
1+
! RUN: bbc -fopenacc -emit-fir -hlfir=false %s -o - | FileCheck %s
22

33
! This test checks the lowering of atomic write
44

@@ -23,18 +23,15 @@ end program acc_atomic_write_test
2323
! Test lowering atomic read for pointer variables.
2424

2525
!CHECK-LABEL: func.func @_QPatomic_write_pointer() {
26-
!CHECK: %[[VAL_0:.*]] = fir.alloca !fir.box<!fir.ptr<i32>> {bindc_name = "x", uniq_name = "_QFatomic_write_pointerEx"}
27-
!CHECK: %[[VAL_1:.*]] = fir.alloca !fir.ptr<i32> {uniq_name = "_QFatomic_write_pointerEx.addr"}
28-
!CHECK: %[[VAL_2:.*]] = fir.zero_bits !fir.ptr<i32>
29-
!CHECK: fir.store %[[VAL_2]] to %[[VAL_1]] : !fir.ref<!fir.ptr<i32>>
30-
!CHECK: %[[VAL_3:.*]] = arith.constant 1 : i32
31-
!CHECK: %[[VAL_4:.*]] = fir.load %[[VAL_1]] : !fir.ref<!fir.ptr<i32>>
32-
!CHECK: acc.atomic.write %[[VAL_4]] = %[[VAL_3]] : !fir.ptr<i32>, i32
33-
!CHECK: %[[VAL_5:.*]] = arith.constant 2 : i32
34-
!CHECK: %[[VAL_6:.*]] = fir.load %[[VAL_1]] : !fir.ref<!fir.ptr<i32>>
35-
!CHECK: fir.store %[[VAL_5]] to %[[VAL_6]] : !fir.ptr<i32>
36-
!CHECK: return
37-
!CHECK: }
26+
!CHECK: %[[X:.*]] = fir.alloca !fir.box<!fir.ptr<i32>> {bindc_name = "x", uniq_name = "_QFatomic_write_pointerEx"}
27+
!CHECK: %[[C1:.*]] = arith.constant 1 : i32
28+
!CHECK: %[[LOAD_X:.*]] = fir.load %[[X]] : !fir.ref<!fir.box<!fir.ptr<i32>>>
29+
!CHECK: %[[BOX_ADDR_X:.*]] = fir.box_addr %[[LOAD_X]] : (!fir.box<!fir.ptr<i32>>) -> !fir.ptr<i32>
30+
!CHECK: acc.atomic.write %[[BOX_ADDR_X]] = %[[C1]] : !fir.ptr<i32>, i32
31+
!CHECK: %[[C2:.*]] = arith.constant 2 : i32
32+
!CHECK: %[[LOAD_X:.*]] = fir.load %[[X]] : !fir.ref<!fir.box<!fir.ptr<i32>>>
33+
!CHECK: %[[BOX_ADDR_X:.*]] = fir.box_addr %[[LOAD_X]] : (!fir.box<!fir.ptr<i32>>) -> !fir.ptr<i32>
34+
!CHECK: fir.store %[[C2]] to %[[BOX_ADDR_X]] : !fir.ptr<i32>
3835

3936
subroutine atomic_write_pointer()
4037
integer, pointer :: x

0 commit comments

Comments
 (0)