Skip to content

Commit 4c72845

Browse files
committed
update test to cover all cases
1 parent 56662cd commit 4c72845

File tree

1 file changed

+73
-0
lines changed

1 file changed

+73
-0
lines changed

llvm/test/CodeGen/AMDGPU/fix-sgpr-copies-f16-true16.mir

Lines changed: 73 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -74,6 +74,23 @@ body: |
7474
%3:sreg_32 = S_XOR_B32 %2:sreg_32, %1:sreg_32, implicit-def $scc
7575
...
7676

77+
---
78+
name: salu16_usedby_valu32
79+
body: |
80+
bb.0:
81+
; GCN-LABEL: name: salu16_usedby_valu32
82+
; GCN: [[DEF:%[0-9]+]]:vgpr_32 = IMPLICIT_DEF
83+
; GCN-NEXT: [[DEF1:%[0-9]+]]:sreg_32 = IMPLICIT_DEF
84+
; 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
85+
; GCN-NEXT: [[DEF2:%[0-9]+]]:vgpr_16 = IMPLICIT_DEF
86+
; GCN-NEXT: [[REG_SEQUENCE:%[0-9]+]]:vgpr_32 = REG_SEQUENCE [[V_TRUNC_F16_t16_e64_]], %subreg.lo16, [[DEF2]], %subreg.hi16
87+
; GCN-NEXT: [[V_XOR_B32_e64_:%[0-9]+]]:vgpr_32 = V_XOR_B32_e64 [[REG_SEQUENCE]], [[DEF]], implicit-def $scc, implicit $exec
88+
%0:vgpr_32 = IMPLICIT_DEF
89+
%1:sreg_32 = COPY %0:vgpr_32
90+
%2:sreg_32 = S_TRUNC_F16 %1:sreg_32, implicit $mode
91+
%3:vgpr_32 = V_XOR_B32_e64 %2:sreg_32, %1:sreg_32, implicit-def $scc, implicit $exec
92+
...
93+
7794
---
7895
name: salu32_usedby_salu16
7996
body: |
@@ -89,6 +106,62 @@ body: |
89106
%3:sreg_32 = S_TRUNC_F16 %2:sreg_32, implicit $mode
90107
...
91108

109+
---
110+
name: salu32_usedby_valu16
111+
body: |
112+
bb.0:
113+
; GCN-LABEL: name: salu32_usedby_valu16
114+
; GCN: [[DEF:%[0-9]+]]:vgpr_32 = IMPLICIT_DEF
115+
; GCN-NEXT: [[DEF1:%[0-9]+]]:sreg_32 = IMPLICIT_DEF
116+
; GCN-NEXT: [[V_XOR_B32_e64_:%[0-9]+]]:vgpr_32 = V_XOR_B32_e64 [[DEF]], [[DEF]], implicit $exec
117+
; 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
118+
%0:vgpr_32 = IMPLICIT_DEF
119+
%1:sreg_32 = COPY %0:vgpr_32
120+
%2:sreg_32 = S_XOR_B32 %1:sreg_32, %1:sreg_32, implicit-def $scc
121+
%3:vgpr_16 = V_TRUNC_F16_t16_e64 0, %2:sreg_32, 0, 0, 0, implicit $mode, implicit $exec
122+
...
123+
124+
---
125+
name: copy_vgpr16_sreg32_usedby_salu16
126+
body: |
127+
bb.0:
128+
; GCN-LABEL: name: copy_vgpr16_sreg32_usedby_salu16
129+
; GCN: [[DEF:%[0-9]+]]:vgpr_16 = IMPLICIT_DEF
130+
; GCN-NEXT: [[DEF1:%[0-9]+]]:vgpr_16 = IMPLICIT_DEF
131+
; GCN-NEXT: [[REG_SEQUENCE:%[0-9]+]]:vgpr_32 = REG_SEQUENCE [[DEF]], %subreg.lo16, [[DEF1]], %subreg.hi16
132+
; GCN-NEXT: [[V_TRUNC_F16_t16_e64_:%[0-9]+]]:vgpr_16 = V_TRUNC_F16_t16_e64 0, [[REG_SEQUENCE]].lo16, 0, 0, 0, implicit $mode, implicit $exec
133+
%0:vgpr_16 = IMPLICIT_DEF
134+
%1:sreg_32 = COPY %0:vgpr_16
135+
%2:sreg_32 = S_TRUNC_F16 %1:sreg_32, implicit $mode
136+
...
137+
138+
---
139+
name: copy_vgpr16_sreg32_usedby_salu32
140+
body: |
141+
bb.0:
142+
; GCN-LABEL: name: copy_vgpr16_sreg32_usedby_salu32
143+
; GCN: [[DEF:%[0-9]+]]:vgpr_16 = IMPLICIT_DEF
144+
; GCN-NEXT: [[DEF1:%[0-9]+]]:vgpr_16 = IMPLICIT_DEF
145+
; GCN-NEXT: [[REG_SEQUENCE:%[0-9]+]]:vgpr_32 = REG_SEQUENCE [[DEF]], %subreg.lo16, [[DEF1]], %subreg.hi16
146+
; GCN-NEXT: [[V_XOR_B32_e64_:%[0-9]+]]:vgpr_32 = V_XOR_B32_e64 [[REG_SEQUENCE]], [[REG_SEQUENCE]], implicit $exec
147+
%0:vgpr_16 = IMPLICIT_DEF
148+
%1:sreg_32 = COPY %0:vgpr_16
149+
%2:sreg_32 = S_XOR_B32 %1:sreg_32, %1:sreg_32, implicit-def $scc
150+
...
151+
152+
---
153+
name: copy_vgpr32_sreg32_usedby_valu16
154+
body: |
155+
bb.0:
156+
; GCN-LABEL: name: copy_vgpr32_sreg32_usedby_valu16
157+
; GCN: [[DEF:%[0-9]+]]:vgpr_32 = IMPLICIT_DEF
158+
; GCN-NEXT: [[DEF1:%[0-9]+]]:sreg_32 = IMPLICIT_DEF
159+
; 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
160+
%0:vgpr_32 = IMPLICIT_DEF
161+
%1:sreg_32 = COPY %0:vgpr_32
162+
%2:vgpr_16 = V_TRUNC_F16_t16_e64 0, %1:sreg_32, 0, 0, 0, implicit $mode, implicit $exec
163+
...
164+
92165
---
93166
name: S_FMAC_F16
94167
body: |

0 commit comments

Comments
 (0)