1; NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py 2; RUN: llc -global-isel -mtriple=amdgcn-amd-amdhsa -verify-machineinstrs -stop-after=irtranslator < %s | FileCheck %s 3 4define amdgpu_kernel void @system_one_as_acquire() { 5 ; CHECK-LABEL: name: system_one_as_acquire 6 ; CHECK: bb.1 (%ir-block.0): 7 ; CHECK-NEXT: liveins: $sgpr8_sgpr9 8 ; CHECK-NEXT: {{ $}} 9 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(p4) = COPY $sgpr8_sgpr9 10 ; CHECK-NEXT: G_FENCE 4, 2 11 ; CHECK-NEXT: S_ENDPGM 0 12 fence syncscope("one-as") acquire 13 ret void 14} 15 16define amdgpu_kernel void @system_one_as_release() { 17 ; CHECK-LABEL: name: system_one_as_release 18 ; CHECK: bb.1 (%ir-block.0): 19 ; CHECK-NEXT: liveins: $sgpr8_sgpr9 20 ; CHECK-NEXT: {{ $}} 21 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(p4) = COPY $sgpr8_sgpr9 22 ; CHECK-NEXT: G_FENCE 5, 2 23 ; CHECK-NEXT: S_ENDPGM 0 24 fence syncscope("one-as") release 25 ret void 26} 27 28define amdgpu_kernel void @system_one_as_acq_rel() { 29 ; CHECK-LABEL: name: system_one_as_acq_rel 30 ; CHECK: bb.1 (%ir-block.0): 31 ; CHECK-NEXT: liveins: $sgpr8_sgpr9 32 ; CHECK-NEXT: {{ $}} 33 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(p4) = COPY $sgpr8_sgpr9 34 ; CHECK-NEXT: G_FENCE 6, 2 35 ; CHECK-NEXT: S_ENDPGM 0 36 fence syncscope("one-as") acq_rel 37 ret void 38} 39 40define amdgpu_kernel void @system_one_as_seq_cst() { 41 ; CHECK-LABEL: name: system_one_as_seq_cst 42 ; CHECK: bb.1 (%ir-block.0): 43 ; CHECK-NEXT: liveins: $sgpr8_sgpr9 44 ; CHECK-NEXT: {{ $}} 45 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(p4) = COPY $sgpr8_sgpr9 46 ; CHECK-NEXT: G_FENCE 7, 2 47 ; CHECK-NEXT: S_ENDPGM 0 48 fence syncscope("one-as") seq_cst 49 ret void 50} 51 52define amdgpu_kernel void @singlethread_one_as_acquire() { 53 ; CHECK-LABEL: name: singlethread_one_as_acquire 54 ; CHECK: bb.1 (%ir-block.0): 55 ; CHECK-NEXT: liveins: $sgpr8_sgpr9 56 ; CHECK-NEXT: {{ $}} 57 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(p4) = COPY $sgpr8_sgpr9 58 ; CHECK-NEXT: G_FENCE 4, 3 59 ; CHECK-NEXT: S_ENDPGM 0 60 fence syncscope("singlethread-one-as") acquire 61 ret void 62} 63 64define amdgpu_kernel void @singlethread_one_as_release() { 65 ; CHECK-LABEL: name: singlethread_one_as_release 66 ; CHECK: bb.1 (%ir-block.0): 67 ; CHECK-NEXT: liveins: $sgpr8_sgpr9 68 ; CHECK-NEXT: {{ $}} 69 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(p4) = COPY $sgpr8_sgpr9 70 ; CHECK-NEXT: G_FENCE 5, 3 71 ; CHECK-NEXT: S_ENDPGM 0 72 fence syncscope("singlethread-one-as") release 73 ret void 74} 75 76define amdgpu_kernel void @singlethread_one_as_acq_rel() { 77 ; CHECK-LABEL: name: singlethread_one_as_acq_rel 78 ; CHECK: bb.1 (%ir-block.0): 79 ; CHECK-NEXT: liveins: $sgpr8_sgpr9 80 ; CHECK-NEXT: {{ $}} 81 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(p4) = COPY $sgpr8_sgpr9 82 ; CHECK-NEXT: G_FENCE 6, 3 83 ; CHECK-NEXT: S_ENDPGM 0 84 fence syncscope("singlethread-one-as") acq_rel 85 ret void 86} 87 88define amdgpu_kernel void @singlethread_one_as_seq_cst() { 89 ; CHECK-LABEL: name: singlethread_one_as_seq_cst 90 ; CHECK: bb.1 (%ir-block.0): 91 ; CHECK-NEXT: liveins: $sgpr8_sgpr9 92 ; CHECK-NEXT: {{ $}} 93 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(p4) = COPY $sgpr8_sgpr9 94 ; CHECK-NEXT: G_FENCE 7, 3 95 ; CHECK-NEXT: S_ENDPGM 0 96 fence syncscope("singlethread-one-as") seq_cst 97 ret void 98} 99 100define amdgpu_kernel void @agent_one_as_acquire() { 101 ; CHECK-LABEL: name: agent_one_as_acquire 102 ; CHECK: bb.1 (%ir-block.0): 103 ; CHECK-NEXT: liveins: $sgpr8_sgpr9 104 ; CHECK-NEXT: {{ $}} 105 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(p4) = COPY $sgpr8_sgpr9 106 ; CHECK-NEXT: G_FENCE 4, 4 107 ; CHECK-NEXT: S_ENDPGM 0 108 fence syncscope("agent-one-as") acquire 109 ret void 110} 111 112define amdgpu_kernel void @agent_one_as_release() { 113 ; CHECK-LABEL: name: agent_one_as_release 114 ; CHECK: bb.1 (%ir-block.0): 115 ; CHECK-NEXT: liveins: $sgpr8_sgpr9 116 ; CHECK-NEXT: {{ $}} 117 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(p4) = COPY $sgpr8_sgpr9 118 ; CHECK-NEXT: G_FENCE 5, 4 119 ; CHECK-NEXT: S_ENDPGM 0 120 fence syncscope("agent-one-as") release 121 ret void 122} 123 124define amdgpu_kernel void @agent_one_as_acq_rel() { 125 ; CHECK-LABEL: name: agent_one_as_acq_rel 126 ; CHECK: bb.1 (%ir-block.0): 127 ; CHECK-NEXT: liveins: $sgpr8_sgpr9 128 ; CHECK-NEXT: {{ $}} 129 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(p4) = COPY $sgpr8_sgpr9 130 ; CHECK-NEXT: G_FENCE 6, 4 131 ; CHECK-NEXT: S_ENDPGM 0 132 fence syncscope("agent-one-as") acq_rel 133 ret void 134} 135 136define amdgpu_kernel void @agent_one_as_seq_cst() { 137 ; CHECK-LABEL: name: agent_one_as_seq_cst 138 ; CHECK: bb.1 (%ir-block.0): 139 ; CHECK-NEXT: liveins: $sgpr8_sgpr9 140 ; CHECK-NEXT: {{ $}} 141 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(p4) = COPY $sgpr8_sgpr9 142 ; CHECK-NEXT: G_FENCE 7, 4 143 ; CHECK-NEXT: S_ENDPGM 0 144 fence syncscope("agent-one-as") seq_cst 145 ret void 146} 147 148define amdgpu_kernel void @workgroup_one_as_acquire() { 149 ; CHECK-LABEL: name: workgroup_one_as_acquire 150 ; CHECK: bb.1 (%ir-block.0): 151 ; CHECK-NEXT: liveins: $sgpr8_sgpr9 152 ; CHECK-NEXT: {{ $}} 153 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(p4) = COPY $sgpr8_sgpr9 154 ; CHECK-NEXT: G_FENCE 4, 5 155 ; CHECK-NEXT: S_ENDPGM 0 156 fence syncscope("workgroup-one-as") acquire 157 ret void 158} 159 160define amdgpu_kernel void @workgroup_one_as_release() { 161 ; CHECK-LABEL: name: workgroup_one_as_release 162 ; CHECK: bb.1 (%ir-block.0): 163 ; CHECK-NEXT: liveins: $sgpr8_sgpr9 164 ; CHECK-NEXT: {{ $}} 165 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(p4) = COPY $sgpr8_sgpr9 166 ; CHECK-NEXT: G_FENCE 5, 5 167 ; CHECK-NEXT: S_ENDPGM 0 168 fence syncscope("workgroup-one-as") release 169 ret void 170} 171 172define amdgpu_kernel void @workgroup_one_as_acq_rel() { 173 ; CHECK-LABEL: name: workgroup_one_as_acq_rel 174 ; CHECK: bb.1 (%ir-block.0): 175 ; CHECK-NEXT: liveins: $sgpr8_sgpr9 176 ; CHECK-NEXT: {{ $}} 177 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(p4) = COPY $sgpr8_sgpr9 178 ; CHECK-NEXT: G_FENCE 6, 5 179 ; CHECK-NEXT: S_ENDPGM 0 180 fence syncscope("workgroup-one-as") acq_rel 181 ret void 182} 183 184define amdgpu_kernel void @workgroup_one_as_seq_cst() { 185 ; CHECK-LABEL: name: workgroup_one_as_seq_cst 186 ; CHECK: bb.1 (%ir-block.0): 187 ; CHECK-NEXT: liveins: $sgpr8_sgpr9 188 ; CHECK-NEXT: {{ $}} 189 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(p4) = COPY $sgpr8_sgpr9 190 ; CHECK-NEXT: G_FENCE 7, 5 191 ; CHECK-NEXT: S_ENDPGM 0 192 fence syncscope("workgroup-one-as") seq_cst 193 ret void 194} 195 196define amdgpu_kernel void @wavefront_one_as_acquire() { 197 ; CHECK-LABEL: name: wavefront_one_as_acquire 198 ; CHECK: bb.1 (%ir-block.0): 199 ; CHECK-NEXT: liveins: $sgpr8_sgpr9 200 ; CHECK-NEXT: {{ $}} 201 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(p4) = COPY $sgpr8_sgpr9 202 ; CHECK-NEXT: G_FENCE 4, 6 203 ; CHECK-NEXT: S_ENDPGM 0 204 fence syncscope("wavefront-one-as") acquire 205 ret void 206} 207 208define amdgpu_kernel void @wavefront_one_as_release() { 209 ; CHECK-LABEL: name: wavefront_one_as_release 210 ; CHECK: bb.1 (%ir-block.0): 211 ; CHECK-NEXT: liveins: $sgpr8_sgpr9 212 ; CHECK-NEXT: {{ $}} 213 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(p4) = COPY $sgpr8_sgpr9 214 ; CHECK-NEXT: G_FENCE 5, 6 215 ; CHECK-NEXT: S_ENDPGM 0 216 fence syncscope("wavefront-one-as") release 217 ret void 218} 219 220define amdgpu_kernel void @wavefront_one_as_acq_rel() { 221 ; CHECK-LABEL: name: wavefront_one_as_acq_rel 222 ; CHECK: bb.1 (%ir-block.0): 223 ; CHECK-NEXT: liveins: $sgpr8_sgpr9 224 ; CHECK-NEXT: {{ $}} 225 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(p4) = COPY $sgpr8_sgpr9 226 ; CHECK-NEXT: G_FENCE 6, 6 227 ; CHECK-NEXT: S_ENDPGM 0 228 fence syncscope("wavefront-one-as") acq_rel 229 ret void 230} 231 232define amdgpu_kernel void @wavefront_one_as_seq_cst() { 233 ; CHECK-LABEL: name: wavefront_one_as_seq_cst 234 ; CHECK: bb.1 (%ir-block.0): 235 ; CHECK-NEXT: liveins: $sgpr8_sgpr9 236 ; CHECK-NEXT: {{ $}} 237 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(p4) = COPY $sgpr8_sgpr9 238 ; CHECK-NEXT: G_FENCE 7, 6 239 ; CHECK-NEXT: S_ENDPGM 0 240 fence syncscope("wavefront-one-as") seq_cst 241 ret void 242} 243 244define amdgpu_kernel void @system_acquire() { 245 ; CHECK-LABEL: name: system_acquire 246 ; CHECK: bb.1.entry: 247 ; CHECK-NEXT: liveins: $sgpr8_sgpr9 248 ; CHECK-NEXT: {{ $}} 249 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(p4) = COPY $sgpr8_sgpr9 250 ; CHECK-NEXT: S_ENDPGM 0 251entry: 252 ret void 253} 254 255define amdgpu_kernel void @system_release() { 256 ; CHECK-LABEL: name: system_release 257 ; CHECK: bb.1 (%ir-block.0): 258 ; CHECK-NEXT: liveins: $sgpr8_sgpr9 259 ; CHECK-NEXT: {{ $}} 260 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(p4) = COPY $sgpr8_sgpr9 261 ; CHECK-NEXT: G_FENCE 5, 1 262 ; CHECK-NEXT: S_ENDPGM 0 263 fence release 264 ret void 265} 266 267define amdgpu_kernel void @system_acq_rel() { 268 ; CHECK-LABEL: name: system_acq_rel 269 ; CHECK: bb.1 (%ir-block.0): 270 ; CHECK-NEXT: liveins: $sgpr8_sgpr9 271 ; CHECK-NEXT: {{ $}} 272 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(p4) = COPY $sgpr8_sgpr9 273 ; CHECK-NEXT: G_FENCE 6, 1 274 ; CHECK-NEXT: S_ENDPGM 0 275 fence acq_rel 276 ret void 277} 278 279define amdgpu_kernel void @system_seq_cst() { 280 ; CHECK-LABEL: name: system_seq_cst 281 ; CHECK: bb.1 (%ir-block.0): 282 ; CHECK-NEXT: liveins: $sgpr8_sgpr9 283 ; CHECK-NEXT: {{ $}} 284 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(p4) = COPY $sgpr8_sgpr9 285 ; CHECK-NEXT: G_FENCE 7, 1 286 ; CHECK-NEXT: S_ENDPGM 0 287 fence seq_cst 288 ret void 289} 290 291define amdgpu_kernel void @singlethread_acquire() { 292 ; CHECK-LABEL: name: singlethread_acquire 293 ; CHECK: bb.1 (%ir-block.0): 294 ; CHECK-NEXT: liveins: $sgpr8_sgpr9 295 ; CHECK-NEXT: {{ $}} 296 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(p4) = COPY $sgpr8_sgpr9 297 ; CHECK-NEXT: G_FENCE 4, 0 298 ; CHECK-NEXT: S_ENDPGM 0 299 fence syncscope("singlethread") acquire 300 ret void 301} 302 303define amdgpu_kernel void @singlethread_release() { 304 ; CHECK-LABEL: name: singlethread_release 305 ; CHECK: bb.1 (%ir-block.0): 306 ; CHECK-NEXT: liveins: $sgpr8_sgpr9 307 ; CHECK-NEXT: {{ $}} 308 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(p4) = COPY $sgpr8_sgpr9 309 ; CHECK-NEXT: G_FENCE 5, 0 310 ; CHECK-NEXT: S_ENDPGM 0 311 fence syncscope("singlethread") release 312 ret void 313} 314 315define amdgpu_kernel void @singlethread_acq_rel() { 316 ; CHECK-LABEL: name: singlethread_acq_rel 317 ; CHECK: bb.1 (%ir-block.0): 318 ; CHECK-NEXT: liveins: $sgpr8_sgpr9 319 ; CHECK-NEXT: {{ $}} 320 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(p4) = COPY $sgpr8_sgpr9 321 ; CHECK-NEXT: G_FENCE 6, 0 322 ; CHECK-NEXT: S_ENDPGM 0 323 fence syncscope("singlethread") acq_rel 324 ret void 325} 326 327define amdgpu_kernel void @singlethread_seq_cst() { 328 ; CHECK-LABEL: name: singlethread_seq_cst 329 ; CHECK: bb.1 (%ir-block.0): 330 ; CHECK-NEXT: liveins: $sgpr8_sgpr9 331 ; CHECK-NEXT: {{ $}} 332 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(p4) = COPY $sgpr8_sgpr9 333 ; CHECK-NEXT: G_FENCE 7, 0 334 ; CHECK-NEXT: S_ENDPGM 0 335 fence syncscope("singlethread") seq_cst 336 ret void 337} 338 339define amdgpu_kernel void @agent_acquire() { 340 ; CHECK-LABEL: name: agent_acquire 341 ; CHECK: bb.1 (%ir-block.0): 342 ; CHECK-NEXT: liveins: $sgpr8_sgpr9 343 ; CHECK-NEXT: {{ $}} 344 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(p4) = COPY $sgpr8_sgpr9 345 ; CHECK-NEXT: G_FENCE 4, 7 346 ; CHECK-NEXT: S_ENDPGM 0 347 fence syncscope("agent") acquire 348 ret void 349} 350 351define amdgpu_kernel void @agent_release() { 352 ; CHECK-LABEL: name: agent_release 353 ; CHECK: bb.1 (%ir-block.0): 354 ; CHECK-NEXT: liveins: $sgpr8_sgpr9 355 ; CHECK-NEXT: {{ $}} 356 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(p4) = COPY $sgpr8_sgpr9 357 ; CHECK-NEXT: G_FENCE 5, 7 358 ; CHECK-NEXT: S_ENDPGM 0 359 fence syncscope("agent") release 360 ret void 361} 362 363define amdgpu_kernel void @agent_acq_rel() { 364 ; CHECK-LABEL: name: agent_acq_rel 365 ; CHECK: bb.1 (%ir-block.0): 366 ; CHECK-NEXT: liveins: $sgpr8_sgpr9 367 ; CHECK-NEXT: {{ $}} 368 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(p4) = COPY $sgpr8_sgpr9 369 ; CHECK-NEXT: G_FENCE 6, 7 370 ; CHECK-NEXT: S_ENDPGM 0 371 fence syncscope("agent") acq_rel 372 ret void 373} 374 375define amdgpu_kernel void @agent_seq_cst() { 376 ; CHECK-LABEL: name: agent_seq_cst 377 ; CHECK: bb.1 (%ir-block.0): 378 ; CHECK-NEXT: liveins: $sgpr8_sgpr9 379 ; CHECK-NEXT: {{ $}} 380 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(p4) = COPY $sgpr8_sgpr9 381 ; CHECK-NEXT: G_FENCE 7, 7 382 ; CHECK-NEXT: S_ENDPGM 0 383 fence syncscope("agent") seq_cst 384 ret void 385} 386 387define amdgpu_kernel void @workgroup_acquire() { 388 ; CHECK-LABEL: name: workgroup_acquire 389 ; CHECK: bb.1 (%ir-block.0): 390 ; CHECK-NEXT: liveins: $sgpr8_sgpr9 391 ; CHECK-NEXT: {{ $}} 392 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(p4) = COPY $sgpr8_sgpr9 393 ; CHECK-NEXT: G_FENCE 4, 8 394 ; CHECK-NEXT: S_ENDPGM 0 395 fence syncscope("workgroup") acquire 396 ret void 397} 398 399define amdgpu_kernel void @workgroup_release() { 400 ; CHECK-LABEL: name: workgroup_release 401 ; CHECK: bb.1 (%ir-block.0): 402 ; CHECK-NEXT: liveins: $sgpr8_sgpr9 403 ; CHECK-NEXT: {{ $}} 404 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(p4) = COPY $sgpr8_sgpr9 405 ; CHECK-NEXT: G_FENCE 5, 8 406 ; CHECK-NEXT: S_ENDPGM 0 407 fence syncscope("workgroup") release 408 ret void 409} 410 411define amdgpu_kernel void @workgroup_acq_rel() { 412 ; CHECK-LABEL: name: workgroup_acq_rel 413 ; CHECK: bb.1 (%ir-block.0): 414 ; CHECK-NEXT: liveins: $sgpr8_sgpr9 415 ; CHECK-NEXT: {{ $}} 416 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(p4) = COPY $sgpr8_sgpr9 417 ; CHECK-NEXT: G_FENCE 6, 8 418 ; CHECK-NEXT: S_ENDPGM 0 419 fence syncscope("workgroup") acq_rel 420 ret void 421} 422 423define amdgpu_kernel void @workgroup_seq_cst() { 424 ; CHECK-LABEL: name: workgroup_seq_cst 425 ; CHECK: bb.1 (%ir-block.0): 426 ; CHECK-NEXT: liveins: $sgpr8_sgpr9 427 ; CHECK-NEXT: {{ $}} 428 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(p4) = COPY $sgpr8_sgpr9 429 ; CHECK-NEXT: G_FENCE 7, 8 430 ; CHECK-NEXT: S_ENDPGM 0 431 fence syncscope("workgroup") seq_cst 432 ret void 433} 434 435define amdgpu_kernel void @wavefront_acquire() { 436 ; CHECK-LABEL: name: wavefront_acquire 437 ; CHECK: bb.1 (%ir-block.0): 438 ; CHECK-NEXT: liveins: $sgpr8_sgpr9 439 ; CHECK-NEXT: {{ $}} 440 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(p4) = COPY $sgpr8_sgpr9 441 ; CHECK-NEXT: G_FENCE 4, 9 442 ; CHECK-NEXT: S_ENDPGM 0 443 fence syncscope("wavefront") acquire 444 ret void 445} 446 447define amdgpu_kernel void @wavefront_release() { 448 ; CHECK-LABEL: name: wavefront_release 449 ; CHECK: bb.1 (%ir-block.0): 450 ; CHECK-NEXT: liveins: $sgpr8_sgpr9 451 ; CHECK-NEXT: {{ $}} 452 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(p4) = COPY $sgpr8_sgpr9 453 ; CHECK-NEXT: G_FENCE 5, 9 454 ; CHECK-NEXT: S_ENDPGM 0 455 fence syncscope("wavefront") release 456 ret void 457} 458 459define amdgpu_kernel void @wavefront_acq_rel() { 460 ; CHECK-LABEL: name: wavefront_acq_rel 461 ; CHECK: bb.1 (%ir-block.0): 462 ; CHECK-NEXT: liveins: $sgpr8_sgpr9 463 ; CHECK-NEXT: {{ $}} 464 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(p4) = COPY $sgpr8_sgpr9 465 ; CHECK-NEXT: G_FENCE 6, 9 466 ; CHECK-NEXT: S_ENDPGM 0 467 fence syncscope("wavefront") acq_rel 468 ret void 469} 470 471define amdgpu_kernel void @wavefront_seq_cst() { 472 ; CHECK-LABEL: name: wavefront_seq_cst 473 ; CHECK: bb.1 (%ir-block.0): 474 ; CHECK-NEXT: liveins: $sgpr8_sgpr9 475 ; CHECK-NEXT: {{ $}} 476 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(p4) = COPY $sgpr8_sgpr9 477 ; CHECK-NEXT: G_FENCE 7, 9 478 ; CHECK-NEXT: S_ENDPGM 0 479 fence syncscope("wavefront") seq_cst 480 ret void 481} 482