<div dir="ltr"><div class="gmail_extra"><div class="gmail_quote"><div>Hi Chandler, Dan,</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">When alignment is zero, the lang ref says that *no* alignment<br>


assumptions can be made. This is the exact opposite of the internal API<br>
contracts of the DAG where alignment 0 indicates that the alignment can<br>
be made to be anything desired.<br></blockquote><div><br></div><div>I had occasion to circle back to this recently, and I wanted to double-check this part of the analysis. Is this actually an internal contract, and expected behavior? Or do things just go haywire when we feed in a zero alignment? On a local LLVM copy, I replaced your fix with an assert on zero-alignment, and added similar asserts to getMemcpyLoadsAndStores (and friends), but wasn't able to trigger them with anything in the test suite.</div>
<div><br></div><div>If it's not an internal contract, but just the DAG going haywire on Align==0, I'd like to keep your fix in place, and commit the asserts that I've added to getMemcpyLoadsAndStores and friends.</div>
<div><br></div><div style>Cheers,</div><div style>Lang.</div><div><br></div></div></div></div>