78 lines · plain
1;; RUN: llc -mtriple=aarch64 -mattr=+v8.5a %s -o - | FileCheck %s2 3declare i32 @g(i32) #54 5define i32 @f0(i32 %x) #0 {6entry:7 %call = tail call i32 @g(i32 %x) #58 %add = add nsw i32 %call, 19 ret i32 %add10}11;; CHECK-LABEL: f0:12;; CHECK-NOT: bti13;; CHECK-NOT: pacia14;; CHECK-NOT: reta15 16define i32 @f1(i32 %x) #1 {17entry:18 %call = tail call i32 @g(i32 %x) #519 %add = add nsw i32 %call, 120 ret i32 %add21}22;; CHECK-LABEL: f1:23;; CHECK: bti c24;; CHECK-NOT: reta25 26define i32 @f2(i32 %x) #2 {27entry:28 %call = tail call i32 @g(i32 %x) #529 %add = add nsw i32 %call, 130 ret i32 %add31}32;; CHECK-LABEL: f2:33;; CHECK: paciasp34;; CHECK: retaa35 36define i32 @f3(i32 %x) #3 {37entry:38 %call = tail call i32 @g(i32 %x) #539 %add = add nsw i32 %call, 140 ret i32 %add41}42;; CHECK-LABEL: f3:43;; CHECK: pacibsp44;; CHECK: retab45 46define i32 @f4(i32 %x) #4 {47entry:48 ret i32 149}50;; CHECK-LABEL: f4:51;; CHECK: paciasp52;; CHECK: retaa53 54define i32 @f5(i32 %x) #5 {55entry:56 %call = tail call i32 @g(i32 %x) #557 %add = add nsw i32 %call, 158 ret i32 %add59}60;; CHECK-LABEL: f5:61;; CHECK: paciasp62;; CHECK: retaa63 64attributes #0 = { nounwind }65attributes #1 = { nounwind "branch-target-enforcement" }66attributes #2 = { nounwind "sign-return-address"="non-leaf" "sign-return-address-key"="a_key" }67attributes #3 = { nounwind "sign-return-address"="non-leaf" "sign-return-address-key"="b_key" }68attributes #4 = { nounwind "sign-return-address"="all" "sign-return-address-key"="a_key" }69attributes #5 = { nounwind "sign-return-address"="non-leaf" "sign-return-address-key"="a_key" }70 71!llvm.module.flags = !{!0, !1, !2, !3, !4}72 73!0 = !{i32 1, !"wchar_size", i32 4}74!1 = !{i32 8, !"branch-target-enforcement", i32 1}75!2 = !{i32 8, !"sign-return-address", i32 1}76!3 = !{i32 8, !"sign-return-address-all", i32 0}77!4 = !{i32 8, !"sign-return-address-with-bkey", i32 0}78