mirror of
https://github.com/RPCSX/llvm.git
synced 2024-12-27 14:45:24 +00:00
584fedf188
opportunities. For example, this lets it emit this: movq (%rax), %rcx addq %rdx, %rcx instead of this: movq %rdx, %rcx addq (%rax), %rcx in the case where %rdx has subsequent uses. It's the same number of instructions, and usually the same encoding size on x86, but it appears faster, and in general, it may allow better scheduling for the load. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106493 91177308-0d34-0410-b5e6-96231b3b80d8
23 lines
528 B
LLVM
23 lines
528 B
LLVM
; PR1075
|
|
; RUN: llc < %s -mtriple=x86_64-apple-darwin -O3 | FileCheck %s
|
|
|
|
define float @foo(float %x) nounwind {
|
|
%tmp1 = fmul float %x, 3.000000e+00
|
|
%tmp3 = fmul float %x, 5.000000e+00
|
|
%tmp5 = fmul float %x, 7.000000e+00
|
|
%tmp7 = fmul float %x, 1.100000e+01
|
|
%tmp10 = fadd float %tmp1, %tmp3
|
|
%tmp12 = fadd float %tmp10, %tmp5
|
|
%tmp14 = fadd float %tmp12, %tmp7
|
|
ret float %tmp14
|
|
|
|
; CHECK: mulss
|
|
; CHECK: mulss
|
|
; CHECK: addss
|
|
; CHECK: mulss
|
|
; CHECK: addss
|
|
; CHECK: mulss
|
|
; CHECK: addss
|
|
; CHECK: ret
|
|
}
|