Hello, I wrote the following IR code:" ... call @fesetround int32 0x400 %result = call @llvm.rint.f32 f32 value call @fesetround int32 0x0 ... " However, when the IR is JITed, "llvm.rint.f32" is translated to "roundps" and scheduled out of the two fesetround call. The final native code looks like:" ... movabs <fesetround>, %rax mov 0x400, %rdi call *%rax xor %rdi, %rdi call *%rax roundps 0x4 %mmx0, %mmx0 ... " Is there any way to stop the optimization pass from scheduling the "llvm.rint.f32" out of two 'fesetround' calls? Or is there any other way to solve this problem? Bin LI, State Key Laboratory of Computer Architecture, Institute of Computing Technology of Chinese Academy of Sciences, Address: NO.6 Kexueyuan South Road, Haidian District, Beijing, China Phone: 18811212264 email: richardustc at gmail.com -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20140312/5fdd1dc6/attachment.html>