@@ -189,3 +189,163 @@ entry:
189
189
%cond = select i1 %cmp , double %a , double %b
190
190
ret double %cond
191
191
}
192
+
193
+ define float @testfminnum (float %a , float %b ) {
194
+ ; CHECK-LABEL: testfminnum:
195
+ ; CHECK: # %bb.0: # %entry
196
+ ; CHECK-NEXT: xsmindp f1, f1, f2
197
+ ; CHECK-NEXT: blr
198
+ ;
199
+ ; NO-FAST-P9-LABEL: testfminnum:
200
+ ; NO-FAST-P9: # %bb.0: # %entry
201
+ ; NO-FAST-P9-NEXT: xsmindp f1, f1, f2
202
+ ; NO-FAST-P9-NEXT: blr
203
+ ;
204
+ ; NO-FAST-P8-LABEL: testfminnum:
205
+ ; NO-FAST-P8: # %bb.0: # %entry
206
+ ; NO-FAST-P8-NEXT: xsmindp f1, f1, f2
207
+ ; NO-FAST-P8-NEXT: blr
208
+ entry:
209
+ %0 = tail call float @llvm.minnum.f32 (float %a , float %b )
210
+ ret float %0
211
+ }
212
+
213
+ define float @testfmaxnum (float %a , float %b ) {
214
+ ; CHECK-LABEL: testfmaxnum:
215
+ ; CHECK: # %bb.0: # %entry
216
+ ; CHECK-NEXT: xsmaxdp f1, f1, f2
217
+ ; CHECK-NEXT: blr
218
+ ;
219
+ ; NO-FAST-P9-LABEL: testfmaxnum:
220
+ ; NO-FAST-P9: # %bb.0: # %entry
221
+ ; NO-FAST-P9-NEXT: xsmaxdp f1, f1, f2
222
+ ; NO-FAST-P9-NEXT: blr
223
+ ;
224
+ ; NO-FAST-P8-LABEL: testfmaxnum:
225
+ ; NO-FAST-P8: # %bb.0: # %entry
226
+ ; NO-FAST-P8-NEXT: xsmaxdp f1, f1, f2
227
+ ; NO-FAST-P8-NEXT: blr
228
+ entry:
229
+ %0 = tail call float @llvm.maxnum.f32 (float %a , float %b )
230
+ ret float %0
231
+ }
232
+
233
+ define double @testdminnum (double %a , double %b ) {
234
+ ; CHECK-LABEL: testdminnum:
235
+ ; CHECK: # %bb.0: # %entry
236
+ ; CHECK-NEXT: xsmindp f1, f1, f2
237
+ ; CHECK-NEXT: blr
238
+ ;
239
+ ; NO-FAST-P9-LABEL: testdminnum:
240
+ ; NO-FAST-P9: # %bb.0: # %entry
241
+ ; NO-FAST-P9-NEXT: xsmindp f1, f1, f2
242
+ ; NO-FAST-P9-NEXT: blr
243
+ ;
244
+ ; NO-FAST-P8-LABEL: testdminnum:
245
+ ; NO-FAST-P8: # %bb.0: # %entry
246
+ ; NO-FAST-P8-NEXT: xsmindp f1, f1, f2
247
+ ; NO-FAST-P8-NEXT: blr
248
+ entry:
249
+ %0 = tail call double @llvm.minnum.f64 (double %a , double %b )
250
+ ret double %0
251
+ }
252
+
253
+ define double @testdmaxnum (double %a , double %b ) {
254
+ ; CHECK-LABEL: testdmaxnum:
255
+ ; CHECK: # %bb.0: # %entry
256
+ ; CHECK-NEXT: xsmaxdp f1, f1, f2
257
+ ; CHECK-NEXT: blr
258
+ ;
259
+ ; NO-FAST-P9-LABEL: testdmaxnum:
260
+ ; NO-FAST-P9: # %bb.0: # %entry
261
+ ; NO-FAST-P9-NEXT: xsmaxdp f1, f1, f2
262
+ ; NO-FAST-P9-NEXT: blr
263
+ ;
264
+ ; NO-FAST-P8-LABEL: testdmaxnum:
265
+ ; NO-FAST-P8: # %bb.0: # %entry
266
+ ; NO-FAST-P8-NEXT: xsmaxdp f1, f1, f2
267
+ ; NO-FAST-P8-NEXT: blr
268
+ entry:
269
+ %0 = tail call double @llvm.maxnum.f64 (double %a , double %b )
270
+ ret double %0
271
+ }
272
+
273
+ define <4 x float > @testfminnum_v4f32 (<4 x float > %a , <4 x float > %b ) {
274
+ ; CHECK-LABEL: testfminnum_v4f32:
275
+ ; CHECK: # %bb.0: # %entry
276
+ ; CHECK-NEXT: xvminsp vs34, vs34, vs35
277
+ ; CHECK-NEXT: blr
278
+ ;
279
+ ; NO-FAST-P9-LABEL: testfminnum_v4f32:
280
+ ; NO-FAST-P9: # %bb.0: # %entry
281
+ ; NO-FAST-P9-NEXT: xvminsp vs34, vs34, vs35
282
+ ; NO-FAST-P9-NEXT: blr
283
+ ;
284
+ ; NO-FAST-P8-LABEL: testfminnum_v4f32:
285
+ ; NO-FAST-P8: # %bb.0: # %entry
286
+ ; NO-FAST-P8-NEXT: xvminsp vs34, vs34, vs35
287
+ ; NO-FAST-P8-NEXT: blr
288
+ entry:
289
+ %0 = tail call <4 x float > @llvm.minnum.v4f32 (<4 x float > %a , <4 x float > %b )
290
+ ret <4 x float > %0
291
+ }
292
+
293
+ define <4 x float > @testfmaxnum_v4f32 (<4 x float > %a , <4 x float > %b ) {
294
+ ; CHECK-LABEL: testfmaxnum_v4f32:
295
+ ; CHECK: # %bb.0: # %entry
296
+ ; CHECK-NEXT: xvmaxsp vs34, vs34, vs35
297
+ ; CHECK-NEXT: blr
298
+ ;
299
+ ; NO-FAST-P9-LABEL: testfmaxnum_v4f32:
300
+ ; NO-FAST-P9: # %bb.0: # %entry
301
+ ; NO-FAST-P9-NEXT: xvmaxsp vs34, vs34, vs35
302
+ ; NO-FAST-P9-NEXT: blr
303
+ ;
304
+ ; NO-FAST-P8-LABEL: testfmaxnum_v4f32:
305
+ ; NO-FAST-P8: # %bb.0: # %entry
306
+ ; NO-FAST-P8-NEXT: xvmaxsp vs34, vs34, vs35
307
+ ; NO-FAST-P8-NEXT: blr
308
+ entry:
309
+ %0 = tail call <4 x float > @llvm.maxnum.v4f32 (<4 x float > %a , <4 x float > %b )
310
+ ret <4 x float > %0
311
+ }
312
+
313
+ define <2 x double > @testdminnum_v2f64 (<2 x double > %a , <2 x double > %b ) {
314
+ ; CHECK-LABEL: testdminnum_v2f64:
315
+ ; CHECK: # %bb.0: # %entry
316
+ ; CHECK-NEXT: xvmindp vs34, vs34, vs35
317
+ ; CHECK-NEXT: blr
318
+ ;
319
+ ; NO-FAST-P9-LABEL: testdminnum_v2f64:
320
+ ; NO-FAST-P9: # %bb.0: # %entry
321
+ ; NO-FAST-P9-NEXT: xvmindp vs34, vs34, vs35
322
+ ; NO-FAST-P9-NEXT: blr
323
+ ;
324
+ ; NO-FAST-P8-LABEL: testdminnum_v2f64:
325
+ ; NO-FAST-P8: # %bb.0: # %entry
326
+ ; NO-FAST-P8-NEXT: xvmindp vs34, vs34, vs35
327
+ ; NO-FAST-P8-NEXT: blr
328
+ entry:
329
+ %0 = tail call <2 x double > @llvm.minnum.v2f64 (<2 x double > %a , <2 x double > %b )
330
+ ret <2 x double > %0
331
+ }
332
+
333
+ define <2 x double > @testdmaxnum_v2f64 (<2 x double > %a , <2 x double > %b ) {
334
+ ; CHECK-LABEL: testdmaxnum_v2f64:
335
+ ; CHECK: # %bb.0: # %entry
336
+ ; CHECK-NEXT: xvmaxdp vs34, vs34, vs35
337
+ ; CHECK-NEXT: blr
338
+ ;
339
+ ; NO-FAST-P9-LABEL: testdmaxnum_v2f64:
340
+ ; NO-FAST-P9: # %bb.0: # %entry
341
+ ; NO-FAST-P9-NEXT: xvmaxdp vs34, vs34, vs35
342
+ ; NO-FAST-P9-NEXT: blr
343
+ ;
344
+ ; NO-FAST-P8-LABEL: testdmaxnum_v2f64:
345
+ ; NO-FAST-P8: # %bb.0: # %entry
346
+ ; NO-FAST-P8-NEXT: xvmaxdp vs34, vs34, vs35
347
+ ; NO-FAST-P8-NEXT: blr
348
+ entry:
349
+ %0 = tail call <2 x double > @llvm.maxnum.v2f64 (<2 x double > %a , <2 x double > %b )
350
+ ret <2 x double > %0
351
+ }
0 commit comments