[InstCombine] Signed saturation patterns
[llvm-core.git] / test / CodeGen / AArch64 / machine-outliner-drop-stack.mir
blobeb17dab5c10df1f0a378f5d194bd75d383b29342
1 # RUN: llc -mtriple=aarch64--- -run-pass=machine-outliner \
2 # RUN: -verify-machineinstrs %s -o - | FileCheck %s
4 --- |
5   define void @no-save1() #0 { ret void }
6   define void @no-save2() #0 { ret void }
7   define void @reg-save() #0 { ret void }
8   define void @stack-save() #0 { ret void }
9   attributes #0 = { minsize noinline noredzone "no-frame-pointer-elim"="true" }
10 ...
11 ---
13 name:            no-save1
14 tracksRegLiveness: true
15 body:             |
16   bb.0:
17   liveins: $lr
18   $lr = ORRXri $xzr, 1
19   bb.1:
20     ; CHECK-LABEL: name:            no-save1
21     ; CHECK: BL [[FN:@OUTLINED_FUNCTION_[0-9]+]]
22     ; CHECK-NOT: STRXpre
23     ; CHECK-NOT: $lr =
24     ; CHECK-NOT: ORRXrs
25     $x12 = ADDXri $sp, 48, 0;
26     $x12 = ADDXri $sp, 48, 0;
27     $x12 = ADDXri $sp, 48, 0;
28     $x12 = ADDXri $sp, 48, 0;
29     $x12 = ADDXri $sp, 48, 0;
30   bb.2:
31     RET undef $lr
33 ...
34 ---
36 name:            no-save2
37 tracksRegLiveness: true
38 body:             |
39   bb.0:
40   liveins: $lr
41   $lr = ORRXri $xzr, 1
42   bb.1:
43     ; CHECK-LABEL: name:            no-save2
44     ; CHECK: BL [[FN]]
45     ; CHECK-NOT: STRXpre
46     ; CHECK-NOT: $lr =
47     ; CHECK-NOT: ORRXrs
48     $x12 = ADDXri $sp, 48, 0;
49     $x12 = ADDXri $sp, 48, 0;
50     $x12 = ADDXri $sp, 48, 0;
51     $x12 = ADDXri $sp, 48, 0;
52     $x12 = ADDXri $sp, 48, 0;
53   bb.2:
54     RET undef $lr
55 ...
56 ---
58 name:            reg-save
59 tracksRegLiveness: true
60 body:             |
61   bb.0:
62   liveins: $lr
63   $lr = ORRXri $xzr, 1
64   bb.1:
65   liveins: $lr
66     ; CHECK-LABEL: name:            reg-save
67     ; CHECK: $[[REG:x[0-9]+]] = ORRXrs $xzr, $lr, 0
68     ; CHECK-NEXT: BL [[FN]]
69     ; CHECK-NEXT: $lr = ORRXrs $xzr, $[[REG]], 0
70     $x12 = ADDXri $sp, 48, 0;
71     $x12 = ADDXri $sp, 48, 0;
72     $x12 = ADDXri $sp, 48, 0;
73     $x12 = ADDXri $sp, 48, 0;
74     $x12 = ADDXri $sp, 48, 0;
75   bb.2:
76   liveins: $lr
77     RET undef $lr
79 ...
80 ---
82 name:            stack-save
83 tracksRegLiveness: true
84 body:             |
85   bb.0:
86   liveins: $lr, $x0, $x1, $x2, $x3, $x4, $x5, $x6, $x7, $x8, $x9, $x10, $x11, $x12, $x13, $x14, $x15, $x18, $x19, $x20, $x21, $x22, $x23, $x20, $x21, $x22, $x23, $x24, $x25, $x26, $x27, $x28, $fp
87   $lr = ORRXri $xzr, 1
88   bb.1:
89   liveins: $lr, $x0, $x1, $x2, $x3, $x4, $x5, $x6, $x7, $x8, $x9, $x10, $x11, $x12, $x13, $x14, $x15, $x18, $x19, $x20, $x21, $x22, $x23, $x20, $x21, $x22, $x23, $x24, $x25, $x26, $x27, $x28, $fp
90     ; CHECK-LABEL: name:            stack-save
91     ; CHECK-NOT: BL
92     $x12 = ADDXri $sp, 48, 0;
93     $x12 = ADDXri $sp, 48, 0;
94     $x12 = ADDXri $sp, 48, 0;
95     $x12 = ADDXri $sp, 48, 0;
96     $x12 = ADDXri $sp, 48, 0;
97   bb.2:
98   liveins: $lr, $x0, $x1, $x2, $x3, $x4, $x5, $x6, $x7, $x8, $x9, $x10, $x11, $x12, $x13, $x14, $x15, $x18, $x19, $x20, $x21, $x22, $x23, $x20, $x21, $x22, $x23, $x24, $x25, $x26, $x27, $x28, $fp
99     RET undef $lr