Skip to content

Commit 8e24fdd

Browse files
committed
address comment
1 parent 9ced067 commit 8e24fdd

File tree

2 files changed

+34
-49
lines changed

2 files changed

+34
-49
lines changed

llvm/lib/Target/AMDGPU/AMDGPUISelDAGToDAG.cpp

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3652,7 +3652,8 @@ bool AMDGPUDAGToDAGISel::SelectVOP3PMadMixModsImpl(SDValue In, SDValue &Src,
36523652
}
36533653

36543654
// Prevent unnecessary subreg COPY to VGPR_16
3655-
if (Subtarget->useRealTrue16Insts() && Src.getOpcode() == ISD::TRUNCATE) {
3655+
if (Src.getOpcode() == ISD::TRUNCATE &&
3656+
Src.getOperand(0).getValueType().getSizeInBits() == 32) {
36563657
Src = Src.getOperand(0);
36573658
}
36583659
return true;

llvm/test/CodeGen/AMDGPU/mad-mix.ll

Lines changed: 32 additions & 48 deletions
Original file line numberDiff line numberDiff line change
@@ -207,21 +207,21 @@ define <2 x float> @v_mad_mix_v2f32(<2 x half> %src0, <2 x half> %src1, <2 x hal
207207
; GFX1100-NEXT: v_mov_b32_e32 v0, v3
208208
; GFX1100-NEXT: s_setpc_b64 s[30:31]
209209
;
210-
; SDAG-GFX900-LABEL: v_mad_mix_v2f32:
211-
; SDAG-GFX900: ; %bb.0:
212-
; SDAG-GFX900-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
213-
; SDAG-GFX900-NEXT: v_mad_mix_f32 v3, v0, v1, v2 op_sel:[1,1,1] op_sel_hi:[1,1,1]
214-
; SDAG-GFX900-NEXT: v_mad_mix_f32 v0, v0, v1, v2 op_sel_hi:[1,1,1]
215-
; SDAG-GFX900-NEXT: v_mov_b32_e32 v1, v3
216-
; SDAG-GFX900-NEXT: s_setpc_b64 s[30:31]
210+
; GFX900-LABEL: v_mad_mix_v2f32:
211+
; GFX900: ; %bb.0:
212+
; GFX900-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
213+
; GFX900-NEXT: v_mad_mix_f32 v3, v0, v1, v2 op_sel_hi:[1,1,1]
214+
; GFX900-NEXT: v_mad_mix_f32 v1, v0, v1, v2 op_sel:[1,1,1] op_sel_hi:[1,1,1]
215+
; GFX900-NEXT: v_mov_b32_e32 v0, v3
216+
; GFX900-NEXT: s_setpc_b64 s[30:31]
217217
;
218-
; SDAG-GFX906-LABEL: v_mad_mix_v2f32:
219-
; SDAG-GFX906: ; %bb.0:
220-
; SDAG-GFX906-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
221-
; SDAG-GFX906-NEXT: v_fma_mix_f32 v3, v0, v1, v2 op_sel:[1,1,1] op_sel_hi:[1,1,1]
222-
; SDAG-GFX906-NEXT: v_fma_mix_f32 v0, v0, v1, v2 op_sel_hi:[1,1,1]
223-
; SDAG-GFX906-NEXT: v_mov_b32_e32 v1, v3
224-
; SDAG-GFX906-NEXT: s_setpc_b64 s[30:31]
218+
; GFX906-LABEL: v_mad_mix_v2f32:
219+
; GFX906: ; %bb.0:
220+
; GFX906-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
221+
; GFX906-NEXT: v_fma_mix_f32 v3, v0, v1, v2 op_sel_hi:[1,1,1]
222+
; GFX906-NEXT: v_fma_mix_f32 v1, v0, v1, v2 op_sel:[1,1,1] op_sel_hi:[1,1,1]
223+
; GFX906-NEXT: v_mov_b32_e32 v0, v3
224+
; GFX906-NEXT: s_setpc_b64 s[30:31]
225225
;
226226
; SDAG-GFX9GEN-LABEL: v_mad_mix_v2f32:
227227
; SDAG-GFX9GEN: ; %bb.0:
@@ -269,22 +269,6 @@ define <2 x float> @v_mad_mix_v2f32(<2 x half> %src0, <2 x half> %src1, <2 x hal
269269
; SDAG-CI-NEXT: v_mac_f32_e32 v0, v4, v2
270270
; SDAG-CI-NEXT: s_setpc_b64 s[30:31]
271271
;
272-
; GISEL-GFX900-LABEL: v_mad_mix_v2f32:
273-
; GISEL-GFX900: ; %bb.0:
274-
; GISEL-GFX900-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
275-
; GISEL-GFX900-NEXT: v_mad_mix_f32 v3, v0, v1, v2 op_sel_hi:[1,1,1]
276-
; GISEL-GFX900-NEXT: v_mad_mix_f32 v1, v0, v1, v2 op_sel:[1,1,1] op_sel_hi:[1,1,1]
277-
; GISEL-GFX900-NEXT: v_mov_b32_e32 v0, v3
278-
; GISEL-GFX900-NEXT: s_setpc_b64 s[30:31]
279-
;
280-
; GISEL-GFX906-LABEL: v_mad_mix_v2f32:
281-
; GISEL-GFX906: ; %bb.0:
282-
; GISEL-GFX906-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
283-
; GISEL-GFX906-NEXT: v_fma_mix_f32 v3, v0, v1, v2 op_sel_hi:[1,1,1]
284-
; GISEL-GFX906-NEXT: v_fma_mix_f32 v1, v0, v1, v2 op_sel:[1,1,1] op_sel_hi:[1,1,1]
285-
; GISEL-GFX906-NEXT: v_mov_b32_e32 v0, v3
286-
; GISEL-GFX906-NEXT: s_setpc_b64 s[30:31]
287-
;
288272
; GISEL-GFX9GEN-LABEL: v_mad_mix_v2f32:
289273
; GISEL-GFX9GEN: ; %bb.0:
290274
; GISEL-GFX9GEN-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
@@ -1229,18 +1213,18 @@ define <2 x float> @v_mad_mix_v2f32_f32imm1(<2 x half> %src0, <2 x half> %src1)
12291213
; SDAG-GFX900: ; %bb.0:
12301214
; SDAG-GFX900-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
12311215
; SDAG-GFX900-NEXT: s_mov_b32 s4, 1.0
1232-
; SDAG-GFX900-NEXT: v_mad_mix_f32 v2, v0, v1, s4 op_sel:[1,1,0] op_sel_hi:[1,1,0]
1233-
; SDAG-GFX900-NEXT: v_mad_mix_f32 v0, v0, v1, s4 op_sel_hi:[1,1,0]
1234-
; SDAG-GFX900-NEXT: v_mov_b32_e32 v1, v2
1216+
; SDAG-GFX900-NEXT: v_mad_mix_f32 v2, v0, v1, s4 op_sel_hi:[1,1,0]
1217+
; SDAG-GFX900-NEXT: v_mad_mix_f32 v1, v0, v1, s4 op_sel:[1,1,0] op_sel_hi:[1,1,0]
1218+
; SDAG-GFX900-NEXT: v_mov_b32_e32 v0, v2
12351219
; SDAG-GFX900-NEXT: s_setpc_b64 s[30:31]
12361220
;
12371221
; SDAG-GFX906-LABEL: v_mad_mix_v2f32_f32imm1:
12381222
; SDAG-GFX906: ; %bb.0:
12391223
; SDAG-GFX906-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
12401224
; SDAG-GFX906-NEXT: s_mov_b32 s4, 1.0
1241-
; SDAG-GFX906-NEXT: v_fma_mix_f32 v2, v0, v1, s4 op_sel:[1,1,0] op_sel_hi:[1,1,0]
1242-
; SDAG-GFX906-NEXT: v_fma_mix_f32 v0, v0, v1, s4 op_sel_hi:[1,1,0]
1243-
; SDAG-GFX906-NEXT: v_mov_b32_e32 v1, v2
1225+
; SDAG-GFX906-NEXT: v_fma_mix_f32 v2, v0, v1, s4 op_sel_hi:[1,1,0]
1226+
; SDAG-GFX906-NEXT: v_fma_mix_f32 v1, v0, v1, s4 op_sel:[1,1,0] op_sel_hi:[1,1,0]
1227+
; SDAG-GFX906-NEXT: v_mov_b32_e32 v0, v2
12441228
; SDAG-GFX906-NEXT: s_setpc_b64 s[30:31]
12451229
;
12461230
; SDAG-GFX9GEN-LABEL: v_mad_mix_v2f32_f32imm1:
@@ -1361,18 +1345,18 @@ define <2 x float> @v_mad_mix_v2f32_cvtf16imminv2pi(<2 x half> %src0, <2 x half>
13611345
; SDAG-GFX900: ; %bb.0:
13621346
; SDAG-GFX900-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
13631347
; SDAG-GFX900-NEXT: s_mov_b32 s4, 0x3e230000
1364-
; SDAG-GFX900-NEXT: v_mad_mix_f32 v2, v0, v1, s4 op_sel:[1,1,0] op_sel_hi:[1,1,0]
1365-
; SDAG-GFX900-NEXT: v_mad_mix_f32 v0, v0, v1, s4 op_sel_hi:[1,1,0]
1366-
; SDAG-GFX900-NEXT: v_mov_b32_e32 v1, v2
1348+
; SDAG-GFX900-NEXT: v_mad_mix_f32 v2, v0, v1, s4 op_sel_hi:[1,1,0]
1349+
; SDAG-GFX900-NEXT: v_mad_mix_f32 v1, v0, v1, s4 op_sel:[1,1,0] op_sel_hi:[1,1,0]
1350+
; SDAG-GFX900-NEXT: v_mov_b32_e32 v0, v2
13671351
; SDAG-GFX900-NEXT: s_setpc_b64 s[30:31]
13681352
;
13691353
; SDAG-GFX906-LABEL: v_mad_mix_v2f32_cvtf16imminv2pi:
13701354
; SDAG-GFX906: ; %bb.0:
13711355
; SDAG-GFX906-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
13721356
; SDAG-GFX906-NEXT: s_mov_b32 s4, 0x3e230000
1373-
; SDAG-GFX906-NEXT: v_fma_mix_f32 v2, v0, v1, s4 op_sel:[1,1,0] op_sel_hi:[1,1,0]
1374-
; SDAG-GFX906-NEXT: v_fma_mix_f32 v0, v0, v1, s4 op_sel_hi:[1,1,0]
1375-
; SDAG-GFX906-NEXT: v_mov_b32_e32 v1, v2
1357+
; SDAG-GFX906-NEXT: v_fma_mix_f32 v2, v0, v1, s4 op_sel_hi:[1,1,0]
1358+
; SDAG-GFX906-NEXT: v_fma_mix_f32 v1, v0, v1, s4 op_sel:[1,1,0] op_sel_hi:[1,1,0]
1359+
; SDAG-GFX906-NEXT: v_mov_b32_e32 v0, v2
13761360
; SDAG-GFX906-NEXT: s_setpc_b64 s[30:31]
13771361
;
13781362
; SDAG-GFX9GEN-LABEL: v_mad_mix_v2f32_cvtf16imminv2pi:
@@ -1500,18 +1484,18 @@ define <2 x float> @v_mad_mix_v2f32_f32imminv2pi(<2 x half> %src0, <2 x half> %s
15001484
; SDAG-GFX900: ; %bb.0:
15011485
; SDAG-GFX900-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
15021486
; SDAG-GFX900-NEXT: s_mov_b32 s4, 0.15915494
1503-
; SDAG-GFX900-NEXT: v_mad_mix_f32 v2, v0, v1, s4 op_sel:[1,1,0] op_sel_hi:[1,1,0]
1504-
; SDAG-GFX900-NEXT: v_mad_mix_f32 v0, v0, v1, s4 op_sel_hi:[1,1,0]
1505-
; SDAG-GFX900-NEXT: v_mov_b32_e32 v1, v2
1487+
; SDAG-GFX900-NEXT: v_mad_mix_f32 v2, v0, v1, s4 op_sel_hi:[1,1,0]
1488+
; SDAG-GFX900-NEXT: v_mad_mix_f32 v1, v0, v1, s4 op_sel:[1,1,0] op_sel_hi:[1,1,0]
1489+
; SDAG-GFX900-NEXT: v_mov_b32_e32 v0, v2
15061490
; SDAG-GFX900-NEXT: s_setpc_b64 s[30:31]
15071491
;
15081492
; SDAG-GFX906-LABEL: v_mad_mix_v2f32_f32imminv2pi:
15091493
; SDAG-GFX906: ; %bb.0:
15101494
; SDAG-GFX906-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
15111495
; SDAG-GFX906-NEXT: s_mov_b32 s4, 0.15915494
1512-
; SDAG-GFX906-NEXT: v_fma_mix_f32 v2, v0, v1, s4 op_sel:[1,1,0] op_sel_hi:[1,1,0]
1513-
; SDAG-GFX906-NEXT: v_fma_mix_f32 v0, v0, v1, s4 op_sel_hi:[1,1,0]
1514-
; SDAG-GFX906-NEXT: v_mov_b32_e32 v1, v2
1496+
; SDAG-GFX906-NEXT: v_fma_mix_f32 v2, v0, v1, s4 op_sel_hi:[1,1,0]
1497+
; SDAG-GFX906-NEXT: v_fma_mix_f32 v1, v0, v1, s4 op_sel:[1,1,0] op_sel_hi:[1,1,0]
1498+
; SDAG-GFX906-NEXT: v_mov_b32_e32 v0, v2
15151499
; SDAG-GFX906-NEXT: s_setpc_b64 s[30:31]
15161500
;
15171501
; SDAG-GFX9GEN-LABEL: v_mad_mix_v2f32_f32imminv2pi:

0 commit comments

Comments
 (0)