@@ -14,6 +14,7 @@ define inreg half @bitcast_i16_to_f16_inreg(i16 inreg %a, i32 inreg %b) {
1414; GCN-NEXT: s_cbranch_scc0 .LBB0_4
1515; GCN-NEXT: ; %bb.1: ; %cmp.false
1616; GCN-NEXT: v_cvt_f32_f16_e32 v0, s6
17+ ; GCN-NEXT: s_mov_b64 vcc, exec
1718; GCN-NEXT: s_cbranch_execnz .LBB0_3
1819; GCN-NEXT: .LBB0_2: ; %cmp.true
1920; GCN-NEXT: s_add_i32 s6, s6, 3
@@ -22,6 +23,7 @@ define inreg half @bitcast_i16_to_f16_inreg(i16 inreg %a, i32 inreg %b) {
2223; GCN-NEXT: s_setpc_b64 s[30:31]
2324; GCN-NEXT: .LBB0_4:
2425; GCN-NEXT: ; implicit-def: $vgpr0
26+ ; GCN-NEXT: s_mov_b64 vcc, 0
2527; GCN-NEXT: s_branch .LBB0_2
2628;
2729; VI-LABEL: bitcast_i16_to_f16_inreg:
@@ -93,11 +95,12 @@ define inreg i16 @bitcast_f16_to_i16_inreg(half inreg %a, i32 inreg %b) {
9395; GCN-LABEL: bitcast_f16_to_i16_inreg:
9496; GCN: ; %bb.0:
9597; GCN-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
96- ; GCN-NEXT: v_cvt_f16_f32_e32 v1, s16
9798; GCN-NEXT: s_cmp_lg_u32 s17, 0
99+ ; GCN-NEXT: v_cvt_f16_f32_e32 v1, s16
98100; GCN-NEXT: s_cbranch_scc0 .LBB1_4
99101; GCN-NEXT: ; %bb.1: ; %cmp.false
100102; GCN-NEXT: v_mov_b32_e32 v0, v1
103+ ; GCN-NEXT: s_mov_b64 vcc, exec
101104; GCN-NEXT: s_cbranch_execnz .LBB1_3
102105; GCN-NEXT: .LBB1_2: ; %cmp.true
103106; GCN-NEXT: v_cvt_f32_f16_e32 v0, v1
@@ -107,6 +110,7 @@ define inreg i16 @bitcast_f16_to_i16_inreg(half inreg %a, i32 inreg %b) {
107110; GCN-NEXT: s_setpc_b64 s[30:31]
108111; GCN-NEXT: .LBB1_4:
109112; GCN-NEXT: v_mov_b32_e32 v0, 0
113+ ; GCN-NEXT: s_mov_b64 vcc, 0
110114; GCN-NEXT: s_branch .LBB1_2
111115;
112116; VI-LABEL: bitcast_f16_to_i16_inreg:
@@ -186,6 +190,7 @@ define inreg bfloat @bitcast_i16_to_bf16_inreg(i16 inreg %a, i32 inreg %b) {
186190; GCN-NEXT: s_cbranch_scc0 .LBB2_4
187191; GCN-NEXT: ; %bb.1: ; %cmp.false
188192; GCN-NEXT: s_lshl_b32 s7, s6, 16
193+ ; GCN-NEXT: s_mov_b64 vcc, exec
189194; GCN-NEXT: s_cbranch_execnz .LBB2_3
190195; GCN-NEXT: .LBB2_2: ; %cmp.true
191196; GCN-NEXT: s_lshl_b32 s4, s6, 16
@@ -195,6 +200,7 @@ define inreg bfloat @bitcast_i16_to_bf16_inreg(i16 inreg %a, i32 inreg %b) {
195200; GCN-NEXT: s_setpc_b64 s[30:31]
196201; GCN-NEXT: .LBB2_4:
197202; GCN-NEXT: ; implicit-def: $sgpr7
203+ ; GCN-NEXT: s_mov_b64 vcc, 0
198204; GCN-NEXT: s_branch .LBB2_2
199205;
200206; VI-LABEL: bitcast_i16_to_bf16_inreg:
@@ -271,6 +277,7 @@ define inreg i16 @bitcast_bf16_to_i16_inreg(bfloat inreg %a, i32 inreg %b) {
271277; GCN-NEXT: s_cbranch_scc0 .LBB3_4
272278; GCN-NEXT: ; %bb.1: ; %cmp.false
273279; GCN-NEXT: v_lshrrev_b32_e32 v0, 16, v1
280+ ; GCN-NEXT: s_mov_b64 vcc, exec
274281; GCN-NEXT: s_cbranch_execnz .LBB3_3
275282; GCN-NEXT: .LBB3_2: ; %cmp.true
276283; GCN-NEXT: v_and_b32_e32 v0, 0xffff0000, v1
@@ -280,6 +287,7 @@ define inreg i16 @bitcast_bf16_to_i16_inreg(bfloat inreg %a, i32 inreg %b) {
280287; GCN-NEXT: s_setpc_b64 s[30:31]
281288; GCN-NEXT: .LBB3_4:
282289; GCN-NEXT: v_mov_b32_e32 v0, 0
290+ ; GCN-NEXT: s_mov_b64 vcc, 0
283291; GCN-NEXT: s_branch .LBB3_2
284292;
285293; VI-LABEL: bitcast_bf16_to_i16_inreg:
@@ -381,11 +389,12 @@ define inreg bfloat @bitcast_f16_to_bf16_inreg(half inreg %a, i32 inreg %b) {
381389; GCN-LABEL: bitcast_f16_to_bf16_inreg:
382390; GCN: ; %bb.0:
383391; GCN-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
384- ; GCN-NEXT: v_cvt_f16_f32_e32 v1, s16
385392; GCN-NEXT: s_cmp_lg_u32 s17, 0
393+ ; GCN-NEXT: v_cvt_f16_f32_e32 v1, s16
386394; GCN-NEXT: s_cbranch_scc0 .LBB4_4
387395; GCN-NEXT: ; %bb.1: ; %cmp.false
388396; GCN-NEXT: v_lshlrev_b32_e32 v0, 16, v1
397+ ; GCN-NEXT: s_mov_b64 vcc, exec
389398; GCN-NEXT: s_cbranch_execnz .LBB4_3
390399; GCN-NEXT: .LBB4_2: ; %cmp.true
391400; GCN-NEXT: v_cvt_f32_f16_e32 v0, v1
@@ -396,6 +405,7 @@ define inreg bfloat @bitcast_f16_to_bf16_inreg(half inreg %a, i32 inreg %b) {
396405; GCN-NEXT: s_setpc_b64 s[30:31]
397406; GCN-NEXT: .LBB4_4:
398407; GCN-NEXT: ; implicit-def: $vgpr0
408+ ; GCN-NEXT: s_mov_b64 vcc, 0
399409; GCN-NEXT: s_branch .LBB4_2
400410;
401411; VI-LABEL: bitcast_f16_to_bf16_inreg:
@@ -476,6 +486,7 @@ define inreg half @bitcast_bf16_to_f16_inreg(bfloat inreg %a, i32 inreg %b) {
476486; GCN-NEXT: ; %bb.1: ; %cmp.false
477487; GCN-NEXT: v_lshrrev_b32_e32 v0, 16, v1
478488; GCN-NEXT: v_cvt_f32_f16_e32 v0, v0
489+ ; GCN-NEXT: s_mov_b64 vcc, exec
479490; GCN-NEXT: s_cbranch_execnz .LBB5_3
480491; GCN-NEXT: .LBB5_2: ; %cmp.true
481492; GCN-NEXT: v_and_b32_e32 v0, 0xffff0000, v1
@@ -486,6 +497,7 @@ define inreg half @bitcast_bf16_to_f16_inreg(bfloat inreg %a, i32 inreg %b) {
486497; GCN-NEXT: s_setpc_b64 s[30:31]
487498; GCN-NEXT: .LBB5_4:
488499; GCN-NEXT: ; implicit-def: $vgpr0
500+ ; GCN-NEXT: s_mov_b64 vcc, 0
489501; GCN-NEXT: s_branch .LBB5_2
490502;
491503; VI-LABEL: bitcast_bf16_to_f16_inreg:
0 commit comments