1! RUN: bbc -emit-fir -outline-intrinsics %s -o - | FileCheck %s 2! RUN: %flang_fc1 -emit-fir -mllvm -outline-intrinsics %s -o - | FileCheck %s 3 4! CHECK-LABEL: log_testr 5! CHECK-SAME: (%[[AREF:.*]]: !fir.ref<f32> {{.*}}, %[[BREF:.*]]: !fir.ref<f32> {{.*}}) 6subroutine log_testr(a, b) 7 real :: a, b 8! CHECK: %[[A:.*]] = fir.load %[[AREF:.*]] : !fir.ref<f32> 9! CHECK: %[[RES:.*]] = fir.call @fir.log.f32.f32(%[[A]]) : (f32) -> f32 10! CHECK: fir.store %[[RES]] to %[[BREF]] : !fir.ref<f32> 11 b = log(a) 12end subroutine 13 14! CHECK-LABEL: log_testd 15! CHECK-SAME: (%[[AREF:.*]]: !fir.ref<f64> {{.*}}, %[[BREF:.*]]: !fir.ref<f64> {{.*}}) 16subroutine log_testd(a, b) 17 real(kind=8) :: a, b 18! CHECK: %[[A:.*]] = fir.load %[[AREF:.*]] : !fir.ref<f64> 19! CHECK: %[[RES:.*]] = fir.call @fir.log.f64.f64(%[[A]]) : (f64) -> f64 20! CHECK: fir.store %[[RES]] to %[[BREF]] : !fir.ref<f64> 21 b = log(a) 22end subroutine 23 24! CHECK-LABEL: log_testc 25! CHECK-SAME: (%[[AREF:.*]]: !fir.ref<!fir.complex<4>> {{.*}}, %[[BREF:.*]]: !fir.ref<!fir.complex<4>> {{.*}}) 26subroutine log_testc(a, b) 27 complex :: a, b 28! CHECK: %[[A:.*]] = fir.load %[[AREF:.*]] : !fir.ref<!fir.complex<4>> 29! CHECK: %[[RES:.*]] = fir.call @fir.log.z4.z4(%[[A]]) : (!fir.complex<4>) -> !fir.complex<4> 30! CHECK: fir.store %[[RES]] to %[[BREF]] : !fir.ref<!fir.complex<4>> 31 b = log(a) 32end subroutine 33 34! CHECK-LABEL: log_testcd 35! CHECK-SAME: (%[[AREF:.*]]: !fir.ref<!fir.complex<8>> {{.*}}, %[[BREF:.*]]: !fir.ref<!fir.complex<8>> {{.*}}) 36subroutine log_testcd(a, b) 37 complex(kind=8) :: a, b 38! CHECK: %[[A:.*]] = fir.load %[[AREF:.*]] : !fir.ref<!fir.complex<8>> 39! CHECK: %[[RES:.*]] = fir.call @fir.log.z8.z8(%[[A]]) : (!fir.complex<8>) -> !fir.complex<8> 40! CHECK: fir.store %[[RES]] to %[[BREF]] : !fir.ref<!fir.complex<8>> 41 b = log(a) 42end subroutine 43 44! CHECK-LABEL: log10_testr 45! CHECK-SAME: (%[[AREF:.*]]: !fir.ref<f32> {{.*}}, %[[BREF:.*]]: !fir.ref<f32> {{.*}}) 46subroutine log10_testr(a, b) 47 real :: a, b 48! CHECK: %[[A:.*]] = fir.load %[[AREF:.*]] : !fir.ref<f32> 49! CHECK: %[[RES:.*]] = fir.call @fir.log10.f32.f32(%[[A]]) : (f32) -> f32 50! CHECK: fir.store %[[RES]] to %[[BREF]] : !fir.ref<f32> 51 b = log10(a) 52end subroutine 53 54! CHECK-LABEL: log10_testd 55! CHECK-SAME: (%[[AREF:.*]]: !fir.ref<f64> {{.*}}, %[[BREF:.*]]: !fir.ref<f64> {{.*}}) 56subroutine log10_testd(a, b) 57 real(kind=8) :: a, b 58! CHECK: %[[A:.*]] = fir.load %[[AREF:.*]] : !fir.ref<f64> 59! CHECK: %[[RES:.*]] = fir.call @fir.log10.f64.f64(%[[A]]) : (f64) -> f64 60! CHECK: fir.store %[[RES]] to %[[BREF]] : !fir.ref<f64> 61 b = log10(a) 62end subroutine 63 64! CHECK-LABEL: private @fir.log.f32.f32 65! CHECK-SAME: (%[[ARG32_OUTLINE:.*]]: f32) -> f32 66! CHECK: %[[RESULT32_OUTLINE:.*]] = math.log %[[ARG32_OUTLINE]] : f32 67! CHECK: return %[[RESULT32_OUTLINE]] : f32 68 69! CHECK-LABEL: private @fir.log.f64.f64 70! CHECK-SAME: (%[[ARG64_OUTLINE:.*]]: f64) -> f64 71! CHECK: %[[RESULT64_OUTLINE:.*]] = math.log %[[ARG64_OUTLINE]] : f64 72! CHECK: return %[[RESULT64_OUTLINE]] : f64 73 74! CHECK-LABEL: private @fir.log.z4.z4 75! CHECK-SAME: (%[[ARG32_OUTLINE]]: !fir.complex<4>) -> !fir.complex<4> 76! CHECK: %[[RESULT32_OUTLINE]] = fir.call @__fc_log_1(%[[ARG32_OUTLINE]]) : (!fir.complex<4>) -> !fir.complex<4> 77! CHECK: return %[[RESULT32_OUTLINE]] : !fir.complex<4> 78 79! CHECK-LABEL: private @fir.log.z8.z8 80! CHECK-SAME: (%[[ARG64_OUTLINE]]: !fir.complex<8>) -> !fir.complex<8> 81! CHECK: %[[RESULT64_OUTLINE]] = fir.call @__fz_log_1(%[[ARG64_OUTLINE]]) : (!fir.complex<8>) -> !fir.complex<8> 82! CHECK: return %[[RESULT64_OUTLINE]] : !fir.complex<8> 83 84! CHECK-LABEL: private @fir.log10.f32.f32 85! CHECK-SAME: (%[[ARG32_OUTLINE:.*]]: f32) -> f32 86! CHECK: %[[RESULT32_OUTLINE:.*]] = math.log10 %[[ARG32_OUTLINE]] : f32 87! CHECK: return %[[RESULT32_OUTLINE]] : f32 88 89! CHECK-LABEL: private @fir.log10.f64.f64 90! CHECK-SAME: (%[[ARG64_OUTLINE:.*]]: f64) -> f64 91! CHECK: %[[RESULT64_OUTLINE:.*]] = math.log10 %[[ARG64_OUTLINE]] : f64 92! CHECK: return %[[RESULT64_OUTLINE]] : f64 93