Optimized
sitofp i64 %x to double
the current sequence
movl %ecx, 8(%esp)
movl %edx, 12(%esp)
fildll 8(%esp)
replaced with
movd %ecx, %xmm0
movd %edx, %xmm1
punpckldq %xmm1, %xmm0
movq %xmm0, 8(%esp)
Paths
| Differential D15946
Optimized instruction sequence for sitofp operation on X86-32 ClosedPublic Authored by delena on Jan 7 2016, 2:48 AM.
Details Summary Optimized movl %ecx, 8(%esp) replaced with movd %ecx, %xmm0
Diff Detail
Event TimelineComment Actions Hi Elena, Just a few minor comments, otherwise LGTM!
Closed by commit rL257285: Optimized instruction sequence for sitofp operation on X86-32 (authored by delena). · Explain WhyJan 10 2016, 1:45 AM This revision was automatically updated to reflect the committed changes.
Revision Contents
Diff 44421 ../lib/Target/X86/X86ISelLowering.cpp
../test/CodeGen/X86/dagcombine-cse.ll
../test/CodeGen/X86/scalar-int-to-fp.ll
|
It would be useful to have a source comment here to the effect:
Bitcasting to f64 here allows us to do a single 64-bit store from an SSE register,
avoiding the store forwarding penalty that would come with two 32-bit stores.