1; RUN: llc < %s -mtriple=arm64-eabi | FileCheck %s 2 3define ptr @rt0(i32 %x) nounwind readnone { 4entry: 5; CHECK-LABEL: rt0: 6; CHECK: hint #7 7; CHECK: mov x0, x30 8; CHECK: ret 9 %0 = tail call ptr @llvm.returnaddress(i32 0) 10 ret ptr %0 11} 12 13define ptr @rt2() nounwind readnone { 14entry: 15; CHECK-LABEL: rt2: 16; CHECK: stp x29, x30, [sp, #-16]! 17; CHECK: mov x29, sp 18; CHECK: ldr x[[REG:[0-9]+]], [x29] 19; CHECK: ldr x[[REG2:[0-9]+]], [x[[REG]]] 20; CHECK: ldr x30, [x[[REG2]], #8] 21; CHECK: hint #7 22; CHECK: mov x0, x30 23; CHECK: ldp x29, x30, [sp], #16 24; CHECK: ret 25 %0 = tail call ptr @llvm.returnaddress(i32 2) 26 ret ptr %0 27} 28 29declare ptr @llvm.returnaddress(i32) nounwind readnone 30