; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py UTC_ARGS: --version 6 ; RUN: llc -o - %s | FileCheck %s target triple = "arm64-apple-ios18" declare ptr @f() ; Verify that ObjCARCContract rewrites retainRV to claimRV, removing the ; retainRV marker (i.e. there should be no `mov x29, x29` instruction). define ptr @t() { ; CHECK-LABEL: t: ; CHECK: ; %bb.0: ; CHECK-NEXT: stp x29, x30, [sp, #-16]! ; 16-byte Folded Spill ; CHECK-NEXT: .cfi_def_cfa_offset 16 ; CHECK-NEXT: .cfi_offset w30, -8 ; CHECK-NEXT: .cfi_offset w29, -16 ; CHECK-NEXT: bl _f ; CHECK-NEXT: bl _objc_claimAutoreleasedReturnValue ; CHECK-NEXT: ldp x29, x30, [sp], #16 ; 16-byte Folded Reload ; CHECK-NEXT: ret %call = call ptr @f() [ "clang.arc.attachedcall"(ptr @llvm.objc.retainAutoreleasedReturnValue) ] ret ptr %call } declare ptr @llvm.objc.retainAutoreleasedReturnValue(ptr)