1*99e8e173SMatt Arsenault; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py 2*99e8e173SMatt Arsenault; RUN: llc -global-isel -mtriple=aarch64-linux-gnu -o - %s | FileCheck %s 3*99e8e173SMatt Arsenault 4*99e8e173SMatt Arsenaultdeclare i8* @foo() 5*99e8e173SMatt Arsenault 6*99e8e173SMatt Arsenaultdefine void @call_assert_align() { 7*99e8e173SMatt Arsenault; CHECK-LABEL: call_assert_align: 8*99e8e173SMatt Arsenault; CHECK: // %bb.0: 9*99e8e173SMatt Arsenault; CHECK-NEXT: str x30, [sp, #-16]! // 8-byte Folded Spill 10*99e8e173SMatt Arsenault; CHECK-NEXT: .cfi_def_cfa_offset 16 11*99e8e173SMatt Arsenault; CHECK-NEXT: .cfi_offset w30, -16 12*99e8e173SMatt Arsenault; CHECK-NEXT: bl foo 13*99e8e173SMatt Arsenault; CHECK-NEXT: strb wzr, [x0] 14*99e8e173SMatt Arsenault; CHECK-NEXT: ldr x30, [sp], #16 // 8-byte Folded Reload 15*99e8e173SMatt Arsenault; CHECK-NEXT: ret 16*99e8e173SMatt Arsenault %ptr = call align 8 i8* @foo() 17*99e8e173SMatt Arsenault store i8 0, i8* %ptr 18*99e8e173SMatt Arsenault ret void 19*99e8e173SMatt Arsenault} 20*99e8e173SMatt Arsenault 21*99e8e173SMatt Arsenaultdefine i8* @tailcall_assert_align() { 22*99e8e173SMatt Arsenault; CHECK-LABEL: tailcall_assert_align: 23*99e8e173SMatt Arsenault; CHECK: // %bb.0: // %entry 24*99e8e173SMatt Arsenault; CHECK-NEXT: b foo 25*99e8e173SMatt Arsenaultentry: 26*99e8e173SMatt Arsenault %call = tail call align 4 i8* @foo() 27*99e8e173SMatt Arsenault ret i8* %call 28*99e8e173SMatt Arsenault} 29