brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.4 KiB · 594beb9 Raw
36 lines · plain
1! RUN: bbc -emit-hlfir %s -o - | FileCheck %s --check-prefixes=CHECK%if target=x86_64{{.*}} %{,CHECK-KIND10%}%if flang-supports-f128-math %{,CHECK-KIND16%}2 3! FRACTION4 5! CHECK-LABEL: fraction_test(6subroutine fraction_test(res4, res8, x4, x8)7    real(kind = 4) :: x4, res48    real(kind = 8) :: x8, res89 10    res4 = fraction(x4)11  ! CHECK: %[[temp0:.*]] = fir.load %{{.*}} : !fir.ref<f32>12  ! CHECK: fir.call @_FortranAFraction4(%[[temp0:.*]]) {{.*}}: (f32) -> f3213 14    res8 = fraction(x8)15  ! CHECK: %[[temp1:.*]] = fir.load %{{.*}} : !fir.ref<f64>16  ! CHECK: fir.call @_FortranAFraction8(%[[temp1:.*]]) {{.*}}: (f64) -> f6417end subroutine fraction_test18 19! CHECK-KIND10-LABEL: fraction_10(20subroutine fraction_10(res10, x10)21    integer, parameter :: kind10 = merge(10, 4, selected_real_kind(p=18).eq.10)22    real(kind = kind10) :: x10, res1023    res10 = fraction(x10)24  ! CHECK-KIND10: %[[temp2:.*]] = fir.load %{{.*}} : !fir.ref<f80>25  ! CHECK-KIND10: fir.call @_FortranAFraction10(%[[temp2:.*]]) {{.*}}: (f80) -> f8026end subroutine27 28! CHECK-KIND16-LABEL: fraction_16(29subroutine fraction_16(res16, x16)30    integer, parameter :: kind16 = merge(16, 4, selected_real_kind(p=33).eq.16)31    real(kind = kind16) :: x16, res1632    res16 = fraction(x16)33  ! CHECK-KIND16: %[[temp2:.*]] = fir.load %{{.*}} : !fir.ref<f128>34  ! CHECK-KIND16: fir.call @_FortranAFraction16(%[[temp2:.*]]) {{.*}}: (f128) -> f12835end subroutine36