@@ -57,6 +57,57 @@ body: |
5757 %4:vgpr_16 = V_CVT_F16_U16_t16_e64 0, %3:sreg_32, 0, 0, 0, implicit $mode, implicit $exec
5858 ...
5959
60+ ---
61+ name : salu16_usedby_salu32
62+ body : |
63+ bb.0:
64+ ; GCN-LABEL: name: salu16_usedby_salu32
65+ ; GCN: [[DEF:%[0-9]+]]:vgpr_32 = IMPLICIT_DEF
66+ ; GCN-NEXT: [[DEF1:%[0-9]+]]:sreg_32 = IMPLICIT_DEF
67+ ; GCN-NEXT: [[V_TRUNC_F16_t16_e64_:%[0-9]+]]:vgpr_16 = V_TRUNC_F16_t16_e64 0, [[DEF]].lo16, 0, 0, 0, implicit $mode, implicit $exec
68+ ; GCN-NEXT: [[DEF2:%[0-9]+]]:vgpr_16 = IMPLICIT_DEF
69+ ; GCN-NEXT: [[REG_SEQUENCE:%[0-9]+]]:vgpr_32 = REG_SEQUENCE [[V_TRUNC_F16_t16_e64_]], %subreg.lo16, [[DEF2]], %subreg.hi16
70+ ; GCN-NEXT: [[V_XOR_B32_e64_:%[0-9]+]]:vgpr_32 = V_XOR_B32_e64 [[REG_SEQUENCE]], [[DEF]], implicit $exec
71+ %0:vgpr_32 = IMPLICIT_DEF
72+ %1:sreg_32 = COPY %0:vgpr_32
73+ %2:sreg_32 = S_TRUNC_F16 %1:sreg_32, implicit $mode
74+ %3:sreg_32 = S_XOR_B32 %2:sreg_32, %1:sreg_32, implicit-def $scc
75+ ...
76+
77+ ---
78+ name : salu32_usedby_salu16
79+ body : |
80+ bb.0:
81+ ; GCN-LABEL: name: salu32_usedby_salu16
82+ ; GCN: [[DEF:%[0-9]+]]:vgpr_32 = IMPLICIT_DEF
83+ ; GCN-NEXT: [[DEF1:%[0-9]+]]:sreg_32 = IMPLICIT_DEF
84+ ; GCN-NEXT: [[V_XOR_B32_e64_:%[0-9]+]]:vgpr_32 = V_XOR_B32_e64 [[DEF]], [[DEF]], implicit $exec
85+ ; GCN-NEXT: [[V_TRUNC_F16_t16_e64_:%[0-9]+]]:vgpr_16 = V_TRUNC_F16_t16_e64 0, [[V_XOR_B32_e64_]].lo16, 0, 0, 0, implicit $mode, implicit $exec
86+ %0:vgpr_32 = IMPLICIT_DEF
87+ %1:sreg_32 = COPY %0:vgpr_32
88+ %2:sreg_32 = S_XOR_B32 %1:sreg_32, %1:sreg_32, implicit-def $scc
89+ %3:sreg_32 = S_TRUNC_F16 %2:sreg_32, implicit $mode
90+ ...
91+
92+ ---
93+ name : S_FMAC_F16
94+ body : |
95+ bb.0:
96+ ; GCN-LABEL: name: S_FMAC_F16
97+ ; GCN: [[DEF:%[0-9]+]]:vgpr_16 = IMPLICIT_DEF
98+ ; GCN-NEXT: [[DEF1:%[0-9]+]]:sgpr_lo16 = IMPLICIT_DEF
99+ ; GCN-NEXT: [[DEF2:%[0-9]+]]:vgpr_16 = IMPLICIT_DEF
100+ ; GCN-NEXT: [[REG_SEQUENCE:%[0-9]+]]:vgpr_32 = REG_SEQUENCE [[DEF]], %subreg.lo16, [[DEF2]], %subreg.hi16
101+ ; GCN-NEXT: [[DEF3:%[0-9]+]]:vgpr_16 = IMPLICIT_DEF
102+ ; GCN-NEXT: [[REG_SEQUENCE1:%[0-9]+]]:vgpr_32 = REG_SEQUENCE [[DEF]], %subreg.lo16, [[DEF3]], %subreg.hi16
103+ ; GCN-NEXT: [[V_FMAC_F16_t16_e64_:%[0-9]+]]:vgpr_16 = V_FMAC_F16_t16_e64 0, [[REG_SEQUENCE1]].lo16, 0, [[REG_SEQUENCE1]].lo16, 0, [[REG_SEQUENCE]].lo16, 0, 0, 0, implicit $mode, implicit $exec
104+ %0:vgpr_16 = IMPLICIT_DEF
105+ %1:sgpr_lo16 = COPY %0:vgpr_16
106+ %2:sreg_32 = COPY %0:vgpr_16
107+ %3:sreg_32 = COPY %1:sgpr_lo16
108+ %4:sreg_32 = S_FMAC_F16 %3:sreg_32, %3:sreg_32, %2:sreg_32, implicit $mode
109+ ...
110+
60111---
61112name : vgpr16_to_spgr32
62113body : |
0 commit comments