<div dir="ltr">Thanks for finding the root cause. I've submitted r300069 with a fix similar to what you have above. </div><div class="gmail_extra"><br><div class="gmail_quote">On Wed, Apr 12, 2017 at 4:25 AM, NAKAMURA Takumi via Phabricator <span dir="ltr"><<a href="mailto:reviews@reviews.llvm.org" target="_blank">reviews@reviews.llvm.org</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">chapuni added a comment.<br>
<br>
Seems it causes crash in stage2.<br>
<a href="http://bb.pgr.jp/builders/clang-3stage-x86_64-linux/builds/14942" rel="noreferrer" target="_blank">http://bb.pgr.jp/builders/<wbr>clang-3stage-x86_64-linux/<wbr>builds/14942</a><br>
<br>
As far as I investigated, this change misses the case "Load1->getOperand(5) != Load2->getOperand(5)"<br>
<br>
  t69: i64,ch = <<Unknown Machine Node #63812>><Mem:LD8[%_M_p.i.i.i.<wbr>i.i34](tbaa=<0xa62bec8>)> t2, TargetConstant:i8<1>, Register:i64 %noreg, TargetConstant:i32<0>, Register:i32 %noreg, t2:1<br>
  t78: i64,ch = <<Unknown Machine Node #63812>><Mem:LD8[%9](tbaa=<<wbr>0xa55faf8>)> t2, TargetConstant:i8<1>, Register:i64 %noreg, TargetConstant:i32<56>, Register:i32 %noreg, t29:1<br>
<br>
Is it true for areLoadsFromSameBasePtr() ?<br>
<br>
<br>
<br>
================<br>
Comment at: llvm/trunk/lib/Target/X86/<wbr>X86InstrInfo.cpp:8985<br>
-  if (Load1->getOperand(0) != Load2->getOperand(0) ||<br>
-      Load1->getOperand(5) != Load2->getOperand(5))<br>
     return false;<br>
----------------<br>
Crashes can be fixed if this logic is included.<br>
<div class="HOEnZb"><div class="h5"><br>
<br>
Repository:<br>
  rL LLVM<br>
<br>
<a href="https://reviews.llvm.org/D31833" rel="noreferrer" target="_blank">https://reviews.llvm.org/<wbr>D31833</a><br>
<br>
<br>
<br>
</div></div></blockquote></div><br></div>