<div dir="ltr"><div class="gmail_extra">I hadn't seen the godbolt compiler comparison site before.</div><div class="gmail_extra">So I plugged newtst.c into it and my problem did not show up</div><div class="gmail_extra">on any of the clang versions.</div><div class="gmail_extra"><br></div><div class="gmail_extra">I do not understand this but I will pull a fresh tree from SVN,</div><div class="gmail_extra">reapply the patch and recompile from scratch.</div><div class="gmail_extra"><br></div><div class="gmail_extra">However, there was another bug which showed up between</div><div class="gmail_extra">3.3 and 3.4.1. I'd noticed this before and I was tracking it</div><div class="gmail_extra">separately but I'd made no headway in solving it.</div><div class="gmail_extra"><br></div><div class="gmail_extra">With x86 3.4.1 (-O3 -march=native -x c), for some reason</div><div class="gmail_extra">the last bit test expression isn't matching.</div><div class="gmail_extra"><br></div><blockquote style="margin:0px 0px 0px 40px;border:none;padding:0px"><div class="gmail_extra">(((xx) & (1ULL << (56))))</div></blockquote><div class="gmail_extra"><br></div><div class="gmail_extra">It generates</div><div class="gmail_extra"><br></div><blockquote style="margin:0px 0px 0px 40px;border:none;padding:0px"><div class="gmail_extra"><div class="gmail_extra">movabsq<span style="white-space:pre-wrap">       </span>$72057594037927936, %rcx # imm = 0x100000000000000</div></div><div class="gmail_extra"><div class="gmail_extra">andq<span style="white-space:pre-wrap">        </span>%rcx, %rdi</div></div></blockquote><div class="gmail_extra"><div><br></div><div>However on 3.3, it (correctly) generates</div><div><br></div></div><blockquote style="margin:0px 0px 0px 40px;border:none;padding:0px"><div class="gmail_extra"><div><div>btq<span style="white-space:pre-wrap">       </span>$56, %rdi</div><div>jb<span style="white-space:pre-wrap">      </span>.LBB0_13</div></div></div></blockquote></div>