<div dir="ltr">Hello,<div><br></div><div>I was trying to wrap my head around the poison semantic in llvm-ir.</div><div><br></div><div>Let say I have the following llvm ir:</div><div><br></div><div>int5 f(int5 %a) {<br>  %b = lshr exact int5 %a, 2</div><div>  %c = shl nuw int5 %a, 2</div><div>  return %a</div><div>}</div><div><br></div><div>Even though I do not use %b nor %c, can I assume that %a is either 0 or 4?</div><div>That is, can I assume the creation of poison value is undefined behavior, or do I need to perform branching on posion value to actually have an undefined behavior?</div><div><br></div><div>Regards.</div><div><br></div><div>-- <br><div class="gmail_signature"><div dir="ltr"><b>Alexandre Isoard</b><br></div></div>
</div></div>