13681a7ddSDavid Truby! RUN: bbc -emit-fir -outline-intrinsics %s -o - | FileCheck %s --check-prefixes="CHECK,CMPLX-PRECISE" 2000de666SDavid Truby! RUN: bbc --math-runtime=precise -emit-fir -outline-intrinsics %s -o - | FileCheck %s --check-prefixes="CMPLX-PRECISE" 31e27425aSRazvan Lupusoru! RUN: bbc --force-mlir-complex -emit-fir -outline-intrinsics %s -o - | FileCheck %s --check-prefixes="CMPLX-FAST" 43681a7ddSDavid Truby! RUN: %flang_fc1 -emit-fir -mllvm -outline-intrinsics %s -o - | FileCheck %s --check-prefixes="CHECK,CMPLX-PRECISE" 53681a7ddSDavid Truby! RUN: %flang_fc1 -fapprox-func -emit-fir -mllvm -outline-intrinsics %s -o - | FileCheck %s --check-prefixes="CMPLX-FAST" 6000de666SDavid Truby! RUN: %flang_fc1 -emit-fir -mllvm --math-runtime=precise -mllvm -outline-intrinsics %s -o - | FileCheck %s --check-prefixes="CMPLX-PRECISE" 71e27425aSRazvan Lupusoru! RUN: %flang_fc1 -emit-fir -mllvm --force-mlir-complex -mllvm -outline-intrinsics %s -o - | FileCheck %s --check-prefixes="CMPLX-FAST" 8fea20cb9SKiran Chandramohan 9fea20cb9SKiran Chandramohan! CHECK-LABEL: sqrt_testr 10fea20cb9SKiran Chandramohansubroutine sqrt_testr(a, b) 11fea20cb9SKiran Chandramohan real :: a, b 12f52c64b1SDavid Truby! CHECK: fir.call @fir.sqrt.contract.f32.f32 13fea20cb9SKiran Chandramohan b = sqrt(a) 14fea20cb9SKiran Chandramohanend subroutine 15fea20cb9SKiran Chandramohan 16fea20cb9SKiran Chandramohan! CHECK-LABEL: sqrt_testd 17fea20cb9SKiran Chandramohansubroutine sqrt_testd(a, b) 18fea20cb9SKiran Chandramohan real(kind=8) :: a, b 19f52c64b1SDavid Truby! CHECK: fir.call @fir.sqrt.contract.f64.f64 20fea20cb9SKiran Chandramohan b = sqrt(a) 21fea20cb9SKiran Chandramohanend subroutine 22fea20cb9SKiran Chandramohan 23fea20cb9SKiran Chandramohan! CHECK-LABEL: sqrt_testc 24fea20cb9SKiran Chandramohansubroutine sqrt_testc(z) 25fea20cb9SKiran Chandramohan complex :: z 26*c4204c0bSjeanPerier! CHECK: fir.call @fir.sqrt.contract.z32.z32 27fea20cb9SKiran Chandramohan z = sqrt(z) 28fea20cb9SKiran Chandramohanend subroutine 29fea20cb9SKiran Chandramohan 30fea20cb9SKiran Chandramohan! CHECK-LABEL: sqrt_testcd 31fea20cb9SKiran Chandramohansubroutine sqrt_testcd(z) 32fea20cb9SKiran Chandramohan complex(kind=8) :: z 33*c4204c0bSjeanPerier! CHECK: fir.call @fir.sqrt.contract.z64.z64 34fea20cb9SKiran Chandramohan z = sqrt(z) 35fea20cb9SKiran Chandramohanend subroutine 36fea20cb9SKiran Chandramohan 37f52c64b1SDavid Truby! CHECK-LABEL: @fir.sqrt.contract.f32.f32 38f5759addSSlava Zakharin! CHECK: math.sqrt %{{.*}} : f32 39fea20cb9SKiran Chandramohan 40f52c64b1SDavid Truby! CHECK-LABEL: @fir.sqrt.contract.f64.f64 41f5759addSSlava Zakharin! CHECK: math.sqrt %{{.*}} : f64 42fea20cb9SKiran Chandramohan 43*c4204c0bSjeanPerier! CHECK-LABEL: func private @fir.sqrt.contract.z32.z32 44000de666SDavid Truby! CMPLX-FAST: complex.sqrt %{{.*}} : complex<f32> 45000de666SDavid Truby! CMPLX-PRECISE: fir.call @csqrtf 46fea20cb9SKiran Chandramohan 47*c4204c0bSjeanPerier! CHECK-LABEL: @fir.sqrt.contract.z64.z64 48000de666SDavid Truby! CMPLX-FAST: complex.sqrt %{{.*}} : complex<f64> 49000de666SDavid Truby! CMPLX-PRECISE: fir.call @csqrt 50