@@ -166,6 +166,28 @@ define <2 x double> @v2f64_select_ogt(<2 x double> %a, <2 x double> %b, <2 x dou
166
166
ret <2 x double > %s.1
167
167
}
168
168
169
+ define <4 x bfloat> @v4bf16_select_ogt (<4 x bfloat> %a , <4 x bfloat> %b , <4 x bfloat> %c ) {
170
+ ; COST-LABEL: 'v4bf16_select_ogt'
171
+ ; COST-NEXT: Cost Model: Found costs of 1 for: %cmp.1 = fcmp ogt <4 x bfloat> %a, %b
172
+ ; COST-NEXT: Cost Model: Found costs of RThru:10 CodeSize:1 Lat:1 SizeLat:1 for: %s.1 = select <4 x i1> %cmp.1, <4 x bfloat> %a, <4 x bfloat> %c
173
+ ; COST-NEXT: Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret <4 x bfloat> %s.1
174
+ ;
175
+ %cmp.1 = fcmp ogt <4 x bfloat> %a , %b
176
+ %s.1 = select <4 x i1 > %cmp.1 , <4 x bfloat> %a , <4 x bfloat> %c
177
+ ret <4 x bfloat> %s.1
178
+ }
179
+
180
+ define <8 x bfloat> @v8bf16_select_ogt (<8 x bfloat> %a , <8 x bfloat> %b , <8 x bfloat> %c ) {
181
+ ; COST-LABEL: 'v8bf16_select_ogt'
182
+ ; COST-NEXT: Cost Model: Found costs of RThru:22 CodeSize:1 Lat:1 SizeLat:1 for: %cmp.1 = fcmp ogt <8 x bfloat> %a, %b
183
+ ; COST-NEXT: Cost Model: Found costs of RThru:22 CodeSize:1 Lat:1 SizeLat:1 for: %s.1 = select <8 x i1> %cmp.1, <8 x bfloat> %a, <8 x bfloat> %c
184
+ ; COST-NEXT: Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret <8 x bfloat> %s.1
185
+ ;
186
+ %cmp.1 = fcmp ogt <8 x bfloat> %a , %b
187
+ %s.1 = select <8 x i1 > %cmp.1 , <8 x bfloat> %a , <8 x bfloat> %c
188
+ ret <8 x bfloat> %s.1
189
+ }
190
+
169
191
define <4 x half > @v4f16_select_oge (<4 x half > %a , <4 x half > %b , <4 x half > %c ) {
170
192
; COST-NOFP16-LABEL: 'v4f16_select_oge'
171
193
; COST-NOFP16-NEXT: Cost Model: Found costs of RThru:4 CodeSize:1 Lat:1 SizeLat:1 for: %cmp.1 = fcmp oge <4 x half> %a, %b
@@ -231,6 +253,28 @@ define <2 x double> @v2f64_select_oge(<2 x double> %a, <2 x double> %b, <2 x dou
231
253
ret <2 x double > %s.1
232
254
}
233
255
256
+ define <4 x bfloat> @v4bf16_select_oge (<4 x bfloat> %a , <4 x bfloat> %b , <4 x bfloat> %c ) {
257
+ ; COST-LABEL: 'v4bf16_select_oge'
258
+ ; COST-NEXT: Cost Model: Found costs of 1 for: %cmp.1 = fcmp oge <4 x bfloat> %a, %b
259
+ ; COST-NEXT: Cost Model: Found costs of RThru:10 CodeSize:1 Lat:1 SizeLat:1 for: %s.1 = select <4 x i1> %cmp.1, <4 x bfloat> %a, <4 x bfloat> %c
260
+ ; COST-NEXT: Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret <4 x bfloat> %s.1
261
+ ;
262
+ %cmp.1 = fcmp oge <4 x bfloat> %a , %b
263
+ %s.1 = select <4 x i1 > %cmp.1 , <4 x bfloat> %a , <4 x bfloat> %c
264
+ ret <4 x bfloat> %s.1
265
+ }
266
+
267
+ define <8 x bfloat> @v8bf16_select_oge (<8 x bfloat> %a , <8 x bfloat> %b , <8 x bfloat> %c ) {
268
+ ; COST-LABEL: 'v8bf16_select_oge'
269
+ ; COST-NEXT: Cost Model: Found costs of RThru:22 CodeSize:1 Lat:1 SizeLat:1 for: %cmp.1 = fcmp oge <8 x bfloat> %a, %b
270
+ ; COST-NEXT: Cost Model: Found costs of RThru:22 CodeSize:1 Lat:1 SizeLat:1 for: %s.1 = select <8 x i1> %cmp.1, <8 x bfloat> %a, <8 x bfloat> %c
271
+ ; COST-NEXT: Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret <8 x bfloat> %s.1
272
+ ;
273
+ %cmp.1 = fcmp oge <8 x bfloat> %a , %b
274
+ %s.1 = select <8 x i1 > %cmp.1 , <8 x bfloat> %a , <8 x bfloat> %c
275
+ ret <8 x bfloat> %s.1
276
+ }
277
+
234
278
define <4 x half > @v4f16_select_olt (<4 x half > %a , <4 x half > %b , <4 x half > %c ) {
235
279
; COST-NOFP16-LABEL: 'v4f16_select_olt'
236
280
; COST-NOFP16-NEXT: Cost Model: Found costs of RThru:4 CodeSize:1 Lat:1 SizeLat:1 for: %cmp.1 = fcmp olt <4 x half> %a, %b
@@ -296,6 +340,28 @@ define <2 x double> @v2f64_select_olt(<2 x double> %a, <2 x double> %b, <2 x dou
296
340
ret <2 x double > %s.1
297
341
}
298
342
343
+ define <4 x bfloat> @v4bf16_select_olt (<4 x bfloat> %a , <4 x bfloat> %b , <4 x bfloat> %c ) {
344
+ ; COST-LABEL: 'v4bf16_select_olt'
345
+ ; COST-NEXT: Cost Model: Found costs of 1 for: %cmp.1 = fcmp olt <4 x bfloat> %a, %b
346
+ ; COST-NEXT: Cost Model: Found costs of RThru:10 CodeSize:1 Lat:1 SizeLat:1 for: %s.1 = select <4 x i1> %cmp.1, <4 x bfloat> %a, <4 x bfloat> %c
347
+ ; COST-NEXT: Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret <4 x bfloat> %s.1
348
+ ;
349
+ %cmp.1 = fcmp olt <4 x bfloat> %a , %b
350
+ %s.1 = select <4 x i1 > %cmp.1 , <4 x bfloat> %a , <4 x bfloat> %c
351
+ ret <4 x bfloat> %s.1
352
+ }
353
+
354
+ define <8 x bfloat> @v8bf16_select_olt (<8 x bfloat> %a , <8 x bfloat> %b , <8 x bfloat> %c ) {
355
+ ; COST-LABEL: 'v8bf16_select_olt'
356
+ ; COST-NEXT: Cost Model: Found costs of RThru:22 CodeSize:1 Lat:1 SizeLat:1 for: %cmp.1 = fcmp olt <8 x bfloat> %a, %b
357
+ ; COST-NEXT: Cost Model: Found costs of RThru:22 CodeSize:1 Lat:1 SizeLat:1 for: %s.1 = select <8 x i1> %cmp.1, <8 x bfloat> %a, <8 x bfloat> %c
358
+ ; COST-NEXT: Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret <8 x bfloat> %s.1
359
+ ;
360
+ %cmp.1 = fcmp olt <8 x bfloat> %a , %b
361
+ %s.1 = select <8 x i1 > %cmp.1 , <8 x bfloat> %a , <8 x bfloat> %c
362
+ ret <8 x bfloat> %s.1
363
+ }
364
+
299
365
define <4 x half > @v4f16_select_ole (<4 x half > %a , <4 x half > %b , <4 x half > %c ) {
300
366
; COST-NOFP16-LABEL: 'v4f16_select_ole'
301
367
; COST-NOFP16-NEXT: Cost Model: Found costs of RThru:4 CodeSize:1 Lat:1 SizeLat:1 for: %cmp.1 = fcmp ole <4 x half> %a, %b
@@ -361,6 +427,28 @@ define <2 x double> @v2f64_select_ole(<2 x double> %a, <2 x double> %b, <2 x dou
361
427
ret <2 x double > %s.1
362
428
}
363
429
430
+ define <4 x bfloat> @v4bf16_select_ole (<4 x bfloat> %a , <4 x bfloat> %b , <4 x bfloat> %c ) {
431
+ ; COST-LABEL: 'v4bf16_select_ole'
432
+ ; COST-NEXT: Cost Model: Found costs of 1 for: %cmp.1 = fcmp ole <4 x bfloat> %a, %b
433
+ ; COST-NEXT: Cost Model: Found costs of RThru:10 CodeSize:1 Lat:1 SizeLat:1 for: %s.1 = select <4 x i1> %cmp.1, <4 x bfloat> %a, <4 x bfloat> %c
434
+ ; COST-NEXT: Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret <4 x bfloat> %s.1
435
+ ;
436
+ %cmp.1 = fcmp ole <4 x bfloat> %a , %b
437
+ %s.1 = select <4 x i1 > %cmp.1 , <4 x bfloat> %a , <4 x bfloat> %c
438
+ ret <4 x bfloat> %s.1
439
+ }
440
+
441
+ define <8 x bfloat> @v8bf16_select_ole (<8 x bfloat> %a , <8 x bfloat> %b , <8 x bfloat> %c ) {
442
+ ; COST-LABEL: 'v8bf16_select_ole'
443
+ ; COST-NEXT: Cost Model: Found costs of RThru:22 CodeSize:1 Lat:1 SizeLat:1 for: %cmp.1 = fcmp ole <8 x bfloat> %a, %b
444
+ ; COST-NEXT: Cost Model: Found costs of RThru:22 CodeSize:1 Lat:1 SizeLat:1 for: %s.1 = select <8 x i1> %cmp.1, <8 x bfloat> %a, <8 x bfloat> %c
445
+ ; COST-NEXT: Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret <8 x bfloat> %s.1
446
+ ;
447
+ %cmp.1 = fcmp ole <8 x bfloat> %a , %b
448
+ %s.1 = select <8 x i1 > %cmp.1 , <8 x bfloat> %a , <8 x bfloat> %c
449
+ ret <8 x bfloat> %s.1
450
+ }
451
+
364
452
define <4 x half > @v4f16_select_oeq (<4 x half > %a , <4 x half > %b , <4 x half > %c ) {
365
453
; COST-NOFP16-LABEL: 'v4f16_select_oeq'
366
454
; COST-NOFP16-NEXT: Cost Model: Found costs of RThru:4 CodeSize:1 Lat:1 SizeLat:1 for: %cmp.1 = fcmp oeq <4 x half> %a, %b
@@ -426,6 +514,28 @@ define <2 x double> @v2f64_select_oeq(<2 x double> %a, <2 x double> %b, <2 x dou
426
514
ret <2 x double > %s.1
427
515
}
428
516
517
+ define <4 x bfloat> @v4bf16_select_oeq (<4 x bfloat> %a , <4 x bfloat> %b , <4 x bfloat> %c ) {
518
+ ; COST-LABEL: 'v4bf16_select_oeq'
519
+ ; COST-NEXT: Cost Model: Found costs of 1 for: %cmp.1 = fcmp oeq <4 x bfloat> %a, %b
520
+ ; COST-NEXT: Cost Model: Found costs of RThru:10 CodeSize:1 Lat:1 SizeLat:1 for: %s.1 = select <4 x i1> %cmp.1, <4 x bfloat> %a, <4 x bfloat> %c
521
+ ; COST-NEXT: Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret <4 x bfloat> %s.1
522
+ ;
523
+ %cmp.1 = fcmp oeq <4 x bfloat> %a , %b
524
+ %s.1 = select <4 x i1 > %cmp.1 , <4 x bfloat> %a , <4 x bfloat> %c
525
+ ret <4 x bfloat> %s.1
526
+ }
527
+
528
+ define <8 x bfloat> @v8bf16_select_oeq (<8 x bfloat> %a , <8 x bfloat> %b , <8 x bfloat> %c ) {
529
+ ; COST-LABEL: 'v8bf16_select_oeq'
530
+ ; COST-NEXT: Cost Model: Found costs of RThru:22 CodeSize:1 Lat:1 SizeLat:1 for: %cmp.1 = fcmp oeq <8 x bfloat> %a, %b
531
+ ; COST-NEXT: Cost Model: Found costs of RThru:22 CodeSize:1 Lat:1 SizeLat:1 for: %s.1 = select <8 x i1> %cmp.1, <8 x bfloat> %a, <8 x bfloat> %c
532
+ ; COST-NEXT: Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret <8 x bfloat> %s.1
533
+ ;
534
+ %cmp.1 = fcmp oeq <8 x bfloat> %a , %b
535
+ %s.1 = select <8 x i1 > %cmp.1 , <8 x bfloat> %a , <8 x bfloat> %c
536
+ ret <8 x bfloat> %s.1
537
+ }
538
+
429
539
define <4 x half > @v4f16_select_one (<4 x half > %a , <4 x half > %b , <4 x half > %c ) {
430
540
; COST-NOFP16-LABEL: 'v4f16_select_one'
431
541
; COST-NOFP16-NEXT: Cost Model: Found costs of RThru:4 CodeSize:1 Lat:1 SizeLat:1 for: %cmp.1 = fcmp one <4 x half> %a, %b
@@ -464,8 +574,6 @@ define <2 x float> @v2f32_select_one(<2 x float> %a, <2 x float> %b, <2 x float>
464
574
; COST-NEXT: Cost Model: Found costs of RThru:2 CodeSize:1 Lat:1 SizeLat:1 for: %s.1 = select <2 x i1> %cmp.1, <2 x float> %a, <2 x float> %c
465
575
; COST-NEXT: Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret <2 x float> %s.1
466
576
;
467
-
468
-
469
577
%cmp.1 = fcmp one <2 x float > %a , %b
470
578
%s.1 = select <2 x i1 > %cmp.1 , <2 x float > %a , <2 x float > %c
471
579
ret <2 x float > %s.1
@@ -477,8 +585,6 @@ define <4 x float> @v4f32_select_one(<4 x float> %a, <4 x float> %b, <4 x float>
477
585
; COST-NEXT: Cost Model: Found costs of RThru:2 CodeSize:1 Lat:1 SizeLat:1 for: %s.1 = select <4 x i1> %cmp.1, <4 x float> %a, <4 x float> %c
478
586
; COST-NEXT: Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret <4 x float> %s.1
479
587
;
480
-
481
-
482
588
%cmp.1 = fcmp one <4 x float > %a , %b
483
589
%s.1 = select <4 x i1 > %cmp.1 , <4 x float > %a , <4 x float > %c
484
590
ret <4 x float > %s.1
@@ -495,6 +601,28 @@ define <2 x double> @v2f64_select_one(<2 x double> %a, <2 x double> %b, <2 x dou
495
601
ret <2 x double > %s.1
496
602
}
497
603
604
+ define <4 x bfloat> @v4bf16_select_one (<4 x bfloat> %a , <4 x bfloat> %b , <4 x bfloat> %c ) {
605
+ ; COST-LABEL: 'v4bf16_select_one'
606
+ ; COST-NEXT: Cost Model: Found costs of 1 for: %cmp.1 = fcmp one <4 x bfloat> %a, %b
607
+ ; COST-NEXT: Cost Model: Found costs of RThru:10 CodeSize:1 Lat:1 SizeLat:1 for: %s.1 = select <4 x i1> %cmp.1, <4 x bfloat> %a, <4 x bfloat> %c
608
+ ; COST-NEXT: Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret <4 x bfloat> %s.1
609
+ ;
610
+ %cmp.1 = fcmp one <4 x bfloat> %a , %b
611
+ %s.1 = select <4 x i1 > %cmp.1 , <4 x bfloat> %a , <4 x bfloat> %c
612
+ ret <4 x bfloat> %s.1
613
+ }
614
+
615
+ define <8 x bfloat> @v8bf16_select_one (<8 x bfloat> %a , <8 x bfloat> %b , <8 x bfloat> %c ) {
616
+ ; COST-LABEL: 'v8bf16_select_one'
617
+ ; COST-NEXT: Cost Model: Found costs of RThru:22 CodeSize:1 Lat:1 SizeLat:1 for: %cmp.1 = fcmp one <8 x bfloat> %a, %b
618
+ ; COST-NEXT: Cost Model: Found costs of RThru:22 CodeSize:1 Lat:1 SizeLat:1 for: %s.1 = select <8 x i1> %cmp.1, <8 x bfloat> %a, <8 x bfloat> %c
619
+ ; COST-NEXT: Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret <8 x bfloat> %s.1
620
+ ;
621
+ %cmp.1 = fcmp one <8 x bfloat> %a , %b
622
+ %s.1 = select <8 x i1 > %cmp.1 , <8 x bfloat> %a , <8 x bfloat> %c
623
+ ret <8 x bfloat> %s.1
624
+ }
625
+
498
626
define <4 x half > @v4f16_select_une (<4 x half > %a , <4 x half > %b , <4 x half > %c ) {
499
627
; COST-NOFP16-LABEL: 'v4f16_select_une'
500
628
; COST-NOFP16-NEXT: Cost Model: Found costs of RThru:4 CodeSize:1 Lat:1 SizeLat:1 for: %cmp.1 = fcmp une <4 x half> %a, %b
@@ -560,6 +688,60 @@ define <2 x double> @v2f64_select_une(<2 x double> %a, <2 x double> %b, <2 x dou
560
688
ret <2 x double > %s.1
561
689
}
562
690
691
+ define <4 x bfloat> @v4bf16_select_une (<4 x bfloat> %a , <4 x bfloat> %b , <4 x bfloat> %c ) {
692
+ ; COST-LABEL: 'v4bf16_select_une'
693
+ ; COST-NEXT: Cost Model: Found costs of 1 for: %cmp.1 = fcmp une <4 x bfloat> %a, %b
694
+ ; COST-NEXT: Cost Model: Found costs of RThru:10 CodeSize:1 Lat:1 SizeLat:1 for: %s.1 = select <4 x i1> %cmp.1, <4 x bfloat> %a, <4 x bfloat> %c
695
+ ; COST-NEXT: Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret <4 x bfloat> %s.1
696
+ ;
697
+ %cmp.1 = fcmp une <4 x bfloat> %a , %b
698
+ %s.1 = select <4 x i1 > %cmp.1 , <4 x bfloat> %a , <4 x bfloat> %c
699
+ ret <4 x bfloat> %s.1
700
+ }
701
+
702
+ define <8 x bfloat> @v8bf16_select_une (<8 x bfloat> %a , <8 x bfloat> %b , <8 x bfloat> %c ) {
703
+ ; COST-LABEL: 'v8bf16_select_une'
704
+ ; COST-NEXT: Cost Model: Found costs of RThru:22 CodeSize:1 Lat:1 SizeLat:1 for: %cmp.1 = fcmp une <8 x bfloat> %a, %b
705
+ ; COST-NEXT: Cost Model: Found costs of RThru:22 CodeSize:1 Lat:1 SizeLat:1 for: %s.1 = select <8 x i1> %cmp.1, <8 x bfloat> %a, <8 x bfloat> %c
706
+ ; COST-NEXT: Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret <8 x bfloat> %s.1
707
+ ;
708
+ %cmp.1 = fcmp une <8 x bfloat> %a , %b
709
+ %s.1 = select <8 x i1 > %cmp.1 , <8 x bfloat> %a , <8 x bfloat> %c
710
+ ret <8 x bfloat> %s.1
711
+ }
712
+
713
+ define <4 x half > @v4f16_select_ord (<4 x half > %a , <4 x half > %b , <4 x half > %c ) {
714
+ ; COST-NOFP16-LABEL: 'v4f16_select_ord'
715
+ ; COST-NOFP16-NEXT: Cost Model: Found costs of RThru:4 CodeSize:1 Lat:1 SizeLat:1 for: %cmp.1 = fcmp ord <4 x half> %a, %b
716
+ ; COST-NOFP16-NEXT: Cost Model: Found costs of RThru:2 CodeSize:1 Lat:1 SizeLat:1 for: %s.1 = select <4 x i1> %cmp.1, <4 x half> %a, <4 x half> %c
717
+ ; COST-NOFP16-NEXT: Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret <4 x half> %s.1
718
+ ;
719
+ ; COST-FULLFP16-LABEL: 'v4f16_select_ord'
720
+ ; COST-FULLFP16-NEXT: Cost Model: Found costs of 1 for: %cmp.1 = fcmp ord <4 x half> %a, %b
721
+ ; COST-FULLFP16-NEXT: Cost Model: Found costs of RThru:2 CodeSize:1 Lat:1 SizeLat:1 for: %s.1 = select <4 x i1> %cmp.1, <4 x half> %a, <4 x half> %c
722
+ ; COST-FULLFP16-NEXT: Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret <4 x half> %s.1
723
+ ;
724
+ %cmp.1 = fcmp ord <4 x half > %a , %b
725
+ %s.1 = select <4 x i1 > %cmp.1 , <4 x half > %a , <4 x half > %c
726
+ ret <4 x half > %s.1
727
+ }
728
+
729
+ define <8 x half > @v8f16_select_ord (<8 x half > %a , <8 x half > %b , <8 x half > %c ) {
730
+ ; COST-NOFP16-LABEL: 'v8f16_select_ord'
731
+ ; COST-NOFP16-NEXT: Cost Model: Found costs of RThru:22 CodeSize:1 Lat:1 SizeLat:1 for: %cmp.1 = fcmp ord <8 x half> %a, %b
732
+ ; COST-NOFP16-NEXT: Cost Model: Found costs of RThru:2 CodeSize:1 Lat:1 SizeLat:1 for: %s.1 = select <8 x i1> %cmp.1, <8 x half> %a, <8 x half> %c
733
+ ; COST-NOFP16-NEXT: Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret <8 x half> %s.1
734
+ ;
735
+ ; COST-FULLFP16-LABEL: 'v8f16_select_ord'
736
+ ; COST-FULLFP16-NEXT: Cost Model: Found costs of 1 for: %cmp.1 = fcmp ord <8 x half> %a, %b
737
+ ; COST-FULLFP16-NEXT: Cost Model: Found costs of RThru:2 CodeSize:1 Lat:1 SizeLat:1 for: %s.1 = select <8 x i1> %cmp.1, <8 x half> %a, <8 x half> %c
738
+ ; COST-FULLFP16-NEXT: Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret <8 x half> %s.1
739
+ ;
740
+ %cmp.1 = fcmp ord <8 x half > %a , %b
741
+ %s.1 = select <8 x i1 > %cmp.1 , <8 x half > %a , <8 x half > %c
742
+ ret <8 x half > %s.1
743
+ }
744
+
563
745
define <2 x float > @v2f32_select_ord (<2 x float > %a , <2 x float > %b , <2 x float > %c ) {
564
746
; COST-LABEL: 'v2f32_select_ord'
565
747
; COST-NEXT: Cost Model: Found costs of 1 for: %cmp.1 = fcmp ord <2 x float> %a, %b
@@ -577,8 +759,6 @@ define <4 x float> @v4f32_select_ord(<4 x float> %a, <4 x float> %b, <4 x float>
577
759
; COST-NEXT: Cost Model: Found costs of RThru:2 CodeSize:1 Lat:1 SizeLat:1 for: %s.1 = select <4 x i1> %cmp.1, <4 x float> %a, <4 x float> %c
578
760
; COST-NEXT: Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret <4 x float> %s.1
579
761
;
580
-
581
-
582
762
%cmp.1 = fcmp ord <4 x float > %a , %b
583
763
%s.1 = select <4 x i1 > %cmp.1 , <4 x float > %a , <4 x float > %c
584
764
ret <4 x float > %s.1
@@ -594,3 +774,25 @@ define <2 x double> @v2f64_select_ord(<2 x double> %a, <2 x double> %b, <2 x dou
594
774
%s.1 = select <2 x i1 > %cmp.1 , <2 x double > %a , <2 x double > %c
595
775
ret <2 x double > %s.1
596
776
}
777
+
778
+ define <4 x bfloat> @v4bf16_select_ord (<4 x bfloat> %a , <4 x bfloat> %b , <4 x bfloat> %c ) {
779
+ ; COST-LABEL: 'v4bf16_select_ord'
780
+ ; COST-NEXT: Cost Model: Found costs of 1 for: %cmp.1 = fcmp ord <4 x bfloat> %a, %b
781
+ ; COST-NEXT: Cost Model: Found costs of RThru:10 CodeSize:1 Lat:1 SizeLat:1 for: %s.1 = select <4 x i1> %cmp.1, <4 x bfloat> %a, <4 x bfloat> %c
782
+ ; COST-NEXT: Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret <4 x bfloat> %s.1
783
+ ;
784
+ %cmp.1 = fcmp ord <4 x bfloat> %a , %b
785
+ %s.1 = select <4 x i1 > %cmp.1 , <4 x bfloat> %a , <4 x bfloat> %c
786
+ ret <4 x bfloat> %s.1
787
+ }
788
+
789
+ define <8 x bfloat> @v8bf16_select_ord (<8 x bfloat> %a , <8 x bfloat> %b , <8 x bfloat> %c ) {
790
+ ; COST-LABEL: 'v8bf16_select_ord'
791
+ ; COST-NEXT: Cost Model: Found costs of RThru:22 CodeSize:1 Lat:1 SizeLat:1 for: %cmp.1 = fcmp ord <8 x bfloat> %a, %b
792
+ ; COST-NEXT: Cost Model: Found costs of RThru:22 CodeSize:1 Lat:1 SizeLat:1 for: %s.1 = select <8 x i1> %cmp.1, <8 x bfloat> %a, <8 x bfloat> %c
793
+ ; COST-NEXT: Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret <8 x bfloat> %s.1
794
+ ;
795
+ %cmp.1 = fcmp ord <8 x bfloat> %a , %b
796
+ %s.1 = select <8 x i1 > %cmp.1 , <8 x bfloat> %a , <8 x bfloat> %c
797
+ ret <8 x bfloat> %s.1
798
+ }
0 commit comments