mirror of
https://github.com/RPCSX/llvm.git
synced 2025-01-07 12:30:44 +00:00
1a360b3be9
On Hexagon is it legal to packetize the instructions setting up call arguments with the call instruction itself. This was already done, except for tail calls. Make sure tail calls are handled as well. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@275458 91177308-0d34-0410-b5e6-96231b3b80d8
23 lines
447 B
LLVM
23 lines
447 B
LLVM
; RUN: llc -march=hexagon < %s | FileCheck %s
|
|
; There should only be one packet:
|
|
; {
|
|
; jump free
|
|
; r0 = memw(r0 + #-4)
|
|
; }
|
|
;
|
|
; CHECK: {
|
|
; CHECK-NOT: {
|
|
|
|
define void @fred(i8* %p) nounwind {
|
|
entry:
|
|
%arrayidx = getelementptr inbounds i8, i8* %p, i32 -4
|
|
%t0 = bitcast i8* %arrayidx to i8**
|
|
%t1 = load i8*, i8** %t0, align 4
|
|
tail call void @free(i8* %t1)
|
|
ret void
|
|
}
|
|
|
|
; Function Attrs: nounwind
|
|
declare void @free(i8* nocapture) nounwind
|
|
|