<div dir="ltr"><div>I understand that.  Once the control reaches the target back-end, I can disallow instructions moving around an intrinsic by defining an SDNode for the intrinsic, setting it's properties appropriately and custom lowering it etc. But my question was aimed at how do we stop the "opt" passes from moving the arithmetic instructions around the intrinsic. For example we have "llvm.arm.set.fpscr" intrinsic to set the rounding mode of the arithmetic instructions following it. But if "opt" passes move arithmetic instructions around it, then the expected results are wrong. Am trying to check if anyone has a solution for this already. <br><br></div>Thanks. </div>