summaryrefslogtreecommitdiff
path: root/include/llvm/IntrinsicInst.h
diff options
context:
space:
mode:
authorChris Lattner <sabre@nondot.org>2008-06-26 00:16:49 +0000
committerChris Lattner <sabre@nondot.org>2008-06-26 00:16:49 +0000
commitcda8875433ef74c39c4151d1a58df0588168b2e2 (patch)
treefb6cbc1c7eefef0b053482a3995b934944f0d256 /include/llvm/IntrinsicInst.h
parent6b098dee286cc6fe5a5a476464d92dec5602e406 (diff)
downloadllvm-cda8875433ef74c39c4151d1a58df0588168b2e2.tar.gz
llvm-cda8875433ef74c39c4151d1a58df0588168b2e2.tar.bz2
llvm-cda8875433ef74c39c4151d1a58df0588168b2e2.tar.xz
when we know the signbit of an input to uint_to_fp is zero,
change it to sint_to_fp on targets where that is cheaper (and visaversa of course). This allows us to compile uint_to_fp to: _test: movl 4(%esp), %eax shrl $23, %eax cvtsi2ss %eax, %xmm0 movl 8(%esp), %eax movss %xmm0, (%eax) ret instead of: .align 3 LCPI1_0: ## double .long 0 ## double least significant word 4.5036e+15 .long 1127219200 ## double most significant word 4.5036e+15 .text .align 4,0x90 .globl _test _test: subl $12, %esp movl 16(%esp), %eax shrl $23, %eax movl %eax, (%esp) movl $1127219200, 4(%esp) movsd (%esp), %xmm0 subsd LCPI1_0, %xmm0 cvtsd2ss %xmm0, %xmm0 movl 20(%esp), %eax movss %xmm0, (%eax) addl $12, %esp ret git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52747 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'include/llvm/IntrinsicInst.h')
0 files changed, 0 insertions, 0 deletions