Revert " [LoongArch][ISel] Check the number of sign bits in `PatGprGpr_32` (#107432)"
[llvm-project.git] / llvm / test / CodeGen / Thumb2 / bti-outliner-2.ll
blob60d591b0c2b2af69e0c7a75735396d8595488a32
1 ; RUN: llc -mtriple=thumbv7m-eabi %s -o - | FileCheck %s
3 ; See bti-outliner-1.ll
4 ; Difference is the BTI placement is enabled by default for the entire module.
6 @a = hidden global i32 0, align 4
7 @b = hidden global i32 0, align 4
8 @c = hidden global i32 0, align 4
9 @d = hidden global i32 0, align 4
10 @e = hidden global i32 0, align 4
11 @f = hidden global i32 0, align 4
13 define hidden i32 @x(i32 %p) local_unnamed_addr #1 {
14 entry:
15   %0 = load volatile i32, ptr @a, align 4
16   %1 = load volatile i32, ptr @b, align 4
17   %add = add nsw i32 %1, %0
18   %2 = load volatile i32, ptr @c, align 4
19   %3 = load volatile i32, ptr @d, align 4
20   %add1 = add nsw i32 %3, %2
21   %div = sdiv i32 %add, %add1
22   %4 = load volatile i32, ptr @e, align 4
23   %mul = mul nsw i32 %4, %div
24   %5 = load volatile i32, ptr @f, align 4
25   %add2 = add nsw i32 %mul, %5
26   %add3 = add nsw i32 %add2, 1
27   ret i32 %add3
29 ; CHECK-LABEL: x:
30 ; CHECK:       bti
31 ; CHECK:       bl OUTLINED_FUNCTION_0
33 define hidden i32 @y(i32 %p) local_unnamed_addr #0 {
34 entry:
35   %0 = load volatile i32, ptr @a, align 4
36   %1 = load volatile i32, ptr @b, align 4
37   %add = add nsw i32 %1, %0
38   %2 = load volatile i32, ptr @c, align 4
39   %3 = load volatile i32, ptr @d, align 4
40   %add1 = add nsw i32 %3, %2
41   %div = sdiv i32 %add, %add1
42   %4 = load volatile i32, ptr @e, align 4
43   %mul = mul nsw i32 %4, %div
44   %5 = load volatile i32, ptr @f, align 4
45   %add2 = add nsw i32 %mul, %5
46   %add3 = add nsw i32 %add2, 2
47   ret i32 %add3
49 ; CHECK-LABEL: y:
50 ; CHECK-NOT:   bti
51 ; CHECK-NOT:   bl OUTLINED_FUNCTION
53 define hidden i32 @z(i32 %p) local_unnamed_addr #1 {
54 entry:
55   %0 = load volatile i32, ptr @a, align 4
56   %1 = load volatile i32, ptr @b, align 4
57   %add = add nsw i32 %1, %0
58   %2 = load volatile i32, ptr @c, align 4
59   %3 = load volatile i32, ptr @d, align 4
60   %add1 = add nsw i32 %3, %2
61   %div = sdiv i32 %add, %add1
62   %4 = load volatile i32, ptr @e, align 4
63   %mul = mul nsw i32 %4, %div
64   %5 = load volatile i32, ptr @f, align 4
65   %add2 = add nsw i32 %mul, %5
66   %add3 = add nsw i32 %add2, 3
67   ret i32 %add3
69 ; CHECK-LABEL: z:
70 ; CHECK:       bti
71 ; CHECK:       bl OUTLINED_FUNCTION_0
73 ; CHECK-LABEL: OUTLINED_FUNCTION_0:
74 ; CHECK:       bti
76 attributes #0 = { minsize nofree norecurse nounwind optsize  }
77 attributes #1 = { minsize nofree norecurse nounwind optsize "branch-target-enforcement" }