[PATCH] D44521: [InstSimplify] fp_binop X, NaN --> NaN
    Mikhail Dvoretckii via Phabricator via llvm-commits 
    llvm-commits at lists.llvm.org
       
    Fri Mar 16 09:07:29 PDT 2018
    
    
  
mike.dvoretsky added inline comments.
================
Comment at: lib/Analysis/InstructionSimplify.cpp:4154
+  if (isa<UndefValue>(Op0) || isa<UndefValue>(Op1))
+    return ConstantFP::getNaN(Op0->getType());
+
----------------
Why are we emitting NaNs from an undef operand here?
================
Comment at: lib/Analysis/InstructionSimplify.cpp:4157
+  if (match(Op0, m_NaN()) || match(Op1, m_NaN()))
+    return ConstantFP::getNaN(Op0->getType());
+
----------------
According to IEEE 754, we should preserve the payload bits of the NaN operand here (either one if both are NaN). This code creates a NaN with all payload bits unset instead.
https://reviews.llvm.org/D44521
    
    
More information about the llvm-commits
mailing list