[LLVM][IR] Use splat syntax when printing ConstantExpr based splats. (#116856)
[llvm-project.git] / llvm / test / CodeGen / RISCV / GlobalISel / legalizer / legalize-fcmp-f16-rv32.mir
blob6aaaf50d386ba4f78234dc0ae6291089436708da
1 # NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py
2 # RUN: llc -mtriple=riscv32 -mattr=+zfh -run-pass=legalizer %s -o - \
3 # RUN: | FileCheck %s
5 ---
6 name:            fcmp_oeq_f16
7 body:             |
8   bb.1:
9     liveins: $f10_h, $f11_h
11     ; CHECK-LABEL: name: fcmp_oeq_f16
12     ; CHECK: liveins: $f10_h, $f11_h
13     ; CHECK-NEXT: {{  $}}
14     ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s16) = COPY $f10_h
15     ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s16) = COPY $f11_h
16     ; CHECK-NEXT: [[FCMP:%[0-9]+]]:_(s32) = G_FCMP floatpred(oeq), [[COPY]](s16), [[COPY1]]
17     ; CHECK-NEXT: $x10 = COPY [[FCMP]](s32)
18     ; CHECK-NEXT: PseudoRET implicit $x10
19     %0:_(s16) = COPY $f10_h
20     %1:_(s16) = COPY $f11_h
21     %2:_(s1) = G_FCMP floatpred(oeq), %0(s16), %1
22     %3:_(s32) = G_ANYEXT %2(s1)
23     $x10 = COPY %3(s32)
24     PseudoRET implicit $x10
26 ...
27 ---
28 name:            fcmp_ogt_f16
29 body:             |
30   bb.1:
31     liveins: $f10_h, $f11_h
33     ; CHECK-LABEL: name: fcmp_ogt_f16
34     ; CHECK: liveins: $f10_h, $f11_h
35     ; CHECK-NEXT: {{  $}}
36     ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s16) = COPY $f10_h
37     ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s16) = COPY $f11_h
38     ; CHECK-NEXT: [[FCMP:%[0-9]+]]:_(s32) = G_FCMP floatpred(ogt), [[COPY]](s16), [[COPY1]]
39     ; CHECK-NEXT: $x10 = COPY [[FCMP]](s32)
40     ; CHECK-NEXT: PseudoRET implicit $x10
41     %0:_(s16) = COPY $f10_h
42     %1:_(s16) = COPY $f11_h
43     %2:_(s1) = G_FCMP floatpred(ogt), %0(s16), %1
44     %3:_(s32) = G_ANYEXT %2(s1)
45     $x10 = COPY %3(s32)
46     PseudoRET implicit $x10
48 ...
49 ---
50 name:            fcmp_oge_f16
51 body:             |
52   bb.1:
53     liveins: $f10_h, $f11_h
55     ; CHECK-LABEL: name: fcmp_oge_f16
56     ; CHECK: liveins: $f10_h, $f11_h
57     ; CHECK-NEXT: {{  $}}
58     ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s16) = COPY $f10_h
59     ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s16) = COPY $f11_h
60     ; CHECK-NEXT: [[FCMP:%[0-9]+]]:_(s32) = G_FCMP floatpred(oge), [[COPY]](s16), [[COPY1]]
61     ; CHECK-NEXT: $x10 = COPY [[FCMP]](s32)
62     ; CHECK-NEXT: PseudoRET implicit $x10
63     %0:_(s16) = COPY $f10_h
64     %1:_(s16) = COPY $f11_h
65     %2:_(s1) = G_FCMP floatpred(oge), %0(s16), %1
66     %3:_(s32) = G_ANYEXT %2(s1)
67     $x10 = COPY %3(s32)
68     PseudoRET implicit $x10
70 ...
71 ---
72 name:            fcmp_olt_f16
73 body:             |
74   bb.1:
75     liveins: $f10_h, $f11_h
77     ; CHECK-LABEL: name: fcmp_olt_f16
78     ; CHECK: liveins: $f10_h, $f11_h
79     ; CHECK-NEXT: {{  $}}
80     ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s16) = COPY $f10_h
81     ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s16) = COPY $f11_h
82     ; CHECK-NEXT: [[FCMP:%[0-9]+]]:_(s32) = G_FCMP floatpred(olt), [[COPY]](s16), [[COPY1]]
83     ; CHECK-NEXT: $x10 = COPY [[FCMP]](s32)
84     ; CHECK-NEXT: PseudoRET implicit $x10
85     %0:_(s16) = COPY $f10_h
86     %1:_(s16) = COPY $f11_h
87     %2:_(s1) = G_FCMP floatpred(olt), %0(s16), %1
88     %3:_(s32) = G_ANYEXT %2(s1)
89     $x10 = COPY %3(s32)
90     PseudoRET implicit $x10
92 ...
93 ---
94 name:            fcmp_ole_f16
95 body:             |
96   bb.1:
97     liveins: $f10_h, $f11_h
99     ; CHECK-LABEL: name: fcmp_ole_f16
100     ; CHECK: liveins: $f10_h, $f11_h
101     ; CHECK-NEXT: {{  $}}
102     ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s16) = COPY $f10_h
103     ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s16) = COPY $f11_h
104     ; CHECK-NEXT: [[FCMP:%[0-9]+]]:_(s32) = G_FCMP floatpred(ole), [[COPY]](s16), [[COPY1]]
105     ; CHECK-NEXT: $x10 = COPY [[FCMP]](s32)
106     ; CHECK-NEXT: PseudoRET implicit $x10
107     %0:_(s16) = COPY $f10_h
108     %1:_(s16) = COPY $f11_h
109     %2:_(s1) = G_FCMP floatpred(ole), %0(s16), %1
110     %3:_(s32) = G_ANYEXT %2(s1)
111     $x10 = COPY %3(s32)
112     PseudoRET implicit $x10
116 name:            fcmp_one_f16
117 body:             |
118   bb.1:
119     liveins: $f10_h, $f11_h
121     ; CHECK-LABEL: name: fcmp_one_f16
122     ; CHECK: liveins: $f10_h, $f11_h
123     ; CHECK-NEXT: {{  $}}
124     ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s16) = COPY $f10_h
125     ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s16) = COPY $f11_h
126     ; CHECK-NEXT: [[FCMP:%[0-9]+]]:_(s32) = G_FCMP floatpred(one), [[COPY]](s16), [[COPY1]]
127     ; CHECK-NEXT: $x10 = COPY [[FCMP]](s32)
128     ; CHECK-NEXT: PseudoRET implicit $x10
129     %0:_(s16) = COPY $f10_h
130     %1:_(s16) = COPY $f11_h
131     %2:_(s1) = G_FCMP floatpred(one), %0(s16), %1
132     %3:_(s32) = G_ANYEXT %2(s1)
133     $x10 = COPY %3(s32)
134     PseudoRET implicit $x10
138 name:            fcmp_ord_f16
139 body:             |
140   bb.1:
141     liveins: $f10_h, $f11_h
143     ; CHECK-LABEL: name: fcmp_ord_f16
144     ; CHECK: liveins: $f10_h, $f11_h
145     ; CHECK-NEXT: {{  $}}
146     ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s16) = COPY $f10_h
147     ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s16) = COPY $f11_h
148     ; CHECK-NEXT: [[FCMP:%[0-9]+]]:_(s32) = G_FCMP floatpred(ord), [[COPY]](s16), [[COPY1]]
149     ; CHECK-NEXT: $x10 = COPY [[FCMP]](s32)
150     ; CHECK-NEXT: PseudoRET implicit $x10
151     %0:_(s16) = COPY $f10_h
152     %1:_(s16) = COPY $f11_h
153     %2:_(s1) = G_FCMP floatpred(ord), %0(s16), %1
154     %3:_(s32) = G_ANYEXT %2(s1)
155     $x10 = COPY %3(s32)
156     PseudoRET implicit $x10
160 name:            fcmp_ueq_f16
161 body:             |
162   bb.1:
163     liveins: $f10_h, $f11_h
165     ; CHECK-LABEL: name: fcmp_ueq_f16
166     ; CHECK: liveins: $f10_h, $f11_h
167     ; CHECK-NEXT: {{  $}}
168     ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s16) = COPY $f10_h
169     ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s16) = COPY $f11_h
170     ; CHECK-NEXT: [[FCMP:%[0-9]+]]:_(s32) = G_FCMP floatpred(ueq), [[COPY]](s16), [[COPY1]]
171     ; CHECK-NEXT: $x10 = COPY [[FCMP]](s32)
172     ; CHECK-NEXT: PseudoRET implicit $x10
173     %0:_(s16) = COPY $f10_h
174     %1:_(s16) = COPY $f11_h
175     %2:_(s1) = G_FCMP floatpred(ueq), %0(s16), %1
176     %3:_(s32) = G_ANYEXT %2(s1)
177     $x10 = COPY %3(s32)
178     PseudoRET implicit $x10
182 name:            fcmp_ugt_f16
183 body:             |
184   bb.1:
185     liveins: $f10_h, $f11_h
187     ; CHECK-LABEL: name: fcmp_ugt_f16
188     ; CHECK: liveins: $f10_h, $f11_h
189     ; CHECK-NEXT: {{  $}}
190     ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s16) = COPY $f10_h
191     ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s16) = COPY $f11_h
192     ; CHECK-NEXT: [[FCMP:%[0-9]+]]:_(s32) = G_FCMP floatpred(ugt), [[COPY]](s16), [[COPY1]]
193     ; CHECK-NEXT: $x10 = COPY [[FCMP]](s32)
194     ; CHECK-NEXT: PseudoRET implicit $x10
195     %0:_(s16) = COPY $f10_h
196     %1:_(s16) = COPY $f11_h
197     %2:_(s1) = G_FCMP floatpred(ugt), %0(s16), %1
198     %3:_(s32) = G_ANYEXT %2(s1)
199     $x10 = COPY %3(s32)
200     PseudoRET implicit $x10
204 name:            fcmp_uge_f16
205 body:             |
206   bb.1:
207     liveins: $f10_h, $f11_h
209     ; CHECK-LABEL: name: fcmp_uge_f16
210     ; CHECK: liveins: $f10_h, $f11_h
211     ; CHECK-NEXT: {{  $}}
212     ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s16) = COPY $f10_h
213     ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s16) = COPY $f11_h
214     ; CHECK-NEXT: [[FCMP:%[0-9]+]]:_(s32) = G_FCMP floatpred(uge), [[COPY]](s16), [[COPY1]]
215     ; CHECK-NEXT: $x10 = COPY [[FCMP]](s32)
216     ; CHECK-NEXT: PseudoRET implicit $x10
217     %0:_(s16) = COPY $f10_h
218     %1:_(s16) = COPY $f11_h
219     %2:_(s1) = G_FCMP floatpred(uge), %0(s16), %1
220     %3:_(s32) = G_ANYEXT %2(s1)
221     $x10 = COPY %3(s32)
222     PseudoRET implicit $x10
226 name:            fcmp_ult_f16
227 body:             |
228   bb.1:
229     liveins: $f10_h, $f11_h
231     ; CHECK-LABEL: name: fcmp_ult_f16
232     ; CHECK: liveins: $f10_h, $f11_h
233     ; CHECK-NEXT: {{  $}}
234     ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s16) = COPY $f10_h
235     ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s16) = COPY $f11_h
236     ; CHECK-NEXT: [[FCMP:%[0-9]+]]:_(s32) = G_FCMP floatpred(ult), [[COPY]](s16), [[COPY1]]
237     ; CHECK-NEXT: $x10 = COPY [[FCMP]](s32)
238     ; CHECK-NEXT: PseudoRET implicit $x10
239     %0:_(s16) = COPY $f10_h
240     %1:_(s16) = COPY $f11_h
241     %2:_(s1) = G_FCMP floatpred(ult), %0(s16), %1
242     %3:_(s32) = G_ANYEXT %2(s1)
243     $x10 = COPY %3(s32)
244     PseudoRET implicit $x10
248 name:            fcmp_ule_f16
249 body:             |
250   bb.1:
251     liveins: $f10_h, $f11_h
253     ; CHECK-LABEL: name: fcmp_ule_f16
254     ; CHECK: liveins: $f10_h, $f11_h
255     ; CHECK-NEXT: {{  $}}
256     ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s16) = COPY $f10_h
257     ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s16) = COPY $f11_h
258     ; CHECK-NEXT: [[FCMP:%[0-9]+]]:_(s32) = G_FCMP floatpred(ule), [[COPY]](s16), [[COPY1]]
259     ; CHECK-NEXT: $x10 = COPY [[FCMP]](s32)
260     ; CHECK-NEXT: PseudoRET implicit $x10
261     %0:_(s16) = COPY $f10_h
262     %1:_(s16) = COPY $f11_h
263     %2:_(s1) = G_FCMP floatpred(ule), %0(s16), %1
264     %3:_(s32) = G_ANYEXT %2(s1)
265     $x10 = COPY %3(s32)
266     PseudoRET implicit $x10
270 name:            fcmp_une_f16
271 body:             |
272   bb.1:
273     liveins: $f10_h, $f11_h
275     ; CHECK-LABEL: name: fcmp_une_f16
276     ; CHECK: liveins: $f10_h, $f11_h
277     ; CHECK-NEXT: {{  $}}
278     ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s16) = COPY $f10_h
279     ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s16) = COPY $f11_h
280     ; CHECK-NEXT: [[FCMP:%[0-9]+]]:_(s32) = G_FCMP floatpred(une), [[COPY]](s16), [[COPY1]]
281     ; CHECK-NEXT: $x10 = COPY [[FCMP]](s32)
282     ; CHECK-NEXT: PseudoRET implicit $x10
283     %0:_(s16) = COPY $f10_h
284     %1:_(s16) = COPY $f11_h
285     %2:_(s1) = G_FCMP floatpred(une), %0(s16), %1
286     %3:_(s32) = G_ANYEXT %2(s1)
287     $x10 = COPY %3(s32)
288     PseudoRET implicit $x10
292 name:            fcmp_uno_f16
293 body:             |
294   bb.1:
295     liveins: $f10_h, $f11_h
297     ; CHECK-LABEL: name: fcmp_uno_f16
298     ; CHECK: liveins: $f10_h, $f11_h
299     ; CHECK-NEXT: {{  $}}
300     ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s16) = COPY $f10_h
301     ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s16) = COPY $f11_h
302     ; CHECK-NEXT: [[FCMP:%[0-9]+]]:_(s32) = G_FCMP floatpred(uno), [[COPY]](s16), [[COPY1]]
303     ; CHECK-NEXT: $x10 = COPY [[FCMP]](s32)
304     ; CHECK-NEXT: PseudoRET implicit $x10
305     %0:_(s16) = COPY $f10_h
306     %1:_(s16) = COPY $f11_h
307     %2:_(s1) = G_FCMP floatpred(uno), %0(s16), %1
308     %3:_(s32) = G_ANYEXT %2(s1)
309     $x10 = COPY %3(s32)
310     PseudoRET implicit $x10