<div dir="ltr">So, it looks like what happens here is you expect undef to be a constrainable value.<div><br></div><div>That is, for "or true, undef", you expect it to be true, despite the undef being there.</div><div><br></div><div>Adding an undef expert to say whether this expectation is reasonable.</div><div><br></div><div>(IE whether undef is allowed to have super-magical possibilities, such that the compiler can pick a value that the or returns false).</div><div><br></div><div>Otherwise, FWIW, it seems simple to fix "right" (just constant fold it using the symbolic operands and if it returns true/false, use that)</div><div><br></div><div><br><br></div></div><div class="gmail_extra"><br><div class="gmail_quote">On Tue, Nov 8, 2016 at 4:39 PM, Davide Italiano via llvm-commits <span dir="ltr"><<a href="mailto:llvm-commits@lists.llvm.org" target="_blank">llvm-commits@lists.llvm.org</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">davide added a comment.<br>
<br>
This fixes the miscompile reported in PR30448. I tried  on many internal tests and bootstrapping clang, and it works without problems. We lose some optimization power, but it seems that the pattern is rare enough so we shouldn't really worry.<br>
<br>
<br>
<a href="https://reviews.llvm.org/D26432" rel="noreferrer" target="_blank">https://reviews.llvm.org/<wbr>D26432</a><br>
<br>
<br>
<br>
______________________________<wbr>_________________<br>
llvm-commits mailing list<br>
<a href="mailto:llvm-commits@lists.llvm.org">llvm-commits@lists.llvm.org</a><br>
<a href="http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits" rel="noreferrer" target="_blank">http://lists.llvm.org/cgi-bin/<wbr>mailman/listinfo/llvm-commits</a><br>
</blockquote></div><br></div>