@@ -17180,11 +17180,17 @@ define bfloat @v_fabs_bf16(bfloat %a) {
17180
17180
; GFX10-NEXT: v_and_b32_e32 v0, 0x7fff, v0
17181
17181
; GFX10-NEXT: s_setpc_b64 s[30:31]
17182
17182
;
17183
- ; GFX11-LABEL: v_fabs_bf16:
17184
- ; GFX11: ; %bb.0:
17185
- ; GFX11-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
17186
- ; GFX11-NEXT: v_and_b32_e32 v0, 0x7fff, v0
17187
- ; GFX11-NEXT: s_setpc_b64 s[30:31]
17183
+ ; GFX11TRUE16-LABEL: v_fabs_bf16:
17184
+ ; GFX11TRUE16: ; %bb.0:
17185
+ ; GFX11TRUE16-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
17186
+ ; GFX11TRUE16-NEXT: v_and_b16 v0.l, 0x7fff, v0.l
17187
+ ; GFX11TRUE16-NEXT: s_setpc_b64 s[30:31]
17188
+ ;
17189
+ ; GFX11FAKE16-LABEL: v_fabs_bf16:
17190
+ ; GFX11FAKE16: ; %bb.0:
17191
+ ; GFX11FAKE16-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
17192
+ ; GFX11FAKE16-NEXT: v_and_b32_e32 v0, 0x7fff, v0
17193
+ ; GFX11FAKE16-NEXT: s_setpc_b64 s[30:31]
17188
17194
%op = call bfloat @llvm.fabs.bf16(bfloat %a)
17189
17195
ret bfloat %op
17190
17196
}
@@ -17266,11 +17272,17 @@ define bfloat @v_fneg_bf16(bfloat %a) {
17266
17272
; GFX10-NEXT: v_xor_b32_e32 v0, 0x8000, v0
17267
17273
; GFX10-NEXT: s_setpc_b64 s[30:31]
17268
17274
;
17269
- ; GFX11-LABEL: v_fneg_bf16:
17270
- ; GFX11: ; %bb.0:
17271
- ; GFX11-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
17272
- ; GFX11-NEXT: v_xor_b32_e32 v0, 0x8000, v0
17273
- ; GFX11-NEXT: s_setpc_b64 s[30:31]
17275
+ ; GFX11TRUE16-LABEL: v_fneg_bf16:
17276
+ ; GFX11TRUE16: ; %bb.0:
17277
+ ; GFX11TRUE16-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
17278
+ ; GFX11TRUE16-NEXT: v_xor_b16 v0.l, 0x8000, v0.l
17279
+ ; GFX11TRUE16-NEXT: s_setpc_b64 s[30:31]
17280
+ ;
17281
+ ; GFX11FAKE16-LABEL: v_fneg_bf16:
17282
+ ; GFX11FAKE16: ; %bb.0:
17283
+ ; GFX11FAKE16-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
17284
+ ; GFX11FAKE16-NEXT: v_xor_b32_e32 v0, 0x8000, v0
17285
+ ; GFX11FAKE16-NEXT: s_setpc_b64 s[30:31]
17274
17286
%op = fneg bfloat %a
17275
17287
ret bfloat %op
17276
17288
}
@@ -17365,11 +17377,17 @@ define bfloat @v_fneg_fabs_bf16(bfloat %a) {
17365
17377
; GFX10-NEXT: v_or_b32_e32 v0, 0x8000, v0
17366
17378
; GFX10-NEXT: s_setpc_b64 s[30:31]
17367
17379
;
17368
- ; GFX11-LABEL: v_fneg_fabs_bf16:
17369
- ; GFX11: ; %bb.0:
17370
- ; GFX11-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
17371
- ; GFX11-NEXT: v_or_b32_e32 v0, 0x8000, v0
17372
- ; GFX11-NEXT: s_setpc_b64 s[30:31]
17380
+ ; GFX11TRUE16-LABEL: v_fneg_fabs_bf16:
17381
+ ; GFX11TRUE16: ; %bb.0:
17382
+ ; GFX11TRUE16-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
17383
+ ; GFX11TRUE16-NEXT: v_or_b16 v0.l, 0x8000, v0.l
17384
+ ; GFX11TRUE16-NEXT: s_setpc_b64 s[30:31]
17385
+ ;
17386
+ ; GFX11FAKE16-LABEL: v_fneg_fabs_bf16:
17387
+ ; GFX11FAKE16: ; %bb.0:
17388
+ ; GFX11FAKE16-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
17389
+ ; GFX11FAKE16-NEXT: v_or_b32_e32 v0, 0x8000, v0
17390
+ ; GFX11FAKE16-NEXT: s_setpc_b64 s[30:31]
17373
17391
%fabs = call bfloat @llvm.fabs.bf16(bfloat %a)
17374
17392
%op = fneg bfloat %fabs
17375
17393
ret bfloat %op
@@ -34518,15 +34536,25 @@ define bfloat @v_select_fneg_lhs_bf16(i1 %cond, bfloat %a, bfloat %b) {
34518
34536
; GFX10-NEXT: v_cndmask_b32_e32 v0, v2, v1, vcc_lo
34519
34537
; GFX10-NEXT: s_setpc_b64 s[30:31]
34520
34538
;
34521
- ; GFX11-LABEL: v_select_fneg_lhs_bf16:
34522
- ; GFX11: ; %bb.0:
34523
- ; GFX11-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
34524
- ; GFX11-NEXT: v_and_b32_e32 v0, 1, v0
34525
- ; GFX11-NEXT: v_xor_b32_e32 v1, 0x8000, v1
34526
- ; GFX11-NEXT: s_delay_alu instid0(VALU_DEP_2) | instskip(NEXT) | instid1(VALU_DEP_2)
34527
- ; GFX11-NEXT: v_cmp_eq_u32_e32 vcc_lo, 1, v0
34528
- ; GFX11-NEXT: v_cndmask_b32_e32 v0, v2, v1, vcc_lo
34529
- ; GFX11-NEXT: s_setpc_b64 s[30:31]
34539
+ ; GFX11TRUE16-LABEL: v_select_fneg_lhs_bf16:
34540
+ ; GFX11TRUE16: ; %bb.0:
34541
+ ; GFX11TRUE16-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
34542
+ ; GFX11TRUE16-NEXT: v_and_b32_e32 v0, 1, v0
34543
+ ; GFX11TRUE16-NEXT: v_xor_b16 v1.l, 0x8000, v1.l
34544
+ ; GFX11TRUE16-NEXT: s_delay_alu instid0(VALU_DEP_2) | instskip(NEXT) | instid1(VALU_DEP_2)
34545
+ ; GFX11TRUE16-NEXT: v_cmp_eq_u32_e32 vcc_lo, 1, v0
34546
+ ; GFX11TRUE16-NEXT: v_cndmask_b32_e32 v0, v2, v1, vcc_lo
34547
+ ; GFX11TRUE16-NEXT: s_setpc_b64 s[30:31]
34548
+ ;
34549
+ ; GFX11FAKE16-LABEL: v_select_fneg_lhs_bf16:
34550
+ ; GFX11FAKE16: ; %bb.0:
34551
+ ; GFX11FAKE16-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
34552
+ ; GFX11FAKE16-NEXT: v_and_b32_e32 v0, 1, v0
34553
+ ; GFX11FAKE16-NEXT: v_xor_b32_e32 v1, 0x8000, v1
34554
+ ; GFX11FAKE16-NEXT: s_delay_alu instid0(VALU_DEP_2) | instskip(NEXT) | instid1(VALU_DEP_2)
34555
+ ; GFX11FAKE16-NEXT: v_cmp_eq_u32_e32 vcc_lo, 1, v0
34556
+ ; GFX11FAKE16-NEXT: v_cndmask_b32_e32 v0, v2, v1, vcc_lo
34557
+ ; GFX11FAKE16-NEXT: s_setpc_b64 s[30:31]
34530
34558
%neg.a = fneg bfloat %a
34531
34559
%op = select i1 %cond, bfloat %neg.a, bfloat %b
34532
34560
ret bfloat %op
@@ -34582,15 +34610,25 @@ define bfloat @v_select_fneg_rhs_bf16(i1 %cond, bfloat %a, bfloat %b) {
34582
34610
; GFX10-NEXT: v_cndmask_b32_e32 v0, v2, v1, vcc_lo
34583
34611
; GFX10-NEXT: s_setpc_b64 s[30:31]
34584
34612
;
34585
- ; GFX11-LABEL: v_select_fneg_rhs_bf16:
34586
- ; GFX11: ; %bb.0:
34587
- ; GFX11-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
34588
- ; GFX11-NEXT: v_and_b32_e32 v0, 1, v0
34589
- ; GFX11-NEXT: v_xor_b32_e32 v2, 0x8000, v2
34590
- ; GFX11-NEXT: s_delay_alu instid0(VALU_DEP_2) | instskip(NEXT) | instid1(VALU_DEP_2)
34591
- ; GFX11-NEXT: v_cmp_eq_u32_e32 vcc_lo, 1, v0
34592
- ; GFX11-NEXT: v_cndmask_b32_e32 v0, v2, v1, vcc_lo
34593
- ; GFX11-NEXT: s_setpc_b64 s[30:31]
34613
+ ; GFX11TRUE16-LABEL: v_select_fneg_rhs_bf16:
34614
+ ; GFX11TRUE16: ; %bb.0:
34615
+ ; GFX11TRUE16-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
34616
+ ; GFX11TRUE16-NEXT: v_and_b32_e32 v0, 1, v0
34617
+ ; GFX11TRUE16-NEXT: v_xor_b16 v2.l, 0x8000, v2.l
34618
+ ; GFX11TRUE16-NEXT: s_delay_alu instid0(VALU_DEP_2) | instskip(NEXT) | instid1(VALU_DEP_2)
34619
+ ; GFX11TRUE16-NEXT: v_cmp_eq_u32_e32 vcc_lo, 1, v0
34620
+ ; GFX11TRUE16-NEXT: v_cndmask_b32_e32 v0, v2, v1, vcc_lo
34621
+ ; GFX11TRUE16-NEXT: s_setpc_b64 s[30:31]
34622
+ ;
34623
+ ; GFX11FAKE16-LABEL: v_select_fneg_rhs_bf16:
34624
+ ; GFX11FAKE16: ; %bb.0:
34625
+ ; GFX11FAKE16-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
34626
+ ; GFX11FAKE16-NEXT: v_and_b32_e32 v0, 1, v0
34627
+ ; GFX11FAKE16-NEXT: v_xor_b32_e32 v2, 0x8000, v2
34628
+ ; GFX11FAKE16-NEXT: s_delay_alu instid0(VALU_DEP_2) | instskip(NEXT) | instid1(VALU_DEP_2)
34629
+ ; GFX11FAKE16-NEXT: v_cmp_eq_u32_e32 vcc_lo, 1, v0
34630
+ ; GFX11FAKE16-NEXT: v_cndmask_b32_e32 v0, v2, v1, vcc_lo
34631
+ ; GFX11FAKE16-NEXT: s_setpc_b64 s[30:31]
34594
34632
%neg.b = fneg bfloat %b
34595
34633
%op = select i1 %cond, bfloat %a, bfloat %neg.b
34596
34634
ret bfloat %op
0 commit comments