[mlir][tensor] fix typo in pad tiling comment
[llvm-project.git] / llvm / test / CodeGen / RISCV / GlobalISel / instruction-select / load-rv32.mir
blobbe4416e07ccf7693bedbfac2ca14547f7eeda4f7
1 # NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py
2 # RUN: llc -mtriple=riscv32 -run-pass=instruction-select %s -o - \
3 # RUN:   -disable-gisel-legality-check | FileCheck %s
5 ---
6 name:            load_i8
7 legalized:       true
8 regBankSelected: true
9 tracksRegLiveness: true
10 body:            |
11   bb.0:
12     liveins: $x10
14     ; CHECK-LABEL: name: load_i8
15     ; CHECK: liveins: $x10
16     ; CHECK-NEXT: {{  $}}
17     ; CHECK-NEXT: [[COPY:%[0-9]+]]:gpr = COPY $x10
18     ; CHECK-NEXT: [[LBU:%[0-9]+]]:gpr = LBU [[COPY]], 0 :: (load (s8))
19     ; CHECK-NEXT: $x10 = COPY [[LBU]]
20     ; CHECK-NEXT: PseudoRET implicit $x10
21     %0:gprb(p0) = COPY $x10
22     %1:gprb(s32) = G_LOAD %0(p0) :: (load (s8))
23     $x10 = COPY %1(s32)
24     PseudoRET implicit $x10
26 ...
27 ---
28 name:            load_i16
29 legalized:       true
30 regBankSelected: true
31 tracksRegLiveness: true
32 body:            |
33   bb.0:
34     liveins: $x10
36     ; CHECK-LABEL: name: load_i16
37     ; CHECK: liveins: $x10
38     ; CHECK-NEXT: {{  $}}
39     ; CHECK-NEXT: [[COPY:%[0-9]+]]:gpr = COPY $x10
40     ; CHECK-NEXT: [[LH:%[0-9]+]]:gpr = LH [[COPY]], 0 :: (load (s16))
41     ; CHECK-NEXT: $x10 = COPY [[LH]]
42     ; CHECK-NEXT: PseudoRET implicit $x10
43     %0:gprb(p0) = COPY $x10
44     %1:gprb(s32) = G_LOAD %0(p0) :: (load (s16))
45     $x10 = COPY %1(s32)
46     PseudoRET implicit $x10
48 ...
49 ---
50 name:            load_i8_i16
51 legalized:       true
52 regBankSelected: true
53 tracksRegLiveness: true
54 body:            |
55   bb.0:
56     liveins: $x10
58     ; CHECK-LABEL: name: load_i8_i16
59     ; CHECK: liveins: $x10
60     ; CHECK-NEXT: {{  $}}
61     ; CHECK-NEXT: [[COPY:%[0-9]+]]:gpr = COPY $x10
62     ; CHECK-NEXT: [[LBU:%[0-9]+]]:gpr = LBU [[COPY]], 0 :: (load (s8))
63     ; CHECK-NEXT: $x10 = COPY [[LBU]]
64     ; CHECK-NEXT: PseudoRET implicit $x10
65     %0:gprb(p0) = COPY $x10
66     %1:gprb(s16) = G_LOAD %0(p0) :: (load (s8))
67     %2:gprb(s32) = G_ANYEXT %1
68     $x10 = COPY %2(s32)
69     PseudoRET implicit $x10
71 ...
72 ---
73 name:            load_i16_i16
74 legalized:       true
75 regBankSelected: true
76 tracksRegLiveness: true
77 body:            |
78   bb.0:
79     liveins: $x10
81     ; CHECK-LABEL: name: load_i16_i16
82     ; CHECK: liveins: $x10
83     ; CHECK-NEXT: {{  $}}
84     ; CHECK-NEXT: [[COPY:%[0-9]+]]:gpr = COPY $x10
85     ; CHECK-NEXT: [[LH:%[0-9]+]]:gpr = LH [[COPY]], 0 :: (load (s16))
86     ; CHECK-NEXT: $x10 = COPY [[LH]]
87     ; CHECK-NEXT: PseudoRET implicit $x10
88     %0:gprb(p0) = COPY $x10
89     %1:gprb(s16) = G_LOAD %0(p0) :: (load (s16))
90     %2:gprb(s32) = G_ANYEXT %1
91     $x10 = COPY %2(s32)
92     PseudoRET implicit $x10
94 ...
95 ---
96 name:            load_i32
97 legalized:       true
98 regBankSelected: true
99 tracksRegLiveness: true
100 body:            |
101   bb.0:
102     liveins: $x10
104     ; CHECK-LABEL: name: load_i32
105     ; CHECK: liveins: $x10
106     ; CHECK-NEXT: {{  $}}
107     ; CHECK-NEXT: [[COPY:%[0-9]+]]:gpr = COPY $x10
108     ; CHECK-NEXT: [[LW:%[0-9]+]]:gpr = LW [[COPY]], 0 :: (load (s32))
109     ; CHECK-NEXT: $x10 = COPY [[LW]]
110     ; CHECK-NEXT: PseudoRET implicit $x10
111     %0:gprb(p0) = COPY $x10
112     %1:gprb(s32) = G_LOAD %0(p0) :: (load (s32))
113     $x10 = COPY %1(s32)
114     PseudoRET implicit $x10
118 name:            zextload_i8
119 legalized:       true
120 regBankSelected: true
121 tracksRegLiveness: true
122 body:            |
123   bb.0:
124     liveins: $x10
126     ; CHECK-LABEL: name: zextload_i8
127     ; CHECK: liveins: $x10
128     ; CHECK-NEXT: {{  $}}
129     ; CHECK-NEXT: [[COPY:%[0-9]+]]:gpr = COPY $x10
130     ; CHECK-NEXT: [[LBU:%[0-9]+]]:gpr = LBU [[COPY]], 0 :: (load (s8))
131     ; CHECK-NEXT: $x10 = COPY [[LBU]]
132     ; CHECK-NEXT: PseudoRET implicit $x10
133     %0:gprb(p0) = COPY $x10
134     %1:gprb(s32) = G_ZEXTLOAD %0(p0) :: (load (s8))
135     $x10 = COPY %1(s32)
136     PseudoRET implicit $x10
140 name:            zextload_i16
141 legalized:       true
142 regBankSelected: true
143 tracksRegLiveness: true
144 body:            |
145   bb.0:
146     liveins: $x10
148     ; CHECK-LABEL: name: zextload_i16
149     ; CHECK: liveins: $x10
150     ; CHECK-NEXT: {{  $}}
151     ; CHECK-NEXT: [[COPY:%[0-9]+]]:gpr = COPY $x10
152     ; CHECK-NEXT: [[LHU:%[0-9]+]]:gpr = LHU [[COPY]], 0 :: (load (s16))
153     ; CHECK-NEXT: $x10 = COPY [[LHU]]
154     ; CHECK-NEXT: PseudoRET implicit $x10
155     %0:gprb(p0) = COPY $x10
156     %1:gprb(s32) = G_ZEXTLOAD %0(p0) :: (load (s16))
157     $x10 = COPY %1(s32)
158     PseudoRET implicit $x10
162 name:            sextload_i8
163 legalized:       true
164 regBankSelected: true
165 tracksRegLiveness: true
166 body:            |
167   bb.0:
168     liveins: $x10
170     ; CHECK-LABEL: name: sextload_i8
171     ; CHECK: liveins: $x10
172     ; CHECK-NEXT: {{  $}}
173     ; CHECK-NEXT: [[COPY:%[0-9]+]]:gpr = COPY $x10
174     ; CHECK-NEXT: [[LB:%[0-9]+]]:gpr = LB [[COPY]], 0 :: (load (s8))
175     ; CHECK-NEXT: $x10 = COPY [[LB]]
176     ; CHECK-NEXT: PseudoRET implicit $x10
177     %0:gprb(p0) = COPY $x10
178     %1:gprb(s32) = G_SEXTLOAD %0(p0) :: (load (s8))
179     $x10 = COPY %1(s32)
180     PseudoRET implicit $x10
184 name:            sextload_i16
185 legalized:       true
186 regBankSelected: true
187 tracksRegLiveness: true
188 body:            |
189   bb.0:
190     liveins: $x10
192     ; CHECK-LABEL: name: sextload_i16
193     ; CHECK: liveins: $x10
194     ; CHECK-NEXT: {{  $}}
195     ; CHECK-NEXT: [[COPY:%[0-9]+]]:gpr = COPY $x10
196     ; CHECK-NEXT: [[LH:%[0-9]+]]:gpr = LH [[COPY]], 0 :: (load (s16))
197     ; CHECK-NEXT: $x10 = COPY [[LH]]
198     ; CHECK-NEXT: PseudoRET implicit $x10
199     %0:gprb(p0) = COPY $x10
200     %1:gprb(s32) = G_SEXTLOAD %0(p0) :: (load (s16))
201     $x10 = COPY %1(s32)
202     PseudoRET implicit $x10
206 name:            load_p0
207 legalized:       true
208 regBankSelected: true
209 tracksRegLiveness: true
210 body:            |
211   bb.0:
212     liveins: $x10
214     ; CHECK-LABEL: name: load_p0
215     ; CHECK: liveins: $x10
216     ; CHECK-NEXT: {{  $}}
217     ; CHECK-NEXT: [[COPY:%[0-9]+]]:gpr = COPY $x10
218     ; CHECK-NEXT: [[LW:%[0-9]+]]:gpr = LW [[COPY]], 0 :: (load (p0))
219     ; CHECK-NEXT: $x10 = COPY [[LW]]
220     ; CHECK-NEXT: PseudoRET implicit $x10
221     %0:gprb(p0) = COPY $x10
222     %1:gprb(p0) = G_LOAD %0(p0) :: (load (p0))
223     $x10 = COPY %1(p0)
224     PseudoRET implicit $x10
228 name:            load_fi_i32
229 legalized:       true
230 regBankSelected: true
231 tracksRegLiveness: true
233 stack:
234   - { id: 0, offset: 0, size: 4, alignment: 4 }
236 body:            |
237   bb.0:
238     ; CHECK-LABEL: name: load_fi_i32
239     ; CHECK: [[LW:%[0-9]+]]:gpr = LW %stack.0, 0 :: (load (s32))
240     ; CHECK-NEXT: $x10 = COPY [[LW]]
241     ; CHECK-NEXT: PseudoRET implicit $x10
242     %0:gprb(p0) = G_FRAME_INDEX %stack.0
243     %1:gprb(s32) = G_LOAD %0(p0) :: (load (s32))
244     $x10 = COPY %1(s32)
245     PseudoRET implicit $x10
249 name:            load_fi_gep_i32
250 legalized:       true
251 regBankSelected: true
252 tracksRegLiveness: true
254 stack:
255   - { id: 0, offset: 0, size: 8, alignment: 4 }
257 body:            |
258   bb.0:
259     ; CHECK-LABEL: name: load_fi_gep_i32
260     ; CHECK: [[LW:%[0-9]+]]:gpr = LW %stack.0, 4 :: (load (s32))
261     ; CHECK-NEXT: $x10 = COPY [[LW]]
262     ; CHECK-NEXT: PseudoRET implicit $x10
263     %0:gprb(p0) = G_FRAME_INDEX %stack.0
264     %1:gprb(s32) = G_CONSTANT i32 4
265     %2:gprb(p0) = G_PTR_ADD %0(p0), %1(s32)
266     %3:gprb(s32) = G_LOAD %2(p0) :: (load (s32))
267     $x10 = COPY %3(s32)
268     PseudoRET implicit $x10
272 name:            load_gep_i32
273 legalized:       true
274 regBankSelected: true
275 tracksRegLiveness: true
276 body:            |
277   bb.0:
278     liveins: $x10
280     ; CHECK-LABEL: name: load_gep_i32
281     ; CHECK: liveins: $x10
282     ; CHECK-NEXT: {{  $}}
283     ; CHECK-NEXT: [[COPY:%[0-9]+]]:gpr = COPY $x10
284     ; CHECK-NEXT: [[LW:%[0-9]+]]:gpr = LW [[COPY]], 4 :: (load (s32))
285     ; CHECK-NEXT: $x10 = COPY [[LW]]
286     ; CHECK-NEXT: PseudoRET implicit $x10
287     %0:gprb(p0) = COPY $x10
288     %1:gprb(s32) = G_CONSTANT i32 4
289     %2:gprb(p0) = G_PTR_ADD %0(p0), %1(s32)
290     %3:gprb(s32) = G_LOAD %2(p0) :: (load (s32))
291     $x10 = COPY %3(s32)
292     PseudoRET implicit $x10