summaryrefslogtreecommitdiffstats
path: root/clang/lib/CodeGen/CodeGenModule.cpp
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
commitb1e66ce3bb6c7a629cb7dd4c84e32ab37536b41d (patch)
tree4b556e1fea595cc7de34ceaf3c9167898e0d3911 /clang/lib/CodeGen/CodeGenModule.cpp
parentf7b72b69405fb064ce5329ebdcaac5245ca08ed8 (diff)
downloadbcm5719-llvm-b1e66ce3bb6c7a629cb7dd4c84e32ab37536b41d.tar.gz
bcm5719-llvm-b1e66ce3bb6c7a629cb7dd4c84e32ab37536b41d.zip
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 llvm-svn: 52747
Diffstat (limited to 'clang/lib/CodeGen/CodeGenModule.cpp')
0 files changed, 0 insertions, 0 deletions
OpenPOWER on IntegriCloud