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>