Files
llvm/test/CodeGen/Mips/delay-slot-kill.ll
Stefan Maksimovic 4f48c840d0 [mips] Sign extend i32 return values on MIPS64
Override getTypeForExtReturn so that functions returning
an i32 typed value have it sign extended on MIPS64.

Also provide patterns to get rid of unneeded sign extensions
for arithmetic instructions which implicitly sign extend
their results.

Differential Revision: https://reviews.llvm.org/D48374


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@338019 91177308-0d34-0410-b5e6-96231b3b80d8
2018-07-26 10:59:35 +00:00

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
}