1*9880d681SAndroid Build Coastguard Worker; RUN: llc -disable-post-ra -verify-machineinstrs < %s -mtriple=aarch64-none-linux-gnu | FileCheck %s 2*9880d681SAndroid Build Coastguard Worker 3*9880d681SAndroid Build Coastguard Worker; Tests that the 'nest' parameter attribute causes the relevant parameter to be 4*9880d681SAndroid Build Coastguard Worker; passed in the right register. 5*9880d681SAndroid Build Coastguard Worker 6*9880d681SAndroid Build Coastguard Workerdefine i8* @nest_receiver(i8* nest %arg) nounwind { 7*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: nest_receiver: 8*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: // BB#0: 9*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: mov x0, x18 10*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: ret 11*9880d681SAndroid Build Coastguard Worker 12*9880d681SAndroid Build Coastguard Worker ret i8* %arg 13*9880d681SAndroid Build Coastguard Worker} 14*9880d681SAndroid Build Coastguard Worker 15*9880d681SAndroid Build Coastguard Workerdefine i8* @nest_caller(i8* %arg) nounwind { 16*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: nest_caller: 17*9880d681SAndroid Build Coastguard Worker; CHECK: mov x18, x0 18*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: bl nest_receiver 19*9880d681SAndroid Build Coastguard Worker; CHECK: ret 20*9880d681SAndroid Build Coastguard Worker 21*9880d681SAndroid Build Coastguard Worker %result = call i8* @nest_receiver(i8* nest %arg) 22*9880d681SAndroid Build Coastguard Worker ret i8* %result 23*9880d681SAndroid Build Coastguard Worker} 24