@@ -482,6 +482,33 @@ define <vscale x 2 x double> @splat_nxv2f64_imm() {
482
482
ret <vscale x 2 x double > splat(double 1 .0 )
483
483
}
484
484
485
+ ; NOTE: f16(1.875) == bf16(1.0)
486
+ define <vscale x 8 x bfloat> @splat_nxv8bf16_imm () {
487
+ ; CHECK-LABEL: splat_nxv8bf16_imm:
488
+ ; CHECK: // %bb.0:
489
+ ; CHECK-NEXT: fmov z0.h, #1.87500000
490
+ ; CHECK-NEXT: ret
491
+ ret <vscale x 8 x bfloat> splat(bfloat 1 .0 )
492
+ }
493
+
494
+ ; NOTE: f16(-1.875) == bf16(-1.0)
495
+ define <vscale x 4 x bfloat> @splat_nxv4bf16_imm () {
496
+ ; CHECK-LABEL: splat_nxv4bf16_imm:
497
+ ; CHECK: // %bb.0:
498
+ ; CHECK-NEXT: fmov z0.h, #-1.87500000
499
+ ; CHECK-NEXT: ret
500
+ ret <vscale x 4 x bfloat> splat(bfloat -1 .0 )
501
+ }
502
+
503
+ ; NOTE: f16(1.875) == bf16(1.0)
504
+ define <vscale x 2 x bfloat> @splat_nxv2bf16_imm () {
505
+ ; CHECK-LABEL: splat_nxv2bf16_imm:
506
+ ; CHECK: // %bb.0:
507
+ ; CHECK-NEXT: fmov z0.h, #1.87500000
508
+ ; CHECK-NEXT: ret
509
+ ret <vscale x 2 x bfloat> splat(bfloat 1 .0 )
510
+ }
511
+
485
512
define <vscale x 4 x i32 > @splat_nxv4i32_fold (<vscale x 4 x i32 > %x ) {
486
513
; CHECK-LABEL: splat_nxv4i32_fold:
487
514
; CHECK: // %bb.0:
@@ -554,8 +581,8 @@ define <vscale x 2 x double> @splat_nxv2f64_imm_out_of_range() {
554
581
; CHECK-LABEL: splat_nxv2f64_imm_out_of_range:
555
582
; CHECK: // %bb.0:
556
583
; CHECK-NEXT: ptrue p0.d
557
- ; CHECK-NEXT: adrp x8, .LCPI57_0
558
- ; CHECK-NEXT: add x8, x8, :lo12:.LCPI57_0
584
+ ; CHECK-NEXT: adrp x8, .LCPI60_0
585
+ ; CHECK-NEXT: add x8, x8, :lo12:.LCPI60_0
559
586
; CHECK-NEXT: ld1rd { z0.d }, p0/z, [x8]
560
587
; CHECK-NEXT: ret
561
588
ret <vscale x 2 x double > splat(double 3 .33 )
0 commit comments