From 13b1d666cff32e8ebbe650c3a9149b30d483c49d Mon Sep 17 00:00:00 2001
From: foreman
Date: Tue, 1 Aug 2017 16:19:37 -0400
Subject: [PATCH] P4 to Git Change 1442246 by bsumner@bsumner-lin-opencl on
2017/08/01 16:04:23
SWDEV-128916 - use AMD_GPU_FORCE_SINGLE_FP_DENORM in determining daz_opt library control
Affected files ...
... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palprogram.cpp#41 edit
... //depot/stg/opencl/drivers/opencl/runtime/device/rocm/rocprogram.cpp#67 edit
[ROCm/clr commit: a8f8ab14f0fadb7afbf31267707f74c125e1d5e7]
---
projects/clr/rocclr/runtime/device/pal/palprogram.cpp | 11 +++--------
.../clr/rocclr/runtime/device/rocm/rocprogram.cpp | 5 +++--
2 files changed, 6 insertions(+), 10 deletions(-)
diff --git a/projects/clr/rocclr/runtime/device/pal/palprogram.cpp b/projects/clr/rocclr/runtime/device/pal/palprogram.cpp
index 53c3b4db1d..4979cb9e57 100644
--- a/projects/clr/rocclr/runtime/device/pal/palprogram.cpp
+++ b/projects/clr/rocclr/runtime/device/pal/palprogram.cpp
@@ -1382,8 +1382,9 @@ bool LightningProgram::linkImpl(amd::option::Options* options) {
Data* correctly_rounded_sqrt_bc = C->NewBufferReference(DT_LLVM_BC, correctly_rounded_sqrt.first,
correctly_rounded_sqrt.second);
- auto daz_opt =
- get_oclc_daz_opt(dev().hwInfo()->gfxipVersion_ < 900 || options->oVariables->DenormsAreZero);
+ auto daz_opt = get_oclc_daz_opt(!AMD_GPU_FORCE_SINGLE_FP_DENORM &&
+ (dev().hwInfo()->gfxipVersion_ < 900 ||
+ options->oVariables->DenormsAreZero));
Data* daz_opt_bc = C->NewBufferReference(DT_LLVM_BC, daz_opt.first, daz_opt.second);
auto finite_only = get_oclc_finite_only(options->oVariables->FiniteMathOnly ||
@@ -1394,12 +1395,6 @@ bool LightningProgram::linkImpl(amd::option::Options* options) {
options->oVariables->FastRelaxedMath);
Data* unsafe_math_bc = C->NewBufferReference(DT_LLVM_BC, unsafe_math.first, unsafe_math.second);
- if (!correctly_rounded_sqrt_bc || !daz_opt_bc || !finite_only_bc || !unsafe_math_bc) {
- buildLog_ += "Error: Failed to open the control functions.\n";
- return false;
- }
-
-
if (!correctly_rounded_sqrt_bc || !daz_opt_bc || !finite_only_bc || !unsafe_math_bc) {
buildLog_ += "Error: Failed to open the control functions.\n";
return false;
diff --git a/projects/clr/rocclr/runtime/device/rocm/rocprogram.cpp b/projects/clr/rocclr/runtime/device/rocm/rocprogram.cpp
index 6923762380..1ac7a60e42 100644
--- a/projects/clr/rocclr/runtime/device/rocm/rocprogram.cpp
+++ b/projects/clr/rocclr/runtime/device/rocm/rocprogram.cpp
@@ -678,8 +678,9 @@ bool HSAILProgram::linkImpl_LC(amd::option::Options* options) {
Data* correctly_rounded_sqrt_bc = C->NewBufferReference(DT_LLVM_BC, correctly_rounded_sqrt.first,
correctly_rounded_sqrt.second);
- auto daz_opt = get_oclc_daz_opt(dev().deviceInfo().gfxipVersion_ < 900 ||
- options->oVariables->DenormsAreZero);
+ auto daz_opt = get_oclc_daz_opt(!AMD_GPU_FORCE_SINGLE_FP_DENORM &&
+ (dev().deviceInfo().gfxipVersion_ < 900 ||
+ options->oVariables->DenormsAreZero));
Data* daz_opt_bc = C->NewBufferReference(DT_LLVM_BC, daz_opt.first, daz_opt.second);
auto finite_only = get_oclc_finite_only(options->oVariables->FiniteMathOnly ||