mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-11-01 08:23:21 +01:00
bcc040be1b
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. llvm-svn: 106493
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
|
|
}
|