1# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py 2# RUN: llc -mtriple=amdgcn -mcpu=gfx1100 -mattr=+wavefrontsize32 -verify-machineinstrs -run-pass post-RA-hazard-rec -o - %s | FileCheck -check-prefixes=GCN,GFX11 %s 3# RUN: llc -mtriple=amdgcn -mcpu=gfx1150 -mattr=+wavefrontsize32 -verify-machineinstrs -run-pass post-RA-hazard-rec -o - %s | FileCheck -check-prefixes=GCN,GFX1150 %s 4 5--- 6name: trans_use_1_hazard 7body: | 8 bb.0: 9 ; GFX11-LABEL: name: trans_use_1_hazard 10 ; GFX11: $vgpr1 = V_SQRT_F32_e32 $vgpr0, implicit $mode, implicit $exec 11 ; GFX11-NEXT: $vgpr2 = V_MOV_B32_e32 0, implicit $exec 12 ; GFX11-NEXT: S_WAITCNT_DEPCTR 4095 13 ; GFX11-NEXT: $vgpr3 = V_ADD_F32_e32 $vgpr1, $vgpr2, implicit $mode, implicit $exec 14 ; GFX11-NEXT: S_ENDPGM 0 15 ; 16 ; GFX1150-LABEL: name: trans_use_1_hazard 17 ; GFX1150: $vgpr1 = V_SQRT_F32_e32 $vgpr0, implicit $mode, implicit $exec 18 ; GFX1150-NEXT: $vgpr2 = V_MOV_B32_e32 0, implicit $exec 19 ; GFX1150-NEXT: $vgpr3 = V_ADD_F32_e32 $vgpr1, $vgpr2, implicit $mode, implicit $exec 20 ; GFX1150-NEXT: S_ENDPGM 0 21 $vgpr1 = V_SQRT_F32_e32 $vgpr0, implicit $mode, implicit $exec 22 $vgpr2 = V_MOV_B32_e32 0, implicit $exec 23 $vgpr3 = V_ADD_F32_e32 $vgpr1, $vgpr2, implicit $mode, implicit $exec 24 S_ENDPGM 0 25... 26 27--- 28name: trans_use_1_no_hazard_1 29body: | 30 bb.0: 31 ; GCN-LABEL: name: trans_use_1_no_hazard_1 32 ; GCN: $vgpr1 = V_SQRT_F32_e32 $vgpr0, implicit $mode, implicit $exec 33 ; GCN-NEXT: S_WAITCNT_DEPCTR 4095 34 ; GCN-NEXT: $vgpr2 = V_MOV_B32_e32 0, implicit $exec 35 ; GCN-NEXT: $vgpr3 = V_ADD_F32_e32 $vgpr1, $vgpr2, implicit $mode, implicit $exec 36 ; GCN-NEXT: S_ENDPGM 0 37 $vgpr1 = V_SQRT_F32_e32 $vgpr0, implicit $mode, implicit $exec 38 S_WAITCNT_DEPCTR 4095 39 $vgpr2 = V_MOV_B32_e32 0, implicit $exec 40 $vgpr3 = V_ADD_F32_e32 $vgpr1, $vgpr2, implicit $mode, implicit $exec 41 S_ENDPGM 0 42... 43 44--- 45name: trans_use_2_hazard 46body: | 47 bb.0: 48 ; GFX11-LABEL: name: trans_use_2_hazard 49 ; GFX11: $vgpr1 = V_SQRT_F32_e32 $vgpr0, implicit $mode, implicit $exec 50 ; GFX11-NEXT: $sgpr0 = S_MOV_B32 0 51 ; GFX11-NEXT: $sgpr1 = S_MOV_B32 0 52 ; GFX11-NEXT: $sgpr2 = S_MOV_B32 0 53 ; GFX11-NEXT: $sgpr3 = S_MOV_B32 0 54 ; GFX11-NEXT: $sgpr4 = S_MOV_B32 0 55 ; GFX11-NEXT: $sgpr5 = S_MOV_B32 0 56 ; GFX11-NEXT: $vgpr2 = V_MOV_B32_e32 0, implicit $exec 57 ; GFX11-NEXT: $sgpr6 = S_MOV_B32 0 58 ; GFX11-NEXT: $sgpr7 = S_MOV_B32 0 59 ; GFX11-NEXT: $sgpr8 = S_MOV_B32 0 60 ; GFX11-NEXT: $sgpr9 = S_MOV_B32 0 61 ; GFX11-NEXT: $sgpr10 = S_MOV_B32 0 62 ; GFX11-NEXT: S_WAITCNT_DEPCTR 4095 63 ; GFX11-NEXT: $vgpr3 = V_ADD_F32_e32 $vgpr1, $vgpr2, implicit $mode, implicit $exec 64 ; GFX11-NEXT: S_ENDPGM 0 65 ; 66 ; GFX1150-LABEL: name: trans_use_2_hazard 67 ; GFX1150: $vgpr1 = V_SQRT_F32_e32 $vgpr0, implicit $mode, implicit $exec 68 ; GFX1150-NEXT: $sgpr0 = S_MOV_B32 0 69 ; GFX1150-NEXT: $sgpr1 = S_MOV_B32 0 70 ; GFX1150-NEXT: $sgpr2 = S_MOV_B32 0 71 ; GFX1150-NEXT: $sgpr3 = S_MOV_B32 0 72 ; GFX1150-NEXT: $sgpr4 = S_MOV_B32 0 73 ; GFX1150-NEXT: $sgpr5 = S_MOV_B32 0 74 ; GFX1150-NEXT: $vgpr2 = V_MOV_B32_e32 0, implicit $exec 75 ; GFX1150-NEXT: $sgpr6 = S_MOV_B32 0 76 ; GFX1150-NEXT: $sgpr7 = S_MOV_B32 0 77 ; GFX1150-NEXT: $sgpr8 = S_MOV_B32 0 78 ; GFX1150-NEXT: $sgpr9 = S_MOV_B32 0 79 ; GFX1150-NEXT: $sgpr10 = S_MOV_B32 0 80 ; GFX1150-NEXT: $vgpr3 = V_ADD_F32_e32 $vgpr1, $vgpr2, implicit $mode, implicit $exec 81 ; GFX1150-NEXT: S_ENDPGM 0 82 $vgpr1 = V_SQRT_F32_e32 $vgpr0, implicit $mode, implicit $exec 83 $sgpr0 = S_MOV_B32 0 84 $sgpr1 = S_MOV_B32 0 85 $sgpr2 = S_MOV_B32 0 86 $sgpr3 = S_MOV_B32 0 87 $sgpr4 = S_MOV_B32 0 88 $sgpr5 = S_MOV_B32 0 89 $vgpr2 = V_MOV_B32_e32 0, implicit $exec 90 $sgpr6 = S_MOV_B32 0 91 $sgpr7 = S_MOV_B32 0 92 $sgpr8 = S_MOV_B32 0 93 $sgpr9 = S_MOV_B32 0 94 $sgpr10 = S_MOV_B32 0 95 $vgpr3 = V_ADD_F32_e32 $vgpr1, $vgpr2, implicit $mode, implicit $exec 96 S_ENDPGM 0 97... 98 99--- 100name: trans_use_3_hazard 101body: | 102 bb.0: 103 ; GFX11-LABEL: name: trans_use_3_hazard 104 ; GFX11: $vgpr1 = V_SQRT_F32_e32 $vgpr0, implicit $mode, implicit $exec 105 ; GFX11-NEXT: $vgpr2 = V_MOV_B32_e32 0, implicit $exec 106 ; GFX11-NEXT: $vgpr10 = V_MOV_B32_e32 0, implicit $exec 107 ; GFX11-NEXT: $vgpr11 = V_MOV_B32_e32 0, implicit $exec 108 ; GFX11-NEXT: $vgpr12 = V_MOV_B32_e32 0, implicit $exec 109 ; GFX11-NEXT: $vgpr13 = V_MOV_B32_e32 0, implicit $exec 110 ; GFX11-NEXT: S_WAITCNT_DEPCTR 4095 111 ; GFX11-NEXT: $vgpr3 = V_ADD_F32_e32 $vgpr1, $vgpr2, implicit $mode, implicit $exec 112 ; GFX11-NEXT: S_ENDPGM 0 113 ; 114 ; GFX1150-LABEL: name: trans_use_3_hazard 115 ; GFX1150: $vgpr1 = V_SQRT_F32_e32 $vgpr0, implicit $mode, implicit $exec 116 ; GFX1150-NEXT: $vgpr2 = V_MOV_B32_e32 0, implicit $exec 117 ; GFX1150-NEXT: $vgpr10 = V_MOV_B32_e32 0, implicit $exec 118 ; GFX1150-NEXT: $vgpr11 = V_MOV_B32_e32 0, implicit $exec 119 ; GFX1150-NEXT: $vgpr12 = V_MOV_B32_e32 0, implicit $exec 120 ; GFX1150-NEXT: $vgpr13 = V_MOV_B32_e32 0, implicit $exec 121 ; GFX1150-NEXT: $vgpr3 = V_ADD_F32_e32 $vgpr1, $vgpr2, implicit $mode, implicit $exec 122 ; GFX1150-NEXT: S_ENDPGM 0 123 $vgpr1 = V_SQRT_F32_e32 $vgpr0, implicit $mode, implicit $exec 124 $vgpr2 = V_MOV_B32_e32 0, implicit $exec 125 $vgpr10 = V_MOV_B32_e32 0, implicit $exec 126 $vgpr11 = V_MOV_B32_e32 0, implicit $exec 127 $vgpr12 = V_MOV_B32_e32 0, implicit $exec 128 $vgpr13 = V_MOV_B32_e32 0, implicit $exec 129 $vgpr3 = V_ADD_F32_e32 $vgpr1, $vgpr2, implicit $mode, implicit $exec 130 S_ENDPGM 0 131... 132 133--- 134name: trans_use_3_no_hazard_1 135body: | 136 bb.0: 137 ; GCN-LABEL: name: trans_use_3_no_hazard_1 138 ; GCN: $vgpr1 = V_SQRT_F32_e32 $vgpr0, implicit $mode, implicit $exec 139 ; GCN-NEXT: $vgpr2 = V_MOV_B32_e32 0, implicit $exec 140 ; GCN-NEXT: $vgpr10 = V_MOV_B32_e32 0, implicit $exec 141 ; GCN-NEXT: $vgpr11 = V_MOV_B32_e32 0, implicit $exec 142 ; GCN-NEXT: $vgpr12 = V_MOV_B32_e32 0, implicit $exec 143 ; GCN-NEXT: $vgpr13 = V_MOV_B32_e32 0, implicit $exec 144 ; GCN-NEXT: $vgpr14 = V_MOV_B32_e32 0, implicit $exec 145 ; GCN-NEXT: $vgpr3 = V_ADD_F32_e32 $vgpr1, $vgpr2, implicit $mode, implicit $exec 146 ; GCN-NEXT: S_ENDPGM 0 147 $vgpr1 = V_SQRT_F32_e32 $vgpr0, implicit $mode, implicit $exec 148 $vgpr2 = V_MOV_B32_e32 0, implicit $exec 149 $vgpr10 = V_MOV_B32_e32 0, implicit $exec 150 $vgpr11 = V_MOV_B32_e32 0, implicit $exec 151 $vgpr12 = V_MOV_B32_e32 0, implicit $exec 152 $vgpr13 = V_MOV_B32_e32 0, implicit $exec 153 $vgpr14 = V_MOV_B32_e32 0, implicit $exec 154 $vgpr3 = V_ADD_F32_e32 $vgpr1, $vgpr2, implicit $mode, implicit $exec 155 S_ENDPGM 0 156... 157 158--- 159name: trans_use_3_no_hazard_2 160body: | 161 bb.0: 162 ; GCN-LABEL: name: trans_use_3_no_hazard_2 163 ; GCN: $vgpr1 = V_SQRT_F32_e32 $vgpr0, implicit $mode, implicit $exec 164 ; GCN-NEXT: $vgpr10 = V_MOV_B32_e32 0, implicit $exec 165 ; GCN-NEXT: $vgpr11 = V_MOV_B32_e32 0, implicit $exec 166 ; GCN-NEXT: $vgpr2 = V_MOV_B32_e32 0, implicit $exec 167 ; GCN-NEXT: $vgpr12 = V_MOV_B32_e32 0, implicit $exec 168 ; GCN-NEXT: $vgpr13 = V_MOV_B32_e32 0, implicit $exec 169 ; GCN-NEXT: $vgpr14 = V_MOV_B32_e32 0, implicit $exec 170 ; GCN-NEXT: $vgpr15 = V_MOV_B32_e32 0, implicit $exec 171 ; GCN-NEXT: $vgpr3 = V_ADD_F32_e32 $vgpr1, $vgpr2, implicit $mode, implicit $exec 172 ; GCN-NEXT: S_ENDPGM 0 173 $vgpr1 = V_SQRT_F32_e32 $vgpr0, implicit $mode, implicit $exec 174 $vgpr10 = V_MOV_B32_e32 0, implicit $exec 175 $vgpr11 = V_MOV_B32_e32 0, implicit $exec 176 $vgpr2 = V_MOV_B32_e32 0, implicit $exec 177 $vgpr12 = V_MOV_B32_e32 0, implicit $exec 178 $vgpr13 = V_MOV_B32_e32 0, implicit $exec 179 $vgpr14 = V_MOV_B32_e32 0, implicit $exec 180 $vgpr15 = V_MOV_B32_e32 0, implicit $exec 181 $vgpr3 = V_ADD_F32_e32 $vgpr1, $vgpr2, implicit $mode, implicit $exec 182 S_ENDPGM 0 183... 184 185--- 186name: trans_use_3_no_hazard_3 187body: | 188 bb.0: 189 ; GCN-LABEL: name: trans_use_3_no_hazard_3 190 ; GCN: $vgpr1 = V_SQRT_F32_e32 $vgpr0, implicit $mode, implicit $exec 191 ; GCN-NEXT: $vgpr10 = V_SQRT_F32_e32 $vgpr11, implicit $mode, implicit $exec 192 ; GCN-NEXT: $vgpr12 = V_SQRT_F32_e32 $vgpr13, implicit $mode, implicit $exec 193 ; GCN-NEXT: $vgpr3 = V_ADD_F32_e32 $vgpr1, $vgpr2, implicit $mode, implicit $exec 194 ; GCN-NEXT: S_ENDPGM 0 195 $vgpr1 = V_SQRT_F32_e32 $vgpr0, implicit $mode, implicit $exec 196 $vgpr10 = V_SQRT_F32_e32 $vgpr11, implicit $mode, implicit $exec 197 $vgpr12 = V_SQRT_F32_e32 $vgpr13, implicit $mode, implicit $exec 198 $vgpr3 = V_ADD_F32_e32 $vgpr1, $vgpr2, implicit $mode, implicit $exec 199 S_ENDPGM 0 200... 201 202--- 203name: trans_use_4_one_depctr_1 204body: | 205 bb.0: 206 ; GFX11-LABEL: name: trans_use_4_one_depctr_1 207 ; GFX11: $vgpr1 = V_SQRT_F32_e32 $vgpr0, implicit $mode, implicit $exec 208 ; GFX11-NEXT: $vgpr3 = V_SQRT_F32_e32 $vgpr2, implicit $mode, implicit $exec 209 ; GFX11-NEXT: S_WAITCNT_DEPCTR 4095 210 ; GFX11-NEXT: $vgpr5 = V_ADD_F32_e32 $vgpr1, $vgpr4, implicit $mode, implicit $exec 211 ; GFX11-NEXT: $vgpr7 = V_ADD_F32_e32 $vgpr3, $vgpr6, implicit $mode, implicit $exec 212 ; GFX11-NEXT: S_ENDPGM 0 213 ; 214 ; GFX1150-LABEL: name: trans_use_4_one_depctr_1 215 ; GFX1150: $vgpr1 = V_SQRT_F32_e32 $vgpr0, implicit $mode, implicit $exec 216 ; GFX1150-NEXT: $vgpr3 = V_SQRT_F32_e32 $vgpr2, implicit $mode, implicit $exec 217 ; GFX1150-NEXT: $vgpr5 = V_ADD_F32_e32 $vgpr1, $vgpr4, implicit $mode, implicit $exec 218 ; GFX1150-NEXT: $vgpr7 = V_ADD_F32_e32 $vgpr3, $vgpr6, implicit $mode, implicit $exec 219 ; GFX1150-NEXT: S_ENDPGM 0 220 $vgpr1 = V_SQRT_F32_e32 $vgpr0, implicit $mode, implicit $exec 221 $vgpr3 = V_SQRT_F32_e32 $vgpr2, implicit $mode, implicit $exec 222 $vgpr5 = V_ADD_F32_e32 $vgpr1, $vgpr4, implicit $mode, implicit $exec 223 $vgpr7 = V_ADD_F32_e32 $vgpr3, $vgpr6, implicit $mode, implicit $exec 224 S_ENDPGM 0 225... 226 227--- 228name: trans_use_4_one_depctr_2 229body: | 230 bb.0: 231 ; GFX11-LABEL: name: trans_use_4_one_depctr_2 232 ; GFX11: $vgpr1 = V_SQRT_F32_e32 $vgpr0, implicit $mode, implicit $exec 233 ; GFX11-NEXT: $vgpr3 = V_SQRT_F32_e32 $vgpr2, implicit $mode, implicit $exec 234 ; GFX11-NEXT: S_WAITCNT_DEPCTR 4095 235 ; GFX11-NEXT: $vgpr5 = V_ADD_F32_e32 $vgpr3, $vgpr4, implicit $mode, implicit $exec 236 ; GFX11-NEXT: $vgpr7 = V_ADD_F32_e32 $vgpr1, $vgpr6, implicit $mode, implicit $exec 237 ; GFX11-NEXT: S_ENDPGM 0 238 ; 239 ; GFX1150-LABEL: name: trans_use_4_one_depctr_2 240 ; GFX1150: $vgpr1 = V_SQRT_F32_e32 $vgpr0, implicit $mode, implicit $exec 241 ; GFX1150-NEXT: $vgpr3 = V_SQRT_F32_e32 $vgpr2, implicit $mode, implicit $exec 242 ; GFX1150-NEXT: $vgpr5 = V_ADD_F32_e32 $vgpr3, $vgpr4, implicit $mode, implicit $exec 243 ; GFX1150-NEXT: $vgpr7 = V_ADD_F32_e32 $vgpr1, $vgpr6, implicit $mode, implicit $exec 244 ; GFX1150-NEXT: S_ENDPGM 0 245 $vgpr1 = V_SQRT_F32_e32 $vgpr0, implicit $mode, implicit $exec 246 $vgpr3 = V_SQRT_F32_e32 $vgpr2, implicit $mode, implicit $exec 247 $vgpr5 = V_ADD_F32_e32 $vgpr3, $vgpr4, implicit $mode, implicit $exec 248 $vgpr7 = V_ADD_F32_e32 $vgpr1, $vgpr6, implicit $mode, implicit $exec 249 S_ENDPGM 0 250... 251 252--- 253name: trans_use_4 254body: | 255 bb.0: 256 ; GFX11-LABEL: name: trans_use_4 257 ; GFX11: $vgpr1 = V_SQRT_F32_e32 $vgpr0, implicit $mode, implicit $exec 258 ; GFX11-NEXT: $vgpr10 = V_SQRT_F32_e32 $vgpr11, implicit $mode, implicit $exec 259 ; GFX11-NEXT: $vgpr2 = V_MOV_B32_e32 0, implicit $exec 260 ; GFX11-NEXT: S_WAITCNT_DEPCTR 4095 261 ; GFX11-NEXT: $vgpr3 = V_ADD_F32_e32 $vgpr1, $vgpr2, implicit $mode, implicit $exec 262 ; GFX11-NEXT: S_ENDPGM 0 263 ; 264 ; GFX1150-LABEL: name: trans_use_4 265 ; GFX1150: $vgpr1 = V_SQRT_F32_e32 $vgpr0, implicit $mode, implicit $exec 266 ; GFX1150-NEXT: $vgpr10 = V_SQRT_F32_e32 $vgpr11, implicit $mode, implicit $exec 267 ; GFX1150-NEXT: $vgpr2 = V_MOV_B32_e32 0, implicit $exec 268 ; GFX1150-NEXT: $vgpr3 = V_ADD_F32_e32 $vgpr1, $vgpr2, implicit $mode, implicit $exec 269 ; GFX1150-NEXT: S_ENDPGM 0 270 $vgpr1 = V_SQRT_F32_e32 $vgpr0, implicit $mode, implicit $exec 271 $vgpr10 = V_SQRT_F32_e32 $vgpr11, implicit $mode, implicit $exec 272 $vgpr2 = V_MOV_B32_e32 0, implicit $exec 273 $vgpr3 = V_ADD_F32_e32 $vgpr1, $vgpr2, implicit $mode, implicit $exec 274 S_ENDPGM 0 275... 276 277--- 278name: trans_use_branching_1a 279body: | 280 ; GFX11-LABEL: name: trans_use_branching_1a 281 ; GFX11: bb.0: 282 ; GFX11-NEXT: successors: %bb.2(0x80000000) 283 ; GFX11-NEXT: {{ $}} 284 ; GFX11-NEXT: $vgpr1 = V_SQRT_F32_e32 $vgpr0, implicit $mode, implicit $exec 285 ; GFX11-NEXT: S_BRANCH %bb.2 286 ; GFX11-NEXT: {{ $}} 287 ; GFX11-NEXT: bb.1: 288 ; GFX11-NEXT: successors: %bb.2(0x80000000) 289 ; GFX11-NEXT: {{ $}} 290 ; GFX11-NEXT: $vgpr2 = V_MOV_B32_e32 0, implicit $exec 291 ; GFX11-NEXT: $vgpr30 = V_MOV_B32_e32 0, implicit $exec 292 ; GFX11-NEXT: $vgpr31 = V_MOV_B32_e32 0, implicit $exec 293 ; GFX11-NEXT: $vgpr32 = V_MOV_B32_e32 0, implicit $exec 294 ; GFX11-NEXT: $vgpr33 = V_MOV_B32_e32 0, implicit $exec 295 ; GFX11-NEXT: S_BRANCH %bb.2 296 ; GFX11-NEXT: {{ $}} 297 ; GFX11-NEXT: bb.2: 298 ; GFX11-NEXT: $vgpr3 = V_MOV_B32_e32 0, implicit $exec 299 ; GFX11-NEXT: S_WAITCNT_DEPCTR 4095 300 ; GFX11-NEXT: $vgpr4 = V_ADD_F32_e32 $vgpr1, $vgpr2, implicit $mode, implicit $exec 301 ; GFX11-NEXT: S_ENDPGM 0 302 ; 303 ; GFX1150-LABEL: name: trans_use_branching_1a 304 ; GFX1150: bb.0: 305 ; GFX1150-NEXT: successors: %bb.2(0x80000000) 306 ; GFX1150-NEXT: {{ $}} 307 ; GFX1150-NEXT: $vgpr1 = V_SQRT_F32_e32 $vgpr0, implicit $mode, implicit $exec 308 ; GFX1150-NEXT: S_BRANCH %bb.2 309 ; GFX1150-NEXT: {{ $}} 310 ; GFX1150-NEXT: bb.1: 311 ; GFX1150-NEXT: successors: %bb.2(0x80000000) 312 ; GFX1150-NEXT: {{ $}} 313 ; GFX1150-NEXT: $vgpr2 = V_MOV_B32_e32 0, implicit $exec 314 ; GFX1150-NEXT: $vgpr30 = V_MOV_B32_e32 0, implicit $exec 315 ; GFX1150-NEXT: $vgpr31 = V_MOV_B32_e32 0, implicit $exec 316 ; GFX1150-NEXT: $vgpr32 = V_MOV_B32_e32 0, implicit $exec 317 ; GFX1150-NEXT: $vgpr33 = V_MOV_B32_e32 0, implicit $exec 318 ; GFX1150-NEXT: S_BRANCH %bb.2 319 ; GFX1150-NEXT: {{ $}} 320 ; GFX1150-NEXT: bb.2: 321 ; GFX1150-NEXT: $vgpr3 = V_MOV_B32_e32 0, implicit $exec 322 ; GFX1150-NEXT: $vgpr4 = V_ADD_F32_e32 $vgpr1, $vgpr2, implicit $mode, implicit $exec 323 ; GFX1150-NEXT: S_ENDPGM 0 324 bb.0: 325 $vgpr1 = V_SQRT_F32_e32 $vgpr0, implicit $mode, implicit $exec 326 S_BRANCH %bb.2 327 bb.1: 328 $vgpr2 = V_MOV_B32_e32 0, implicit $exec 329 $vgpr30 = V_MOV_B32_e32 0, implicit $exec 330 $vgpr31 = V_MOV_B32_e32 0, implicit $exec 331 $vgpr32 = V_MOV_B32_e32 0, implicit $exec 332 $vgpr33 = V_MOV_B32_e32 0, implicit $exec 333 S_BRANCH %bb.2 334 bb.2: 335 $vgpr3 = V_MOV_B32_e32 0, implicit $exec 336 $vgpr4 = V_ADD_F32_e32 $vgpr1, $vgpr2, implicit $mode, implicit $exec 337 S_ENDPGM 0 338... 339 340--- 341name: trans_use_branching_1b 342body: | 343 ; GFX11-LABEL: name: trans_use_branching_1b 344 ; GFX11: bb.0: 345 ; GFX11-NEXT: successors: %bb.2(0x80000000) 346 ; GFX11-NEXT: {{ $}} 347 ; GFX11-NEXT: $vgpr1 = V_SQRT_F32_e32 $vgpr0, implicit $mode, implicit $exec 348 ; GFX11-NEXT: S_BRANCH %bb.2 349 ; GFX11-NEXT: {{ $}} 350 ; GFX11-NEXT: bb.1: 351 ; GFX11-NEXT: successors: %bb.2(0x80000000) 352 ; GFX11-NEXT: {{ $}} 353 ; GFX11-NEXT: $vgpr2 = V_MOV_B32_e32 0, implicit $exec 354 ; GFX11-NEXT: $vgpr30 = V_MOV_B32_e32 0, implicit $exec 355 ; GFX11-NEXT: S_WAITCNT_DEPCTR 4095 356 ; GFX11-NEXT: S_BRANCH %bb.2 357 ; GFX11-NEXT: {{ $}} 358 ; GFX11-NEXT: bb.2: 359 ; GFX11-NEXT: $vgpr3 = V_MOV_B32_e32 0, implicit $exec 360 ; GFX11-NEXT: S_WAITCNT_DEPCTR 4095 361 ; GFX11-NEXT: $vgpr4 = V_ADD_F32_e32 $vgpr1, $vgpr2, implicit $mode, implicit $exec 362 ; GFX11-NEXT: S_ENDPGM 0 363 ; 364 ; GFX1150-LABEL: name: trans_use_branching_1b 365 ; GFX1150: bb.0: 366 ; GFX1150-NEXT: successors: %bb.2(0x80000000) 367 ; GFX1150-NEXT: {{ $}} 368 ; GFX1150-NEXT: $vgpr1 = V_SQRT_F32_e32 $vgpr0, implicit $mode, implicit $exec 369 ; GFX1150-NEXT: S_BRANCH %bb.2 370 ; GFX1150-NEXT: {{ $}} 371 ; GFX1150-NEXT: bb.1: 372 ; GFX1150-NEXT: successors: %bb.2(0x80000000) 373 ; GFX1150-NEXT: {{ $}} 374 ; GFX1150-NEXT: $vgpr2 = V_MOV_B32_e32 0, implicit $exec 375 ; GFX1150-NEXT: $vgpr30 = V_MOV_B32_e32 0, implicit $exec 376 ; GFX1150-NEXT: S_WAITCNT_DEPCTR 4095 377 ; GFX1150-NEXT: S_BRANCH %bb.2 378 ; GFX1150-NEXT: {{ $}} 379 ; GFX1150-NEXT: bb.2: 380 ; GFX1150-NEXT: $vgpr3 = V_MOV_B32_e32 0, implicit $exec 381 ; GFX1150-NEXT: $vgpr4 = V_ADD_F32_e32 $vgpr1, $vgpr2, implicit $mode, implicit $exec 382 ; GFX1150-NEXT: S_ENDPGM 0 383 bb.0: 384 $vgpr1 = V_SQRT_F32_e32 $vgpr0, implicit $mode, implicit $exec 385 S_BRANCH %bb.2 386 bb.1: 387 $vgpr2 = V_MOV_B32_e32 0, implicit $exec 388 $vgpr30 = V_MOV_B32_e32 0, implicit $exec 389 S_WAITCNT_DEPCTR 4095 390 S_BRANCH %bb.2 391 bb.2: 392 $vgpr3 = V_MOV_B32_e32 0, implicit $exec 393 $vgpr4 = V_ADD_F32_e32 $vgpr1, $vgpr2, implicit $mode, implicit $exec 394 S_ENDPGM 0 395... 396 397--- 398name: trans_use_branching_1c_no_hazard_1 399body: | 400 ; GCN-LABEL: name: trans_use_branching_1c_no_hazard_1 401 ; GCN: bb.0: 402 ; GCN-NEXT: successors: %bb.2(0x80000000) 403 ; GCN-NEXT: {{ $}} 404 ; GCN-NEXT: $vgpr1 = V_SQRT_F32_e32 $vgpr0, implicit $mode, implicit $exec 405 ; GCN-NEXT: S_WAITCNT_DEPCTR 4095 406 ; GCN-NEXT: S_BRANCH %bb.2 407 ; GCN-NEXT: {{ $}} 408 ; GCN-NEXT: bb.1: 409 ; GCN-NEXT: successors: %bb.2(0x80000000) 410 ; GCN-NEXT: {{ $}} 411 ; GCN-NEXT: $vgpr2 = V_MOV_B32_e32 0, implicit $exec 412 ; GCN-NEXT: $vgpr30 = V_MOV_B32_e32 0, implicit $exec 413 ; GCN-NEXT: S_BRANCH %bb.2 414 ; GCN-NEXT: {{ $}} 415 ; GCN-NEXT: bb.2: 416 ; GCN-NEXT: $vgpr3 = V_MOV_B32_e32 0, implicit $exec 417 ; GCN-NEXT: $vgpr4 = V_ADD_F32_e32 $vgpr1, $vgpr2, implicit $mode, implicit $exec 418 ; GCN-NEXT: S_ENDPGM 0 419 bb.0: 420 $vgpr1 = V_SQRT_F32_e32 $vgpr0, implicit $mode, implicit $exec 421 S_WAITCNT_DEPCTR 4095 422 S_BRANCH %bb.2 423 bb.1: 424 $vgpr2 = V_MOV_B32_e32 0, implicit $exec 425 $vgpr30 = V_MOV_B32_e32 0, implicit $exec 426 S_BRANCH %bb.2 427 bb.2: 428 $vgpr3 = V_MOV_B32_e32 0, implicit $exec 429 $vgpr4 = V_ADD_F32_e32 $vgpr1, $vgpr2, implicit $mode, implicit $exec 430 S_ENDPGM 0 431... 432