Revert " [LoongArch][ISel] Check the number of sign bits in `PatGprGpr_32` (#107432)"
[llvm-project.git] / llvm / test / CodeGen / RISCV / machineoutliner-pcrel-lo.mir
blobfd3630bcfad2560e02a21a3169fbdc5dc3b62d0d
1 # NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py
2 # RUN: llc -mtriple=riscv32 -x mir -run-pass=machine-outliner -simplify-mir -verify-machineinstrs -outliner-leaf-descendants=false < %s \
3 # RUN: | FileCheck %s
4 # RUN: llc -mtriple=riscv64 -x mir -run-pass=machine-outliner -simplify-mir -verify-machineinstrs -outliner-leaf-descendants=false < %s \
5 # RUN: | FileCheck %s
6 # RUN: llc -mtriple=riscv32 -x mir -run-pass=machine-outliner -simplify-mir --function-sections -verify-machineinstrs -outliner-leaf-descendants=false < %s \
7 # RUN: | FileCheck -check-prefix=CHECK-FS %s
8 # RUN: llc -mtriple=riscv64 -x mir -run-pass=machine-outliner -simplify-mir --function-sections -verify-machineinstrs -outliner-leaf-descendants=false < %s \
9 # RUN: | FileCheck -check-prefix=CHECK-FS %s
11 --- |
12   ; Cannot outline instructions with pcrel-lo operands if function section
13   ; enabled.
14   @bar = dso_local local_unnamed_addr global i32 0, align 4
15   define i32 @foo(i32 %a, i32 %b) { ret i32 0 }
17   $foo2 = comdat any
18   define i32 @foo2(i32 %a, i32 %b) comdat { ret i32 0 }
20   define i32 @foo3(i32 %a, i32 %b) section ".abc" { ret i32 0 }
22   define i32 @foo4(i32 %a, i32 %b) !section_prefix !0 { ret i32 0 }
23   !0 = !{!"function_section_prefix", !"myprefix"}
24 ...
25 ---
26 name:            foo
27 tracksRegLiveness: true
28 body:             |
29   ; CHECK-LABEL: name: foo
30   ; CHECK: bb.0:
31   ; CHECK-NEXT:   liveins: $x10, $x11, $x13
32   ; CHECK-NEXT: {{  $}}
33   ; CHECK-NEXT:   $x5 = PseudoCALLReg target-flags(riscv-call) @OUTLINED_FUNCTION_1, implicit-def $x5, implicit-def $x10, implicit-def $x11, implicit-def $x12, implicit $x10, implicit $x11, implicit $x13
34   ; CHECK-NEXT:   PseudoBR %bb.3
35   ; CHECK-NEXT: {{  $}}
36   ; CHECK-NEXT: bb.1:
37   ; CHECK-NEXT:   liveins: $x10, $x11, $x13
38   ; CHECK-NEXT: {{  $}}
39   ; CHECK-NEXT:   $x5 = PseudoCALLReg target-flags(riscv-call) @OUTLINED_FUNCTION_1, implicit-def $x5, implicit-def $x10, implicit-def $x11, implicit-def $x12, implicit $x10, implicit $x11, implicit $x13
40   ; CHECK-NEXT:   PseudoBR %bb.3
41   ; CHECK-NEXT: {{  $}}
42   ; CHECK-NEXT: bb.2:
43   ; CHECK-NEXT:   liveins: $x10, $x11, $x13
44   ; CHECK-NEXT: {{  $}}
45   ; CHECK-NEXT:   $x5 = PseudoCALLReg target-flags(riscv-call) @OUTLINED_FUNCTION_1, implicit-def $x5, implicit-def $x10, implicit-def $x11, implicit-def $x12, implicit $x10, implicit $x11, implicit $x13
46   ; CHECK-NEXT:   PseudoBR %bb.3
47   ; CHECK-NEXT: {{  $}}
48   ; CHECK-NEXT: bb.3:
49   ; CHECK-NEXT:   PseudoRET
50   ;
51   ; CHECK-FS-LABEL: name: foo
52   ; CHECK-FS: bb.0:
53   ; CHECK-FS-NEXT:   liveins: $x10, $x11, $x13
54   ; CHECK-FS-NEXT: {{  $}}
55   ; CHECK-FS-NEXT:   $x5 = PseudoCALLReg target-flags(riscv-call) @OUTLINED_FUNCTION_0, implicit-def $x5, implicit-def $x10, implicit-def $x11, implicit-def $x12, implicit $x10, implicit $x11
56   ; CHECK-FS-NEXT:   $x11 = LW killed renamable $x13, target-flags(riscv-pcrel-lo) <mcsymbol .Lpcrel_hi1> :: (dereferenceable load (s32) from @bar)
57   ; CHECK-FS-NEXT:   PseudoBR %bb.3
58   ; CHECK-FS-NEXT: {{  $}}
59   ; CHECK-FS-NEXT: bb.1:
60   ; CHECK-FS-NEXT:   liveins: $x10, $x11, $x13
61   ; CHECK-FS-NEXT: {{  $}}
62   ; CHECK-FS-NEXT:   $x5 = PseudoCALLReg target-flags(riscv-call) @OUTLINED_FUNCTION_0, implicit-def $x5, implicit-def $x10, implicit-def $x11, implicit-def $x12, implicit $x10, implicit $x11
63   ; CHECK-FS-NEXT:   $x11 = LW killed renamable $x13, target-flags(riscv-pcrel-lo) <mcsymbol .Lpcrel_hi1> :: (dereferenceable load (s32) from @bar)
64   ; CHECK-FS-NEXT:   PseudoBR %bb.3
65   ; CHECK-FS-NEXT: {{  $}}
66   ; CHECK-FS-NEXT: bb.2:
67   ; CHECK-FS-NEXT:   liveins: $x10, $x11, $x13
68   ; CHECK-FS-NEXT: {{  $}}
69   ; CHECK-FS-NEXT:   $x5 = PseudoCALLReg target-flags(riscv-call) @OUTLINED_FUNCTION_0, implicit-def $x5, implicit-def $x10, implicit-def $x11, implicit-def $x12, implicit $x10, implicit $x11
70   ; CHECK-FS-NEXT:   $x11 = LW killed renamable $x13, target-flags(riscv-pcrel-lo) <mcsymbol .Lpcrel_hi1> :: (dereferenceable load (s32) from @bar)
71   ; CHECK-FS-NEXT:   PseudoBR %bb.3
72   ; CHECK-FS-NEXT: {{  $}}
73   ; CHECK-FS-NEXT: bb.3:
74   ; CHECK-FS-NEXT:   PseudoRET
75   bb.0:
76     liveins: $x10, $x11, $x13
78     $x11 = ORI $x11, 1023
79     $x12 = ADDI $x10, 17
80     $x11 = AND $x12, $x11
81     $x10 = SUB $x10, $x11
82     $x11 = LW killed renamable $x13, target-flags(riscv-pcrel-lo) <mcsymbol .Lpcrel_hi1> :: (dereferenceable load (s32) from @bar)
83     PseudoBR %bb.3
85   bb.1:
86     liveins: $x10, $x11, $x13
88     $x11 = ORI $x11, 1023
89     $x12 = ADDI $x10, 17
90     $x11 = AND $x12, $x11
91     $x10 = SUB $x10, $x11
92     $x11 = LW killed renamable $x13, target-flags(riscv-pcrel-lo) <mcsymbol .Lpcrel_hi1> :: (dereferenceable load (s32) from @bar)
93     PseudoBR %bb.3
95   bb.2:
96     liveins: $x10, $x11, $x13
98     $x11 = ORI $x11, 1023
99     $x12 = ADDI $x10, 17
100     $x11 = AND $x12, $x11
101     $x10 = SUB $x10, $x11
102     $x11 = LW killed renamable $x13, target-flags(riscv-pcrel-lo) <mcsymbol .Lpcrel_hi1> :: (dereferenceable load (s32) from @bar)
103     PseudoBR %bb.3
105   bb.3:
106     PseudoRET
109 name:            foo2
110 tracksRegLiveness: true
111 body:             |
112   ; CHECK-LABEL: name: foo2
113   ; CHECK: bb.0:
114   ; CHECK-NEXT:   liveins: $x10, $x11, $x13
115   ; CHECK-NEXT: {{  $}}
116   ; CHECK-NEXT:   $x5 = PseudoCALLReg target-flags(riscv-call) @OUTLINED_FUNCTION_0, implicit-def $x5, implicit-def $x10, implicit-def $x11, implicit-def $x12, implicit $x10, implicit $x11
117   ; CHECK-NEXT:   $x11 = LW killed renamable $x13, target-flags(riscv-pcrel-lo) <mcsymbol .Lpcrel_hi1> :: (dereferenceable load (s32) from @bar)
118   ; CHECK-NEXT:   PseudoBR %bb.3
119   ; CHECK-NEXT: {{  $}}
120   ; CHECK-NEXT: bb.1:
121   ; CHECK-NEXT:   liveins: $x10, $x11, $x13
122   ; CHECK-NEXT: {{  $}}
123   ; CHECK-NEXT:   $x5 = PseudoCALLReg target-flags(riscv-call) @OUTLINED_FUNCTION_0, implicit-def $x5, implicit-def $x10, implicit-def $x11, implicit-def $x12, implicit $x10, implicit $x11
124   ; CHECK-NEXT:   $x11 = LW killed renamable $x13, target-flags(riscv-pcrel-lo) <mcsymbol .Lpcrel_hi1> :: (dereferenceable load (s32) from @bar)
125   ; CHECK-NEXT:   PseudoBR %bb.3
126   ; CHECK-NEXT: {{  $}}
127   ; CHECK-NEXT: bb.2:
128   ; CHECK-NEXT:   liveins: $x10, $x11, $x13
129   ; CHECK-NEXT: {{  $}}
130   ; CHECK-NEXT:   $x5 = PseudoCALLReg target-flags(riscv-call) @OUTLINED_FUNCTION_0, implicit-def $x5, implicit-def $x10, implicit-def $x11, implicit-def $x12, implicit $x10, implicit $x11
131   ; CHECK-NEXT:   $x11 = LW killed renamable $x13, target-flags(riscv-pcrel-lo) <mcsymbol .Lpcrel_hi1> :: (dereferenceable load (s32) from @bar)
132   ; CHECK-NEXT:   PseudoBR %bb.3
133   ; CHECK-NEXT: {{  $}}
134   ; CHECK-NEXT: bb.3:
135   ; CHECK-NEXT:   PseudoRET
136   ;
137   ; CHECK-FS-LABEL: name: foo2
138   ; CHECK-FS: bb.0:
139   ; CHECK-FS-NEXT:   liveins: $x10, $x11, $x13
140   ; CHECK-FS-NEXT: {{  $}}
141   ; CHECK-FS-NEXT:   $x5 = PseudoCALLReg target-flags(riscv-call) @OUTLINED_FUNCTION_0, implicit-def $x5, implicit-def $x10, implicit-def $x11, implicit-def $x12, implicit $x10, implicit $x11
142   ; CHECK-FS-NEXT:   $x11 = LW killed renamable $x13, target-flags(riscv-pcrel-lo) <mcsymbol .Lpcrel_hi1> :: (dereferenceable load (s32) from @bar)
143   ; CHECK-FS-NEXT:   PseudoBR %bb.3
144   ; CHECK-FS-NEXT: {{  $}}
145   ; CHECK-FS-NEXT: bb.1:
146   ; CHECK-FS-NEXT:   liveins: $x10, $x11, $x13
147   ; CHECK-FS-NEXT: {{  $}}
148   ; CHECK-FS-NEXT:   $x5 = PseudoCALLReg target-flags(riscv-call) @OUTLINED_FUNCTION_0, implicit-def $x5, implicit-def $x10, implicit-def $x11, implicit-def $x12, implicit $x10, implicit $x11
149   ; CHECK-FS-NEXT:   $x11 = LW killed renamable $x13, target-flags(riscv-pcrel-lo) <mcsymbol .Lpcrel_hi1> :: (dereferenceable load (s32) from @bar)
150   ; CHECK-FS-NEXT:   PseudoBR %bb.3
151   ; CHECK-FS-NEXT: {{  $}}
152   ; CHECK-FS-NEXT: bb.2:
153   ; CHECK-FS-NEXT:   liveins: $x10, $x11, $x13
154   ; CHECK-FS-NEXT: {{  $}}
155   ; CHECK-FS-NEXT:   $x5 = PseudoCALLReg target-flags(riscv-call) @OUTLINED_FUNCTION_0, implicit-def $x5, implicit-def $x10, implicit-def $x11, implicit-def $x12, implicit $x10, implicit $x11
156   ; CHECK-FS-NEXT:   $x11 = LW killed renamable $x13, target-flags(riscv-pcrel-lo) <mcsymbol .Lpcrel_hi1> :: (dereferenceable load (s32) from @bar)
157   ; CHECK-FS-NEXT:   PseudoBR %bb.3
158   ; CHECK-FS-NEXT: {{  $}}
159   ; CHECK-FS-NEXT: bb.3:
160   ; CHECK-FS-NEXT:   PseudoRET
161   bb.0:
162     liveins: $x10, $x11, $x13
164     $x11 = ORI $x11, 1023
165     $x12 = ADDI $x10, 17
166     $x11 = AND $x12, $x11
167     $x10 = SUB $x10, $x11
168     $x11 = LW killed renamable $x13, target-flags(riscv-pcrel-lo) <mcsymbol .Lpcrel_hi1> :: (dereferenceable load (s32) from @bar)
169     PseudoBR %bb.3
171   bb.1:
172     liveins: $x10, $x11, $x13
174     $x11 = ORI $x11, 1023
175     $x12 = ADDI $x10, 17
176     $x11 = AND $x12, $x11
177     $x10 = SUB $x10, $x11
178     $x11 = LW killed renamable $x13, target-flags(riscv-pcrel-lo) <mcsymbol .Lpcrel_hi1> :: (dereferenceable load (s32) from @bar)
179     PseudoBR %bb.3
181   bb.2:
182     liveins: $x10, $x11, $x13
184     $x11 = ORI $x11, 1023
185     $x12 = ADDI $x10, 17
186     $x11 = AND $x12, $x11
187     $x10 = SUB $x10, $x11
188     $x11 = LW killed renamable $x13, target-flags(riscv-pcrel-lo) <mcsymbol .Lpcrel_hi1> :: (dereferenceable load (s32) from @bar)
189     PseudoBR %bb.3
191   bb.3:
192     PseudoRET
195 name:            foo3
196 tracksRegLiveness: true
197 body:             |
198   ; CHECK-LABEL: name: foo3
199   ; CHECK: bb.0:
200   ; CHECK-NEXT:   liveins: $x10, $x11, $x13
201   ; CHECK-NEXT: {{  $}}
202   ; CHECK-NEXT:   $x11 = ORI $x11, 1023
203   ; CHECK-NEXT:   $x12 = ADDI $x10, 17
204   ; CHECK-NEXT:   $x11 = AND $x12, $x11
205   ; CHECK-NEXT:   $x10 = SUB $x10, $x11
206   ; CHECK-NEXT:   $x11 = LW killed renamable $x13, target-flags(riscv-pcrel-lo) <mcsymbol .Lpcrel_hi1> :: (dereferenceable load (s32) from @bar)
207   ; CHECK-NEXT:   PseudoBR %bb.3
208   ; CHECK-NEXT: {{  $}}
209   ; CHECK-NEXT: bb.1:
210   ; CHECK-NEXT:   liveins: $x10, $x11, $x13
211   ; CHECK-NEXT: {{  $}}
212   ; CHECK-NEXT:   $x11 = ORI $x11, 1023
213   ; CHECK-NEXT:   $x12 = ADDI $x10, 17
214   ; CHECK-NEXT:   $x11 = AND $x12, $x11
215   ; CHECK-NEXT:   $x10 = SUB $x10, $x11
216   ; CHECK-NEXT:   $x11 = LW killed renamable $x13, target-flags(riscv-pcrel-lo) <mcsymbol .Lpcrel_hi1> :: (dereferenceable load (s32) from @bar)
217   ; CHECK-NEXT:   PseudoBR %bb.3
218   ; CHECK-NEXT: {{  $}}
219   ; CHECK-NEXT: bb.2:
220   ; CHECK-NEXT:   liveins: $x10, $x11, $x13
221   ; CHECK-NEXT: {{  $}}
222   ; CHECK-NEXT:   $x11 = ORI $x11, 1023
223   ; CHECK-NEXT:   $x12 = ADDI $x10, 17
224   ; CHECK-NEXT:   $x11 = AND $x12, $x11
225   ; CHECK-NEXT:   $x10 = SUB $x10, $x11
226   ; CHECK-NEXT:   $x11 = LW killed renamable $x13, target-flags(riscv-pcrel-lo) <mcsymbol .Lpcrel_hi1> :: (dereferenceable load (s32) from @bar)
227   ; CHECK-NEXT:   PseudoBR %bb.3
228   ; CHECK-NEXT: {{  $}}
229   ; CHECK-NEXT: bb.3:
230   ; CHECK-NEXT:   PseudoRET
231   ;
232   ; CHECK-FS-LABEL: name: foo3
233   ; CHECK-FS: bb.0:
234   ; CHECK-FS-NEXT:   liveins: $x10, $x11, $x13
235   ; CHECK-FS-NEXT: {{  $}}
236   ; CHECK-FS-NEXT:   $x11 = ORI $x11, 1023
237   ; CHECK-FS-NEXT:   $x12 = ADDI $x10, 17
238   ; CHECK-FS-NEXT:   $x11 = AND $x12, $x11
239   ; CHECK-FS-NEXT:   $x10 = SUB $x10, $x11
240   ; CHECK-FS-NEXT:   $x11 = LW killed renamable $x13, target-flags(riscv-pcrel-lo) <mcsymbol .Lpcrel_hi1> :: (dereferenceable load (s32) from @bar)
241   ; CHECK-FS-NEXT:   PseudoBR %bb.3
242   ; CHECK-FS-NEXT: {{  $}}
243   ; CHECK-FS-NEXT: bb.1:
244   ; CHECK-FS-NEXT:   liveins: $x10, $x11, $x13
245   ; CHECK-FS-NEXT: {{  $}}
246   ; CHECK-FS-NEXT:   $x11 = ORI $x11, 1023
247   ; CHECK-FS-NEXT:   $x12 = ADDI $x10, 17
248   ; CHECK-FS-NEXT:   $x11 = AND $x12, $x11
249   ; CHECK-FS-NEXT:   $x10 = SUB $x10, $x11
250   ; CHECK-FS-NEXT:   $x11 = LW killed renamable $x13, target-flags(riscv-pcrel-lo) <mcsymbol .Lpcrel_hi1> :: (dereferenceable load (s32) from @bar)
251   ; CHECK-FS-NEXT:   PseudoBR %bb.3
252   ; CHECK-FS-NEXT: {{  $}}
253   ; CHECK-FS-NEXT: bb.2:
254   ; CHECK-FS-NEXT:   liveins: $x10, $x11, $x13
255   ; CHECK-FS-NEXT: {{  $}}
256   ; CHECK-FS-NEXT:   $x11 = ORI $x11, 1023
257   ; CHECK-FS-NEXT:   $x12 = ADDI $x10, 17
258   ; CHECK-FS-NEXT:   $x11 = AND $x12, $x11
259   ; CHECK-FS-NEXT:   $x10 = SUB $x10, $x11
260   ; CHECK-FS-NEXT:   $x11 = LW killed renamable $x13, target-flags(riscv-pcrel-lo) <mcsymbol .Lpcrel_hi1> :: (dereferenceable load (s32) from @bar)
261   ; CHECK-FS-NEXT:   PseudoBR %bb.3
262   ; CHECK-FS-NEXT: {{  $}}
263   ; CHECK-FS-NEXT: bb.3:
264   ; CHECK-FS-NEXT:   PseudoRET
265   bb.0:
266     liveins: $x10, $x11, $x13
268     $x11 = ORI $x11, 1023
269     $x12 = ADDI $x10, 17
270     $x11 = AND $x12, $x11
271     $x10 = SUB $x10, $x11
272     $x11 = LW killed renamable $x13, target-flags(riscv-pcrel-lo) <mcsymbol .Lpcrel_hi1> :: (dereferenceable load (s32) from @bar)
273     PseudoBR %bb.3
275   bb.1:
276     liveins: $x10, $x11, $x13
278     $x11 = ORI $x11, 1023
279     $x12 = ADDI $x10, 17
280     $x11 = AND $x12, $x11
281     $x10 = SUB $x10, $x11
282     $x11 = LW killed renamable $x13, target-flags(riscv-pcrel-lo) <mcsymbol .Lpcrel_hi1> :: (dereferenceable load (s32) from @bar)
283     PseudoBR %bb.3
285   bb.2:
286     liveins: $x10, $x11, $x13
288     $x11 = ORI $x11, 1023
289     $x12 = ADDI $x10, 17
290     $x11 = AND $x12, $x11
291     $x10 = SUB $x10, $x11
292     $x11 = LW killed renamable $x13, target-flags(riscv-pcrel-lo) <mcsymbol .Lpcrel_hi1> :: (dereferenceable load (s32) from @bar)
293     PseudoBR %bb.3
295   bb.3:
296     PseudoRET
299 name:            foo4
300 tracksRegLiveness: true
301 body:             |
302   ; CHECK-LABEL: name: foo4
303   ; CHECK: bb.0:
304   ; CHECK-NEXT:   liveins: $x10, $x11, $x13
305   ; CHECK-NEXT: {{  $}}
306   ; CHECK-NEXT:   $x5 = PseudoCALLReg target-flags(riscv-call) @OUTLINED_FUNCTION_0, implicit-def $x5, implicit-def $x10, implicit-def $x11, implicit-def $x12, implicit $x10, implicit $x11
307   ; CHECK-NEXT:   $x11 = LW killed renamable $x13, target-flags(riscv-pcrel-lo) <mcsymbol .Lpcrel_hi1> :: (dereferenceable load (s32) from @bar)
308   ; CHECK-NEXT:   PseudoBR %bb.3
309   ; CHECK-NEXT: {{  $}}
310   ; CHECK-NEXT: bb.1:
311   ; CHECK-NEXT:   liveins: $x10, $x11, $x13
312   ; CHECK-NEXT: {{  $}}
313   ; CHECK-NEXT:   $x5 = PseudoCALLReg target-flags(riscv-call) @OUTLINED_FUNCTION_0, implicit-def $x5, implicit-def $x10, implicit-def $x11, implicit-def $x12, implicit $x10, implicit $x11
314   ; CHECK-NEXT:   $x11 = LW killed renamable $x13, target-flags(riscv-pcrel-lo) <mcsymbol .Lpcrel_hi1> :: (dereferenceable load (s32) from @bar)
315   ; CHECK-NEXT:   PseudoBR %bb.3
316   ; CHECK-NEXT: {{  $}}
317   ; CHECK-NEXT: bb.2:
318   ; CHECK-NEXT:   liveins: $x10, $x11, $x13
319   ; CHECK-NEXT: {{  $}}
320   ; CHECK-NEXT:   $x5 = PseudoCALLReg target-flags(riscv-call) @OUTLINED_FUNCTION_0, implicit-def $x5, implicit-def $x10, implicit-def $x11, implicit-def $x12, implicit $x10, implicit $x11
321   ; CHECK-NEXT:   $x11 = LW killed renamable $x13, target-flags(riscv-pcrel-lo) <mcsymbol .Lpcrel_hi1> :: (dereferenceable load (s32) from @bar)
322   ; CHECK-NEXT:   PseudoBR %bb.3
323   ; CHECK-NEXT: {{  $}}
324   ; CHECK-NEXT: bb.3:
325   ; CHECK-NEXT:   PseudoRET
326   ;
327   ; CHECK-FS-LABEL: name: foo4
328   ; CHECK-FS: bb.0:
329   ; CHECK-FS-NEXT:   liveins: $x10, $x11, $x13
330   ; CHECK-FS-NEXT: {{  $}}
331   ; CHECK-FS-NEXT:   $x5 = PseudoCALLReg target-flags(riscv-call) @OUTLINED_FUNCTION_0, implicit-def $x5, implicit-def $x10, implicit-def $x11, implicit-def $x12, implicit $x10, implicit $x11
332   ; CHECK-FS-NEXT:   $x11 = LW killed renamable $x13, target-flags(riscv-pcrel-lo) <mcsymbol .Lpcrel_hi1> :: (dereferenceable load (s32) from @bar)
333   ; CHECK-FS-NEXT:   PseudoBR %bb.3
334   ; CHECK-FS-NEXT: {{  $}}
335   ; CHECK-FS-NEXT: bb.1:
336   ; CHECK-FS-NEXT:   liveins: $x10, $x11, $x13
337   ; CHECK-FS-NEXT: {{  $}}
338   ; CHECK-FS-NEXT:   $x5 = PseudoCALLReg target-flags(riscv-call) @OUTLINED_FUNCTION_0, implicit-def $x5, implicit-def $x10, implicit-def $x11, implicit-def $x12, implicit $x10, implicit $x11
339   ; CHECK-FS-NEXT:   $x11 = LW killed renamable $x13, target-flags(riscv-pcrel-lo) <mcsymbol .Lpcrel_hi1> :: (dereferenceable load (s32) from @bar)
340   ; CHECK-FS-NEXT:   PseudoBR %bb.3
341   ; CHECK-FS-NEXT: {{  $}}
342   ; CHECK-FS-NEXT: bb.2:
343   ; CHECK-FS-NEXT:   liveins: $x10, $x11, $x13
344   ; CHECK-FS-NEXT: {{  $}}
345   ; CHECK-FS-NEXT:   $x5 = PseudoCALLReg target-flags(riscv-call) @OUTLINED_FUNCTION_0, implicit-def $x5, implicit-def $x10, implicit-def $x11, implicit-def $x12, implicit $x10, implicit $x11
346   ; CHECK-FS-NEXT:   $x11 = LW killed renamable $x13, target-flags(riscv-pcrel-lo) <mcsymbol .Lpcrel_hi1> :: (dereferenceable load (s32) from @bar)
347   ; CHECK-FS-NEXT:   PseudoBR %bb.3
348   ; CHECK-FS-NEXT: {{  $}}
349   ; CHECK-FS-NEXT: bb.3:
350   ; CHECK-FS-NEXT:   PseudoRET
351   bb.0:
352     liveins: $x10, $x11, $x13
354     $x11 = ORI $x11, 1023
355     $x12 = ADDI $x10, 17
356     $x11 = AND $x12, $x11
357     $x10 = SUB $x10, $x11
358     $x11 = LW killed renamable $x13, target-flags(riscv-pcrel-lo) <mcsymbol .Lpcrel_hi1> :: (dereferenceable load (s32) from @bar)
359     PseudoBR %bb.3
361   bb.1:
362     liveins: $x10, $x11, $x13
364     $x11 = ORI $x11, 1023
365     $x12 = ADDI $x10, 17
366     $x11 = AND $x12, $x11
367     $x10 = SUB $x10, $x11
368     $x11 = LW killed renamable $x13, target-flags(riscv-pcrel-lo) <mcsymbol .Lpcrel_hi1> :: (dereferenceable load (s32) from @bar)
369     PseudoBR %bb.3
371   bb.2:
372     liveins: $x10, $x11, $x13
374     $x11 = ORI $x11, 1023
375     $x12 = ADDI $x10, 17
376     $x11 = AND $x12, $x11
377     $x10 = SUB $x10, $x11
378     $x11 = LW killed renamable $x13, target-flags(riscv-pcrel-lo) <mcsymbol .Lpcrel_hi1> :: (dereferenceable load (s32) from @bar)
379     PseudoBR %bb.3
381   bb.3:
382     PseudoRET