@@ -57,6 +57,57 @@ body: |
57
57
%4:vgpr_16 = V_CVT_F16_U16_t16_e64 0, %3:sreg_32, 0, 0, 0, implicit $mode, implicit $exec
58
58
...
59
59
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
+
60
111
---
61
112
name : vgpr16_to_spgr32
62
113
body : |
0 commit comments