<div dir="ltr">Making no claims about this:<br><div class="gmail_extra"><br><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Consider expression "0.0 - X" as the negation of X if<br>
- this expression is explicitly marked no-signed-zero, or<br>
- no-signed-zero of this expression can be derived from some context.<br><br></blockquote><div><br></div><div style>since I haven't reviewed that part. However,</div><div style> <br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<br>
+ /// Return true if the value is negative zero or null value.<br>
+ bool isZeroValue() const;<br>
+<br></blockquote><div><br></div><div style>The naming of this routine is really odd given the function just above it in the file and</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
+bool Constant::isZeroValue() const {<br>
+ // Floating point values have an explicit -0.0 value.<br>
+ if (const ConstantFP *CFP = dyn_cast<ConstantFP>(this))<br>
+ return CFP->isZero();<br>
+<br>
+ // Otherwise, just use +0.0.<br>
+ return isNullValue();<br>
+}<br>
+<br></blockquote><div><br></div><div style>and the implementation. Can you explain a bit more?</div><div style><br></div><div style>-eric </div></div></div></div>