brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.4 KiB · f5f0603 Raw
39 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! EXPONENT4 5! CHECK-LABEL: exponent_test(6subroutine exponent_test(i1, i2, x4, x8)7    integer :: i1, i2, i38    real(kind = 4) :: x49    real(kind = 8) :: x810 11    i1 = exponent(x4)12  ! CHECK: %[[temp0:.*]] = fir.load %{{.*}} : !fir.ref<f32>13  ! CHECK: fir.call @_FortranAExponent4_4(%[[temp0:.*]]) {{.*}}: (f32) -> i3214 15    i2 = exponent(x8)16  ! CHECK: %[[temp1:.*]] = fir.load %{{.*}} : !fir.ref<f64>17  ! CHECK: fir.call @_FortranAExponent8_4(%[[temp1:.*]]) {{.*}}: (f64) -> i3218end subroutine exponent_test19 20! CHECK-KIND10-LABEL: exponent_10(21subroutine exponent_10(i, x10)22    integer :: i23    integer, parameter :: kind10 = merge(10, 4, selected_real_kind(p=18).eq.10)24    real(kind = kind10) :: x1025    i = exponent(x10)26  ! CHECK-KIND10: %[[temp2:.*]] = fir.load %{{.*}} : !fir.ref<f80>27  ! CHECK-KIND10: fir.call @_FortranAExponent10_4(%[[temp2:.*]]) {{.*}}: (f80) -> i3228end subroutine29 30! CHECK-KIND16-LABEL: exponent_16(31subroutine exponent_16(i, x16)32    integer :: i33    integer, parameter :: kind16 = merge(16, 4, selected_real_kind(p=33).eq.16)34    real(kind = kind16) :: x1635    i = exponent(x16)36  ! CHECK-KIND16: %[[temp2:.*]] = fir.load %{{.*}} : !fir.ref<f128>37  ! CHECK-KIND16: fir.call @_FortranAExponent16_4(%[[temp2:.*]]) {{.*}}: (f128) -> i3238end subroutine39