1 # RUN: llc -march=amdgcn -mcpu=fiji -verify-machineinstrs -run-pass post-RA-hazard-rec -o - %s | FileCheck -check-prefix=GCN %s
3 # GCN-LABEL: name: vmem_vcc_fallthrough
10 # GCN-NEXT: BUFFER_LOAD_DWORD_OFFEN
12 name: vmem_vcc_fallthrough
17 $sgpr0_sgpr1_sgpr2_sgpr3 = IMPLICIT_DEF
19 $vgpr1 = V_ADDC_U32_e32 $vgpr0, $vgpr0, implicit-def $vcc, implicit $vcc, implicit $exec
22 $vgpr1 = BUFFER_LOAD_DWORD_OFFEN $vgpr0, $sgpr0_sgpr1_sgpr2_sgpr3, $vcc_lo, 0, 0, 0, 0, 0, implicit $exec
24 # GCN-LABEL: name: vmem_vcc_branch_to_next
30 # GCN-NEXT: BUFFER_LOAD_DWORD_OFFEN
32 name: vmem_vcc_branch_to_next
37 $sgpr0_sgpr1_sgpr2_sgpr3 = IMPLICIT_DEF
39 $vgpr1 = V_ADDC_U32_e32 $vgpr0, $vgpr0, implicit-def $vcc, implicit $vcc, implicit $exec
43 $vgpr1 = BUFFER_LOAD_DWORD_OFFEN $vgpr0, $sgpr0_sgpr1_sgpr2_sgpr3, $vcc_lo, 0, 0, 0, 0, 0, implicit $exec
45 # GCN-LABEL: name: vmem_vcc_fallthrough_no_hazard_too_far
47 # GCN-NEXT: BUFFER_LOAD_DWORD_OFFEN
49 name: vmem_vcc_fallthrough_no_hazard_too_far
54 $sgpr0_sgpr1_sgpr2_sgpr3 = IMPLICIT_DEF
56 $vgpr1 = V_ADDC_U32_e32 $vgpr0, $vgpr0, implicit-def $vcc, implicit $vcc, implicit $exec
64 $vgpr1 = BUFFER_LOAD_DWORD_OFFEN $vgpr0, $sgpr0_sgpr1_sgpr2_sgpr3, $vcc_lo, 0, 0, 0, 0, 0, implicit $exec
66 # GCN-LABEL: name: vmem_vcc_fallthrough_no_hazard_nops
68 # GCN-NEXT: BUFFER_LOAD_DWORD_OFFEN
70 name: vmem_vcc_fallthrough_no_hazard_nops
75 $sgpr0_sgpr1_sgpr2_sgpr3 = IMPLICIT_DEF
77 $vgpr1 = V_ADDC_U32_e32 $vgpr0, $vgpr0, implicit-def $vcc, implicit $vcc, implicit $exec
81 $vgpr1 = BUFFER_LOAD_DWORD_OFFEN $vgpr0, $sgpr0_sgpr1_sgpr2_sgpr3, $vcc_lo, 0, 0, 0, 0, 0, implicit $exec
83 # GCN-LABEL: name: vmem_vcc_branch_around
89 # GCN-NEXT: BUFFER_LOAD_DWORD_OFFEN
91 name: vmem_vcc_branch_around
96 $sgpr0_sgpr1_sgpr2_sgpr3 = IMPLICIT_DEF
98 $vgpr1 = V_ADDC_U32_e32 $vgpr0, $vgpr0, implicit-def $vcc, implicit $vcc, implicit $exec
110 $vgpr1 = BUFFER_LOAD_DWORD_OFFEN $vgpr0, $sgpr0_sgpr1_sgpr2_sgpr3, $vcc_lo, 0, 0, 0, 0, 0, implicit $exec
112 # GCN-LABEL: name: vmem_vcc_branch_backedge
117 # GCN-NEXT: BUFFER_LOAD_DWORD_OFFEN
119 name: vmem_vcc_branch_backedge
124 $vgpr0 = IMPLICIT_DEF
125 $sgpr0_sgpr1_sgpr2_sgpr3 = IMPLICIT_DEF
126 $vgpr1 = BUFFER_LOAD_DWORD_OFFEN $vgpr0, $sgpr0_sgpr1_sgpr2_sgpr3, $vcc_lo, 0, 0, 0, 0, 0, implicit $exec
129 $vgpr0 = IMPLICIT_DEF
130 $vgpr1 = V_ADDC_U32_e32 $vgpr0, $vgpr0, implicit-def $vcc, implicit $vcc, implicit $exec
133 # GCN-LABEL: name: vmem_vcc_min_of_two
140 # GCN-NEXT: BUFFER_LOAD_DWORD_OFFEN
142 name: vmem_vcc_min_of_two
147 $sgpr0_sgpr1_sgpr2_sgpr3 = IMPLICIT_DEF
148 $vgpr0 = IMPLICIT_DEF
149 $vgpr1 = V_ADDC_U32_e32 $vgpr0, $vgpr0, implicit-def $vcc, implicit $vcc, implicit $exec
156 $vgpr1 = V_ADDC_U32_e32 $vgpr0, $vgpr0, implicit-def $vcc, implicit $vcc, implicit $exec
159 $vgpr1 = BUFFER_LOAD_DWORD_OFFEN $vgpr0, $sgpr0_sgpr1_sgpr2_sgpr3, $vcc_lo, 0, 0, 0, 0, 0, implicit $exec
161 # GCN-LABEL: name: vmem_vcc_self_loop
166 # GCN-NEXT: BUFFER_LOAD_DWORD_OFFEN
168 name: vmem_vcc_self_loop
173 $vgpr0 = IMPLICIT_DEF
174 $sgpr0_sgpr1_sgpr2_sgpr3 = IMPLICIT_DEF
175 $vgpr1 = BUFFER_LOAD_DWORD_OFFEN $vgpr0, $sgpr0_sgpr1_sgpr2_sgpr3, $vcc_lo, 0, 0, 0, 0, 0, implicit $exec
176 $vgpr1 = V_ADDC_U32_e32 $vgpr0, $vgpr0, implicit-def $vcc, implicit $vcc, implicit $exec
179 # GCN-LABEL: name: vmem_vcc_min_of_two_self_loop1
181 # GCN: $sgpr0 = S_MOV_B32 0
186 # GCN-NEXT: BUFFER_LOAD_DWORD_OFFEN
188 name: vmem_vcc_min_of_two_self_loop1
193 $sgpr0_sgpr1_sgpr2_sgpr3 = IMPLICIT_DEF
194 $vgpr0 = IMPLICIT_DEF
195 $vgpr1 = V_ADDC_U32_e32 $vgpr0, $vgpr0, implicit-def $vcc, implicit $vcc, implicit $exec
201 $vgpr1 = BUFFER_LOAD_DWORD_OFFEN $vgpr0, $sgpr0_sgpr1_sgpr2_sgpr3, $vcc_lo, 0, 0, 0, 0, 0, implicit $exec
202 $vgpr1 = V_ADDC_U32_e32 $vgpr1, $vgpr1, implicit-def $vcc, implicit $vcc, implicit $exec
205 # GCN-LABEL: name: vmem_vcc_min_of_two_self_loop2
207 # GCN: $sgpr0 = S_MOV_B32 0
211 # GCN-NEXT: BUFFER_LOAD_DWORD_OFFEN
213 name: vmem_vcc_min_of_two_self_loop2
218 $sgpr0_sgpr1_sgpr2_sgpr3 = IMPLICIT_DEF
219 $vgpr0 = IMPLICIT_DEF
220 $vgpr1 = V_ADDC_U32_e32 $vgpr0, $vgpr0, implicit-def $vcc, implicit $vcc, implicit $exec
227 $vgpr1 = BUFFER_LOAD_DWORD_OFFEN $vgpr0, $sgpr0_sgpr1_sgpr2_sgpr3, $vcc_lo, 0, 0, 0, 0, 0, implicit $exec
228 $vgpr1 = V_ADDC_U32_e32 $vgpr1, $vgpr1, implicit-def $vcc, implicit $vcc, implicit $exec