Revert " [LoongArch][ISel] Check the number of sign bits in `PatGprGpr_32` (#107432)"
[llvm-project.git] / llvm / test / CodeGen / AArch64 / machine-outliner-noreturn-no-stack.mir
blobf926040f3932d718bacdb9bd7c7b953a34732edf
1 # RUN: llc -mtriple=arm64-apple-ios -run-pass=prologepilog -run-pass=machine-outliner -verify-machineinstrs  %s -o - | FileCheck %s
3 # Noreturn functions conservatively need to save and restore lr.
4 # When there is no available register, the stack is used at call site.
5 # If the stack also needs to be set up for a call in the outlined function,
6 # bail-out this case since we do not handle adjusting the stack twice.
8 # CHECK-NOT: OUTLINED_FUNCTION
10 --- |
11   @g = external global i32
12   define void @stack_1() #0 { ret void }
13   define void @stack_2() #0 { ret void }
14   define void @baz() { ret void }
15   attributes #0 = { noredzone noreturn }
16 ...
17 ---
18 name:            stack_1
19 tracksRegLiveness: true
20 body:             |
21   bb.0:
22     liveins: $x4, $x0, $x1, $x2, $x3
23     $w8 = MOVZWi 259, 0
24     $x9 = ADRP target-flags(aarch64-page) @g
25     $x9 = ADDXri $x9, target-flags(aarch64-pageoff, aarch64-nc) @g, 0
26     STRXui  $x9, $x1, 0
27     STRHHui $w8, $x1, 8
28     $w8 = ORRWrs $wzr, $w4, 0, implicit-def $x8
29     STRXui $x8, $x3, 0
30     STPXi $x3, $xzr, $x2, 0
31     $w8 = MOVZWi 271, 0
32     STRHHui $w8, $x2, 8
33     $x8 = ORRXrs $xzr, $x0, 0
34     $x0 = ORRXrs $xzr, $x1, 0
35     $x1 = ORRXrs $xzr, $x2, 0
36     BL @baz, implicit-def dead $lr, implicit $sp, implicit $x8, implicit $x0, implicit $x1, implicit $x3, implicit $x4, implicit-def $sp, implicit-def $x5, implicit-def $x6, implicit-def $x7, implicit-def $x8,  implicit-def $x9, implicit-def $x10,  implicit-def $x11, implicit-def $x12, implicit-def $x13,  implicit-def $x14, implicit-def $x15, implicit-def $x18
37     HINT 0
38 ...
39 ---
40 name:            stack_2
41 tracksRegLiveness: true
42 body:             |
43   bb.0:
44     liveins: $x4, $x0, $x1, $x2, $x3
45     $w8 = MOVZWi 259, 0
46     $x9 = ADRP target-flags(aarch64-page) @g
47     $x9 = ADDXri $x9, target-flags(aarch64-pageoff, aarch64-nc) @g, 0
48     STRXui $x9, $x1, 0
49     STRHHui $w8, $x1, 8
50     $w8 = ORRWrs $wzr, $w4, 0, implicit-def $x8
51     STRXui $x8, $x3, 0
52     STPXi $x3, $xzr, $x2, 0
53     $w8 = MOVZWi 271, 0
54     STRHHui $w8, $x2, 8
55     $x8 = ORRXrs $xzr, $x0, 0
56     $x0 = ORRXrs $xzr, $x1, 0
57     $x1 = ORRXrs $xzr, $x2, 0
58     BL @baz, implicit-def dead $lr, implicit $sp, implicit $x8, implicit $x0, implicit $x1, implicit $x3, implicit $x4, implicit-def $sp, implicit-def $x5, implicit-def $x6, implicit-def $x7, implicit-def $x8,  implicit-def $x9, implicit-def $x10,  implicit-def $x11, implicit-def $x12, implicit-def $x13,  implicit-def $x14, implicit-def $x15, implicit-def $x18
59     HINT 0
60 ...
61 ---
62 name:            baz
63 tracksRegLiveness: true
64 body:             |
65   bb.0:
66     liveins: $w0, $lr, $w8
67     RET undef $lr