AMDGPU: Treat more custom operations as canonicalizing
Everything should quiet, and I think everything should
flush.
I assume the min3/med3/max3 follow the same rules
as regular min/max for flushing, which should at
least be conservatively correct.
There are still more operations that need to
be handled.
llvm-svn: 339065
diff --git a/llvm/lib/Target/AMDGPU/AMDGPUISelLowering.cpp b/llvm/lib/Target/AMDGPU/AMDGPUISelLowering.cpp
index 311b2f7..7ccdcef 100644
--- a/llvm/lib/Target/AMDGPU/AMDGPUISelLowering.cpp
+++ b/llvm/lib/Target/AMDGPU/AMDGPUISelLowering.cpp
@@ -4369,7 +4369,8 @@
// TODO: Need is known positive check.
return false;
}
- case AMDGPUISD::LDEXP: {
+ case AMDGPUISD::LDEXP:
+ case AMDGPUISD::FRACT: {
if (SNaN)
return true;
return DAG.isKnownNeverNaN(Op.getOperand(0), SNaN, Depth + 1);
@@ -4394,6 +4395,8 @@
return true;
case Intrinsic::amdgcn_frexp_mant:
+ if (SNaN)
+ return true;
return DAG.isKnownNeverNaN(Op.getOperand(1), SNaN, Depth + 1);
default:
return false;