<div dir="ltr"><div dir="ltr"><div>> Chain doesn't guarantee that operations on parallel chains don't get interleaved<br></div><div><br></div><div>This would be a sequential chain...</div><div><br></div>> This is the case for all operations expanded as library calls</div><div><br></div><div>I think their originating node already has a chain (i.e. mem operand or side effect in llvm-ir). My case is a arithmetic node without ordering constraints (divrem) getting lowered into sth that _does_ have ordering constraints. I first thought it is very straight forward, turns out it is not a common case. My current WA will be to code prepare into intrinsics with side-effects. I was wondering if that's really necessary..</div><div><br></div><div>Thanks for the input</div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Thu, Jul 16, 2020 at 11:21 AM Matt Arsenault <<a href="mailto:arsenm2@gmail.com">arsenm2@gmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div style="overflow-wrap: break-word;"><br><div><br><blockquote type="cite"><div>On Jul 16, 2020, at 14:10, Hendrik Greving via llvm-dev <<a href="mailto:llvm-dev@lists.llvm.org" target="_blank">llvm-dev@lists.llvm.org</a>> wrote:</div><br><div><span style="font-family:Helvetica;font-size:12px;font-style:normal;font-variant-caps:normal;font-weight:normal;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;text-decoration:none;float:none;display:inline">I scanned other architectures, haven't found an example where somebody creates a chain out of thin air. Do you know any?</span></div></blockquote></div><br><div><br></div><div>This is the case for all operations expanded as library calls. The call sequence involves a chain. One of the AMDGPU fdiv expansions also introduces a side effecting mode switch with a chain</div><div><br></div><div>-Matt</div></div></blockquote></div></div>