mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-11-23 11:13:28 +01:00
9ca8e1a54b
Summary: Replace a LEA instruction of the form 'lea (%esp), %ebx' --> 'mov %esp, %ebx' MOV is preferable over LEA because usually there are more issue-slots available to execute MOVs than LEAs. Latest processors also support zero-latency MOVs. Fixes pr29022. Reviewers: hfinkel, delena, igorb, myatsina, mkuper Differential Revision: https://reviews.llvm.org/D24705 llvm-svn: 282385
16 lines
422 B
LLVM
16 lines
422 B
LLVM
; RUN: llc < %s -mcpu=skx -mtriple x86_64-unknown-linux-gnu -verify-machineinstrs | FileCheck %s
|
|
; RUN: llc < %s -mcpu=skx -mtriple=x86_64-linux-gnux32 -verify-machineinstrs | FileCheck %s --check-prefix=X32
|
|
|
|
define i32 @A() {
|
|
; CHECK: movq %rsp, %rdi
|
|
; CHECK-NEXT: call
|
|
|
|
; X32: movl %esp, %edi
|
|
; X32-NEXT: call
|
|
%alloc = alloca i32, align 8
|
|
%call = call i32 @foo(i32* %alloc)
|
|
ret i32 %call
|
|
}
|
|
|
|
declare i32 @foo(i32*)
|