mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2024-12-13 04:30:23 +00:00
187afcd548
Summary: Previously, the presence of KILL instructions would block valid candidates from filling a specific delay slot. With the elimination of the KILL instructions, in the appropriate range, we are able to fill more slots and keep the information from future def/use analysis consistent. Reviewers: dsanders Reviewed By: dsanders Subscribers: hfinkel, llvm-commits Differential Revision: http://reviews.llvm.org/D7724 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@235183 91177308-0d34-0410-b5e6-96231b3b80d8
15 lines
493 B
LLVM
15 lines
493 B
LLVM
; RUN: llc < %s -march=mips64 -mcpu=mips3 | FileCheck %s
|
|
|
|
; Currently, the following IR assembly generates a KILL instruction between
|
|
; the bitwise-and instruction and the return instruction. We verify that the
|
|
; delay slot filler ignores such KILL instructions by filling the slot of the
|
|
; return instruction properly.
|
|
define signext i32 @f1(i32 signext %a, i32 signext %b) {
|
|
entry:
|
|
; CHECK: jr $ra
|
|
; CHECK-NEXT: and $2, $4, $5
|
|
|
|
%r = and i32 %a, %b
|
|
ret i32 %r
|
|
}
|