Skip to content

Commit 1128343

Browse files
authored
[flang][NFC] do not hard code KIND 10 and 16 in lowering tests (#124966)
KIND 10 and 16 are platform dependent and it will soon be a hard error to use them when not available (PR124655) Update some tests that used them to use SELECTED_REAL_KIND + lit conditional checks to make the tests usable on all platform. Also update all those tests to use HFLIR lowering while modifying them since the goal is to remove the legacy lowering at some point.
1 parent 205b0bd commit 1128343

23 files changed

+1076
-1077
lines changed

flang/test/Lower/Intrinsics/aint.f90

Lines changed: 11 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -1,41 +1,31 @@
1-
! RUN: bbc -emit-fir -hlfir=false %s -o - | FileCheck %s
1+
! RUN: bbc -emit-hlfir %s -o - | FileCheck %s --check-prefixes=CHECK%if target=x86_64{{.*}} %{,CHECK-KIND10%}
22

33
! CHECK-LABEL: func @_QPaint_test(
4-
! CHECK-SAME: %[[VAL_0:.*]]: !fir.ref<f32>{{.*}}, %[[VAL_1:.*]]: !fir.ref<f32>{{.*}}) {
4+
! CHECK-SAME: %[[VAL_0_b:.*]]: !fir.ref<f32>{{.*}}, %[[VAL_1_b:.*]]: !fir.ref<f32>{{.*}}) {
55
subroutine aint_test(a, b)
6-
! CHECK: %[[VAL_2:.*]] = fir.load %[[VAL_0]] : !fir.ref<f32>
6+
! CHECK: %[[VAL_0:.*]]:2 = hlfir.declare %[[VAL_0_b]]
7+
! CHECK: %[[VAL_1:.*]]:2 = hlfir.declare %[[VAL_1_b]]
8+
! CHECK: %[[VAL_2:.*]] = fir.load %[[VAL_0]]#0 : !fir.ref<f32>
79
! CHECK: %[[VAL_3:.*]] = fir.call @llvm.trunc.f32(%[[VAL_2]]) {{.*}}: (f32) -> f32
8-
! CHECK: fir.store %[[VAL_3]] to %[[VAL_1]] : !fir.ref<f32>
10+
! CHECK: hlfir.assign %[[VAL_3]] to %[[VAL_1]]#0 : f32, !fir.ref<f32>
911
! CHECK: return
1012
real :: a, b
1113
b = aint(a)
1214
end subroutine
1315

1416
! CHECK-LABEL: func.func @_QPaint_test_real8(
15-
! CHECK-SAME: %[[VAL_0:.*]]: !fir.ref<f64> {fir.bindc_name = "a"},
16-
! CHECK-SAME: %[[VAL_1:.*]]: !fir.ref<f64> {fir.bindc_name = "b"}) {
17-
! CHECK: %[[VAL_2:.*]] = fir.load %[[VAL_0]] : !fir.ref<f64>
18-
! CHECK: %[[VAL_3:.*]] = fir.call @llvm.trunc.f64(%[[VAL_2]]) {{.*}}: (f64) -> f64
19-
! CHECK: fir.store %[[VAL_3]] to %[[VAL_1]] : !fir.ref<f64>
20-
! CHECK: return
21-
! CHECK: }
17+
! CHECK: fir.call @llvm.trunc.f64({{.*}}) {{.*}}: (f64) -> f64
2218

2319
subroutine aint_test_real8(a, b)
2420
real(8) :: a, b
2521
b = aint(a)
2622
end subroutine
2723

28-
! CHECK-LABEL: func.func @_QPaint_test_real10(
29-
! CHECK-SAME: %[[VAL_0:.*]]: !fir.ref<f80> {fir.bindc_name = "a"},
30-
! CHECK-SAME: %[[VAL_1:.*]]: !fir.ref<f80> {fir.bindc_name = "b"}) {
31-
! CHECK: %[[VAL_2:.*]] = fir.load %[[VAL_0]] : !fir.ref<f80>
32-
! CHECK: %[[VAL_3:.*]] = fir.call @llvm.trunc.f80(%[[VAL_2]]) {{.*}}: (f80) -> f80
33-
! CHECK: fir.store %[[VAL_3]] to %[[VAL_1]] : !fir.ref<f80>
34-
! CHECK: return
35-
! CHECK: }
36-
24+
! CHECK-KIND10-LABEL: func.func @_QPaint_test_real10(
25+
! CHECK-KIND10: fir.call @llvm.trunc.f80({{.*}}) {{.*}}: (f80) -> f80
3726
subroutine aint_test_real10(a, b)
38-
real(10) :: a, b
27+
integer, parameter :: kind10 = merge(10, 4, selected_real_kind(p=18).eq.10)
28+
real(kind10) :: a, b
3929
b = aint(a)
4030
end subroutine
4131

flang/test/Lower/Intrinsics/anint.f90

Lines changed: 12 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,13 @@
1-
! RUN: bbc -emit-fir -hlfir=false %s -o - | FileCheck %s
1+
! RUN: bbc -emit-hlfir %s -o - | FileCheck %s --check-prefixes=CHECK%if target=x86_64{{.*}} %{,CHECK-KIND10%}
22

33
! CHECK-LABEL: func.func @_QPanint_test(
4-
! CHECK-SAME: %[[VAL_0:.*]]: !fir.ref<f32> {fir.bindc_name = "a"},
5-
! CHECK-SAME: %[[VAL_1:.*]]: !fir.ref<f32> {fir.bindc_name = "b"}) {
6-
! CHECK: %[[VAL_2:.*]] = fir.load %[[VAL_0]] : !fir.ref<f32>
4+
! CHECK-SAME: %[[VAL_0_b:.*]]: !fir.ref<f32> {fir.bindc_name = "a"},
5+
! CHECK-SAME: %[[VAL_1_b:.*]]: !fir.ref<f32> {fir.bindc_name = "b"}) {
6+
! CHECK: %[[VAL_0:.*]]:2 = hlfir.declare %[[VAL_0_b]]
7+
! CHECK: %[[VAL_1:.*]]:2 = hlfir.declare %[[VAL_1_b]]
8+
! CHECK: %[[VAL_2:.*]] = fir.load %[[VAL_0]]#0 : !fir.ref<f32>
79
! CHECK: %[[VAL_3:.*]] = llvm.intr.round(%[[VAL_2]]) : (f32) -> f32
8-
! CHECK: fir.store %[[VAL_3]] to %[[VAL_1]] : !fir.ref<f32>
10+
! CHECK: hlfir.assign %[[VAL_3]] to %[[VAL_1]]#0 : f32, !fir.ref<f32>
911
! CHECK: return
1012
! CHECK: }
1113

@@ -15,30 +17,19 @@ subroutine anint_test(a, b)
1517
end subroutine
1618

1719
! CHECK-LABEL: func.func @_QPanint_test_real8(
18-
! CHECK-SAME: %[[VAL_0:.*]]: !fir.ref<f64> {fir.bindc_name = "a"},
19-
! CHECK-SAME: %[[VAL_1:.*]]: !fir.ref<f64> {fir.bindc_name = "b"}) {
20-
! CHECK: %[[VAL_2:.*]] = fir.load %[[VAL_0]] : !fir.ref<f64>
21-
! CHECK: %[[VAL_3:.*]] = llvm.intr.round(%[[VAL_2]]) : (f64) -> f64
22-
! CHECK: fir.store %[[VAL_3]] to %[[VAL_1]] : !fir.ref<f64>
23-
! CHECK: return
24-
! CHECK: }
20+
! CHECK: llvm.intr.round(%{{.*}}) : (f64) -> f64
2521

2622
subroutine anint_test_real8(a, b)
2723
real(8) :: a, b
2824
b = anint(a)
2925
end subroutine
3026

31-
! CHECK-LABEL: func.func @_QPanint_test_real10(
32-
! CHECK-SAME: %[[VAL_0:.*]]: !fir.ref<f80> {fir.bindc_name = "a"},
33-
! CHECK-SAME: %[[VAL_1:.*]]: !fir.ref<f80> {fir.bindc_name = "b"}) {
34-
! CHECK: %[[VAL_2:.*]] = fir.load %[[VAL_0]] : !fir.ref<f80>
35-
! CHECK: %[[VAL_3:.*]] = llvm.intr.round(%[[VAL_2]]) : (f80) -> f80
36-
! CHECK: fir.store %[[VAL_3]] to %[[VAL_1]] : !fir.ref<f80>
37-
! CHECK: return
38-
! CHECK: }
27+
! CHECK-KIND10-LABEL: func.func @_QPanint_test_real10(
28+
! CHECK-KIND10: llvm.intr.round(%{{.*}}) : (f80) -> f80
3929

4030
subroutine anint_test_real10(a, b)
41-
real(10) :: a, b
31+
integer, parameter :: kind10 = merge(10, 4, selected_real_kind(p=18).eq.10)
32+
real(kind10) :: a, b
4233
b = anint(a)
4334
end subroutine
4435

0 commit comments

Comments
 (0)