1*9880d681SAndroid Build Coastguard Worker; RUN: llc < %s -mtriple=x86_64-pc-win32-coreclr | FileCheck %s -check-prefix=WIN_X64 2*9880d681SAndroid Build Coastguard Worker; RUN: llc < %s -mtriple=x86_64-pc-linux | FileCheck %s -check-prefix=LINUX 3*9880d681SAndroid Build Coastguard Worker 4*9880d681SAndroid Build Coastguard Worker%Object = type <{ [0 x i64*]* }> 5*9880d681SAndroid Build Coastguard Worker 6*9880d681SAndroid Build Coastguard Workerdefine void @C1(%Object addrspace(1)* %param0) gc "coreclr" { 7*9880d681SAndroid Build Coastguard Workerentry: 8*9880d681SAndroid Build Coastguard Worker 9*9880d681SAndroid Build Coastguard Worker; WIN_X64: # BB#0: 10*9880d681SAndroid Build Coastguard Worker; WIN_X64: pushq %rax 11*9880d681SAndroid Build Coastguard Worker; LINUX: # BB#0: # %entry 12*9880d681SAndroid Build Coastguard Worker; LINUX: movq $0, -8(%rsp) 13*9880d681SAndroid Build Coastguard Worker 14*9880d681SAndroid Build Coastguard Worker %this = alloca %Object addrspace(1)* 15*9880d681SAndroid Build Coastguard Worker store %Object addrspace(1)* null, %Object addrspace(1)** %this 16*9880d681SAndroid Build Coastguard Worker store %Object addrspace(1)* %param0, %Object addrspace(1)** %this 17*9880d681SAndroid Build Coastguard Worker br label %0 18*9880d681SAndroid Build Coastguard Worker 19*9880d681SAndroid Build Coastguard Worker; <label>:0 ; preds = %entry 20*9880d681SAndroid Build Coastguard Worker %1 = load %Object addrspace(1)*, %Object addrspace(1)** %this, align 8 21*9880d681SAndroid Build Coastguard Worker 22*9880d681SAndroid Build Coastguard Worker; WIN_X64: xorl %r8d, %r8d 23*9880d681SAndroid Build Coastguard Worker; WIN_X64: popq %rax 24*9880d681SAndroid Build Coastguard Worker; WIN_X64: rex64 jmp C2 # TAILCALL 25*9880d681SAndroid Build Coastguard Worker; LINUX: xorl %edx, %edx 26*9880d681SAndroid Build Coastguard Worker; LINUX: jmp C2 # TAILCALL 27*9880d681SAndroid Build Coastguard Worker 28*9880d681SAndroid Build Coastguard Worker tail call void @C2(%Object addrspace(1)* %1, i32 0, %Object addrspace(1)* null) 29*9880d681SAndroid Build Coastguard Worker ret void 30*9880d681SAndroid Build Coastguard Worker} 31*9880d681SAndroid Build Coastguard Worker 32*9880d681SAndroid Build Coastguard Workerdeclare void @C2(%Object addrspace(1)*, i32, %Object addrspace(1)*) 33*9880d681SAndroid Build Coastguard Worker 34*9880d681SAndroid Build Coastguard Worker; Function Attrs: nounwind 35*9880d681SAndroid Build Coastguard Workerdeclare void @llvm.localescape(...) #0 36*9880d681SAndroid Build Coastguard Worker 37*9880d681SAndroid Build Coastguard Workerattributes #0 = { nounwind } 38*9880d681SAndroid Build Coastguard Worker 39