[docs] Add LICENSE.txt to the root of the mono-repo
[llvm-project.git] / llvm / test / CodeGen / Mips / micromips-sizereduction / micromips-no-lwp-swp.mir
blobc9044f306b92220f071703d5ef85205c749731a7
1 # RUN: llc -mtriple=mipsel-unknown-linux-gnu -mattr=+micromips -mcpu=mips32r2 \
2 # RUN:     -verify-machineinstrs -run-pass micromips-reduce-size \
3 # RUN:      %s -o - | FileCheck %s
5 --- |
6   define void @f1(i32* %adr, i32 %val) { ret void }
7   define void @f2(i32* %adr, i32 %val) { ret void }
8   define void @f3(i32* %adr, i32 %val) { ret void }
9   define void @f4(i32* %adr, i32 %val) { ret void }
11   declare i32* @f()
13   ; Function Attrs: nounwind
14   declare void @llvm.stackprotector(i8*, i8**)
15 ...
16 ---
17 # CHECK-LABEL: name: f1
18 # CHECK-NOT: SWP_MM
19 # CHECK-NOT: LWP_MM
20 name:            f1
21 alignment:       4
22 exposesReturnsTwice: false
23 legalized:       false
24 regBankSelected: false
25 selected:        false
26 tracksRegLiveness: true
27 registers:
28 liveins:
29   - { reg: '$a1', virtual-reg: '' }
30 frameInfo:
31   isFrameAddressTaken: false
32   isReturnAddressTaken: false
33   hasStackMap:     false
34   hasPatchPoint:   false
35   stackSize:       24
36   offsetAdjustment: 0
37   maxAlignment:    4
38   adjustsStack:    true
39   hasCalls:        true
40   stackProtector:  ''
41   maxCallFrameSize: 16
42   hasOpaqueSPAdjustment: false
43   hasVAStart:      false
44   hasMustTailInVarArgFunc: false
45   savePoint:       ''
46   restorePoint:    ''
47 fixedStack:
48 stack:
49   - { id: 0, name: '', type: spill-slot, offset: -4, size: 4, alignment: 4,
50       stack-id: default, callee-saved-register: '$ra', callee-saved-restored: true,
51       debug-info-variable: '', debug-info-expression: '', debug-info-location: '' }
52   - { id: 1, name: '', type: spill-slot, offset: -8, size: 4, alignment: 4,
53       stack-id: default, callee-saved-register: '$s0', callee-saved-restored: true,
54       debug-info-variable: '', debug-info-expression: '', debug-info-location: '' }
55 constants:
56 body:             |
57   bb.0:
58     liveins: $a1, $ra, $s0
60     $sp = ADDiu $sp, -24
61     CFI_INSTRUCTION def_cfa_offset 24
62     SW killed $ra, $sp, 20 :: (store (s32) into %stack.0)
63     SW killed $s0, $sp, 16 :: (store (s32) into %stack.1)
64     CFI_INSTRUCTION offset $ra_64, -4
65     CFI_INSTRUCTION offset $s0_64, -8
66     $s0 = MOVE16_MM $a1
67     JAL @f, csr_o32, implicit-def dead $ra, implicit-def $sp, implicit-def dead $v0
68     $v0 = MOVE16_MM killed $s0
69     $s0 = LW $sp, 16 :: (load (s32) from %stack.1)
70     $ra = LW $sp, 20 :: (load (s32) from %stack.0)
71     $sp = ADDiu $sp, 24
72     PseudoReturn undef $ra, implicit killed $v0
74 ...
75 ---
76 # CHECK-LABEL: name: f2
77 # CHECK-NOT: SWP_MM
78 # CHECK-NOT: LWP_MM
79 name:            f2
80 alignment:       4
81 exposesReturnsTwice: false
82 legalized:       false
83 regBankSelected: false
84 selected:        false
85 tracksRegLiveness: true
86 registers:
87 liveins:
88   - { reg: '$a1', virtual-reg: '' }
89 frameInfo:
90   isFrameAddressTaken: false
91   isReturnAddressTaken: false
92   hasStackMap:     false
93   hasPatchPoint:   false
94   stackSize:       24
95   offsetAdjustment: 0
96   maxAlignment:    4
97   adjustsStack:    true
98   hasCalls:        true
99   stackProtector:  ''
100   maxCallFrameSize: 16
101   hasOpaqueSPAdjustment: false
102   hasVAStart:      false
103   hasMustTailInVarArgFunc: false
104   savePoint:       ''
105   restorePoint:    ''
106 fixedStack:
107 stack:
108   - { id: 0, name: '', type: spill-slot, offset: -4, size: 4, alignment: 4,
109       stack-id: default, callee-saved-register: '$ra', callee-saved-restored: true,
110       debug-info-variable: '', debug-info-expression: '', debug-info-location: '' }
111   - { id: 1, name: '', type: spill-slot, offset: -8, size: 4, alignment: 4,
112       stack-id: default, callee-saved-register: '$s0', callee-saved-restored: true,
113       debug-info-variable: '', debug-info-expression: '', debug-info-location: '' }
114 constants:
115 body:             |
116   bb.0:
117     liveins: $a1, $ra, $s0
119     $sp = ADDiu $sp, -24
120     CFI_INSTRUCTION def_cfa_offset 24
121     SW_MM killed $ra, $sp, 20 :: (store (s32) into %stack.0)
122     SW_MM killed $s0, $sp, 16 :: (store (s32) into %stack.1)
123     CFI_INSTRUCTION offset $ra_64, -4
124     CFI_INSTRUCTION offset $s0_64, -8
125     $s0 = MOVE16_MM $a1
126     JAL @f, csr_o32, implicit-def dead $ra, implicit-def $sp, implicit-def dead $v0
127     $v0 = MOVE16_MM killed $s0
128     $s0 = LW_MM $sp, 16 :: (load (s32) from %stack.1)
129     $ra = LW_MM $sp, 20 :: (load (s32) from %stack.0)
130     $sp = ADDiu $sp, 24
131     PseudoReturn undef $ra, implicit killed $v0
135 # CHECK-LABEL: name: f3
136 # CHECK-NOT: SWP_MM
137 # CHECK-NOT: LWP_MM
138 name:            f3
139 alignment:       4
140 exposesReturnsTwice: false
141 legalized:       false
142 regBankSelected: false
143 selected:        false
144 tracksRegLiveness: true
145 registers:
146 liveins:
147   - { reg: '$a1', virtual-reg: '' }
148 frameInfo:
149   isFrameAddressTaken: false
150   isReturnAddressTaken: false
151   hasStackMap:     false
152   hasPatchPoint:   false
153   stackSize:       24
154   offsetAdjustment: 0
155   maxAlignment:    4
156   adjustsStack:    true
157   hasCalls:        true
158   stackProtector:  ''
159   maxCallFrameSize: 16
160   hasOpaqueSPAdjustment: false
161   hasVAStart:      false
162   hasMustTailInVarArgFunc: false
163   savePoint:       ''
164   restorePoint:    ''
165 fixedStack:
166 stack:
167   - { id: 0, name: '', type: spill-slot, offset: -4, size: 4, alignment: 4,
168       stack-id: default, callee-saved-register: '$ra', callee-saved-restored: true,
169       debug-info-variable: '', debug-info-expression: '', debug-info-location: '' }
170   - { id: 1, name: '', type: spill-slot, offset: -8, size: 4, alignment: 4,
171       stack-id: default, callee-saved-register: '$s0', callee-saved-restored: true,
172       debug-info-variable: '', debug-info-expression: '', debug-info-location: '' }
173 constants:
174 body:             |
175   bb.0:
176     liveins: $a1, $ra, $s0
178     $sp = ADDiu $sp, -24
179     CFI_INSTRUCTION def_cfa_offset 24
180     SW_MM killed $ra, $sp, 20 :: (store (s32) into %stack.0)
181     SW killed $s0, $sp, 16 :: (store (s32) into %stack.1)
182     CFI_INSTRUCTION offset $ra_64, -4
183     CFI_INSTRUCTION offset $s0_64, -8
184     $s0 = MOVE16_MM $a1
185     JAL @f, csr_o32, implicit-def dead $ra, implicit-def $sp, implicit-def dead $v0
186     $v0 = MOVE16_MM killed $s0
187     $s0 = LW_MM $sp, 16 :: (load (s32) from %stack.1)
188     $ra = LW $sp, 20 :: (load (s32) from %stack.0)
189     $sp = ADDiu $sp, 24
190     PseudoReturn undef $ra, implicit killed $v0
194 # CHECK-LABEL: name: f4
195 # CHECK-NOT: SWP_MM
196 # CHECK-NOT: LWP_MM
197 name:            f4
198 alignment:       4
199 exposesReturnsTwice: false
200 legalized:       false
201 regBankSelected: false
202 selected:        false
203 tracksRegLiveness: true
204 registers:
205 liveins:
206   - { reg: '$a1', virtual-reg: '' }
207 frameInfo:
208   isFrameAddressTaken: false
209   isReturnAddressTaken: false
210   hasStackMap:     false
211   hasPatchPoint:   false
212   stackSize:       24
213   offsetAdjustment: 0
214   maxAlignment:    4
215   adjustsStack:    true
216   hasCalls:        true
217   stackProtector:  ''
218   maxCallFrameSize: 16
219   hasOpaqueSPAdjustment: false
220   hasVAStart:      false
221   hasMustTailInVarArgFunc: false
222   savePoint:       ''
223   restorePoint:    ''
224 fixedStack:
225 stack:
226   - { id: 0, name: '', type: spill-slot, offset: -4, size: 4, alignment: 4,
227       stack-id: default, callee-saved-register: '$ra', callee-saved-restored: true,
228       debug-info-variable: '', debug-info-expression: '', debug-info-location: '' }
229   - { id: 1, name: '', type: spill-slot, offset: -8, size: 4, alignment: 4,
230       stack-id: default, callee-saved-register: '$s0', callee-saved-restored: true,
231       debug-info-variable: '', debug-info-expression: '', debug-info-location: '' }
232 constants:
233 body:             |
234   bb.0:
235     liveins: $a1, $ra, $s0
237     $sp = ADDiu $sp, -24
238     CFI_INSTRUCTION def_cfa_offset 24
239     SW killed $ra, $sp, 20 :: (store (s32) into %stack.0)
240     SW_MM killed $s0, $sp, 16 :: (store (s32) into %stack.1)
241     CFI_INSTRUCTION offset $ra_64, -4
242     CFI_INSTRUCTION offset $s0_64, -8
243     $s0 = MOVE16_MM $a1
244     JAL @f, csr_o32, implicit-def dead $ra, implicit-def $sp, implicit-def dead $v0
245     $v0 = MOVE16_MM killed $s0
246     $s0 = LW $sp, 16 :: (load (s32) from %stack.1)
247     $ra = LW_MM $sp, 20 :: (load (s32) from %stack.0)
248     $sp = ADDiu $sp, 24
249     PseudoReturn undef $ra, implicit killed $v0