Index: lib/Driver/ToolChains/HIP.cpp =================================================================== --- lib/Driver/ToolChains/HIP.cpp +++ lib/Driver/ToolChains/HIP.cpp @@ -75,10 +75,16 @@ std::string ISAVerBC = "oclc_isa_version_" + SubArchName.drop_front(3).str() + ".amdgcn.bc"; + llvm::StringRef FlushDenormalControlBC; + if (Args.hasArg(options::OPT_fcuda_flush_denormals_to_zero)) + FlushDenormalControlBC = "oclc_daz_opt_on.amdgcn.bc"; + else + FlushDenormalControlBC = "oclc_daz_opt_off.amdgcn.bc"; + BCLibs.append({"hip.amdgcn.bc", "opencl.amdgcn.bc", "ockl.amdgcn.bc", "irif.amdgcn.bc", "ocml.amdgcn.bc", "oclc_finite_only_off.amdgcn.bc", - "oclc_daz_opt_off.amdgcn.bc", + FlushDenormalControlBC, "oclc_correctly_rounded_sqrt_on.amdgcn.bc", "oclc_unsafe_math_off.amdgcn.bc", ISAVerBC}); } Index: test/Driver/hip-toolchain-flush-denorms-off.hip =================================================================== --- /dev/null +++ test/Driver/hip-toolchain-flush-denorms-off.hip @@ -0,0 +1,14 @@ +// REQUIRES: clang-driver +// REQUIRES: x86-registered-target +// REQUIRES: amdgpu-registered-target + +// RUN: %clang -### -target x86_64-linux-gnu \ +// RUN: -x hip --cuda-gpu-arch=gfx900 \ +// RUN: --hip-device-lib-path=%S/Inputs/hip_dev_lib \ +// RUN: %S/Inputs/hip_multiple_inputs/b.hip \ +// RUN: 2>&1 | FileCheck %s + + +// CHECK: [[LLVM_LINK:"*.llvm-link"]] +// CHECK-SAME: {{.*}} "{{.*}}oclc_daz_opt_off.amdgcn.bc" +// CHECK-SAME: {{.*}} "-o" "{{.*}}-gfx900-linked-{{.*bc}}" Index: test/Driver/hip-toolchain-flush-denorms-on.hip =================================================================== --- /dev/null +++ test/Driver/hip-toolchain-flush-denorms-on.hip @@ -0,0 +1,15 @@ +// REQUIRES: clang-driver +// REQUIRES: x86-registered-target +// REQUIRES: amdgpu-registered-target + +// RUN: %clang -### -target x86_64-linux-gnu \ +// RUN: -x hip --cuda-gpu-arch=gfx900 \ +// RUN: --hip-device-lib-path=%S/Inputs/hip_dev_lib \ +// RUN: -fcuda-flush-denormals-to-zero \ +// RUN: %S/Inputs/hip_multiple_inputs/b.hip \ +// RUN: 2>&1 | FileCheck %s + + +// CHECK: [[LLVM_LINK:"*.llvm-link"]] +// CHECK-SAME: {{.*}} "{{.*}}oclc_daz_opt_on.amdgcn.bc" +// CHECK-SAME: {{.*}} "-o" "{{.*}}-gfx900-linked-{{.*bc}}"