Files
llvm-project/llvm/test/CodeGen/AMDGPU/NextUseAnalysis/test_ers_basic_case.mir
macurtis-amd b9ae01500d AMDGPU: Add NextUseAnalysis Pass (#178873)
Based on
- https://github.com/llvm/llvm-project/pull/156079 and
- https://github.com/llvm/llvm-project/pull/171520

See those PRs for background.

Provides a compatibility mode option
`--amdgpu-next-use-analysis-compatibility-mode` that produces results
that match either PR #156079 (`compute`) or PR #171520 (`graphics`).

Co-authored-by: alex-t <atimofee@amd.com>
Co-authored-by: Konstantina Mitropoulou <KonstantinaMitropoulou@amd.com>

---------

Co-authored-by: Konstantina Mitropoulou <KonstantinaMitropoulou@amd.com>
2026-04-16 12:05:59 -05:00

3099 lines
143 KiB
YAML

# RUN: llc -mtriple=amdgcn -mcpu=gfx1200 \
# RUN: -run-pass=amdgpu-next-use-printer \
# RUN: -amdgpu-next-use-analysis-config=graphics \
# RUN: -amdgpu-next-use-analysis-dump-distance-as-json=- \
# RUN: -amdgpu-next-use-analysis-dump-distance-verbose \
# RUN: -filetype=null \
# RUN: %s | FileCheck --check-prefix=CHECK-GX-JSON %s
# RUN: llc -mtriple=amdgcn -mcpu=gfx1200 \
# RUN: -run-pass=amdgpu-next-use-printer \
# RUN: -amdgpu-next-use-analysis-config=compute \
# RUN: -amdgpu-next-use-analysis-dump-distance-as-json=- \
# RUN: -amdgpu-next-use-analysis-dump-distance-verbose \
# RUN: -filetype=null \
# RUN: %s | FileCheck --check-prefix=CHECK-CP-JSON %s
# RUN: llc -mtriple=amdgcn -mcpu=gfx1200 \
# RUN: "-passes=require<amdgpu-next-use-analysis>,print<amdgpu-next-use-analysis>" \
# RUN: -amdgpu-next-use-analysis-config=compute \
# RUN: -amdgpu-next-use-analysis-dump-distance-as-json=- \
# RUN: -amdgpu-next-use-analysis-dump-distance-verbose \
# RUN: -filetype=null \
# RUN: %s | FileCheck --check-prefix=CHECK-CP-JSON %s
--- |
define amdgpu_ps i64 @test(ptr addrspace(3) %p1, ptr addrspace(3) %p2) {
ret i64 0
}
...
---
name: test
tracksRegLiveness: true
body: |
bb.0:
successors: %bb.3(0x40000000), %bb.1(0x40000000)
liveins: $vgpr0, $vgpr1, $vgpr2, $vgpr3, $vgpr4
%0:vgpr_32 = COPY $vgpr4
%1:vgpr_32 = COPY $vgpr3
%2:vgpr_32 = COPY $vgpr2
%3:vgpr_32 = COPY $vgpr1
%4:vgpr_32 = COPY $vgpr0
%5:vgpr_32 = V_AND_B32_e64 1, %2, implicit $exec
%6:sreg_32 = V_CMP_NE_U32_e64 1, %5, implicit $exec
%7:sreg_32 = SI_IF %6, %bb.1, implicit-def dead $exec, implicit-def dead $scc, implicit $exec
S_BRANCH %bb.3
bb.1:
successors: %bb.2(0x40000000), %bb.4(0x40000000)
%8:vreg_64 = PHI undef %9:vreg_64, %bb.0, %10, %bb.3
%11:vgpr_32 = PHI %4, %bb.0, undef %12:vgpr_32, %bb.3
%13:sreg_32 = SI_ELSE %7, %bb.4, implicit-def dead $exec, implicit-def dead $scc, implicit $exec
S_BRANCH %bb.2
bb.2:
successors: %bb.4(0x80000000)
%14:vgpr_32 = DS_READ_U8_gfx9 %11, 0, 0, implicit $exec :: (load (s8) from %ir.p1, addrspace 3)
%15:vgpr_32 = DS_READ_U8_gfx9 %11, 1, 0, implicit $exec :: (load (s8) from %ir.p1 + 1, addrspace 3)
%16:vgpr_32 = DS_READ_U8_gfx9 %11, 2, 0, implicit $exec :: (load (s8) from %ir.p1 + 2, addrspace 3)
%17:vgpr_32 = DS_READ_U8_gfx9 %11, 3, 0, implicit $exec :: (load (s8) from %ir.p1 + 3, addrspace 3)
%18:vgpr_32 = DS_READ_U8_gfx9 %11, 4, 0, implicit $exec :: (load (s8) from %ir.p1 + 4, addrspace 3)
%19:vgpr_32 = DS_READ_U8_gfx9 %11, 5, 0, implicit $exec :: (load (s8) from %ir.p1 + 5, addrspace 3)
%20:vgpr_32 = DS_READ_U8_gfx9 %11, 6, 0, implicit $exec :: (load (s8) from %ir.p1 + 6, addrspace 3)
%21:vgpr_32 = DS_READ_U8_gfx9 %11, 7, 0, implicit $exec :: (load (s8) from %ir.p1 + 7, addrspace 3)
%22:vgpr_32 = V_LSHL_OR_B32_e64 %19, 8, %18, implicit $exec
%23:vgpr_32 = V_LSHL_OR_B32_e64 %21, 8, %20, implicit $exec
%24:vgpr_32 = V_LSHL_OR_B32_e64 %23, 16, %22, implicit $exec
%25:vgpr_32 = V_LSHL_OR_B32_e64 %15, 8, %14, implicit $exec
%26:vgpr_32 = V_LSHL_OR_B32_e64 %17, 8, %16, implicit $exec
%27:vgpr_32 = V_LSHL_OR_B32_e64 %26, 16, %25, implicit $exec
%28:vreg_64 = REG_SEQUENCE %27, %subreg.sub0, %24, %subreg.sub1
%29:vreg_64 = COPY %28
S_BRANCH %bb.4
bb.3:
successors: %bb.1(0x80000000)
%30:vgpr_32 = DS_READ_U8_gfx9 %3, 0, 0, implicit $exec :: (load (s8) from %ir.p2, addrspace 3)
%31:vgpr_32 = DS_READ_U8_gfx9 %3, 1, 0, implicit $exec :: (load (s8) from %ir.p2 + 1, addrspace 3)
%32:vgpr_32 = DS_READ_U8_gfx9 %3, 2, 0, implicit $exec :: (load (s8) from %ir.p2 + 2, addrspace 3)
%33:vgpr_32 = DS_READ_U8_gfx9 %3, 3, 0, implicit $exec :: (load (s8) from %ir.p2 + 3, addrspace 3)
%34:vgpr_32 = DS_READ_U8_gfx9 %3, 4, 0, implicit $exec :: (load (s8) from %ir.p2 + 4, addrspace 3)
%35:vgpr_32 = DS_READ_U8_gfx9 %3, 5, 0, implicit $exec :: (load (s8) from %ir.p2 + 5, addrspace 3)
%36:vgpr_32 = DS_READ_U8_gfx9 %3, 6, 0, implicit $exec :: (load (s8) from %ir.p2 + 6, addrspace 3)
%37:vgpr_32 = DS_READ_U8_gfx9 %3, 7, 0, implicit $exec :: (load (s8) from %ir.p2 + 7, addrspace 3)
%38:vgpr_32 = V_LSHL_OR_B32_e64 %35, 8, %34, implicit $exec
%39:vgpr_32 = V_LSHL_OR_B32_e64 %37, 8, %36, implicit $exec
%40:vgpr_32 = V_LSHL_OR_B32_e64 %39, 16, %38, implicit $exec
%41:vgpr_32 = V_LSHL_OR_B32_e64 %31, 8, %30, implicit $exec
%42:vgpr_32 = V_LSHL_OR_B32_e64 %33, 8, %32, implicit $exec
%43:vgpr_32 = V_LSHL_OR_B32_e64 %42, 16, %41, implicit $exec
%44:vreg_64 = REG_SEQUENCE %43, %subreg.sub0, %40, %subreg.sub1
%10:vreg_64 = COPY %44
S_BRANCH %bb.1
bb.4:
%45:vreg_64 = PHI %8, %bb.1, %29, %bb.2
SI_END_CF %13, implicit-def dead $exec, implicit-def dead $scc, implicit $exec
%46:vgpr_32, %47:sreg_32_xm0_xexec = V_ADD_CO_U32_e64 %45.sub0, %1, 0, implicit $exec
%48:vgpr_32, dead $sgpr_null = V_ADDC_U32_e64 %45.sub1, %0, %47, 0, implicit $exec
%49:sreg_32_xm0 = V_READFIRSTLANE_B32 %46, implicit $exec
%50:sreg_32_xm0 = V_READFIRSTLANE_B32 %48, implicit $exec
$sgpr0 = COPY %49
$sgpr1 = COPY %50
SI_RETURN_TO_EPILOG killed $sgpr0, killed $sgpr1
...
# CHECK-CP-JSON: {
# CHECK-CP-JSON-NEXT: "next-use-analysis": {
# CHECK-CP-JSON-NEXT: "furthest-distances": {
# CHECK-CP-JSON-NEXT: "bb.0": [
# CHECK-CP-JSON-NEXT: {
# CHECK-CP-JSON-NEXT: "instr": "%0:vgpr_32 = COPY $vgpr4",
# CHECK-CP-JSON-NEXT: "id": {{[0-9]+}},
# CHECK-CP-JSON-NEXT: "head-len": {{[0-9]+}},
# CHECK-CP-JSON-NEXT: "tail-len": {{[0-9]+}},
# CHECK-CP-JSON-NEXT: "distances": {},
# CHECK-CP-JSON-NEXT: "furthest": {},
# CHECK-CP-JSON-NEXT: "furthest-subreg": {}
# CHECK-CP-JSON-NEXT: },
# CHECK-CP-JSON-NEXT: {
# CHECK-CP-JSON-NEXT: "instr": "%1:vgpr_32 = COPY $vgpr3",
# CHECK-CP-JSON-NEXT: "id": {{[0-9]+}},
# CHECK-CP-JSON-NEXT: "head-len": {{[0-9]+}},
# CHECK-CP-JSON-NEXT: "tail-len": {{[0-9]+}},
# CHECK-CP-JSON-NEXT: "distances": {
# CHECK-CP-JSON-DAG: "%0": 12
# CHECK-CP-JSON: },
# CHECK-CP-JSON-NEXT: "furthest": {
# CHECK-CP-JSON-DAG: "register": "%0",
# CHECK-CP-JSON-DAG: "use": "{{[^"]+}}",
# CHECK-CP-JSON-DAG: "use-mi": "{{[^"]+}}",
# CHECK-CP-JSON-DAG: "distance": 12
# CHECK-CP-JSON: },
# CHECK-CP-JSON-NEXT: "furthest-subreg": {
# CHECK-CP-JSON-DAG: "register": "%0",
# CHECK-CP-JSON-DAG: "use": "{{[^"]+}}",
# CHECK-CP-JSON-DAG: "use-mi": "{{[^"]+}}",
# CHECK-CP-JSON-DAG: "distance": 12
# CHECK-CP-JSON: }
# CHECK-CP-JSON-NEXT: },
# CHECK-CP-JSON-NEXT: {
# CHECK-CP-JSON-NEXT: "instr": "%2:vgpr_32 = COPY $vgpr2",
# CHECK-CP-JSON-NEXT: "id": {{[0-9]+}},
# CHECK-CP-JSON-NEXT: "head-len": {{[0-9]+}},
# CHECK-CP-JSON-NEXT: "tail-len": {{[0-9]+}},
# CHECK-CP-JSON-NEXT: "distances": {
# CHECK-CP-JSON-DAG: "%0": 11
# CHECK-CP-JSON-DAG: "%1": 10
# CHECK-CP-JSON: },
# CHECK-CP-JSON-NEXT: "furthest": {
# CHECK-CP-JSON-DAG: "register": "%0",
# CHECK-CP-JSON-DAG: "use": "{{[^"]+}}",
# CHECK-CP-JSON-DAG: "use-mi": "{{[^"]+}}",
# CHECK-CP-JSON-DAG: "distance": 11
# CHECK-CP-JSON: },
# CHECK-CP-JSON-NEXT: "furthest-subreg": {
# CHECK-CP-JSON-DAG: "register": "%0",
# CHECK-CP-JSON-DAG: "use": "{{[^"]+}}",
# CHECK-CP-JSON-DAG: "use-mi": "{{[^"]+}}",
# CHECK-CP-JSON-DAG: "distance": 11
# CHECK-CP-JSON: }
# CHECK-CP-JSON-NEXT: },
# CHECK-CP-JSON-NEXT: {
# CHECK-CP-JSON-NEXT: "instr": "%3:vgpr_32 = COPY $vgpr1",
# CHECK-CP-JSON-NEXT: "id": {{[0-9]+}},
# CHECK-CP-JSON-NEXT: "head-len": {{[0-9]+}},
# CHECK-CP-JSON-NEXT: "tail-len": {{[0-9]+}},
# CHECK-CP-JSON-NEXT: "distances": {
# CHECK-CP-JSON-DAG: "%0": 10
# CHECK-CP-JSON-DAG: "%1": 9
# CHECK-CP-JSON-DAG: "%2": 2
# CHECK-CP-JSON: },
# CHECK-CP-JSON-NEXT: "furthest": {
# CHECK-CP-JSON-DAG: "register": "%0",
# CHECK-CP-JSON-DAG: "use": "{{[^"]+}}",
# CHECK-CP-JSON-DAG: "use-mi": "{{[^"]+}}",
# CHECK-CP-JSON-DAG: "distance": 10
# CHECK-CP-JSON: },
# CHECK-CP-JSON-NEXT: "furthest-subreg": {
# CHECK-CP-JSON-DAG: "register": "%0",
# CHECK-CP-JSON-DAG: "use": "{{[^"]+}}",
# CHECK-CP-JSON-DAG: "use-mi": "{{[^"]+}}",
# CHECK-CP-JSON-DAG: "distance": 10
# CHECK-CP-JSON: }
# CHECK-CP-JSON-NEXT: },
# CHECK-CP-JSON-NEXT: {
# CHECK-CP-JSON-NEXT: "instr": "%4:vgpr_32 = COPY $vgpr0",
# CHECK-CP-JSON-NEXT: "id": {{[0-9]+}},
# CHECK-CP-JSON-NEXT: "head-len": {{[0-9]+}},
# CHECK-CP-JSON-NEXT: "tail-len": {{[0-9]+}},
# CHECK-CP-JSON-NEXT: "distances": {
# CHECK-CP-JSON-DAG: "%0": 9
# CHECK-CP-JSON-DAG: "%1": 8
# CHECK-CP-JSON-DAG: "%2": 1
# CHECK-CP-JSON-DAG: "%3": 5
# CHECK-CP-JSON: },
# CHECK-CP-JSON-NEXT: "furthest": {
# CHECK-CP-JSON-DAG: "register": "%0",
# CHECK-CP-JSON-DAG: "use": "{{[^"]+}}",
# CHECK-CP-JSON-DAG: "use-mi": "{{[^"]+}}",
# CHECK-CP-JSON-DAG: "distance": 9
# CHECK-CP-JSON: },
# CHECK-CP-JSON-NEXT: "furthest-subreg": {
# CHECK-CP-JSON-DAG: "register": "%0",
# CHECK-CP-JSON-DAG: "use": "{{[^"]+}}",
# CHECK-CP-JSON-DAG: "use-mi": "{{[^"]+}}",
# CHECK-CP-JSON-DAG: "distance": 9
# CHECK-CP-JSON: }
# CHECK-CP-JSON-NEXT: },
# CHECK-CP-JSON-NEXT: {
# CHECK-CP-JSON-NEXT: "instr": "%5:vgpr_32 = V_AND_B32_e64 1, %2, implicit $exec",
# CHECK-CP-JSON-NEXT: "id": {{[0-9]+}},
# CHECK-CP-JSON-NEXT: "head-len": {{[0-9]+}},
# CHECK-CP-JSON-NEXT: "tail-len": {{[0-9]+}},
# CHECK-CP-JSON-NEXT: "distances": {
# CHECK-CP-JSON-DAG: "%0": 8
# CHECK-CP-JSON-DAG: "%1": 7
# CHECK-CP-JSON-DAG: "%2": 0
# CHECK-CP-JSON-DAG: "%3": 4
# CHECK-CP-JSON-DAG: "%4": 3
# CHECK-CP-JSON: },
# CHECK-CP-JSON-NEXT: "furthest": {
# CHECK-CP-JSON-DAG: "register": "%0",
# CHECK-CP-JSON-DAG: "use": "{{[^"]+}}",
# CHECK-CP-JSON-DAG: "use-mi": "{{[^"]+}}",
# CHECK-CP-JSON-DAG: "distance": 8
# CHECK-CP-JSON: },
# CHECK-CP-JSON-NEXT: "furthest-subreg": {
# CHECK-CP-JSON-DAG: "register": "%0",
# CHECK-CP-JSON-DAG: "use": "{{[^"]+}}",
# CHECK-CP-JSON-DAG: "use-mi": "{{[^"]+}}",
# CHECK-CP-JSON-DAG: "distance": 8
# CHECK-CP-JSON: }
# CHECK-CP-JSON-NEXT: },
# CHECK-CP-JSON-NEXT: {
# CHECK-CP-JSON-NEXT: "instr": "%6:sreg_32 = V_CMP_NE_U32_e64 1, %5, implicit $exec",
# CHECK-CP-JSON-NEXT: "id": {{[0-9]+}},
# CHECK-CP-JSON-NEXT: "head-len": {{[0-9]+}},
# CHECK-CP-JSON-NEXT: "tail-len": {{[0-9]+}},
# CHECK-CP-JSON-NEXT: "distances": {
# CHECK-CP-JSON-DAG: "%0": 7
# CHECK-CP-JSON-DAG: "%1": 6
# CHECK-CP-JSON-DAG: "%3": 3
# CHECK-CP-JSON-DAG: "%4": 2
# CHECK-CP-JSON-DAG: "%5": 0
# CHECK-CP-JSON: },
# CHECK-CP-JSON-NEXT: "furthest": {
# CHECK-CP-JSON-DAG: "register": "%0",
# CHECK-CP-JSON-DAG: "use": "{{[^"]+}}",
# CHECK-CP-JSON-DAG: "use-mi": "{{[^"]+}}",
# CHECK-CP-JSON-DAG: "distance": 7
# CHECK-CP-JSON: },
# CHECK-CP-JSON-NEXT: "furthest-subreg": {
# CHECK-CP-JSON-DAG: "register": "%0",
# CHECK-CP-JSON-DAG: "use": "{{[^"]+}}",
# CHECK-CP-JSON-DAG: "use-mi": "{{[^"]+}}",
# CHECK-CP-JSON-DAG: "distance": 7
# CHECK-CP-JSON: }
# CHECK-CP-JSON-NEXT: },
# CHECK-CP-JSON-NEXT: {
# CHECK-CP-JSON-NEXT: "instr": "%7:sreg_32 = SI_IF %6, %bb.1, implicit-def dead $exec, implicit-def dead $scc, implicit $exec",
# CHECK-CP-JSON-NEXT: "id": {{[0-9]+}},
# CHECK-CP-JSON-NEXT: "head-len": {{[0-9]+}},
# CHECK-CP-JSON-NEXT: "tail-len": {{[0-9]+}},
# CHECK-CP-JSON-NEXT: "distances": {
# CHECK-CP-JSON-DAG: "%0": 6
# CHECK-CP-JSON-DAG: "%1": 5
# CHECK-CP-JSON-DAG: "%3": 2
# CHECK-CP-JSON-DAG: "%4": 1
# CHECK-CP-JSON-DAG: "%6": 0
# CHECK-CP-JSON: },
# CHECK-CP-JSON-NEXT: "furthest": {
# CHECK-CP-JSON-DAG: "register": "%0",
# CHECK-CP-JSON-DAG: "use": "{{[^"]+}}",
# CHECK-CP-JSON-DAG: "use-mi": "{{[^"]+}}",
# CHECK-CP-JSON-DAG: "distance": 6
# CHECK-CP-JSON: },
# CHECK-CP-JSON-NEXT: "furthest-subreg": {
# CHECK-CP-JSON-DAG: "register": "%0",
# CHECK-CP-JSON-DAG: "use": "{{[^"]+}}",
# CHECK-CP-JSON-DAG: "use-mi": "{{[^"]+}}",
# CHECK-CP-JSON-DAG: "distance": 6
# CHECK-CP-JSON: }
# CHECK-CP-JSON-NEXT: },
# CHECK-CP-JSON-NEXT: {
# CHECK-CP-JSON-NEXT: "instr": "S_BRANCH %bb.3",
# CHECK-CP-JSON-NEXT: "id": {{[0-9]+}},
# CHECK-CP-JSON-NEXT: "head-len": {{[0-9]+}},
# CHECK-CP-JSON-NEXT: "tail-len": {{[0-9]+}},
# CHECK-CP-JSON-NEXT: "distances": {
# CHECK-CP-JSON-DAG: "%0": 5
# CHECK-CP-JSON-DAG: "%1": 4
# CHECK-CP-JSON-DAG: "%3": 1
# CHECK-CP-JSON-DAG: "%4": 0
# CHECK-CP-JSON-DAG: "%7": 1
# CHECK-CP-JSON: },
# CHECK-CP-JSON-NEXT: "furthest": {
# CHECK-CP-JSON-DAG: "register": "%0",
# CHECK-CP-JSON-DAG: "use": "{{[^"]+}}",
# CHECK-CP-JSON-DAG: "use-mi": "{{[^"]+}}",
# CHECK-CP-JSON-DAG: "distance": 5
# CHECK-CP-JSON: },
# CHECK-CP-JSON-NEXT: "furthest-subreg": {
# CHECK-CP-JSON-DAG: "register": "%0",
# CHECK-CP-JSON-DAG: "use": "{{[^"]+}}",
# CHECK-CP-JSON-DAG: "use-mi": "{{[^"]+}}",
# CHECK-CP-JSON-DAG: "distance": 5
# CHECK-CP-JSON: }
# CHECK-CP-JSON-NEXT: }
# CHECK-CP-JSON-NEXT: ],
# CHECK-CP-JSON-NEXT: "bb.1": [
# CHECK-CP-JSON-NEXT: {
# CHECK-CP-JSON-NEXT: "instr": "%8:vreg_64 = PHI undef %9:vreg_64, %bb.0, %10, %bb.3",
# CHECK-CP-JSON-NEXT: "id": {{[0-9]+}},
# CHECK-CP-JSON-NEXT: "head-len": {{[0-9]+}},
# CHECK-CP-JSON-NEXT: "tail-len": {{[0-9]+}},
# CHECK-CP-JSON-NEXT: "distances": {
# CHECK-CP-JSON-DAG: "%0": 4
# CHECK-CP-JSON-DAG: "%1": 3
# CHECK-CP-JSON-DAG: "%7": 0
# CHECK-CP-JSON: },
# CHECK-CP-JSON-NEXT: "furthest": {
# CHECK-CP-JSON-DAG: "register": "%0",
# CHECK-CP-JSON-DAG: "use": "{{[^"]+}}",
# CHECK-CP-JSON-DAG: "use-mi": "{{[^"]+}}",
# CHECK-CP-JSON-DAG: "distance": 4
# CHECK-CP-JSON: },
# CHECK-CP-JSON-NEXT: "furthest-subreg": {
# CHECK-CP-JSON-DAG: "register": "%0",
# CHECK-CP-JSON-DAG: "use": "{{[^"]+}}",
# CHECK-CP-JSON-DAG: "use-mi": "{{[^"]+}}",
# CHECK-CP-JSON-DAG: "distance": 4
# CHECK-CP-JSON: }
# CHECK-CP-JSON-NEXT: },
# CHECK-CP-JSON-NEXT: {
# CHECK-CP-JSON-NEXT: "instr": "%11:vgpr_32 = PHI %4, %bb.0, undef %12:vgpr_32, %bb.3",
# CHECK-CP-JSON-NEXT: "id": {{[0-9]+}},
# CHECK-CP-JSON-NEXT: "head-len": {{[0-9]+}},
# CHECK-CP-JSON-NEXT: "tail-len": {{[0-9]+}},
# CHECK-CP-JSON-NEXT: "distances": {
# CHECK-CP-JSON-DAG: "%0": 4
# CHECK-CP-JSON-DAG: "%1": 3
# CHECK-CP-JSON-DAG: "%7": 0
# CHECK-CP-JSON-DAG: "%8": 1
# CHECK-CP-JSON: },
# CHECK-CP-JSON-NEXT: "furthest": {
# CHECK-CP-JSON-DAG: "register": "%0",
# CHECK-CP-JSON-DAG: "use": "{{[^"]+}}",
# CHECK-CP-JSON-DAG: "use-mi": "{{[^"]+}}",
# CHECK-CP-JSON-DAG: "distance": 4
# CHECK-CP-JSON: },
# CHECK-CP-JSON-NEXT: "furthest-subreg": {
# CHECK-CP-JSON-DAG: "register": "%0",
# CHECK-CP-JSON-DAG: "use": "{{[^"]+}}",
# CHECK-CP-JSON-DAG: "use-mi": "{{[^"]+}}",
# CHECK-CP-JSON-DAG: "distance": 4
# CHECK-CP-JSON: }
# CHECK-CP-JSON-NEXT: },
# CHECK-CP-JSON-NEXT: {
# CHECK-CP-JSON-NEXT: "instr": "%13:sreg_32 = SI_ELSE %7, %bb.4, implicit-def dead $exec, implicit-def dead $scc, implicit $exec",
# CHECK-CP-JSON-NEXT: "id": {{[0-9]+}},
# CHECK-CP-JSON-NEXT: "head-len": {{[0-9]+}},
# CHECK-CP-JSON-NEXT: "tail-len": {{[0-9]+}},
# CHECK-CP-JSON-NEXT: "distances": {
# CHECK-CP-JSON-DAG: "%0": 4
# CHECK-CP-JSON-DAG: "%1": 3
# CHECK-CP-JSON-DAG: "%7": 0
# CHECK-CP-JSON-DAG: "%8": 1
# CHECK-CP-JSON-DAG: "%11": 2
# CHECK-CP-JSON: },
# CHECK-CP-JSON-NEXT: "furthest": {
# CHECK-CP-JSON-DAG: "register": "%0",
# CHECK-CP-JSON-DAG: "use": "{{[^"]+}}",
# CHECK-CP-JSON-DAG: "use-mi": "{{[^"]+}}",
# CHECK-CP-JSON-DAG: "distance": 4
# CHECK-CP-JSON: },
# CHECK-CP-JSON-NEXT: "furthest-subreg": {
# CHECK-CP-JSON-DAG: "register": "%0",
# CHECK-CP-JSON-DAG: "use": "{{[^"]+}}",
# CHECK-CP-JSON-DAG: "use-mi": "{{[^"]+}}",
# CHECK-CP-JSON-DAG: "distance": 4
# CHECK-CP-JSON: }
# CHECK-CP-JSON-NEXT: },
# CHECK-CP-JSON-NEXT: {
# CHECK-CP-JSON-NEXT: "instr": "S_BRANCH %bb.2",
# CHECK-CP-JSON-NEXT: "id": {{[0-9]+}},
# CHECK-CP-JSON-NEXT: "head-len": {{[0-9]+}},
# CHECK-CP-JSON-NEXT: "tail-len": {{[0-9]+}},
# CHECK-CP-JSON-NEXT: "distances": {
# CHECK-CP-JSON-DAG: "%0": 3
# CHECK-CP-JSON-DAG: "%1": 2
# CHECK-CP-JSON-DAG: "%8": 0
# CHECK-CP-JSON-DAG: "%11": 1
# CHECK-CP-JSON-DAG: "%13": 1
# CHECK-CP-JSON: },
# CHECK-CP-JSON-NEXT: "furthest": {
# CHECK-CP-JSON-DAG: "register": "%0",
# CHECK-CP-JSON-DAG: "use": "{{[^"]+}}",
# CHECK-CP-JSON-DAG: "use-mi": "{{[^"]+}}",
# CHECK-CP-JSON-DAG: "distance": 3
# CHECK-CP-JSON: },
# CHECK-CP-JSON-NEXT: "furthest-subreg": {
# CHECK-CP-JSON-DAG: "register": "%0",
# CHECK-CP-JSON-DAG: "use": "{{[^"]+}}",
# CHECK-CP-JSON-DAG: "use-mi": "{{[^"]+}}",
# CHECK-CP-JSON-DAG: "distance": 3
# CHECK-CP-JSON: }
# CHECK-CP-JSON-NEXT: }
# CHECK-CP-JSON-NEXT: ],
# CHECK-CP-JSON-NEXT: "bb.2": [
# CHECK-CP-JSON-NEXT: {
# CHECK-CP-JSON-NEXT: "instr": "%14:vgpr_32 = DS_READ_U8_gfx9 %11, 0, 0, implicit $exec :: (load (s8) from %ir.p1, addrspace 3)",
# CHECK-CP-JSON-NEXT: "id": {{[0-9]+}},
# CHECK-CP-JSON-NEXT: "head-len": {{[0-9]+}},
# CHECK-CP-JSON-NEXT: "tail-len": {{[0-9]+}},
# CHECK-CP-JSON-NEXT: "distances": {
# CHECK-CP-JSON-DAG: "%0": 19
# CHECK-CP-JSON-DAG: "%1": 18
# CHECK-CP-JSON-DAG: "%11": 0
# CHECK-CP-JSON-DAG: "%13": 17
# CHECK-CP-JSON: },
# CHECK-CP-JSON-NEXT: "furthest": {
# CHECK-CP-JSON-DAG: "register": "%0",
# CHECK-CP-JSON-DAG: "use": "{{[^"]+}}",
# CHECK-CP-JSON-DAG: "use-mi": "{{[^"]+}}",
# CHECK-CP-JSON-DAG: "distance": 19
# CHECK-CP-JSON: },
# CHECK-CP-JSON-NEXT: "furthest-subreg": {
# CHECK-CP-JSON-DAG: "register": "%0",
# CHECK-CP-JSON-DAG: "use": "{{[^"]+}}",
# CHECK-CP-JSON-DAG: "use-mi": "{{[^"]+}}",
# CHECK-CP-JSON-DAG: "distance": 19
# CHECK-CP-JSON: }
# CHECK-CP-JSON-NEXT: },
# CHECK-CP-JSON-NEXT: {
# CHECK-CP-JSON-NEXT: "instr": "%15:vgpr_32 = DS_READ_U8_gfx9 %11, 1, 0, implicit $exec :: (load (s8) from %ir.p1 + 1, addrspace 3)",
# CHECK-CP-JSON-NEXT: "id": {{[0-9]+}},
# CHECK-CP-JSON-NEXT: "head-len": {{[0-9]+}},
# CHECK-CP-JSON-NEXT: "tail-len": {{[0-9]+}},
# CHECK-CP-JSON-NEXT: "distances": {
# CHECK-CP-JSON-DAG: "%0": 18
# CHECK-CP-JSON-DAG: "%1": 17
# CHECK-CP-JSON-DAG: "%11": 0
# CHECK-CP-JSON-DAG: "%13": 16
# CHECK-CP-JSON-DAG: "%14": 10
# CHECK-CP-JSON: },
# CHECK-CP-JSON-NEXT: "furthest": {
# CHECK-CP-JSON-DAG: "register": "%0",
# CHECK-CP-JSON-DAG: "use": "{{[^"]+}}",
# CHECK-CP-JSON-DAG: "use-mi": "{{[^"]+}}",
# CHECK-CP-JSON-DAG: "distance": 18
# CHECK-CP-JSON: },
# CHECK-CP-JSON-NEXT: "furthest-subreg": {
# CHECK-CP-JSON-DAG: "register": "%0",
# CHECK-CP-JSON-DAG: "use": "{{[^"]+}}",
# CHECK-CP-JSON-DAG: "use-mi": "{{[^"]+}}",
# CHECK-CP-JSON-DAG: "distance": 18
# CHECK-CP-JSON: }
# CHECK-CP-JSON-NEXT: },
# CHECK-CP-JSON-NEXT: {
# CHECK-CP-JSON-NEXT: "instr": "%16:vgpr_32 = DS_READ_U8_gfx9 %11, 2, 0, implicit $exec :: (load (s8) from %ir.p1 + 2, addrspace 3)",
# CHECK-CP-JSON-NEXT: "id": {{[0-9]+}},
# CHECK-CP-JSON-NEXT: "head-len": {{[0-9]+}},
# CHECK-CP-JSON-NEXT: "tail-len": {{[0-9]+}},
# CHECK-CP-JSON-NEXT: "distances": {
# CHECK-CP-JSON-DAG: "%0": 17
# CHECK-CP-JSON-DAG: "%1": 16
# CHECK-CP-JSON-DAG: "%11": 0
# CHECK-CP-JSON-DAG: "%13": 15
# CHECK-CP-JSON-DAG: "%14": 9
# CHECK-CP-JSON-DAG: "%15": 9
# CHECK-CP-JSON: },
# CHECK-CP-JSON-NEXT: "furthest": {
# CHECK-CP-JSON-DAG: "register": "%0",
# CHECK-CP-JSON-DAG: "use": "{{[^"]+}}",
# CHECK-CP-JSON-DAG: "use-mi": "{{[^"]+}}",
# CHECK-CP-JSON-DAG: "distance": 17
# CHECK-CP-JSON: },
# CHECK-CP-JSON-NEXT: "furthest-subreg": {
# CHECK-CP-JSON-DAG: "register": "%0",
# CHECK-CP-JSON-DAG: "use": "{{[^"]+}}",
# CHECK-CP-JSON-DAG: "use-mi": "{{[^"]+}}",
# CHECK-CP-JSON-DAG: "distance": 17
# CHECK-CP-JSON: }
# CHECK-CP-JSON-NEXT: },
# CHECK-CP-JSON-NEXT: {
# CHECK-CP-JSON-NEXT: "instr": "%17:vgpr_32 = DS_READ_U8_gfx9 %11, 3, 0, implicit $exec :: (load (s8) from %ir.p1 + 3, addrspace 3)",
# CHECK-CP-JSON-NEXT: "id": {{[0-9]+}},
# CHECK-CP-JSON-NEXT: "head-len": {{[0-9]+}},
# CHECK-CP-JSON-NEXT: "tail-len": {{[0-9]+}},
# CHECK-CP-JSON-NEXT: "distances": {
# CHECK-CP-JSON-DAG: "%0": 16
# CHECK-CP-JSON-DAG: "%1": 15
# CHECK-CP-JSON-DAG: "%11": 0
# CHECK-CP-JSON-DAG: "%13": 14
# CHECK-CP-JSON-DAG: "%14": 8
# CHECK-CP-JSON-DAG: "%15": 8
# CHECK-CP-JSON-DAG: "%16": 9
# CHECK-CP-JSON: },
# CHECK-CP-JSON-NEXT: "furthest": {
# CHECK-CP-JSON-DAG: "register": "%0",
# CHECK-CP-JSON-DAG: "use": "{{[^"]+}}",
# CHECK-CP-JSON-DAG: "use-mi": "{{[^"]+}}",
# CHECK-CP-JSON-DAG: "distance": 16
# CHECK-CP-JSON: },
# CHECK-CP-JSON-NEXT: "furthest-subreg": {
# CHECK-CP-JSON-DAG: "register": "%0",
# CHECK-CP-JSON-DAG: "use": "{{[^"]+}}",
# CHECK-CP-JSON-DAG: "use-mi": "{{[^"]+}}",
# CHECK-CP-JSON-DAG: "distance": 16
# CHECK-CP-JSON: }
# CHECK-CP-JSON-NEXT: },
# CHECK-CP-JSON-NEXT: {
# CHECK-CP-JSON-NEXT: "instr": "%18:vgpr_32 = DS_READ_U8_gfx9 %11, 4, 0, implicit $exec :: (load (s8) from %ir.p1 + 4, addrspace 3)",
# CHECK-CP-JSON-NEXT: "id": {{[0-9]+}},
# CHECK-CP-JSON-NEXT: "head-len": {{[0-9]+}},
# CHECK-CP-JSON-NEXT: "tail-len": {{[0-9]+}},
# CHECK-CP-JSON-NEXT: "distances": {
# CHECK-CP-JSON-DAG: "%0": 15
# CHECK-CP-JSON-DAG: "%1": 14
# CHECK-CP-JSON-DAG: "%11": 0
# CHECK-CP-JSON-DAG: "%13": 13
# CHECK-CP-JSON-DAG: "%14": 7
# CHECK-CP-JSON-DAG: "%15": 7
# CHECK-CP-JSON-DAG: "%16": 8
# CHECK-CP-JSON-DAG: "%17": 8
# CHECK-CP-JSON: },
# CHECK-CP-JSON-NEXT: "furthest": {
# CHECK-CP-JSON-DAG: "register": "%0",
# CHECK-CP-JSON-DAG: "use": "{{[^"]+}}",
# CHECK-CP-JSON-DAG: "use-mi": "{{[^"]+}}",
# CHECK-CP-JSON-DAG: "distance": 15
# CHECK-CP-JSON: },
# CHECK-CP-JSON-NEXT: "furthest-subreg": {
# CHECK-CP-JSON-DAG: "register": "%0",
# CHECK-CP-JSON-DAG: "use": "{{[^"]+}}",
# CHECK-CP-JSON-DAG: "use-mi": "{{[^"]+}}",
# CHECK-CP-JSON-DAG: "distance": 15
# CHECK-CP-JSON: }
# CHECK-CP-JSON-NEXT: },
# CHECK-CP-JSON-NEXT: {
# CHECK-CP-JSON-NEXT: "instr": "%19:vgpr_32 = DS_READ_U8_gfx9 %11, 5, 0, implicit $exec :: (load (s8) from %ir.p1 + 5, addrspace 3)",
# CHECK-CP-JSON-NEXT: "id": {{[0-9]+}},
# CHECK-CP-JSON-NEXT: "head-len": {{[0-9]+}},
# CHECK-CP-JSON-NEXT: "tail-len": {{[0-9]+}},
# CHECK-CP-JSON-NEXT: "distances": {
# CHECK-CP-JSON-DAG: "%0": 14
# CHECK-CP-JSON-DAG: "%1": 13
# CHECK-CP-JSON-DAG: "%11": 0
# CHECK-CP-JSON-DAG: "%13": 12
# CHECK-CP-JSON-DAG: "%14": 6
# CHECK-CP-JSON-DAG: "%15": 6
# CHECK-CP-JSON-DAG: "%16": 7
# CHECK-CP-JSON-DAG: "%17": 7
# CHECK-CP-JSON-DAG: "%18": 3
# CHECK-CP-JSON: },
# CHECK-CP-JSON-NEXT: "furthest": {
# CHECK-CP-JSON-DAG: "register": "%0",
# CHECK-CP-JSON-DAG: "use": "{{[^"]+}}",
# CHECK-CP-JSON-DAG: "use-mi": "{{[^"]+}}",
# CHECK-CP-JSON-DAG: "distance": 14
# CHECK-CP-JSON: },
# CHECK-CP-JSON-NEXT: "furthest-subreg": {
# CHECK-CP-JSON-DAG: "register": "%0",
# CHECK-CP-JSON-DAG: "use": "{{[^"]+}}",
# CHECK-CP-JSON-DAG: "use-mi": "{{[^"]+}}",
# CHECK-CP-JSON-DAG: "distance": 14
# CHECK-CP-JSON: }
# CHECK-CP-JSON-NEXT: },
# CHECK-CP-JSON-NEXT: {
# CHECK-CP-JSON-NEXT: "instr": "%20:vgpr_32 = DS_READ_U8_gfx9 %11, 6, 0, implicit $exec :: (load (s8) from %ir.p1 + 6, addrspace 3)",
# CHECK-CP-JSON-NEXT: "id": {{[0-9]+}},
# CHECK-CP-JSON-NEXT: "head-len": {{[0-9]+}},
# CHECK-CP-JSON-NEXT: "tail-len": {{[0-9]+}},
# CHECK-CP-JSON-NEXT: "distances": {
# CHECK-CP-JSON-DAG: "%0": 13
# CHECK-CP-JSON-DAG: "%1": 12
# CHECK-CP-JSON-DAG: "%11": 0
# CHECK-CP-JSON-DAG: "%13": 11
# CHECK-CP-JSON-DAG: "%14": 5
# CHECK-CP-JSON-DAG: "%15": 5
# CHECK-CP-JSON-DAG: "%16": 6
# CHECK-CP-JSON-DAG: "%17": 6
# CHECK-CP-JSON-DAG: "%18": 2
# CHECK-CP-JSON-DAG: "%19": 2
# CHECK-CP-JSON: },
# CHECK-CP-JSON-NEXT: "furthest": {
# CHECK-CP-JSON-DAG: "register": "%0",
# CHECK-CP-JSON-DAG: "use": "{{[^"]+}}",
# CHECK-CP-JSON-DAG: "use-mi": "{{[^"]+}}",
# CHECK-CP-JSON-DAG: "distance": 13
# CHECK-CP-JSON: },
# CHECK-CP-JSON-NEXT: "furthest-subreg": {
# CHECK-CP-JSON-DAG: "register": "%0",
# CHECK-CP-JSON-DAG: "use": "{{[^"]+}}",
# CHECK-CP-JSON-DAG: "use-mi": "{{[^"]+}}",
# CHECK-CP-JSON-DAG: "distance": 13
# CHECK-CP-JSON: }
# CHECK-CP-JSON-NEXT: },
# CHECK-CP-JSON-NEXT: {
# CHECK-CP-JSON-NEXT: "instr": "%21:vgpr_32 = DS_READ_U8_gfx9 %11, 7, 0, implicit $exec :: (load (s8) from %ir.p1 + 7, addrspace 3)",
# CHECK-CP-JSON-NEXT: "id": {{[0-9]+}},
# CHECK-CP-JSON-NEXT: "head-len": {{[0-9]+}},
# CHECK-CP-JSON-NEXT: "tail-len": {{[0-9]+}},
# CHECK-CP-JSON-NEXT: "distances": {
# CHECK-CP-JSON-DAG: "%0": 12
# CHECK-CP-JSON-DAG: "%1": 11
# CHECK-CP-JSON-DAG: "%11": 0
# CHECK-CP-JSON-DAG: "%13": 10
# CHECK-CP-JSON-DAG: "%14": 4
# CHECK-CP-JSON-DAG: "%15": 4
# CHECK-CP-JSON-DAG: "%16": 5
# CHECK-CP-JSON-DAG: "%17": 5
# CHECK-CP-JSON-DAG: "%18": 1
# CHECK-CP-JSON-DAG: "%19": 1
# CHECK-CP-JSON-DAG: "%20": 2
# CHECK-CP-JSON: },
# CHECK-CP-JSON-NEXT: "furthest": {
# CHECK-CP-JSON-DAG: "register": "%0",
# CHECK-CP-JSON-DAG: "use": "{{[^"]+}}",
# CHECK-CP-JSON-DAG: "use-mi": "{{[^"]+}}",
# CHECK-CP-JSON-DAG: "distance": 12
# CHECK-CP-JSON: },
# CHECK-CP-JSON-NEXT: "furthest-subreg": {
# CHECK-CP-JSON-DAG: "register": "%0",
# CHECK-CP-JSON-DAG: "use": "{{[^"]+}}",
# CHECK-CP-JSON-DAG: "use-mi": "{{[^"]+}}",
# CHECK-CP-JSON-DAG: "distance": 12
# CHECK-CP-JSON: }
# CHECK-CP-JSON-NEXT: },
# CHECK-CP-JSON-NEXT: {
# CHECK-CP-JSON-NEXT: "instr": "%22:vgpr_32 = V_LSHL_OR_B32_e64 %19, 8, %18, implicit $exec",
# CHECK-CP-JSON-NEXT: "id": {{[0-9]+}},
# CHECK-CP-JSON-NEXT: "head-len": {{[0-9]+}},
# CHECK-CP-JSON-NEXT: "tail-len": {{[0-9]+}},
# CHECK-CP-JSON-NEXT: "distances": {
# CHECK-CP-JSON-DAG: "%0": 11
# CHECK-CP-JSON-DAG: "%1": 10
# CHECK-CP-JSON-DAG: "%13": 9
# CHECK-CP-JSON-DAG: "%14": 3
# CHECK-CP-JSON-DAG: "%15": 3
# CHECK-CP-JSON-DAG: "%16": 4
# CHECK-CP-JSON-DAG: "%17": 4
# CHECK-CP-JSON-DAG: "%18": 0
# CHECK-CP-JSON-DAG: "%19": 0
# CHECK-CP-JSON-DAG: "%20": 1
# CHECK-CP-JSON-DAG: "%21": 1
# CHECK-CP-JSON: },
# CHECK-CP-JSON-NEXT: "furthest": {
# CHECK-CP-JSON-DAG: "register": "%0",
# CHECK-CP-JSON-DAG: "use": "{{[^"]+}}",
# CHECK-CP-JSON-DAG: "use-mi": "{{[^"]+}}",
# CHECK-CP-JSON-DAG: "distance": 11
# CHECK-CP-JSON: },
# CHECK-CP-JSON-NEXT: "furthest-subreg": {
# CHECK-CP-JSON-DAG: "register": "%0",
# CHECK-CP-JSON-DAG: "use": "{{[^"]+}}",
# CHECK-CP-JSON-DAG: "use-mi": "{{[^"]+}}",
# CHECK-CP-JSON-DAG: "distance": 11
# CHECK-CP-JSON: }
# CHECK-CP-JSON-NEXT: },
# CHECK-CP-JSON-NEXT: {
# CHECK-CP-JSON-NEXT: "instr": "%23:vgpr_32 = V_LSHL_OR_B32_e64 %21, 8, %20, implicit $exec",
# CHECK-CP-JSON-NEXT: "id": {{[0-9]+}},
# CHECK-CP-JSON-NEXT: "head-len": {{[0-9]+}},
# CHECK-CP-JSON-NEXT: "tail-len": {{[0-9]+}},
# CHECK-CP-JSON-NEXT: "distances": {
# CHECK-CP-JSON-DAG: "%0": 10
# CHECK-CP-JSON-DAG: "%1": 9
# CHECK-CP-JSON-DAG: "%13": 8
# CHECK-CP-JSON-DAG: "%14": 2
# CHECK-CP-JSON-DAG: "%15": 2
# CHECK-CP-JSON-DAG: "%16": 3
# CHECK-CP-JSON-DAG: "%17": 3
# CHECK-CP-JSON-DAG: "%20": 0
# CHECK-CP-JSON-DAG: "%21": 0
# CHECK-CP-JSON-DAG: "%22": 1
# CHECK-CP-JSON: },
# CHECK-CP-JSON-NEXT: "furthest": {
# CHECK-CP-JSON-DAG: "register": "%0",
# CHECK-CP-JSON-DAG: "use": "{{[^"]+}}",
# CHECK-CP-JSON-DAG: "use-mi": "{{[^"]+}}",
# CHECK-CP-JSON-DAG: "distance": 10
# CHECK-CP-JSON: },
# CHECK-CP-JSON-NEXT: "furthest-subreg": {
# CHECK-CP-JSON-DAG: "register": "%0",
# CHECK-CP-JSON-DAG: "use": "{{[^"]+}}",
# CHECK-CP-JSON-DAG: "use-mi": "{{[^"]+}}",
# CHECK-CP-JSON-DAG: "distance": 10
# CHECK-CP-JSON: }
# CHECK-CP-JSON-NEXT: },
# CHECK-CP-JSON-NEXT: {
# CHECK-CP-JSON-NEXT: "instr": "%24:vgpr_32 = V_LSHL_OR_B32_e64 %23, 16, %22, implicit $exec",
# CHECK-CP-JSON-NEXT: "id": {{[0-9]+}},
# CHECK-CP-JSON-NEXT: "head-len": {{[0-9]+}},
# CHECK-CP-JSON-NEXT: "tail-len": {{[0-9]+}},
# CHECK-CP-JSON-NEXT: "distances": {
# CHECK-CP-JSON-DAG: "%0": 9
# CHECK-CP-JSON-DAG: "%1": 8
# CHECK-CP-JSON-DAG: "%13": 7
# CHECK-CP-JSON-DAG: "%14": 1
# CHECK-CP-JSON-DAG: "%15": 1
# CHECK-CP-JSON-DAG: "%16": 2
# CHECK-CP-JSON-DAG: "%17": 2
# CHECK-CP-JSON-DAG: "%22": 0
# CHECK-CP-JSON-DAG: "%23": 0
# CHECK-CP-JSON: },
# CHECK-CP-JSON-NEXT: "furthest": {
# CHECK-CP-JSON-DAG: "register": "%0",
# CHECK-CP-JSON-DAG: "use": "{{[^"]+}}",
# CHECK-CP-JSON-DAG: "use-mi": "{{[^"]+}}",
# CHECK-CP-JSON-DAG: "distance": 9
# CHECK-CP-JSON: },
# CHECK-CP-JSON-NEXT: "furthest-subreg": {
# CHECK-CP-JSON-DAG: "register": "%0",
# CHECK-CP-JSON-DAG: "use": "{{[^"]+}}",
# CHECK-CP-JSON-DAG: "use-mi": "{{[^"]+}}",
# CHECK-CP-JSON-DAG: "distance": 9
# CHECK-CP-JSON: }
# CHECK-CP-JSON-NEXT: },
# CHECK-CP-JSON-NEXT: {
# CHECK-CP-JSON-NEXT: "instr": "%25:vgpr_32 = V_LSHL_OR_B32_e64 %15, 8, %14, implicit $exec",
# CHECK-CP-JSON-NEXT: "id": {{[0-9]+}},
# CHECK-CP-JSON-NEXT: "head-len": {{[0-9]+}},
# CHECK-CP-JSON-NEXT: "tail-len": {{[0-9]+}},
# CHECK-CP-JSON-NEXT: "distances": {
# CHECK-CP-JSON-DAG: "%0": 8
# CHECK-CP-JSON-DAG: "%1": 7
# CHECK-CP-JSON-DAG: "%13": 6
# CHECK-CP-JSON-DAG: "%14": 0
# CHECK-CP-JSON-DAG: "%15": 0
# CHECK-CP-JSON-DAG: "%16": 1
# CHECK-CP-JSON-DAG: "%17": 1
# CHECK-CP-JSON-DAG: "%24": 3
# CHECK-CP-JSON: },
# CHECK-CP-JSON-NEXT: "furthest": {
# CHECK-CP-JSON-DAG: "register": "%0",
# CHECK-CP-JSON-DAG: "use": "{{[^"]+}}",
# CHECK-CP-JSON-DAG: "use-mi": "{{[^"]+}}",
# CHECK-CP-JSON-DAG: "distance": 8
# CHECK-CP-JSON: },
# CHECK-CP-JSON-NEXT: "furthest-subreg": {
# CHECK-CP-JSON-DAG: "register": "%0",
# CHECK-CP-JSON-DAG: "use": "{{[^"]+}}",
# CHECK-CP-JSON-DAG: "use-mi": "{{[^"]+}}",
# CHECK-CP-JSON-DAG: "distance": 8
# CHECK-CP-JSON: }
# CHECK-CP-JSON-NEXT: },
# CHECK-CP-JSON-NEXT: {
# CHECK-CP-JSON-NEXT: "instr": "%26:vgpr_32 = V_LSHL_OR_B32_e64 %17, 8, %16, implicit $exec",
# CHECK-CP-JSON-NEXT: "id": {{[0-9]+}},
# CHECK-CP-JSON-NEXT: "head-len": {{[0-9]+}},
# CHECK-CP-JSON-NEXT: "tail-len": {{[0-9]+}},
# CHECK-CP-JSON-NEXT: "distances": {
# CHECK-CP-JSON-DAG: "%0": 7
# CHECK-CP-JSON-DAG: "%1": 6
# CHECK-CP-JSON-DAG: "%13": 5
# CHECK-CP-JSON-DAG: "%16": 0
# CHECK-CP-JSON-DAG: "%17": 0
# CHECK-CP-JSON-DAG: "%24": 2
# CHECK-CP-JSON-DAG: "%25": 1
# CHECK-CP-JSON: },
# CHECK-CP-JSON-NEXT: "furthest": {
# CHECK-CP-JSON-DAG: "register": "%0",
# CHECK-CP-JSON-DAG: "use": "{{[^"]+}}",
# CHECK-CP-JSON-DAG: "use-mi": "{{[^"]+}}",
# CHECK-CP-JSON-DAG: "distance": 7
# CHECK-CP-JSON: },
# CHECK-CP-JSON-NEXT: "furthest-subreg": {
# CHECK-CP-JSON-DAG: "register": "%0",
# CHECK-CP-JSON-DAG: "use": "{{[^"]+}}",
# CHECK-CP-JSON-DAG: "use-mi": "{{[^"]+}}",
# CHECK-CP-JSON-DAG: "distance": 7
# CHECK-CP-JSON: }
# CHECK-CP-JSON-NEXT: },
# CHECK-CP-JSON-NEXT: {
# CHECK-CP-JSON-NEXT: "instr": "%27:vgpr_32 = V_LSHL_OR_B32_e64 %26, 16, %25, implicit $exec",
# CHECK-CP-JSON-NEXT: "id": {{[0-9]+}},
# CHECK-CP-JSON-NEXT: "head-len": {{[0-9]+}},
# CHECK-CP-JSON-NEXT: "tail-len": {{[0-9]+}},
# CHECK-CP-JSON-NEXT: "distances": {
# CHECK-CP-JSON-DAG: "%0": 6
# CHECK-CP-JSON-DAG: "%1": 5
# CHECK-CP-JSON-DAG: "%13": 4
# CHECK-CP-JSON-DAG: "%24": 1
# CHECK-CP-JSON-DAG: "%25": 0
# CHECK-CP-JSON-DAG: "%26": 0
# CHECK-CP-JSON: },
# CHECK-CP-JSON-NEXT: "furthest": {
# CHECK-CP-JSON-DAG: "register": "%0",
# CHECK-CP-JSON-DAG: "use": "{{[^"]+}}",
# CHECK-CP-JSON-DAG: "use-mi": "{{[^"]+}}",
# CHECK-CP-JSON-DAG: "distance": 6
# CHECK-CP-JSON: },
# CHECK-CP-JSON-NEXT: "furthest-subreg": {
# CHECK-CP-JSON-DAG: "register": "%0",
# CHECK-CP-JSON-DAG: "use": "{{[^"]+}}",
# CHECK-CP-JSON-DAG: "use-mi": "{{[^"]+}}",
# CHECK-CP-JSON-DAG: "distance": 6
# CHECK-CP-JSON: }
# CHECK-CP-JSON-NEXT: },
# CHECK-CP-JSON-NEXT: {
# CHECK-CP-JSON-NEXT: "instr": "%28:vreg_64 = REG_SEQUENCE %27, %subreg.sub0, %24, %subreg.sub1",
# CHECK-CP-JSON-NEXT: "id": {{[0-9]+}},
# CHECK-CP-JSON-NEXT: "head-len": {{[0-9]+}},
# CHECK-CP-JSON-NEXT: "tail-len": {{[0-9]+}},
# CHECK-CP-JSON-NEXT: "distances": {
# CHECK-CP-JSON-DAG: "%0": 5
# CHECK-CP-JSON-DAG: "%1": 4
# CHECK-CP-JSON-DAG: "%13": 3
# CHECK-CP-JSON-DAG: "%24": 0
# CHECK-CP-JSON-DAG: "%27": 0
# CHECK-CP-JSON: },
# CHECK-CP-JSON-NEXT: "furthest": {
# CHECK-CP-JSON-DAG: "register": "%0",
# CHECK-CP-JSON-DAG: "use": "{{[^"]+}}",
# CHECK-CP-JSON-DAG: "use-mi": "{{[^"]+}}",
# CHECK-CP-JSON-DAG: "distance": 5
# CHECK-CP-JSON: },
# CHECK-CP-JSON-NEXT: "furthest-subreg": {
# CHECK-CP-JSON-DAG: "register": "%0",
# CHECK-CP-JSON-DAG: "use": "{{[^"]+}}",
# CHECK-CP-JSON-DAG: "use-mi": "{{[^"]+}}",
# CHECK-CP-JSON-DAG: "distance": 5
# CHECK-CP-JSON: }
# CHECK-CP-JSON-NEXT: },
# CHECK-CP-JSON-NEXT: {
# CHECK-CP-JSON-NEXT: "instr": "%29:vreg_64 = COPY %28",
# CHECK-CP-JSON-NEXT: "id": {{[0-9]+}},
# CHECK-CP-JSON-NEXT: "head-len": {{[0-9]+}},
# CHECK-CP-JSON-NEXT: "tail-len": {{[0-9]+}},
# CHECK-CP-JSON-NEXT: "distances": {
# CHECK-CP-JSON-DAG: "%0": 4
# CHECK-CP-JSON-DAG: "%1": 3
# CHECK-CP-JSON-DAG: "%13": 2
# CHECK-CP-JSON-DAG: "%28": 0
# CHECK-CP-JSON: },
# CHECK-CP-JSON-NEXT: "furthest": {
# CHECK-CP-JSON-DAG: "register": "%0",
# CHECK-CP-JSON-DAG: "use": "{{[^"]+}}",
# CHECK-CP-JSON-DAG: "use-mi": "{{[^"]+}}",
# CHECK-CP-JSON-DAG: "distance": 4
# CHECK-CP-JSON: },
# CHECK-CP-JSON-NEXT: "furthest-subreg": {
# CHECK-CP-JSON-DAG: "register": "%0",
# CHECK-CP-JSON-DAG: "use": "{{[^"]+}}",
# CHECK-CP-JSON-DAG: "use-mi": "{{[^"]+}}",
# CHECK-CP-JSON-DAG: "distance": 4
# CHECK-CP-JSON: }
# CHECK-CP-JSON-NEXT: },
# CHECK-CP-JSON-NEXT: {
# CHECK-CP-JSON-NEXT: "instr": "S_BRANCH %bb.4",
# CHECK-CP-JSON-NEXT: "id": {{[0-9]+}},
# CHECK-CP-JSON-NEXT: "head-len": {{[0-9]+}},
# CHECK-CP-JSON-NEXT: "tail-len": {{[0-9]+}},
# CHECK-CP-JSON-NEXT: "distances": {
# CHECK-CP-JSON-DAG: "%0": 3
# CHECK-CP-JSON-DAG: "%1": 2
# CHECK-CP-JSON-DAG: "%13": 1
# CHECK-CP-JSON-DAG: "%29": 0
# CHECK-CP-JSON: },
# CHECK-CP-JSON-NEXT: "furthest": {
# CHECK-CP-JSON-DAG: "register": "%0",
# CHECK-CP-JSON-DAG: "use": "{{[^"]+}}",
# CHECK-CP-JSON-DAG: "use-mi": "{{[^"]+}}",
# CHECK-CP-JSON-DAG: "distance": 3
# CHECK-CP-JSON: },
# CHECK-CP-JSON-NEXT: "furthest-subreg": {
# CHECK-CP-JSON-DAG: "register": "%0",
# CHECK-CP-JSON-DAG: "use": "{{[^"]+}}",
# CHECK-CP-JSON-DAG: "use-mi": "{{[^"]+}}",
# CHECK-CP-JSON-DAG: "distance": 3
# CHECK-CP-JSON: }
# CHECK-CP-JSON-NEXT: }
# CHECK-CP-JSON-NEXT: ],
# CHECK-CP-JSON-NEXT: "bb.3": [
# CHECK-CP-JSON-NEXT: {
# CHECK-CP-JSON-NEXT: "instr": "%30:vgpr_32 = DS_READ_U8_gfx9 %3, 0, 0, implicit $exec :: (load (s8) from %ir.p2, addrspace 3)",
# CHECK-CP-JSON-NEXT: "id": {{[0-9]+}},
# CHECK-CP-JSON-NEXT: "head-len": {{[0-9]+}},
# CHECK-CP-JSON-NEXT: "tail-len": {{[0-9]+}},
# CHECK-CP-JSON-NEXT: "distances": {
# CHECK-CP-JSON-DAG: "%0": 21
# CHECK-CP-JSON-DAG: "%1": 20
# CHECK-CP-JSON-DAG: "%3": 0
# CHECK-CP-JSON-DAG: "%7": 17
# CHECK-CP-JSON: },
# CHECK-CP-JSON-NEXT: "furthest": {
# CHECK-CP-JSON-DAG: "register": "%0",
# CHECK-CP-JSON-DAG: "use": "{{[^"]+}}",
# CHECK-CP-JSON-DAG: "use-mi": "{{[^"]+}}",
# CHECK-CP-JSON-DAG: "distance": 21
# CHECK-CP-JSON: },
# CHECK-CP-JSON-NEXT: "furthest-subreg": {
# CHECK-CP-JSON-DAG: "register": "%0",
# CHECK-CP-JSON-DAG: "use": "{{[^"]+}}",
# CHECK-CP-JSON-DAG: "use-mi": "{{[^"]+}}",
# CHECK-CP-JSON-DAG: "distance": 21
# CHECK-CP-JSON: }
# CHECK-CP-JSON-NEXT: },
# CHECK-CP-JSON-NEXT: {
# CHECK-CP-JSON-NEXT: "instr": "%31:vgpr_32 = DS_READ_U8_gfx9 %3, 1, 0, implicit $exec :: (load (s8) from %ir.p2 + 1, addrspace 3)",
# CHECK-CP-JSON-NEXT: "id": {{[0-9]+}},
# CHECK-CP-JSON-NEXT: "head-len": {{[0-9]+}},
# CHECK-CP-JSON-NEXT: "tail-len": {{[0-9]+}},
# CHECK-CP-JSON-NEXT: "distances": {
# CHECK-CP-JSON-DAG: "%0": 20
# CHECK-CP-JSON-DAG: "%1": 19
# CHECK-CP-JSON-DAG: "%3": 0
# CHECK-CP-JSON-DAG: "%7": 16
# CHECK-CP-JSON-DAG: "%30": 10
# CHECK-CP-JSON: },
# CHECK-CP-JSON-NEXT: "furthest": {
# CHECK-CP-JSON-DAG: "register": "%0",
# CHECK-CP-JSON-DAG: "use": "{{[^"]+}}",
# CHECK-CP-JSON-DAG: "use-mi": "{{[^"]+}}",
# CHECK-CP-JSON-DAG: "distance": 20
# CHECK-CP-JSON: },
# CHECK-CP-JSON-NEXT: "furthest-subreg": {
# CHECK-CP-JSON-DAG: "register": "%0",
# CHECK-CP-JSON-DAG: "use": "{{[^"]+}}",
# CHECK-CP-JSON-DAG: "use-mi": "{{[^"]+}}",
# CHECK-CP-JSON-DAG: "distance": 20
# CHECK-CP-JSON: }
# CHECK-CP-JSON-NEXT: },
# CHECK-CP-JSON-NEXT: {
# CHECK-CP-JSON-NEXT: "instr": "%32:vgpr_32 = DS_READ_U8_gfx9 %3, 2, 0, implicit $exec :: (load (s8) from %ir.p2 + 2, addrspace 3)",
# CHECK-CP-JSON-NEXT: "id": {{[0-9]+}},
# CHECK-CP-JSON-NEXT: "head-len": {{[0-9]+}},
# CHECK-CP-JSON-NEXT: "tail-len": {{[0-9]+}},
# CHECK-CP-JSON-NEXT: "distances": {
# CHECK-CP-JSON-DAG: "%0": 19
# CHECK-CP-JSON-DAG: "%1": 18
# CHECK-CP-JSON-DAG: "%3": 0
# CHECK-CP-JSON-DAG: "%7": 15
# CHECK-CP-JSON-DAG: "%30": 9
# CHECK-CP-JSON-DAG: "%31": 9
# CHECK-CP-JSON: },
# CHECK-CP-JSON-NEXT: "furthest": {
# CHECK-CP-JSON-DAG: "register": "%0",
# CHECK-CP-JSON-DAG: "use": "{{[^"]+}}",
# CHECK-CP-JSON-DAG: "use-mi": "{{[^"]+}}",
# CHECK-CP-JSON-DAG: "distance": 19
# CHECK-CP-JSON: },
# CHECK-CP-JSON-NEXT: "furthest-subreg": {
# CHECK-CP-JSON-DAG: "register": "%0",
# CHECK-CP-JSON-DAG: "use": "{{[^"]+}}",
# CHECK-CP-JSON-DAG: "use-mi": "{{[^"]+}}",
# CHECK-CP-JSON-DAG: "distance": 19
# CHECK-CP-JSON: }
# CHECK-CP-JSON-NEXT: },
# CHECK-CP-JSON-NEXT: {
# CHECK-CP-JSON-NEXT: "instr": "%33:vgpr_32 = DS_READ_U8_gfx9 %3, 3, 0, implicit $exec :: (load (s8) from %ir.p2 + 3, addrspace 3)",
# CHECK-CP-JSON-NEXT: "id": {{[0-9]+}},
# CHECK-CP-JSON-NEXT: "head-len": {{[0-9]+}},
# CHECK-CP-JSON-NEXT: "tail-len": {{[0-9]+}},
# CHECK-CP-JSON-NEXT: "distances": {
# CHECK-CP-JSON-DAG: "%0": 18
# CHECK-CP-JSON-DAG: "%1": 17
# CHECK-CP-JSON-DAG: "%3": 0
# CHECK-CP-JSON-DAG: "%7": 14
# CHECK-CP-JSON-DAG: "%30": 8
# CHECK-CP-JSON-DAG: "%31": 8
# CHECK-CP-JSON-DAG: "%32": 9
# CHECK-CP-JSON: },
# CHECK-CP-JSON-NEXT: "furthest": {
# CHECK-CP-JSON-DAG: "register": "%0",
# CHECK-CP-JSON-DAG: "use": "{{[^"]+}}",
# CHECK-CP-JSON-DAG: "use-mi": "{{[^"]+}}",
# CHECK-CP-JSON-DAG: "distance": 18
# CHECK-CP-JSON: },
# CHECK-CP-JSON-NEXT: "furthest-subreg": {
# CHECK-CP-JSON-DAG: "register": "%0",
# CHECK-CP-JSON-DAG: "use": "{{[^"]+}}",
# CHECK-CP-JSON-DAG: "use-mi": "{{[^"]+}}",
# CHECK-CP-JSON-DAG: "distance": 18
# CHECK-CP-JSON: }
# CHECK-CP-JSON-NEXT: },
# CHECK-CP-JSON-NEXT: {
# CHECK-CP-JSON-NEXT: "instr": "%34:vgpr_32 = DS_READ_U8_gfx9 %3, 4, 0, implicit $exec :: (load (s8) from %ir.p2 + 4, addrspace 3)",
# CHECK-CP-JSON-NEXT: "id": {{[0-9]+}},
# CHECK-CP-JSON-NEXT: "head-len": {{[0-9]+}},
# CHECK-CP-JSON-NEXT: "tail-len": {{[0-9]+}},
# CHECK-CP-JSON-NEXT: "distances": {
# CHECK-CP-JSON-DAG: "%0": 17
# CHECK-CP-JSON-DAG: "%1": 16
# CHECK-CP-JSON-DAG: "%3": 0
# CHECK-CP-JSON-DAG: "%7": 13
# CHECK-CP-JSON-DAG: "%30": 7
# CHECK-CP-JSON-DAG: "%31": 7
# CHECK-CP-JSON-DAG: "%32": 8
# CHECK-CP-JSON-DAG: "%33": 8
# CHECK-CP-JSON: },
# CHECK-CP-JSON-NEXT: "furthest": {
# CHECK-CP-JSON-DAG: "register": "%0",
# CHECK-CP-JSON-DAG: "use": "{{[^"]+}}",
# CHECK-CP-JSON-DAG: "use-mi": "{{[^"]+}}",
# CHECK-CP-JSON-DAG: "distance": 17
# CHECK-CP-JSON: },
# CHECK-CP-JSON-NEXT: "furthest-subreg": {
# CHECK-CP-JSON-DAG: "register": "%0",
# CHECK-CP-JSON-DAG: "use": "{{[^"]+}}",
# CHECK-CP-JSON-DAG: "use-mi": "{{[^"]+}}",
# CHECK-CP-JSON-DAG: "distance": 17
# CHECK-CP-JSON: }
# CHECK-CP-JSON-NEXT: },
# CHECK-CP-JSON-NEXT: {
# CHECK-CP-JSON-NEXT: "instr": "%35:vgpr_32 = DS_READ_U8_gfx9 %3, 5, 0, implicit $exec :: (load (s8) from %ir.p2 + 5, addrspace 3)",
# CHECK-CP-JSON-NEXT: "id": {{[0-9]+}},
# CHECK-CP-JSON-NEXT: "head-len": {{[0-9]+}},
# CHECK-CP-JSON-NEXT: "tail-len": {{[0-9]+}},
# CHECK-CP-JSON-NEXT: "distances": {
# CHECK-CP-JSON-DAG: "%0": 16
# CHECK-CP-JSON-DAG: "%1": 15
# CHECK-CP-JSON-DAG: "%3": 0
# CHECK-CP-JSON-DAG: "%7": 12
# CHECK-CP-JSON-DAG: "%30": 6
# CHECK-CP-JSON-DAG: "%31": 6
# CHECK-CP-JSON-DAG: "%32": 7
# CHECK-CP-JSON-DAG: "%33": 7
# CHECK-CP-JSON-DAG: "%34": 3
# CHECK-CP-JSON: },
# CHECK-CP-JSON-NEXT: "furthest": {
# CHECK-CP-JSON-DAG: "register": "%0",
# CHECK-CP-JSON-DAG: "use": "{{[^"]+}}",
# CHECK-CP-JSON-DAG: "use-mi": "{{[^"]+}}",
# CHECK-CP-JSON-DAG: "distance": 16
# CHECK-CP-JSON: },
# CHECK-CP-JSON-NEXT: "furthest-subreg": {
# CHECK-CP-JSON-DAG: "register": "%0",
# CHECK-CP-JSON-DAG: "use": "{{[^"]+}}",
# CHECK-CP-JSON-DAG: "use-mi": "{{[^"]+}}",
# CHECK-CP-JSON-DAG: "distance": 16
# CHECK-CP-JSON: }
# CHECK-CP-JSON-NEXT: },
# CHECK-CP-JSON-NEXT: {
# CHECK-CP-JSON-NEXT: "instr": "%36:vgpr_32 = DS_READ_U8_gfx9 %3, 6, 0, implicit $exec :: (load (s8) from %ir.p2 + 6, addrspace 3)",
# CHECK-CP-JSON-NEXT: "id": {{[0-9]+}},
# CHECK-CP-JSON-NEXT: "head-len": {{[0-9]+}},
# CHECK-CP-JSON-NEXT: "tail-len": {{[0-9]+}},
# CHECK-CP-JSON-NEXT: "distances": {
# CHECK-CP-JSON-DAG: "%0": 15
# CHECK-CP-JSON-DAG: "%1": 14
# CHECK-CP-JSON-DAG: "%3": 0
# CHECK-CP-JSON-DAG: "%7": 11
# CHECK-CP-JSON-DAG: "%30": 5
# CHECK-CP-JSON-DAG: "%31": 5
# CHECK-CP-JSON-DAG: "%32": 6
# CHECK-CP-JSON-DAG: "%33": 6
# CHECK-CP-JSON-DAG: "%34": 2
# CHECK-CP-JSON-DAG: "%35": 2
# CHECK-CP-JSON: },
# CHECK-CP-JSON-NEXT: "furthest": {
# CHECK-CP-JSON-DAG: "register": "%0",
# CHECK-CP-JSON-DAG: "use": "{{[^"]+}}",
# CHECK-CP-JSON-DAG: "use-mi": "{{[^"]+}}",
# CHECK-CP-JSON-DAG: "distance": 15
# CHECK-CP-JSON: },
# CHECK-CP-JSON-NEXT: "furthest-subreg": {
# CHECK-CP-JSON-DAG: "register": "%0",
# CHECK-CP-JSON-DAG: "use": "{{[^"]+}}",
# CHECK-CP-JSON-DAG: "use-mi": "{{[^"]+}}",
# CHECK-CP-JSON-DAG: "distance": 15
# CHECK-CP-JSON: }
# CHECK-CP-JSON-NEXT: },
# CHECK-CP-JSON-NEXT: {
# CHECK-CP-JSON-NEXT: "instr": "%37:vgpr_32 = DS_READ_U8_gfx9 %3, 7, 0, implicit $exec :: (load (s8) from %ir.p2 + 7, addrspace 3)",
# CHECK-CP-JSON-NEXT: "id": {{[0-9]+}},
# CHECK-CP-JSON-NEXT: "head-len": {{[0-9]+}},
# CHECK-CP-JSON-NEXT: "tail-len": {{[0-9]+}},
# CHECK-CP-JSON-NEXT: "distances": {
# CHECK-CP-JSON-DAG: "%0": 14
# CHECK-CP-JSON-DAG: "%1": 13
# CHECK-CP-JSON-DAG: "%3": 0
# CHECK-CP-JSON-DAG: "%7": 10
# CHECK-CP-JSON-DAG: "%30": 4
# CHECK-CP-JSON-DAG: "%31": 4
# CHECK-CP-JSON-DAG: "%32": 5
# CHECK-CP-JSON-DAG: "%33": 5
# CHECK-CP-JSON-DAG: "%34": 1
# CHECK-CP-JSON-DAG: "%35": 1
# CHECK-CP-JSON-DAG: "%36": 2
# CHECK-CP-JSON: },
# CHECK-CP-JSON-NEXT: "furthest": {
# CHECK-CP-JSON-DAG: "register": "%0",
# CHECK-CP-JSON-DAG: "use": "{{[^"]+}}",
# CHECK-CP-JSON-DAG: "use-mi": "{{[^"]+}}",
# CHECK-CP-JSON-DAG: "distance": 14
# CHECK-CP-JSON: },
# CHECK-CP-JSON-NEXT: "furthest-subreg": {
# CHECK-CP-JSON-DAG: "register": "%0",
# CHECK-CP-JSON-DAG: "use": "{{[^"]+}}",
# CHECK-CP-JSON-DAG: "use-mi": "{{[^"]+}}",
# CHECK-CP-JSON-DAG: "distance": 14
# CHECK-CP-JSON: }
# CHECK-CP-JSON-NEXT: },
# CHECK-CP-JSON-NEXT: {
# CHECK-CP-JSON-NEXT: "instr": "%38:vgpr_32 = V_LSHL_OR_B32_e64 %35, 8, %34, implicit $exec",
# CHECK-CP-JSON-NEXT: "id": {{[0-9]+}},
# CHECK-CP-JSON-NEXT: "head-len": {{[0-9]+}},
# CHECK-CP-JSON-NEXT: "tail-len": {{[0-9]+}},
# CHECK-CP-JSON-NEXT: "distances": {
# CHECK-CP-JSON-DAG: "%0": 13
# CHECK-CP-JSON-DAG: "%1": 12
# CHECK-CP-JSON-DAG: "%7": 9
# CHECK-CP-JSON-DAG: "%30": 3
# CHECK-CP-JSON-DAG: "%31": 3
# CHECK-CP-JSON-DAG: "%32": 4
# CHECK-CP-JSON-DAG: "%33": 4
# CHECK-CP-JSON-DAG: "%34": 0
# CHECK-CP-JSON-DAG: "%35": 0
# CHECK-CP-JSON-DAG: "%36": 1
# CHECK-CP-JSON-DAG: "%37": 1
# CHECK-CP-JSON: },
# CHECK-CP-JSON-NEXT: "furthest": {
# CHECK-CP-JSON-DAG: "register": "%0",
# CHECK-CP-JSON-DAG: "use": "{{[^"]+}}",
# CHECK-CP-JSON-DAG: "use-mi": "{{[^"]+}}",
# CHECK-CP-JSON-DAG: "distance": 13
# CHECK-CP-JSON: },
# CHECK-CP-JSON-NEXT: "furthest-subreg": {
# CHECK-CP-JSON-DAG: "register": "%0",
# CHECK-CP-JSON-DAG: "use": "{{[^"]+}}",
# CHECK-CP-JSON-DAG: "use-mi": "{{[^"]+}}",
# CHECK-CP-JSON-DAG: "distance": 13
# CHECK-CP-JSON: }
# CHECK-CP-JSON-NEXT: },
# CHECK-CP-JSON-NEXT: {
# CHECK-CP-JSON-NEXT: "instr": "%39:vgpr_32 = V_LSHL_OR_B32_e64 %37, 8, %36, implicit $exec",
# CHECK-CP-JSON-NEXT: "id": {{[0-9]+}},
# CHECK-CP-JSON-NEXT: "head-len": {{[0-9]+}},
# CHECK-CP-JSON-NEXT: "tail-len": {{[0-9]+}},
# CHECK-CP-JSON-NEXT: "distances": {
# CHECK-CP-JSON-DAG: "%0": 12
# CHECK-CP-JSON-DAG: "%1": 11
# CHECK-CP-JSON-DAG: "%7": 8
# CHECK-CP-JSON-DAG: "%30": 2
# CHECK-CP-JSON-DAG: "%31": 2
# CHECK-CP-JSON-DAG: "%32": 3
# CHECK-CP-JSON-DAG: "%33": 3
# CHECK-CP-JSON-DAG: "%36": 0
# CHECK-CP-JSON-DAG: "%37": 0
# CHECK-CP-JSON-DAG: "%38": 1
# CHECK-CP-JSON: },
# CHECK-CP-JSON-NEXT: "furthest": {
# CHECK-CP-JSON-DAG: "register": "%0",
# CHECK-CP-JSON-DAG: "use": "{{[^"]+}}",
# CHECK-CP-JSON-DAG: "use-mi": "{{[^"]+}}",
# CHECK-CP-JSON-DAG: "distance": 12
# CHECK-CP-JSON: },
# CHECK-CP-JSON-NEXT: "furthest-subreg": {
# CHECK-CP-JSON-DAG: "register": "%0",
# CHECK-CP-JSON-DAG: "use": "{{[^"]+}}",
# CHECK-CP-JSON-DAG: "use-mi": "{{[^"]+}}",
# CHECK-CP-JSON-DAG: "distance": 12
# CHECK-CP-JSON: }
# CHECK-CP-JSON-NEXT: },
# CHECK-CP-JSON-NEXT: {
# CHECK-CP-JSON-NEXT: "instr": "%40:vgpr_32 = V_LSHL_OR_B32_e64 %39, 16, %38, implicit $exec",
# CHECK-CP-JSON-NEXT: "id": {{[0-9]+}},
# CHECK-CP-JSON-NEXT: "head-len": {{[0-9]+}},
# CHECK-CP-JSON-NEXT: "tail-len": {{[0-9]+}},
# CHECK-CP-JSON-NEXT: "distances": {
# CHECK-CP-JSON-DAG: "%0": 11
# CHECK-CP-JSON-DAG: "%1": 10
# CHECK-CP-JSON-DAG: "%7": 7
# CHECK-CP-JSON-DAG: "%30": 1
# CHECK-CP-JSON-DAG: "%31": 1
# CHECK-CP-JSON-DAG: "%32": 2
# CHECK-CP-JSON-DAG: "%33": 2
# CHECK-CP-JSON-DAG: "%38": 0
# CHECK-CP-JSON-DAG: "%39": 0
# CHECK-CP-JSON: },
# CHECK-CP-JSON-NEXT: "furthest": {
# CHECK-CP-JSON-DAG: "register": "%0",
# CHECK-CP-JSON-DAG: "use": "{{[^"]+}}",
# CHECK-CP-JSON-DAG: "use-mi": "{{[^"]+}}",
# CHECK-CP-JSON-DAG: "distance": 11
# CHECK-CP-JSON: },
# CHECK-CP-JSON-NEXT: "furthest-subreg": {
# CHECK-CP-JSON-DAG: "register": "%0",
# CHECK-CP-JSON-DAG: "use": "{{[^"]+}}",
# CHECK-CP-JSON-DAG: "use-mi": "{{[^"]+}}",
# CHECK-CP-JSON-DAG: "distance": 11
# CHECK-CP-JSON: }
# CHECK-CP-JSON-NEXT: },
# CHECK-CP-JSON-NEXT: {
# CHECK-CP-JSON-NEXT: "instr": "%41:vgpr_32 = V_LSHL_OR_B32_e64 %31, 8, %30, implicit $exec",
# CHECK-CP-JSON-NEXT: "id": {{[0-9]+}},
# CHECK-CP-JSON-NEXT: "head-len": {{[0-9]+}},
# CHECK-CP-JSON-NEXT: "tail-len": {{[0-9]+}},
# CHECK-CP-JSON-NEXT: "distances": {
# CHECK-CP-JSON-DAG: "%0": 10
# CHECK-CP-JSON-DAG: "%1": 9
# CHECK-CP-JSON-DAG: "%7": 6
# CHECK-CP-JSON-DAG: "%30": 0
# CHECK-CP-JSON-DAG: "%31": 0
# CHECK-CP-JSON-DAG: "%32": 1
# CHECK-CP-JSON-DAG: "%33": 1
# CHECK-CP-JSON-DAG: "%40": 3
# CHECK-CP-JSON: },
# CHECK-CP-JSON-NEXT: "furthest": {
# CHECK-CP-JSON-DAG: "register": "%0",
# CHECK-CP-JSON-DAG: "use": "{{[^"]+}}",
# CHECK-CP-JSON-DAG: "use-mi": "{{[^"]+}}",
# CHECK-CP-JSON-DAG: "distance": 10
# CHECK-CP-JSON: },
# CHECK-CP-JSON-NEXT: "furthest-subreg": {
# CHECK-CP-JSON-DAG: "register": "%0",
# CHECK-CP-JSON-DAG: "use": "{{[^"]+}}",
# CHECK-CP-JSON-DAG: "use-mi": "{{[^"]+}}",
# CHECK-CP-JSON-DAG: "distance": 10
# CHECK-CP-JSON: }
# CHECK-CP-JSON-NEXT: },
# CHECK-CP-JSON-NEXT: {
# CHECK-CP-JSON-NEXT: "instr": "%42:vgpr_32 = V_LSHL_OR_B32_e64 %33, 8, %32, implicit $exec",
# CHECK-CP-JSON-NEXT: "id": {{[0-9]+}},
# CHECK-CP-JSON-NEXT: "head-len": {{[0-9]+}},
# CHECK-CP-JSON-NEXT: "tail-len": {{[0-9]+}},
# CHECK-CP-JSON-NEXT: "distances": {
# CHECK-CP-JSON-DAG: "%0": 9
# CHECK-CP-JSON-DAG: "%1": 8
# CHECK-CP-JSON-DAG: "%7": 5
# CHECK-CP-JSON-DAG: "%32": 0
# CHECK-CP-JSON-DAG: "%33": 0
# CHECK-CP-JSON-DAG: "%40": 2
# CHECK-CP-JSON-DAG: "%41": 1
# CHECK-CP-JSON: },
# CHECK-CP-JSON-NEXT: "furthest": {
# CHECK-CP-JSON-DAG: "register": "%0",
# CHECK-CP-JSON-DAG: "use": "{{[^"]+}}",
# CHECK-CP-JSON-DAG: "use-mi": "{{[^"]+}}",
# CHECK-CP-JSON-DAG: "distance": 9
# CHECK-CP-JSON: },
# CHECK-CP-JSON-NEXT: "furthest-subreg": {
# CHECK-CP-JSON-DAG: "register": "%0",
# CHECK-CP-JSON-DAG: "use": "{{[^"]+}}",
# CHECK-CP-JSON-DAG: "use-mi": "{{[^"]+}}",
# CHECK-CP-JSON-DAG: "distance": 9
# CHECK-CP-JSON: }
# CHECK-CP-JSON-NEXT: },
# CHECK-CP-JSON-NEXT: {
# CHECK-CP-JSON-NEXT: "instr": "%43:vgpr_32 = V_LSHL_OR_B32_e64 %42, 16, %41, implicit $exec",
# CHECK-CP-JSON-NEXT: "id": {{[0-9]+}},
# CHECK-CP-JSON-NEXT: "head-len": {{[0-9]+}},
# CHECK-CP-JSON-NEXT: "tail-len": {{[0-9]+}},
# CHECK-CP-JSON-NEXT: "distances": {
# CHECK-CP-JSON-DAG: "%0": 8
# CHECK-CP-JSON-DAG: "%1": 7
# CHECK-CP-JSON-DAG: "%7": 4
# CHECK-CP-JSON-DAG: "%40": 1
# CHECK-CP-JSON-DAG: "%41": 0
# CHECK-CP-JSON-DAG: "%42": 0
# CHECK-CP-JSON: },
# CHECK-CP-JSON-NEXT: "furthest": {
# CHECK-CP-JSON-DAG: "register": "%0",
# CHECK-CP-JSON-DAG: "use": "{{[^"]+}}",
# CHECK-CP-JSON-DAG: "use-mi": "{{[^"]+}}",
# CHECK-CP-JSON-DAG: "distance": 8
# CHECK-CP-JSON: },
# CHECK-CP-JSON-NEXT: "furthest-subreg": {
# CHECK-CP-JSON-DAG: "register": "%0",
# CHECK-CP-JSON-DAG: "use": "{{[^"]+}}",
# CHECK-CP-JSON-DAG: "use-mi": "{{[^"]+}}",
# CHECK-CP-JSON-DAG: "distance": 8
# CHECK-CP-JSON: }
# CHECK-CP-JSON-NEXT: },
# CHECK-CP-JSON-NEXT: {
# CHECK-CP-JSON-NEXT: "instr": "%44:vreg_64 = REG_SEQUENCE %43, %subreg.sub0, %40, %subreg.sub1",
# CHECK-CP-JSON-NEXT: "id": {{[0-9]+}},
# CHECK-CP-JSON-NEXT: "head-len": {{[0-9]+}},
# CHECK-CP-JSON-NEXT: "tail-len": {{[0-9]+}},
# CHECK-CP-JSON-NEXT: "distances": {
# CHECK-CP-JSON-DAG: "%0": 7
# CHECK-CP-JSON-DAG: "%1": 6
# CHECK-CP-JSON-DAG: "%7": 3
# CHECK-CP-JSON-DAG: "%40": 0
# CHECK-CP-JSON-DAG: "%43": 0
# CHECK-CP-JSON: },
# CHECK-CP-JSON-NEXT: "furthest": {
# CHECK-CP-JSON-DAG: "register": "%0",
# CHECK-CP-JSON-DAG: "use": "{{[^"]+}}",
# CHECK-CP-JSON-DAG: "use-mi": "{{[^"]+}}",
# CHECK-CP-JSON-DAG: "distance": 7
# CHECK-CP-JSON: },
# CHECK-CP-JSON-NEXT: "furthest-subreg": {
# CHECK-CP-JSON-DAG: "register": "%0",
# CHECK-CP-JSON-DAG: "use": "{{[^"]+}}",
# CHECK-CP-JSON-DAG: "use-mi": "{{[^"]+}}",
# CHECK-CP-JSON-DAG: "distance": 7
# CHECK-CP-JSON: }
# CHECK-CP-JSON-NEXT: },
# CHECK-CP-JSON-NEXT: {
# CHECK-CP-JSON-NEXT: "instr": "%10:vreg_64 = COPY %44",
# CHECK-CP-JSON-NEXT: "id": {{[0-9]+}},
# CHECK-CP-JSON-NEXT: "head-len": {{[0-9]+}},
# CHECK-CP-JSON-NEXT: "tail-len": {{[0-9]+}},
# CHECK-CP-JSON-NEXT: "distances": {
# CHECK-CP-JSON-DAG: "%0": 6
# CHECK-CP-JSON-DAG: "%1": 5
# CHECK-CP-JSON-DAG: "%7": 2
# CHECK-CP-JSON-DAG: "%44": 0
# CHECK-CP-JSON: },
# CHECK-CP-JSON-NEXT: "furthest": {
# CHECK-CP-JSON-DAG: "register": "%0",
# CHECK-CP-JSON-DAG: "use": "{{[^"]+}}",
# CHECK-CP-JSON-DAG: "use-mi": "{{[^"]+}}",
# CHECK-CP-JSON-DAG: "distance": 6
# CHECK-CP-JSON: },
# CHECK-CP-JSON-NEXT: "furthest-subreg": {
# CHECK-CP-JSON-DAG: "register": "%0",
# CHECK-CP-JSON-DAG: "use": "{{[^"]+}}",
# CHECK-CP-JSON-DAG: "use-mi": "{{[^"]+}}",
# CHECK-CP-JSON-DAG: "distance": 6
# CHECK-CP-JSON: }
# CHECK-CP-JSON-NEXT: },
# CHECK-CP-JSON-NEXT: {
# CHECK-CP-JSON-NEXT: "instr": "S_BRANCH %bb.1",
# CHECK-CP-JSON-NEXT: "id": {{[0-9]+}},
# CHECK-CP-JSON-NEXT: "head-len": {{[0-9]+}},
# CHECK-CP-JSON-NEXT: "tail-len": {{[0-9]+}},
# CHECK-CP-JSON-NEXT: "distances": {
# CHECK-CP-JSON-DAG: "%0": 5
# CHECK-CP-JSON-DAG: "%1": 4
# CHECK-CP-JSON-DAG: "%7": 1
# CHECK-CP-JSON-DAG: "%10": 0
# CHECK-CP-JSON: },
# CHECK-CP-JSON-NEXT: "furthest": {
# CHECK-CP-JSON-DAG: "register": "%0",
# CHECK-CP-JSON-DAG: "use": "{{[^"]+}}",
# CHECK-CP-JSON-DAG: "use-mi": "{{[^"]+}}",
# CHECK-CP-JSON-DAG: "distance": 5
# CHECK-CP-JSON: },
# CHECK-CP-JSON-NEXT: "furthest-subreg": {
# CHECK-CP-JSON-DAG: "register": "%0",
# CHECK-CP-JSON-DAG: "use": "{{[^"]+}}",
# CHECK-CP-JSON-DAG: "use-mi": "{{[^"]+}}",
# CHECK-CP-JSON-DAG: "distance": 5
# CHECK-CP-JSON: }
# CHECK-CP-JSON-NEXT: }
# CHECK-CP-JSON-NEXT: ],
# CHECK-CP-JSON-NEXT: "bb.4": [
# CHECK-CP-JSON-NEXT: {
# CHECK-CP-JSON-NEXT: "instr": "%45:vreg_64 = PHI %8, %bb.1, %29, %bb.2",
# CHECK-CP-JSON-NEXT: "id": {{[0-9]+}},
# CHECK-CP-JSON-NEXT: "head-len": {{[0-9]+}},
# CHECK-CP-JSON-NEXT: "tail-len": {{[0-9]+}},
# CHECK-CP-JSON-NEXT: "distances": {
# CHECK-CP-JSON-DAG: "%0": 2
# CHECK-CP-JSON-DAG: "%1": 1
# CHECK-CP-JSON-DAG: "%13": 0
# CHECK-CP-JSON: },
# CHECK-CP-JSON-NEXT: "furthest": {
# CHECK-CP-JSON-DAG: "register": "%0",
# CHECK-CP-JSON-DAG: "use": "{{[^"]+}}",
# CHECK-CP-JSON-DAG: "use-mi": "{{[^"]+}}",
# CHECK-CP-JSON-DAG: "distance": 2
# CHECK-CP-JSON: },
# CHECK-CP-JSON-NEXT: "furthest-subreg": {
# CHECK-CP-JSON-DAG: "register": "%0",
# CHECK-CP-JSON-DAG: "use": "{{[^"]+}}",
# CHECK-CP-JSON-DAG: "use-mi": "{{[^"]+}}",
# CHECK-CP-JSON-DAG: "distance": 2
# CHECK-CP-JSON: }
# CHECK-CP-JSON-NEXT: },
# CHECK-CP-JSON-NEXT: {
# CHECK-CP-JSON-NEXT: "instr": "SI_END_CF %13, implicit-def dead $exec, implicit-def dead $scc, implicit $exec",
# CHECK-CP-JSON-NEXT: "id": {{[0-9]+}},
# CHECK-CP-JSON-NEXT: "head-len": {{[0-9]+}},
# CHECK-CP-JSON-NEXT: "tail-len": {{[0-9]+}},
# CHECK-CP-JSON-NEXT: "distances": {
# CHECK-CP-JSON-DAG: "%0": 2
# CHECK-CP-JSON-DAG: "%1": 1
# CHECK-CP-JSON-DAG: "%13": 0
# CHECK-CP-JSON-DAG: "%45:sub0": 1
# CHECK-CP-JSON-DAG: "%45:sub1": 2
# CHECK-CP-JSON: },
# CHECK-CP-JSON-NEXT: "furthest": {
# CHECK-CP-JSON-DAG: "register": "%0",
# CHECK-CP-JSON-DAG: "use": "{{[^"]+}}",
# CHECK-CP-JSON-DAG: "use-mi": "{{[^"]+}}",
# CHECK-CP-JSON-DAG: "distance": 2
# CHECK-CP-JSON: },
# CHECK-CP-JSON-NEXT: "furthest-subreg": {
# CHECK-CP-JSON-DAG: "register": "%0",
# CHECK-CP-JSON-DAG: "use": "{{[^"]+}}",
# CHECK-CP-JSON-DAG: "use-mi": "{{[^"]+}}",
# CHECK-CP-JSON-DAG: "distance": 2
# CHECK-CP-JSON: }
# CHECK-CP-JSON-NEXT: },
# CHECK-CP-JSON-NEXT: {
# CHECK-CP-JSON-NEXT: "instr": "%46:vgpr_32, %47:sreg_32_xm0_xexec = V_ADD_CO_U32_e64 %45.sub0, %1, 0, implicit $exec",
# CHECK-CP-JSON-NEXT: "id": {{[0-9]+}},
# CHECK-CP-JSON-NEXT: "head-len": {{[0-9]+}},
# CHECK-CP-JSON-NEXT: "tail-len": {{[0-9]+}},
# CHECK-CP-JSON-NEXT: "distances": {
# CHECK-CP-JSON-DAG: "%0": 1
# CHECK-CP-JSON-DAG: "%1": 0
# CHECK-CP-JSON-DAG: "%45:sub0": 0
# CHECK-CP-JSON-DAG: "%45:sub1": 1
# CHECK-CP-JSON: },
# CHECK-CP-JSON-NEXT: "furthest": {
# CHECK-CP-JSON-DAG: "register": "%0",
# CHECK-CP-JSON-DAG: "use": "{{[^"]+}}",
# CHECK-CP-JSON-DAG: "use-mi": "{{[^"]+}}",
# CHECK-CP-JSON-DAG: "distance": 1
# CHECK-CP-JSON: },
# CHECK-CP-JSON-NEXT: "furthest-subreg": {
# CHECK-CP-JSON-DAG: "register": "%0",
# CHECK-CP-JSON-DAG: "use": "{{[^"]+}}",
# CHECK-CP-JSON-DAG: "use-mi": "{{[^"]+}}",
# CHECK-CP-JSON-DAG: "distance": 1
# CHECK-CP-JSON: }
# CHECK-CP-JSON-NEXT: },
# CHECK-CP-JSON-NEXT: {
# CHECK-CP-JSON-NEXT: "instr": "%48:vgpr_32, dead $sgpr_null = V_ADDC_U32_e64 %45.sub1, %0, %47, 0, implicit $exec",
# CHECK-CP-JSON-NEXT: "id": {{[0-9]+}},
# CHECK-CP-JSON-NEXT: "head-len": {{[0-9]+}},
# CHECK-CP-JSON-NEXT: "tail-len": {{[0-9]+}},
# CHECK-CP-JSON-NEXT: "distances": {
# CHECK-CP-JSON-DAG: "%0": 0
# CHECK-CP-JSON-DAG: "%45:sub1": 0
# CHECK-CP-JSON-DAG: "%46": 1
# CHECK-CP-JSON-DAG: "%47": 0
# CHECK-CP-JSON: },
# CHECK-CP-JSON-NEXT: "furthest": {
# CHECK-CP-JSON-DAG: "register": "%46",
# CHECK-CP-JSON-DAG: "use": "{{[^"]+}}",
# CHECK-CP-JSON-DAG: "use-mi": "{{[^"]+}}",
# CHECK-CP-JSON-DAG: "distance": 1
# CHECK-CP-JSON: },
# CHECK-CP-JSON-NEXT: "furthest-subreg": {
# CHECK-CP-JSON-DAG: "register": "%46",
# CHECK-CP-JSON-DAG: "use": "{{[^"]+}}",
# CHECK-CP-JSON-DAG: "use-mi": "{{[^"]+}}",
# CHECK-CP-JSON-DAG: "distance": 1
# CHECK-CP-JSON: }
# CHECK-CP-JSON-NEXT: },
# CHECK-CP-JSON-NEXT: {
# CHECK-CP-JSON-NEXT: "instr": "%49:sreg_32_xm0 = V_READFIRSTLANE_B32 %46, implicit $exec",
# CHECK-CP-JSON-NEXT: "id": {{[0-9]+}},
# CHECK-CP-JSON-NEXT: "head-len": {{[0-9]+}},
# CHECK-CP-JSON-NEXT: "tail-len": {{[0-9]+}},
# CHECK-CP-JSON-NEXT: "distances": {
# CHECK-CP-JSON-DAG: "%46": 0
# CHECK-CP-JSON-DAG: "%48": 1
# CHECK-CP-JSON: },
# CHECK-CP-JSON-NEXT: "furthest": {
# CHECK-CP-JSON-DAG: "register": "%48",
# CHECK-CP-JSON-DAG: "use": "{{[^"]+}}",
# CHECK-CP-JSON-DAG: "use-mi": "{{[^"]+}}",
# CHECK-CP-JSON-DAG: "distance": 1
# CHECK-CP-JSON: },
# CHECK-CP-JSON-NEXT: "furthest-subreg": {
# CHECK-CP-JSON-DAG: "register": "%48",
# CHECK-CP-JSON-DAG: "use": "{{[^"]+}}",
# CHECK-CP-JSON-DAG: "use-mi": "{{[^"]+}}",
# CHECK-CP-JSON-DAG: "distance": 1
# CHECK-CP-JSON: }
# CHECK-CP-JSON-NEXT: },
# CHECK-CP-JSON-NEXT: {
# CHECK-CP-JSON-NEXT: "instr": "%50:sreg_32_xm0 = V_READFIRSTLANE_B32 %48, implicit $exec",
# CHECK-CP-JSON-NEXT: "id": {{[0-9]+}},
# CHECK-CP-JSON-NEXT: "head-len": {{[0-9]+}},
# CHECK-CP-JSON-NEXT: "tail-len": {{[0-9]+}},
# CHECK-CP-JSON-NEXT: "distances": {
# CHECK-CP-JSON-DAG: "%48": 0
# CHECK-CP-JSON-DAG: "%49": 1
# CHECK-CP-JSON: },
# CHECK-CP-JSON-NEXT: "furthest": {
# CHECK-CP-JSON-DAG: "register": "%49",
# CHECK-CP-JSON-DAG: "use": "{{[^"]+}}",
# CHECK-CP-JSON-DAG: "use-mi": "{{[^"]+}}",
# CHECK-CP-JSON-DAG: "distance": 1
# CHECK-CP-JSON: },
# CHECK-CP-JSON-NEXT: "furthest-subreg": {
# CHECK-CP-JSON-DAG: "register": "%49",
# CHECK-CP-JSON-DAG: "use": "{{[^"]+}}",
# CHECK-CP-JSON-DAG: "use-mi": "{{[^"]+}}",
# CHECK-CP-JSON-DAG: "distance": 1
# CHECK-CP-JSON: }
# CHECK-CP-JSON-NEXT: },
# CHECK-CP-JSON-NEXT: {
# CHECK-CP-JSON-NEXT: "instr": "$sgpr0 = COPY %49",
# CHECK-CP-JSON-NEXT: "id": {{[0-9]+}},
# CHECK-CP-JSON-NEXT: "head-len": {{[0-9]+}},
# CHECK-CP-JSON-NEXT: "tail-len": {{[0-9]+}},
# CHECK-CP-JSON-NEXT: "distances": {
# CHECK-CP-JSON-DAG: "%49": 0
# CHECK-CP-JSON-DAG: "%50": 1
# CHECK-CP-JSON: },
# CHECK-CP-JSON-NEXT: "furthest": {
# CHECK-CP-JSON-DAG: "register": "%50",
# CHECK-CP-JSON-DAG: "use": "{{[^"]+}}",
# CHECK-CP-JSON-DAG: "use-mi": "{{[^"]+}}",
# CHECK-CP-JSON-DAG: "distance": 1
# CHECK-CP-JSON: },
# CHECK-CP-JSON-NEXT: "furthest-subreg": {
# CHECK-CP-JSON-DAG: "register": "%50",
# CHECK-CP-JSON-DAG: "use": "{{[^"]+}}",
# CHECK-CP-JSON-DAG: "use-mi": "{{[^"]+}}",
# CHECK-CP-JSON-DAG: "distance": 1
# CHECK-CP-JSON: }
# CHECK-CP-JSON-NEXT: },
# CHECK-CP-JSON-NEXT: {
# CHECK-CP-JSON-NEXT: "instr": "$sgpr1 = COPY %50",
# CHECK-CP-JSON-NEXT: "id": {{[0-9]+}},
# CHECK-CP-JSON-NEXT: "head-len": {{[0-9]+}},
# CHECK-CP-JSON-NEXT: "tail-len": {{[0-9]+}},
# CHECK-CP-JSON-NEXT: "distances": {
# CHECK-CP-JSON-DAG: "%50": 0
# CHECK-CP-JSON: },
# CHECK-CP-JSON-NEXT: "furthest": {
# CHECK-CP-JSON-DAG: "register": "%50",
# CHECK-CP-JSON-DAG: "use": "{{[^"]+}}",
# CHECK-CP-JSON-DAG: "use-mi": "{{[^"]+}}",
# CHECK-CP-JSON-DAG: "distance": 0
# CHECK-CP-JSON: },
# CHECK-CP-JSON-NEXT: "furthest-subreg": {
# CHECK-CP-JSON-DAG: "register": "%50",
# CHECK-CP-JSON-DAG: "use": "{{[^"]+}}",
# CHECK-CP-JSON-DAG: "use-mi": "{{[^"]+}}",
# CHECK-CP-JSON-DAG: "distance": 0
# CHECK-CP-JSON: }
# CHECK-CP-JSON-NEXT: },
# CHECK-CP-JSON-NEXT: {
# CHECK-CP-JSON-NEXT: "instr": "SI_RETURN_TO_EPILOG killed $sgpr0, killed $sgpr1",
# CHECK-CP-JSON-NEXT: "id": {{[0-9]+}},
# CHECK-CP-JSON-NEXT: "head-len": {{[0-9]+}},
# CHECK-CP-JSON-NEXT: "tail-len": {{[0-9]+}},
# CHECK-CP-JSON-NEXT: "distances": {},
# CHECK-CP-JSON-NEXT: "furthest": {},
# CHECK-CP-JSON-NEXT: "furthest-subreg": {}
# CHECK-CP-JSON-NEXT: }
# CHECK-CP-JSON-NEXT: ]
# CHECK-CP-JSON-NEXT: },
# CHECK-CP-JSON-NEXT: "distance-from-def-to-closest-use": {
# CHECK-CP-JSON-DAG: "%0": 13,
# CHECK-CP-JSON-DAG: "%1": 11,
# CHECK-CP-JSON-DAG: "%2": 3,
# CHECK-CP-JSON-DAG: "%3": 6,
# CHECK-CP-JSON-DAG: "%4": 4,
# CHECK-CP-JSON-DAG: "%5": 1,
# CHECK-CP-JSON-DAG: "%6": 1,
# CHECK-CP-JSON-DAG: "%7": 2,
# CHECK-CP-JSON-DAG: "%8": 1,
# CHECK-CP-JSON-DAG: "%11": 2,
# CHECK-CP-JSON-DAG: "%13": 2,
# CHECK-CP-JSON-DAG: "%14": 11,
# CHECK-CP-JSON-DAG: "%15": 10,
# CHECK-CP-JSON-DAG: "%16": 10,
# CHECK-CP-JSON-DAG: "%17": 9,
# CHECK-CP-JSON-DAG: "%18": 4,
# CHECK-CP-JSON-DAG: "%19": 3,
# CHECK-CP-JSON-DAG: "%20": 3,
# CHECK-CP-JSON-DAG: "%21": 2,
# CHECK-CP-JSON-DAG: "%22": 2,
# CHECK-CP-JSON-DAG: "%23": 1,
# CHECK-CP-JSON-DAG: "%24": 4,
# CHECK-CP-JSON-DAG: "%25": 2,
# CHECK-CP-JSON-DAG: "%26": 1,
# CHECK-CP-JSON-DAG: "%27": 1,
# CHECK-CP-JSON-DAG: "%28": 1,
# CHECK-CP-JSON-DAG: "%29": 1,
# CHECK-CP-JSON-DAG: "%30": 11,
# CHECK-CP-JSON-DAG: "%31": 10,
# CHECK-CP-JSON-DAG: "%32": 10,
# CHECK-CP-JSON-DAG: "%33": 9,
# CHECK-CP-JSON-DAG: "%34": 4,
# CHECK-CP-JSON-DAG: "%35": 3,
# CHECK-CP-JSON-DAG: "%36": 3,
# CHECK-CP-JSON-DAG: "%37": 2,
# CHECK-CP-JSON-DAG: "%38": 2,
# CHECK-CP-JSON-DAG: "%39": 1,
# CHECK-CP-JSON-DAG: "%40": 4,
# CHECK-CP-JSON-DAG: "%41": 2,
# CHECK-CP-JSON-DAG: "%42": 1,
# CHECK-CP-JSON-DAG: "%43": 1,
# CHECK-CP-JSON-DAG: "%44": 1,
# CHECK-CP-JSON-DAG: "%10": 1,
# CHECK-CP-JSON-DAG: "%45": 1,
# CHECK-CP-JSON-DAG: "%46": 2,
# CHECK-CP-JSON-DAG: "%47": 1,
# CHECK-CP-JSON-DAG: "%48": 2,
# CHECK-CP-JSON-DAG: "%49": 2,
# CHECK-CP-JSON-DAG: "%50": 2
# CHECK-CP-JSON: },
# CHECK-CP-JSON-NEXT: "paths": [
# CHECK-CP-JSON: ],
# CHECK-CP-JSON-NEXT: "metrics": {
# CHECK-CP-JSON-NEXT: "distance-cache": {
# CHECK-CP-JSON-NEXT: "hits": {{[0-9]+}},
# CHECK-CP-JSON-NEXT: "misses": {{[0-9]+}}
# CHECK-CP-JSON-NEXT: }
# CHECK-CP-JSON-NEXT: }
# CHECK-CP-JSON-NEXT: },
# CHECK-CP-JSON-DAG: "time.amdgpu-next-use-analysis-json.json.wall": {{[0-9.e+-]+}},
# CHECK-CP-JSON-DAG: "time.amdgpu-next-use-analysis-json.json.user": {{[0-9.e+-]+}},
# CHECK-CP-JSON-DAG: "time.amdgpu-next-use-analysis-json.json.sys": {{[0-9.e+-]+}}
# CHECK-CP-JSON: }
# CHECK-GX-JSON: {
# CHECK-GX-JSON-NEXT: "next-use-analysis": {
# CHECK-GX-JSON-NEXT: "furthest-distances": {
# CHECK-GX-JSON-NEXT: "bb.0": [
# CHECK-GX-JSON-NEXT: {
# CHECK-GX-JSON-NEXT: "instr": "%0:vgpr_32 = COPY $vgpr4",
# CHECK-GX-JSON-NEXT: "id": {{[0-9]+}},
# CHECK-GX-JSON-NEXT: "head-len": {{[0-9]+}},
# CHECK-GX-JSON-NEXT: "tail-len": {{[0-9]+}},
# CHECK-GX-JSON-NEXT: "distances": {},
# CHECK-GX-JSON-NEXT: "furthest": {},
# CHECK-GX-JSON-NEXT: "furthest-subreg": {}
# CHECK-GX-JSON-NEXT: },
# CHECK-GX-JSON-NEXT: {
# CHECK-GX-JSON-NEXT: "instr": "%1:vgpr_32 = COPY $vgpr3",
# CHECK-GX-JSON-NEXT: "id": {{[0-9]+}},
# CHECK-GX-JSON-NEXT: "head-len": {{[0-9]+}},
# CHECK-GX-JSON-NEXT: "tail-len": {{[0-9]+}},
# CHECK-GX-JSON-NEXT: "distances": {
# CHECK-GX-JSON-DAG: "%0": 15
# CHECK-GX-JSON: },
# CHECK-GX-JSON-NEXT: "furthest": {
# CHECK-GX-JSON-DAG: "register": "%0",
# CHECK-GX-JSON-DAG: "use": "{{[^"]+}}",
# CHECK-GX-JSON-DAG: "use-mi": "{{[^"]+}}",
# CHECK-GX-JSON-DAG: "distance": 15
# CHECK-GX-JSON: },
# CHECK-GX-JSON-NEXT: "furthest-subreg": {
# CHECK-GX-JSON-DAG: "register": "%0",
# CHECK-GX-JSON-DAG: "use": "{{[^"]+}}",
# CHECK-GX-JSON-DAG: "use-mi": "{{[^"]+}}",
# CHECK-GX-JSON-DAG: "distance": 15
# CHECK-GX-JSON: }
# CHECK-GX-JSON-NEXT: },
# CHECK-GX-JSON-NEXT: {
# CHECK-GX-JSON-NEXT: "instr": "%2:vgpr_32 = COPY $vgpr2",
# CHECK-GX-JSON-NEXT: "id": {{[0-9]+}},
# CHECK-GX-JSON-NEXT: "head-len": {{[0-9]+}},
# CHECK-GX-JSON-NEXT: "tail-len": {{[0-9]+}},
# CHECK-GX-JSON-NEXT: "distances": {
# CHECK-GX-JSON-DAG: "%0": 14
# CHECK-GX-JSON-DAG: "%1": 13
# CHECK-GX-JSON: },
# CHECK-GX-JSON-NEXT: "furthest": {
# CHECK-GX-JSON-DAG: "register": "%0",
# CHECK-GX-JSON-DAG: "use": "{{[^"]+}}",
# CHECK-GX-JSON-DAG: "use-mi": "{{[^"]+}}",
# CHECK-GX-JSON-DAG: "distance": 14
# CHECK-GX-JSON: },
# CHECK-GX-JSON-NEXT: "furthest-subreg": {
# CHECK-GX-JSON-DAG: "register": "%0",
# CHECK-GX-JSON-DAG: "use": "{{[^"]+}}",
# CHECK-GX-JSON-DAG: "use-mi": "{{[^"]+}}",
# CHECK-GX-JSON-DAG: "distance": 14
# CHECK-GX-JSON: }
# CHECK-GX-JSON-NEXT: },
# CHECK-GX-JSON-NEXT: {
# CHECK-GX-JSON-NEXT: "instr": "%3:vgpr_32 = COPY $vgpr1",
# CHECK-GX-JSON-NEXT: "id": {{[0-9]+}},
# CHECK-GX-JSON-NEXT: "head-len": {{[0-9]+}},
# CHECK-GX-JSON-NEXT: "tail-len": {{[0-9]+}},
# CHECK-GX-JSON-NEXT: "distances": {
# CHECK-GX-JSON-DAG: "%0": 13
# CHECK-GX-JSON-DAG: "%1": 12
# CHECK-GX-JSON-DAG: "%2": 2
# CHECK-GX-JSON: },
# CHECK-GX-JSON-NEXT: "furthest": {
# CHECK-GX-JSON-DAG: "register": "%0",
# CHECK-GX-JSON-DAG: "use": "{{[^"]+}}",
# CHECK-GX-JSON-DAG: "use-mi": "{{[^"]+}}",
# CHECK-GX-JSON-DAG: "distance": 13
# CHECK-GX-JSON: },
# CHECK-GX-JSON-NEXT: "furthest-subreg": {
# CHECK-GX-JSON-DAG: "register": "%0",
# CHECK-GX-JSON-DAG: "use": "{{[^"]+}}",
# CHECK-GX-JSON-DAG: "use-mi": "{{[^"]+}}",
# CHECK-GX-JSON-DAG: "distance": 13
# CHECK-GX-JSON: }
# CHECK-GX-JSON-NEXT: },
# CHECK-GX-JSON-NEXT: {
# CHECK-GX-JSON-NEXT: "instr": "%4:vgpr_32 = COPY $vgpr0",
# CHECK-GX-JSON-NEXT: "id": {{[0-9]+}},
# CHECK-GX-JSON-NEXT: "head-len": {{[0-9]+}},
# CHECK-GX-JSON-NEXT: "tail-len": {{[0-9]+}},
# CHECK-GX-JSON-NEXT: "distances": {
# CHECK-GX-JSON-DAG: "%0": 12
# CHECK-GX-JSON-DAG: "%1": 11
# CHECK-GX-JSON-DAG: "%2": 1
# CHECK-GX-JSON-DAG: "%3": 5
# CHECK-GX-JSON: },
# CHECK-GX-JSON-NEXT: "furthest": {
# CHECK-GX-JSON-DAG: "register": "%0",
# CHECK-GX-JSON-DAG: "use": "{{[^"]+}}",
# CHECK-GX-JSON-DAG: "use-mi": "{{[^"]+}}",
# CHECK-GX-JSON-DAG: "distance": 12
# CHECK-GX-JSON: },
# CHECK-GX-JSON-NEXT: "furthest-subreg": {
# CHECK-GX-JSON-DAG: "register": "%0",
# CHECK-GX-JSON-DAG: "use": "{{[^"]+}}",
# CHECK-GX-JSON-DAG: "use-mi": "{{[^"]+}}",
# CHECK-GX-JSON-DAG: "distance": 12
# CHECK-GX-JSON: }
# CHECK-GX-JSON-NEXT: },
# CHECK-GX-JSON-NEXT: {
# CHECK-GX-JSON-NEXT: "instr": "%5:vgpr_32 = V_AND_B32_e64 1, %2, implicit $exec",
# CHECK-GX-JSON-NEXT: "id": {{[0-9]+}},
# CHECK-GX-JSON-NEXT: "head-len": {{[0-9]+}},
# CHECK-GX-JSON-NEXT: "tail-len": {{[0-9]+}},
# CHECK-GX-JSON-NEXT: "distances": {
# CHECK-GX-JSON-DAG: "%0": 11
# CHECK-GX-JSON-DAG: "%1": 10
# CHECK-GX-JSON-DAG: "%2": 0
# CHECK-GX-JSON-DAG: "%3": 4
# CHECK-GX-JSON-DAG: "%4": 5
# CHECK-GX-JSON: },
# CHECK-GX-JSON-NEXT: "furthest": {
# CHECK-GX-JSON-DAG: "register": "%0",
# CHECK-GX-JSON-DAG: "use": "{{[^"]+}}",
# CHECK-GX-JSON-DAG: "use-mi": "{{[^"]+}}",
# CHECK-GX-JSON-DAG: "distance": 11
# CHECK-GX-JSON: },
# CHECK-GX-JSON-NEXT: "furthest-subreg": {
# CHECK-GX-JSON-DAG: "register": "%0",
# CHECK-GX-JSON-DAG: "use": "{{[^"]+}}",
# CHECK-GX-JSON-DAG: "use-mi": "{{[^"]+}}",
# CHECK-GX-JSON-DAG: "distance": 11
# CHECK-GX-JSON: }
# CHECK-GX-JSON-NEXT: },
# CHECK-GX-JSON-NEXT: {
# CHECK-GX-JSON-NEXT: "instr": "%6:sreg_32 = V_CMP_NE_U32_e64 1, %5, implicit $exec",
# CHECK-GX-JSON-NEXT: "id": {{[0-9]+}},
# CHECK-GX-JSON-NEXT: "head-len": {{[0-9]+}},
# CHECK-GX-JSON-NEXT: "tail-len": {{[0-9]+}},
# CHECK-GX-JSON-NEXT: "distances": {
# CHECK-GX-JSON-DAG: "%0": 10
# CHECK-GX-JSON-DAG: "%1": 9
# CHECK-GX-JSON-DAG: "%3": 3
# CHECK-GX-JSON-DAG: "%4": 4
# CHECK-GX-JSON-DAG: "%5": 0
# CHECK-GX-JSON: },
# CHECK-GX-JSON-NEXT: "furthest": {
# CHECK-GX-JSON-DAG: "register": "%0",
# CHECK-GX-JSON-DAG: "use": "{{[^"]+}}",
# CHECK-GX-JSON-DAG: "use-mi": "{{[^"]+}}",
# CHECK-GX-JSON-DAG: "distance": 10
# CHECK-GX-JSON: },
# CHECK-GX-JSON-NEXT: "furthest-subreg": {
# CHECK-GX-JSON-DAG: "register": "%0",
# CHECK-GX-JSON-DAG: "use": "{{[^"]+}}",
# CHECK-GX-JSON-DAG: "use-mi": "{{[^"]+}}",
# CHECK-GX-JSON-DAG: "distance": 10
# CHECK-GX-JSON: }
# CHECK-GX-JSON-NEXT: },
# CHECK-GX-JSON-NEXT: {
# CHECK-GX-JSON-NEXT: "instr": "%7:sreg_32 = SI_IF %6, %bb.1, implicit-def dead $exec, implicit-def dead $scc, implicit $exec",
# CHECK-GX-JSON-NEXT: "id": {{[0-9]+}},
# CHECK-GX-JSON-NEXT: "head-len": {{[0-9]+}},
# CHECK-GX-JSON-NEXT: "tail-len": {{[0-9]+}},
# CHECK-GX-JSON-NEXT: "distances": {
# CHECK-GX-JSON-DAG: "%0": 9
# CHECK-GX-JSON-DAG: "%1": 8
# CHECK-GX-JSON-DAG: "%3": 2
# CHECK-GX-JSON-DAG: "%4": 3
# CHECK-GX-JSON-DAG: "%6": 0
# CHECK-GX-JSON: },
# CHECK-GX-JSON-NEXT: "furthest": {
# CHECK-GX-JSON-DAG: "register": "%0",
# CHECK-GX-JSON-DAG: "use": "{{[^"]+}}",
# CHECK-GX-JSON-DAG: "use-mi": "{{[^"]+}}",
# CHECK-GX-JSON-DAG: "distance": 9
# CHECK-GX-JSON: },
# CHECK-GX-JSON-NEXT: "furthest-subreg": {
# CHECK-GX-JSON-DAG: "register": "%0",
# CHECK-GX-JSON-DAG: "use": "{{[^"]+}}",
# CHECK-GX-JSON-DAG: "use-mi": "{{[^"]+}}",
# CHECK-GX-JSON-DAG: "distance": 9
# CHECK-GX-JSON: }
# CHECK-GX-JSON-NEXT: },
# CHECK-GX-JSON-NEXT: {
# CHECK-GX-JSON-NEXT: "instr": "S_BRANCH %bb.3",
# CHECK-GX-JSON-NEXT: "id": {{[0-9]+}},
# CHECK-GX-JSON-NEXT: "head-len": {{[0-9]+}},
# CHECK-GX-JSON-NEXT: "tail-len": {{[0-9]+}},
# CHECK-GX-JSON-NEXT: "distances": {
# CHECK-GX-JSON-DAG: "%0": 8
# CHECK-GX-JSON-DAG: "%1": 7
# CHECK-GX-JSON-DAG: "%3": 1
# CHECK-GX-JSON-DAG: "%4": 2
# CHECK-GX-JSON-DAG: "%7": 3
# CHECK-GX-JSON: },
# CHECK-GX-JSON-NEXT: "furthest": {
# CHECK-GX-JSON-DAG: "register": "%0",
# CHECK-GX-JSON-DAG: "use": "{{[^"]+}}",
# CHECK-GX-JSON-DAG: "use-mi": "{{[^"]+}}",
# CHECK-GX-JSON-DAG: "distance": 8
# CHECK-GX-JSON: },
# CHECK-GX-JSON-NEXT: "furthest-subreg": {
# CHECK-GX-JSON-DAG: "register": "%0",
# CHECK-GX-JSON-DAG: "use": "{{[^"]+}}",
# CHECK-GX-JSON-DAG: "use-mi": "{{[^"]+}}",
# CHECK-GX-JSON-DAG: "distance": 8
# CHECK-GX-JSON: }
# CHECK-GX-JSON-NEXT: }
# CHECK-GX-JSON-NEXT: ],
# CHECK-GX-JSON-NEXT: "bb.1": [
# CHECK-GX-JSON-NEXT: {
# CHECK-GX-JSON-NEXT: "instr": "%8:vreg_64 = PHI undef %9:vreg_64, %bb.0, %10, %bb.3",
# CHECK-GX-JSON-NEXT: "id": {{[0-9]+}},
# CHECK-GX-JSON-NEXT: "head-len": {{[0-9]+}},
# CHECK-GX-JSON-NEXT: "tail-len": {{[0-9]+}},
# CHECK-GX-JSON-NEXT: "distances": {
# CHECK-GX-JSON-DAG: "%0": 7
# CHECK-GX-JSON-DAG: "%1": 6
# CHECK-GX-JSON-DAG: "%7": 2
# CHECK-GX-JSON: },
# CHECK-GX-JSON-NEXT: "furthest": {
# CHECK-GX-JSON-DAG: "register": "%0",
# CHECK-GX-JSON-DAG: "use": "{{[^"]+}}",
# CHECK-GX-JSON-DAG: "use-mi": "{{[^"]+}}",
# CHECK-GX-JSON-DAG: "distance": 7
# CHECK-GX-JSON: },
# CHECK-GX-JSON-NEXT: "furthest-subreg": {
# CHECK-GX-JSON-DAG: "register": "%0",
# CHECK-GX-JSON-DAG: "use": "{{[^"]+}}",
# CHECK-GX-JSON-DAG: "use-mi": "{{[^"]+}}",
# CHECK-GX-JSON-DAG: "distance": 7
# CHECK-GX-JSON: }
# CHECK-GX-JSON-NEXT: },
# CHECK-GX-JSON-NEXT: {
# CHECK-GX-JSON-NEXT: "instr": "%11:vgpr_32 = PHI %4, %bb.0, undef %12:vgpr_32, %bb.3",
# CHECK-GX-JSON-NEXT: "id": {{[0-9]+}},
# CHECK-GX-JSON-NEXT: "head-len": {{[0-9]+}},
# CHECK-GX-JSON-NEXT: "tail-len": {{[0-9]+}},
# CHECK-GX-JSON-NEXT: "distances": {
# CHECK-GX-JSON-DAG: "%0": 6
# CHECK-GX-JSON-DAG: "%1": 5
# CHECK-GX-JSON-DAG: "%7": 1
# CHECK-GX-JSON-DAG: "%8": 3
# CHECK-GX-JSON: },
# CHECK-GX-JSON-NEXT: "furthest": {
# CHECK-GX-JSON-DAG: "register": "%0",
# CHECK-GX-JSON-DAG: "use": "{{[^"]+}}",
# CHECK-GX-JSON-DAG: "use-mi": "{{[^"]+}}",
# CHECK-GX-JSON-DAG: "distance": 6
# CHECK-GX-JSON: },
# CHECK-GX-JSON-NEXT: "furthest-subreg": {
# CHECK-GX-JSON-DAG: "register": "%0",
# CHECK-GX-JSON-DAG: "use": "{{[^"]+}}",
# CHECK-GX-JSON-DAG: "use-mi": "{{[^"]+}}",
# CHECK-GX-JSON-DAG: "distance": 6
# CHECK-GX-JSON: }
# CHECK-GX-JSON-NEXT: },
# CHECK-GX-JSON-NEXT: {
# CHECK-GX-JSON-NEXT: "instr": "%13:sreg_32 = SI_ELSE %7, %bb.4, implicit-def dead $exec, implicit-def dead $scc, implicit $exec",
# CHECK-GX-JSON-NEXT: "id": {{[0-9]+}},
# CHECK-GX-JSON-NEXT: "head-len": {{[0-9]+}},
# CHECK-GX-JSON-NEXT: "tail-len": {{[0-9]+}},
# CHECK-GX-JSON-NEXT: "distances": {
# CHECK-GX-JSON-DAG: "%0": 5
# CHECK-GX-JSON-DAG: "%1": 4
# CHECK-GX-JSON-DAG: "%7": 0
# CHECK-GX-JSON-DAG: "%8": 2
# CHECK-GX-JSON-DAG: "%11": 2
# CHECK-GX-JSON: },
# CHECK-GX-JSON-NEXT: "furthest": {
# CHECK-GX-JSON-DAG: "register": "%0",
# CHECK-GX-JSON-DAG: "use": "{{[^"]+}}",
# CHECK-GX-JSON-DAG: "use-mi": "{{[^"]+}}",
# CHECK-GX-JSON-DAG: "distance": 5
# CHECK-GX-JSON: },
# CHECK-GX-JSON-NEXT: "furthest-subreg": {
# CHECK-GX-JSON-DAG: "register": "%0",
# CHECK-GX-JSON-DAG: "use": "{{[^"]+}}",
# CHECK-GX-JSON-DAG: "use-mi": "{{[^"]+}}",
# CHECK-GX-JSON-DAG: "distance": 5
# CHECK-GX-JSON: }
# CHECK-GX-JSON-NEXT: },
# CHECK-GX-JSON-NEXT: {
# CHECK-GX-JSON-NEXT: "instr": "S_BRANCH %bb.2",
# CHECK-GX-JSON-NEXT: "id": {{[0-9]+}},
# CHECK-GX-JSON-NEXT: "head-len": {{[0-9]+}},
# CHECK-GX-JSON-NEXT: "tail-len": {{[0-9]+}},
# CHECK-GX-JSON-NEXT: "distances": {
# CHECK-GX-JSON-DAG: "%0": 4
# CHECK-GX-JSON-DAG: "%1": 3
# CHECK-GX-JSON-DAG: "%8": 1
# CHECK-GX-JSON-DAG: "%11": 1
# CHECK-GX-JSON-DAG: "%13": 2
# CHECK-GX-JSON: },
# CHECK-GX-JSON-NEXT: "furthest": {
# CHECK-GX-JSON-DAG: "register": "%0",
# CHECK-GX-JSON-DAG: "use": "{{[^"]+}}",
# CHECK-GX-JSON-DAG: "use-mi": "{{[^"]+}}",
# CHECK-GX-JSON-DAG: "distance": 4
# CHECK-GX-JSON: },
# CHECK-GX-JSON-NEXT: "furthest-subreg": {
# CHECK-GX-JSON-DAG: "register": "%0",
# CHECK-GX-JSON-DAG: "use": "{{[^"]+}}",
# CHECK-GX-JSON-DAG: "use-mi": "{{[^"]+}}",
# CHECK-GX-JSON-DAG: "distance": 4
# CHECK-GX-JSON: }
# CHECK-GX-JSON-NEXT: }
# CHECK-GX-JSON-NEXT: ],
# CHECK-GX-JSON-NEXT: "bb.2": [
# CHECK-GX-JSON-NEXT: {
# CHECK-GX-JSON-NEXT: "instr": "%14:vgpr_32 = DS_READ_U8_gfx9 %11, 0, 0, implicit $exec :: (load (s8) from %ir.p1, addrspace 3)",
# CHECK-GX-JSON-NEXT: "id": {{[0-9]+}},
# CHECK-GX-JSON-NEXT: "head-len": {{[0-9]+}},
# CHECK-GX-JSON-NEXT: "tail-len": {{[0-9]+}},
# CHECK-GX-JSON-NEXT: "distances": {
# CHECK-GX-JSON-DAG: "%0": 20
# CHECK-GX-JSON-DAG: "%1": 19
# CHECK-GX-JSON-DAG: "%11": 0
# CHECK-GX-JSON-DAG: "%13": 18
# CHECK-GX-JSON: },
# CHECK-GX-JSON-NEXT: "furthest": {
# CHECK-GX-JSON-DAG: "register": "%0",
# CHECK-GX-JSON-DAG: "use": "{{[^"]+}}",
# CHECK-GX-JSON-DAG: "use-mi": "{{[^"]+}}",
# CHECK-GX-JSON-DAG: "distance": 20
# CHECK-GX-JSON: },
# CHECK-GX-JSON-NEXT: "furthest-subreg": {
# CHECK-GX-JSON-DAG: "register": "%0",
# CHECK-GX-JSON-DAG: "use": "{{[^"]+}}",
# CHECK-GX-JSON-DAG: "use-mi": "{{[^"]+}}",
# CHECK-GX-JSON-DAG: "distance": 20
# CHECK-GX-JSON: }
# CHECK-GX-JSON-NEXT: },
# CHECK-GX-JSON-NEXT: {
# CHECK-GX-JSON-NEXT: "instr": "%15:vgpr_32 = DS_READ_U8_gfx9 %11, 1, 0, implicit $exec :: (load (s8) from %ir.p1 + 1, addrspace 3)",
# CHECK-GX-JSON-NEXT: "id": {{[0-9]+}},
# CHECK-GX-JSON-NEXT: "head-len": {{[0-9]+}},
# CHECK-GX-JSON-NEXT: "tail-len": {{[0-9]+}},
# CHECK-GX-JSON-NEXT: "distances": {
# CHECK-GX-JSON-DAG: "%0": 19
# CHECK-GX-JSON-DAG: "%1": 18
# CHECK-GX-JSON-DAG: "%11": 0
# CHECK-GX-JSON-DAG: "%13": 17
# CHECK-GX-JSON-DAG: "%14": 10
# CHECK-GX-JSON: },
# CHECK-GX-JSON-NEXT: "furthest": {
# CHECK-GX-JSON-DAG: "register": "%0",
# CHECK-GX-JSON-DAG: "use": "{{[^"]+}}",
# CHECK-GX-JSON-DAG: "use-mi": "{{[^"]+}}",
# CHECK-GX-JSON-DAG: "distance": 19
# CHECK-GX-JSON: },
# CHECK-GX-JSON-NEXT: "furthest-subreg": {
# CHECK-GX-JSON-DAG: "register": "%0",
# CHECK-GX-JSON-DAG: "use": "{{[^"]+}}",
# CHECK-GX-JSON-DAG: "use-mi": "{{[^"]+}}",
# CHECK-GX-JSON-DAG: "distance": 19
# CHECK-GX-JSON: }
# CHECK-GX-JSON-NEXT: },
# CHECK-GX-JSON-NEXT: {
# CHECK-GX-JSON-NEXT: "instr": "%16:vgpr_32 = DS_READ_U8_gfx9 %11, 2, 0, implicit $exec :: (load (s8) from %ir.p1 + 2, addrspace 3)",
# CHECK-GX-JSON-NEXT: "id": {{[0-9]+}},
# CHECK-GX-JSON-NEXT: "head-len": {{[0-9]+}},
# CHECK-GX-JSON-NEXT: "tail-len": {{[0-9]+}},
# CHECK-GX-JSON-NEXT: "distances": {
# CHECK-GX-JSON-DAG: "%0": 18
# CHECK-GX-JSON-DAG: "%1": 17
# CHECK-GX-JSON-DAG: "%11": 0
# CHECK-GX-JSON-DAG: "%13": 16
# CHECK-GX-JSON-DAG: "%14": 9
# CHECK-GX-JSON-DAG: "%15": 9
# CHECK-GX-JSON: },
# CHECK-GX-JSON-NEXT: "furthest": {
# CHECK-GX-JSON-DAG: "register": "%0",
# CHECK-GX-JSON-DAG: "use": "{{[^"]+}}",
# CHECK-GX-JSON-DAG: "use-mi": "{{[^"]+}}",
# CHECK-GX-JSON-DAG: "distance": 18
# CHECK-GX-JSON: },
# CHECK-GX-JSON-NEXT: "furthest-subreg": {
# CHECK-GX-JSON-DAG: "register": "%0",
# CHECK-GX-JSON-DAG: "use": "{{[^"]+}}",
# CHECK-GX-JSON-DAG: "use-mi": "{{[^"]+}}",
# CHECK-GX-JSON-DAG: "distance": 18
# CHECK-GX-JSON: }
# CHECK-GX-JSON-NEXT: },
# CHECK-GX-JSON-NEXT: {
# CHECK-GX-JSON-NEXT: "instr": "%17:vgpr_32 = DS_READ_U8_gfx9 %11, 3, 0, implicit $exec :: (load (s8) from %ir.p1 + 3, addrspace 3)",
# CHECK-GX-JSON-NEXT: "id": {{[0-9]+}},
# CHECK-GX-JSON-NEXT: "head-len": {{[0-9]+}},
# CHECK-GX-JSON-NEXT: "tail-len": {{[0-9]+}},
# CHECK-GX-JSON-NEXT: "distances": {
# CHECK-GX-JSON-DAG: "%0": 17
# CHECK-GX-JSON-DAG: "%1": 16
# CHECK-GX-JSON-DAG: "%11": 0
# CHECK-GX-JSON-DAG: "%13": 15
# CHECK-GX-JSON-DAG: "%14": 8
# CHECK-GX-JSON-DAG: "%15": 8
# CHECK-GX-JSON-DAG: "%16": 9
# CHECK-GX-JSON: },
# CHECK-GX-JSON-NEXT: "furthest": {
# CHECK-GX-JSON-DAG: "register": "%0",
# CHECK-GX-JSON-DAG: "use": "{{[^"]+}}",
# CHECK-GX-JSON-DAG: "use-mi": "{{[^"]+}}",
# CHECK-GX-JSON-DAG: "distance": 17
# CHECK-GX-JSON: },
# CHECK-GX-JSON-NEXT: "furthest-subreg": {
# CHECK-GX-JSON-DAG: "register": "%0",
# CHECK-GX-JSON-DAG: "use": "{{[^"]+}}",
# CHECK-GX-JSON-DAG: "use-mi": "{{[^"]+}}",
# CHECK-GX-JSON-DAG: "distance": 17
# CHECK-GX-JSON: }
# CHECK-GX-JSON-NEXT: },
# CHECK-GX-JSON-NEXT: {
# CHECK-GX-JSON-NEXT: "instr": "%18:vgpr_32 = DS_READ_U8_gfx9 %11, 4, 0, implicit $exec :: (load (s8) from %ir.p1 + 4, addrspace 3)",
# CHECK-GX-JSON-NEXT: "id": {{[0-9]+}},
# CHECK-GX-JSON-NEXT: "head-len": {{[0-9]+}},
# CHECK-GX-JSON-NEXT: "tail-len": {{[0-9]+}},
# CHECK-GX-JSON-NEXT: "distances": {
# CHECK-GX-JSON-DAG: "%0": 16
# CHECK-GX-JSON-DAG: "%1": 15
# CHECK-GX-JSON-DAG: "%11": 0
# CHECK-GX-JSON-DAG: "%13": 14
# CHECK-GX-JSON-DAG: "%14": 7
# CHECK-GX-JSON-DAG: "%15": 7
# CHECK-GX-JSON-DAG: "%16": 8
# CHECK-GX-JSON-DAG: "%17": 8
# CHECK-GX-JSON: },
# CHECK-GX-JSON-NEXT: "furthest": {
# CHECK-GX-JSON-DAG: "register": "%0",
# CHECK-GX-JSON-DAG: "use": "{{[^"]+}}",
# CHECK-GX-JSON-DAG: "use-mi": "{{[^"]+}}",
# CHECK-GX-JSON-DAG: "distance": 16
# CHECK-GX-JSON: },
# CHECK-GX-JSON-NEXT: "furthest-subreg": {
# CHECK-GX-JSON-DAG: "register": "%0",
# CHECK-GX-JSON-DAG: "use": "{{[^"]+}}",
# CHECK-GX-JSON-DAG: "use-mi": "{{[^"]+}}",
# CHECK-GX-JSON-DAG: "distance": 16
# CHECK-GX-JSON: }
# CHECK-GX-JSON-NEXT: },
# CHECK-GX-JSON-NEXT: {
# CHECK-GX-JSON-NEXT: "instr": "%19:vgpr_32 = DS_READ_U8_gfx9 %11, 5, 0, implicit $exec :: (load (s8) from %ir.p1 + 5, addrspace 3)",
# CHECK-GX-JSON-NEXT: "id": {{[0-9]+}},
# CHECK-GX-JSON-NEXT: "head-len": {{[0-9]+}},
# CHECK-GX-JSON-NEXT: "tail-len": {{[0-9]+}},
# CHECK-GX-JSON-NEXT: "distances": {
# CHECK-GX-JSON-DAG: "%0": 15
# CHECK-GX-JSON-DAG: "%1": 14
# CHECK-GX-JSON-DAG: "%11": 0
# CHECK-GX-JSON-DAG: "%13": 13
# CHECK-GX-JSON-DAG: "%14": 6
# CHECK-GX-JSON-DAG: "%15": 6
# CHECK-GX-JSON-DAG: "%16": 7
# CHECK-GX-JSON-DAG: "%17": 7
# CHECK-GX-JSON-DAG: "%18": 3
# CHECK-GX-JSON: },
# CHECK-GX-JSON-NEXT: "furthest": {
# CHECK-GX-JSON-DAG: "register": "%0",
# CHECK-GX-JSON-DAG: "use": "{{[^"]+}}",
# CHECK-GX-JSON-DAG: "use-mi": "{{[^"]+}}",
# CHECK-GX-JSON-DAG: "distance": 15
# CHECK-GX-JSON: },
# CHECK-GX-JSON-NEXT: "furthest-subreg": {
# CHECK-GX-JSON-DAG: "register": "%0",
# CHECK-GX-JSON-DAG: "use": "{{[^"]+}}",
# CHECK-GX-JSON-DAG: "use-mi": "{{[^"]+}}",
# CHECK-GX-JSON-DAG: "distance": 15
# CHECK-GX-JSON: }
# CHECK-GX-JSON-NEXT: },
# CHECK-GX-JSON-NEXT: {
# CHECK-GX-JSON-NEXT: "instr": "%20:vgpr_32 = DS_READ_U8_gfx9 %11, 6, 0, implicit $exec :: (load (s8) from %ir.p1 + 6, addrspace 3)",
# CHECK-GX-JSON-NEXT: "id": {{[0-9]+}},
# CHECK-GX-JSON-NEXT: "head-len": {{[0-9]+}},
# CHECK-GX-JSON-NEXT: "tail-len": {{[0-9]+}},
# CHECK-GX-JSON-NEXT: "distances": {
# CHECK-GX-JSON-DAG: "%0": 14
# CHECK-GX-JSON-DAG: "%1": 13
# CHECK-GX-JSON-DAG: "%11": 0
# CHECK-GX-JSON-DAG: "%13": 12
# CHECK-GX-JSON-DAG: "%14": 5
# CHECK-GX-JSON-DAG: "%15": 5
# CHECK-GX-JSON-DAG: "%16": 6
# CHECK-GX-JSON-DAG: "%17": 6
# CHECK-GX-JSON-DAG: "%18": 2
# CHECK-GX-JSON-DAG: "%19": 2
# CHECK-GX-JSON: },
# CHECK-GX-JSON-NEXT: "furthest": {
# CHECK-GX-JSON-DAG: "register": "%0",
# CHECK-GX-JSON-DAG: "use": "{{[^"]+}}",
# CHECK-GX-JSON-DAG: "use-mi": "{{[^"]+}}",
# CHECK-GX-JSON-DAG: "distance": 14
# CHECK-GX-JSON: },
# CHECK-GX-JSON-NEXT: "furthest-subreg": {
# CHECK-GX-JSON-DAG: "register": "%0",
# CHECK-GX-JSON-DAG: "use": "{{[^"]+}}",
# CHECK-GX-JSON-DAG: "use-mi": "{{[^"]+}}",
# CHECK-GX-JSON-DAG: "distance": 14
# CHECK-GX-JSON: }
# CHECK-GX-JSON-NEXT: },
# CHECK-GX-JSON-NEXT: {
# CHECK-GX-JSON-NEXT: "instr": "%21:vgpr_32 = DS_READ_U8_gfx9 %11, 7, 0, implicit $exec :: (load (s8) from %ir.p1 + 7, addrspace 3)",
# CHECK-GX-JSON-NEXT: "id": {{[0-9]+}},
# CHECK-GX-JSON-NEXT: "head-len": {{[0-9]+}},
# CHECK-GX-JSON-NEXT: "tail-len": {{[0-9]+}},
# CHECK-GX-JSON-NEXT: "distances": {
# CHECK-GX-JSON-DAG: "%0": 13
# CHECK-GX-JSON-DAG: "%1": 12
# CHECK-GX-JSON-DAG: "%11": 0
# CHECK-GX-JSON-DAG: "%13": 11
# CHECK-GX-JSON-DAG: "%14": 4
# CHECK-GX-JSON-DAG: "%15": 4
# CHECK-GX-JSON-DAG: "%16": 5
# CHECK-GX-JSON-DAG: "%17": 5
# CHECK-GX-JSON-DAG: "%18": 1
# CHECK-GX-JSON-DAG: "%19": 1
# CHECK-GX-JSON-DAG: "%20": 2
# CHECK-GX-JSON: },
# CHECK-GX-JSON-NEXT: "furthest": {
# CHECK-GX-JSON-DAG: "register": "%0",
# CHECK-GX-JSON-DAG: "use": "{{[^"]+}}",
# CHECK-GX-JSON-DAG: "use-mi": "{{[^"]+}}",
# CHECK-GX-JSON-DAG: "distance": 13
# CHECK-GX-JSON: },
# CHECK-GX-JSON-NEXT: "furthest-subreg": {
# CHECK-GX-JSON-DAG: "register": "%0",
# CHECK-GX-JSON-DAG: "use": "{{[^"]+}}",
# CHECK-GX-JSON-DAG: "use-mi": "{{[^"]+}}",
# CHECK-GX-JSON-DAG: "distance": 13
# CHECK-GX-JSON: }
# CHECK-GX-JSON-NEXT: },
# CHECK-GX-JSON-NEXT: {
# CHECK-GX-JSON-NEXT: "instr": "%22:vgpr_32 = V_LSHL_OR_B32_e64 %19, 8, %18, implicit $exec",
# CHECK-GX-JSON-NEXT: "id": {{[0-9]+}},
# CHECK-GX-JSON-NEXT: "head-len": {{[0-9]+}},
# CHECK-GX-JSON-NEXT: "tail-len": {{[0-9]+}},
# CHECK-GX-JSON-NEXT: "distances": {
# CHECK-GX-JSON-DAG: "%0": 12
# CHECK-GX-JSON-DAG: "%1": 11
# CHECK-GX-JSON-DAG: "%13": 10
# CHECK-GX-JSON-DAG: "%14": 3
# CHECK-GX-JSON-DAG: "%15": 3
# CHECK-GX-JSON-DAG: "%16": 4
# CHECK-GX-JSON-DAG: "%17": 4
# CHECK-GX-JSON-DAG: "%18": 0
# CHECK-GX-JSON-DAG: "%19": 0
# CHECK-GX-JSON-DAG: "%20": 1
# CHECK-GX-JSON-DAG: "%21": 1
# CHECK-GX-JSON: },
# CHECK-GX-JSON-NEXT: "furthest": {
# CHECK-GX-JSON-DAG: "register": "%0",
# CHECK-GX-JSON-DAG: "use": "{{[^"]+}}",
# CHECK-GX-JSON-DAG: "use-mi": "{{[^"]+}}",
# CHECK-GX-JSON-DAG: "distance": 12
# CHECK-GX-JSON: },
# CHECK-GX-JSON-NEXT: "furthest-subreg": {
# CHECK-GX-JSON-DAG: "register": "%0",
# CHECK-GX-JSON-DAG: "use": "{{[^"]+}}",
# CHECK-GX-JSON-DAG: "use-mi": "{{[^"]+}}",
# CHECK-GX-JSON-DAG: "distance": 12
# CHECK-GX-JSON: }
# CHECK-GX-JSON-NEXT: },
# CHECK-GX-JSON-NEXT: {
# CHECK-GX-JSON-NEXT: "instr": "%23:vgpr_32 = V_LSHL_OR_B32_e64 %21, 8, %20, implicit $exec",
# CHECK-GX-JSON-NEXT: "id": {{[0-9]+}},
# CHECK-GX-JSON-NEXT: "head-len": {{[0-9]+}},
# CHECK-GX-JSON-NEXT: "tail-len": {{[0-9]+}},
# CHECK-GX-JSON-NEXT: "distances": {
# CHECK-GX-JSON-DAG: "%0": 11
# CHECK-GX-JSON-DAG: "%1": 10
# CHECK-GX-JSON-DAG: "%13": 9
# CHECK-GX-JSON-DAG: "%14": 2
# CHECK-GX-JSON-DAG: "%15": 2
# CHECK-GX-JSON-DAG: "%16": 3
# CHECK-GX-JSON-DAG: "%17": 3
# CHECK-GX-JSON-DAG: "%20": 0
# CHECK-GX-JSON-DAG: "%21": 0
# CHECK-GX-JSON-DAG: "%22": 1
# CHECK-GX-JSON: },
# CHECK-GX-JSON-NEXT: "furthest": {
# CHECK-GX-JSON-DAG: "register": "%0",
# CHECK-GX-JSON-DAG: "use": "{{[^"]+}}",
# CHECK-GX-JSON-DAG: "use-mi": "{{[^"]+}}",
# CHECK-GX-JSON-DAG: "distance": 11
# CHECK-GX-JSON: },
# CHECK-GX-JSON-NEXT: "furthest-subreg": {
# CHECK-GX-JSON-DAG: "register": "%0",
# CHECK-GX-JSON-DAG: "use": "{{[^"]+}}",
# CHECK-GX-JSON-DAG: "use-mi": "{{[^"]+}}",
# CHECK-GX-JSON-DAG: "distance": 11
# CHECK-GX-JSON: }
# CHECK-GX-JSON-NEXT: },
# CHECK-GX-JSON-NEXT: {
# CHECK-GX-JSON-NEXT: "instr": "%24:vgpr_32 = V_LSHL_OR_B32_e64 %23, 16, %22, implicit $exec",
# CHECK-GX-JSON-NEXT: "id": {{[0-9]+}},
# CHECK-GX-JSON-NEXT: "head-len": {{[0-9]+}},
# CHECK-GX-JSON-NEXT: "tail-len": {{[0-9]+}},
# CHECK-GX-JSON-NEXT: "distances": {
# CHECK-GX-JSON-DAG: "%0": 10
# CHECK-GX-JSON-DAG: "%1": 9
# CHECK-GX-JSON-DAG: "%13": 8
# CHECK-GX-JSON-DAG: "%14": 1
# CHECK-GX-JSON-DAG: "%15": 1
# CHECK-GX-JSON-DAG: "%16": 2
# CHECK-GX-JSON-DAG: "%17": 2
# CHECK-GX-JSON-DAG: "%22": 0
# CHECK-GX-JSON-DAG: "%23": 0
# CHECK-GX-JSON: },
# CHECK-GX-JSON-NEXT: "furthest": {
# CHECK-GX-JSON-DAG: "register": "%0",
# CHECK-GX-JSON-DAG: "use": "{{[^"]+}}",
# CHECK-GX-JSON-DAG: "use-mi": "{{[^"]+}}",
# CHECK-GX-JSON-DAG: "distance": 10
# CHECK-GX-JSON: },
# CHECK-GX-JSON-NEXT: "furthest-subreg": {
# CHECK-GX-JSON-DAG: "register": "%0",
# CHECK-GX-JSON-DAG: "use": "{{[^"]+}}",
# CHECK-GX-JSON-DAG: "use-mi": "{{[^"]+}}",
# CHECK-GX-JSON-DAG: "distance": 10
# CHECK-GX-JSON: }
# CHECK-GX-JSON-NEXT: },
# CHECK-GX-JSON-NEXT: {
# CHECK-GX-JSON-NEXT: "instr": "%25:vgpr_32 = V_LSHL_OR_B32_e64 %15, 8, %14, implicit $exec",
# CHECK-GX-JSON-NEXT: "id": {{[0-9]+}},
# CHECK-GX-JSON-NEXT: "head-len": {{[0-9]+}},
# CHECK-GX-JSON-NEXT: "tail-len": {{[0-9]+}},
# CHECK-GX-JSON-NEXT: "distances": {
# CHECK-GX-JSON-DAG: "%0": 9
# CHECK-GX-JSON-DAG: "%1": 8
# CHECK-GX-JSON-DAG: "%13": 7
# CHECK-GX-JSON-DAG: "%14": 0
# CHECK-GX-JSON-DAG: "%15": 0
# CHECK-GX-JSON-DAG: "%16": 1
# CHECK-GX-JSON-DAG: "%17": 1
# CHECK-GX-JSON-DAG: "%24": 3
# CHECK-GX-JSON: },
# CHECK-GX-JSON-NEXT: "furthest": {
# CHECK-GX-JSON-DAG: "register": "%0",
# CHECK-GX-JSON-DAG: "use": "{{[^"]+}}",
# CHECK-GX-JSON-DAG: "use-mi": "{{[^"]+}}",
# CHECK-GX-JSON-DAG: "distance": 9
# CHECK-GX-JSON: },
# CHECK-GX-JSON-NEXT: "furthest-subreg": {
# CHECK-GX-JSON-DAG: "register": "%0",
# CHECK-GX-JSON-DAG: "use": "{{[^"]+}}",
# CHECK-GX-JSON-DAG: "use-mi": "{{[^"]+}}",
# CHECK-GX-JSON-DAG: "distance": 9
# CHECK-GX-JSON: }
# CHECK-GX-JSON-NEXT: },
# CHECK-GX-JSON-NEXT: {
# CHECK-GX-JSON-NEXT: "instr": "%26:vgpr_32 = V_LSHL_OR_B32_e64 %17, 8, %16, implicit $exec",
# CHECK-GX-JSON-NEXT: "id": {{[0-9]+}},
# CHECK-GX-JSON-NEXT: "head-len": {{[0-9]+}},
# CHECK-GX-JSON-NEXT: "tail-len": {{[0-9]+}},
# CHECK-GX-JSON-NEXT: "distances": {
# CHECK-GX-JSON-DAG: "%0": 8
# CHECK-GX-JSON-DAG: "%1": 7
# CHECK-GX-JSON-DAG: "%13": 6
# CHECK-GX-JSON-DAG: "%16": 0
# CHECK-GX-JSON-DAG: "%17": 0
# CHECK-GX-JSON-DAG: "%24": 2
# CHECK-GX-JSON-DAG: "%25": 1
# CHECK-GX-JSON: },
# CHECK-GX-JSON-NEXT: "furthest": {
# CHECK-GX-JSON-DAG: "register": "%0",
# CHECK-GX-JSON-DAG: "use": "{{[^"]+}}",
# CHECK-GX-JSON-DAG: "use-mi": "{{[^"]+}}",
# CHECK-GX-JSON-DAG: "distance": 8
# CHECK-GX-JSON: },
# CHECK-GX-JSON-NEXT: "furthest-subreg": {
# CHECK-GX-JSON-DAG: "register": "%0",
# CHECK-GX-JSON-DAG: "use": "{{[^"]+}}",
# CHECK-GX-JSON-DAG: "use-mi": "{{[^"]+}}",
# CHECK-GX-JSON-DAG: "distance": 8
# CHECK-GX-JSON: }
# CHECK-GX-JSON-NEXT: },
# CHECK-GX-JSON-NEXT: {
# CHECK-GX-JSON-NEXT: "instr": "%27:vgpr_32 = V_LSHL_OR_B32_e64 %26, 16, %25, implicit $exec",
# CHECK-GX-JSON-NEXT: "id": {{[0-9]+}},
# CHECK-GX-JSON-NEXT: "head-len": {{[0-9]+}},
# CHECK-GX-JSON-NEXT: "tail-len": {{[0-9]+}},
# CHECK-GX-JSON-NEXT: "distances": {
# CHECK-GX-JSON-DAG: "%0": 7
# CHECK-GX-JSON-DAG: "%1": 6
# CHECK-GX-JSON-DAG: "%13": 5
# CHECK-GX-JSON-DAG: "%24": 1
# CHECK-GX-JSON-DAG: "%25": 0
# CHECK-GX-JSON-DAG: "%26": 0
# CHECK-GX-JSON: },
# CHECK-GX-JSON-NEXT: "furthest": {
# CHECK-GX-JSON-DAG: "register": "%0",
# CHECK-GX-JSON-DAG: "use": "{{[^"]+}}",
# CHECK-GX-JSON-DAG: "use-mi": "{{[^"]+}}",
# CHECK-GX-JSON-DAG: "distance": 7
# CHECK-GX-JSON: },
# CHECK-GX-JSON-NEXT: "furthest-subreg": {
# CHECK-GX-JSON-DAG: "register": "%0",
# CHECK-GX-JSON-DAG: "use": "{{[^"]+}}",
# CHECK-GX-JSON-DAG: "use-mi": "{{[^"]+}}",
# CHECK-GX-JSON-DAG: "distance": 7
# CHECK-GX-JSON: }
# CHECK-GX-JSON-NEXT: },
# CHECK-GX-JSON-NEXT: {
# CHECK-GX-JSON-NEXT: "instr": "%28:vreg_64 = REG_SEQUENCE %27, %subreg.sub0, %24, %subreg.sub1",
# CHECK-GX-JSON-NEXT: "id": {{[0-9]+}},
# CHECK-GX-JSON-NEXT: "head-len": {{[0-9]+}},
# CHECK-GX-JSON-NEXT: "tail-len": {{[0-9]+}},
# CHECK-GX-JSON-NEXT: "distances": {
# CHECK-GX-JSON-DAG: "%0": 6
# CHECK-GX-JSON-DAG: "%1": 5
# CHECK-GX-JSON-DAG: "%13": 4
# CHECK-GX-JSON-DAG: "%24": 0
# CHECK-GX-JSON-DAG: "%27": 0
# CHECK-GX-JSON: },
# CHECK-GX-JSON-NEXT: "furthest": {
# CHECK-GX-JSON-DAG: "register": "%0",
# CHECK-GX-JSON-DAG: "use": "{{[^"]+}}",
# CHECK-GX-JSON-DAG: "use-mi": "{{[^"]+}}",
# CHECK-GX-JSON-DAG: "distance": 6
# CHECK-GX-JSON: },
# CHECK-GX-JSON-NEXT: "furthest-subreg": {
# CHECK-GX-JSON-DAG: "register": "%0",
# CHECK-GX-JSON-DAG: "use": "{{[^"]+}}",
# CHECK-GX-JSON-DAG: "use-mi": "{{[^"]+}}",
# CHECK-GX-JSON-DAG: "distance": 6
# CHECK-GX-JSON: }
# CHECK-GX-JSON-NEXT: },
# CHECK-GX-JSON-NEXT: {
# CHECK-GX-JSON-NEXT: "instr": "%29:vreg_64 = COPY %28",
# CHECK-GX-JSON-NEXT: "id": {{[0-9]+}},
# CHECK-GX-JSON-NEXT: "head-len": {{[0-9]+}},
# CHECK-GX-JSON-NEXT: "tail-len": {{[0-9]+}},
# CHECK-GX-JSON-NEXT: "distances": {
# CHECK-GX-JSON-DAG: "%0": 5
# CHECK-GX-JSON-DAG: "%1": 4
# CHECK-GX-JSON-DAG: "%13": 3
# CHECK-GX-JSON-DAG: "%28": 0
# CHECK-GX-JSON: },
# CHECK-GX-JSON-NEXT: "furthest": {
# CHECK-GX-JSON-DAG: "register": "%0",
# CHECK-GX-JSON-DAG: "use": "{{[^"]+}}",
# CHECK-GX-JSON-DAG: "use-mi": "{{[^"]+}}",
# CHECK-GX-JSON-DAG: "distance": 5
# CHECK-GX-JSON: },
# CHECK-GX-JSON-NEXT: "furthest-subreg": {
# CHECK-GX-JSON-DAG: "register": "%0",
# CHECK-GX-JSON-DAG: "use": "{{[^"]+}}",
# CHECK-GX-JSON-DAG: "use-mi": "{{[^"]+}}",
# CHECK-GX-JSON-DAG: "distance": 5
# CHECK-GX-JSON: }
# CHECK-GX-JSON-NEXT: },
# CHECK-GX-JSON-NEXT: {
# CHECK-GX-JSON-NEXT: "instr": "S_BRANCH %bb.4",
# CHECK-GX-JSON-NEXT: "id": {{[0-9]+}},
# CHECK-GX-JSON-NEXT: "head-len": {{[0-9]+}},
# CHECK-GX-JSON-NEXT: "tail-len": {{[0-9]+}},
# CHECK-GX-JSON-NEXT: "distances": {
# CHECK-GX-JSON-DAG: "%0": 4
# CHECK-GX-JSON-DAG: "%1": 3
# CHECK-GX-JSON-DAG: "%13": 2
# CHECK-GX-JSON-DAG: "%29": 1
# CHECK-GX-JSON: },
# CHECK-GX-JSON-NEXT: "furthest": {
# CHECK-GX-JSON-DAG: "register": "%0",
# CHECK-GX-JSON-DAG: "use": "{{[^"]+}}",
# CHECK-GX-JSON-DAG: "use-mi": "{{[^"]+}}",
# CHECK-GX-JSON-DAG: "distance": 4
# CHECK-GX-JSON: },
# CHECK-GX-JSON-NEXT: "furthest-subreg": {
# CHECK-GX-JSON-DAG: "register": "%0",
# CHECK-GX-JSON-DAG: "use": "{{[^"]+}}",
# CHECK-GX-JSON-DAG: "use-mi": "{{[^"]+}}",
# CHECK-GX-JSON-DAG: "distance": 4
# CHECK-GX-JSON: }
# CHECK-GX-JSON-NEXT: }
# CHECK-GX-JSON-NEXT: ],
# CHECK-GX-JSON-NEXT: "bb.3": [
# CHECK-GX-JSON-NEXT: {
# CHECK-GX-JSON-NEXT: "instr": "%30:vgpr_32 = DS_READ_U8_gfx9 %3, 0, 0, implicit $exec :: (load (s8) from %ir.p2, addrspace 3)",
# CHECK-GX-JSON-NEXT: "id": {{[0-9]+}},
# CHECK-GX-JSON-NEXT: "head-len": {{[0-9]+}},
# CHECK-GX-JSON-NEXT: "tail-len": {{[0-9]+}},
# CHECK-GX-JSON-NEXT: "distances": {
# CHECK-GX-JSON-DAG: "%0": 24
# CHECK-GX-JSON-DAG: "%1": 23
# CHECK-GX-JSON-DAG: "%3": 0
# CHECK-GX-JSON-DAG: "%7": 19
# CHECK-GX-JSON: },
# CHECK-GX-JSON-NEXT: "furthest": {
# CHECK-GX-JSON-DAG: "register": "%0",
# CHECK-GX-JSON-DAG: "use": "{{[^"]+}}",
# CHECK-GX-JSON-DAG: "use-mi": "{{[^"]+}}",
# CHECK-GX-JSON-DAG: "distance": 24
# CHECK-GX-JSON: },
# CHECK-GX-JSON-NEXT: "furthest-subreg": {
# CHECK-GX-JSON-DAG: "register": "%0",
# CHECK-GX-JSON-DAG: "use": "{{[^"]+}}",
# CHECK-GX-JSON-DAG: "use-mi": "{{[^"]+}}",
# CHECK-GX-JSON-DAG: "distance": 24
# CHECK-GX-JSON: }
# CHECK-GX-JSON-NEXT: },
# CHECK-GX-JSON-NEXT: {
# CHECK-GX-JSON-NEXT: "instr": "%31:vgpr_32 = DS_READ_U8_gfx9 %3, 1, 0, implicit $exec :: (load (s8) from %ir.p2 + 1, addrspace 3)",
# CHECK-GX-JSON-NEXT: "id": {{[0-9]+}},
# CHECK-GX-JSON-NEXT: "head-len": {{[0-9]+}},
# CHECK-GX-JSON-NEXT: "tail-len": {{[0-9]+}},
# CHECK-GX-JSON-NEXT: "distances": {
# CHECK-GX-JSON-DAG: "%0": 23
# CHECK-GX-JSON-DAG: "%1": 22
# CHECK-GX-JSON-DAG: "%3": 0
# CHECK-GX-JSON-DAG: "%7": 18
# CHECK-GX-JSON-DAG: "%30": 10
# CHECK-GX-JSON: },
# CHECK-GX-JSON-NEXT: "furthest": {
# CHECK-GX-JSON-DAG: "register": "%0",
# CHECK-GX-JSON-DAG: "use": "{{[^"]+}}",
# CHECK-GX-JSON-DAG: "use-mi": "{{[^"]+}}",
# CHECK-GX-JSON-DAG: "distance": 23
# CHECK-GX-JSON: },
# CHECK-GX-JSON-NEXT: "furthest-subreg": {
# CHECK-GX-JSON-DAG: "register": "%0",
# CHECK-GX-JSON-DAG: "use": "{{[^"]+}}",
# CHECK-GX-JSON-DAG: "use-mi": "{{[^"]+}}",
# CHECK-GX-JSON-DAG: "distance": 23
# CHECK-GX-JSON: }
# CHECK-GX-JSON-NEXT: },
# CHECK-GX-JSON-NEXT: {
# CHECK-GX-JSON-NEXT: "instr": "%32:vgpr_32 = DS_READ_U8_gfx9 %3, 2, 0, implicit $exec :: (load (s8) from %ir.p2 + 2, addrspace 3)",
# CHECK-GX-JSON-NEXT: "id": {{[0-9]+}},
# CHECK-GX-JSON-NEXT: "head-len": {{[0-9]+}},
# CHECK-GX-JSON-NEXT: "tail-len": {{[0-9]+}},
# CHECK-GX-JSON-NEXT: "distances": {
# CHECK-GX-JSON-DAG: "%0": 22
# CHECK-GX-JSON-DAG: "%1": 21
# CHECK-GX-JSON-DAG: "%3": 0
# CHECK-GX-JSON-DAG: "%7": 17
# CHECK-GX-JSON-DAG: "%30": 9
# CHECK-GX-JSON-DAG: "%31": 9
# CHECK-GX-JSON: },
# CHECK-GX-JSON-NEXT: "furthest": {
# CHECK-GX-JSON-DAG: "register": "%0",
# CHECK-GX-JSON-DAG: "use": "{{[^"]+}}",
# CHECK-GX-JSON-DAG: "use-mi": "{{[^"]+}}",
# CHECK-GX-JSON-DAG: "distance": 22
# CHECK-GX-JSON: },
# CHECK-GX-JSON-NEXT: "furthest-subreg": {
# CHECK-GX-JSON-DAG: "register": "%0",
# CHECK-GX-JSON-DAG: "use": "{{[^"]+}}",
# CHECK-GX-JSON-DAG: "use-mi": "{{[^"]+}}",
# CHECK-GX-JSON-DAG: "distance": 22
# CHECK-GX-JSON: }
# CHECK-GX-JSON-NEXT: },
# CHECK-GX-JSON-NEXT: {
# CHECK-GX-JSON-NEXT: "instr": "%33:vgpr_32 = DS_READ_U8_gfx9 %3, 3, 0, implicit $exec :: (load (s8) from %ir.p2 + 3, addrspace 3)",
# CHECK-GX-JSON-NEXT: "id": {{[0-9]+}},
# CHECK-GX-JSON-NEXT: "head-len": {{[0-9]+}},
# CHECK-GX-JSON-NEXT: "tail-len": {{[0-9]+}},
# CHECK-GX-JSON-NEXT: "distances": {
# CHECK-GX-JSON-DAG: "%0": 21
# CHECK-GX-JSON-DAG: "%1": 20
# CHECK-GX-JSON-DAG: "%3": 0
# CHECK-GX-JSON-DAG: "%7": 16
# CHECK-GX-JSON-DAG: "%30": 8
# CHECK-GX-JSON-DAG: "%31": 8
# CHECK-GX-JSON-DAG: "%32": 9
# CHECK-GX-JSON: },
# CHECK-GX-JSON-NEXT: "furthest": {
# CHECK-GX-JSON-DAG: "register": "%0",
# CHECK-GX-JSON-DAG: "use": "{{[^"]+}}",
# CHECK-GX-JSON-DAG: "use-mi": "{{[^"]+}}",
# CHECK-GX-JSON-DAG: "distance": 21
# CHECK-GX-JSON: },
# CHECK-GX-JSON-NEXT: "furthest-subreg": {
# CHECK-GX-JSON-DAG: "register": "%0",
# CHECK-GX-JSON-DAG: "use": "{{[^"]+}}",
# CHECK-GX-JSON-DAG: "use-mi": "{{[^"]+}}",
# CHECK-GX-JSON-DAG: "distance": 21
# CHECK-GX-JSON: }
# CHECK-GX-JSON-NEXT: },
# CHECK-GX-JSON-NEXT: {
# CHECK-GX-JSON-NEXT: "instr": "%34:vgpr_32 = DS_READ_U8_gfx9 %3, 4, 0, implicit $exec :: (load (s8) from %ir.p2 + 4, addrspace 3)",
# CHECK-GX-JSON-NEXT: "id": {{[0-9]+}},
# CHECK-GX-JSON-NEXT: "head-len": {{[0-9]+}},
# CHECK-GX-JSON-NEXT: "tail-len": {{[0-9]+}},
# CHECK-GX-JSON-NEXT: "distances": {
# CHECK-GX-JSON-DAG: "%0": 20
# CHECK-GX-JSON-DAG: "%1": 19
# CHECK-GX-JSON-DAG: "%3": 0
# CHECK-GX-JSON-DAG: "%7": 15
# CHECK-GX-JSON-DAG: "%30": 7
# CHECK-GX-JSON-DAG: "%31": 7
# CHECK-GX-JSON-DAG: "%32": 8
# CHECK-GX-JSON-DAG: "%33": 8
# CHECK-GX-JSON: },
# CHECK-GX-JSON-NEXT: "furthest": {
# CHECK-GX-JSON-DAG: "register": "%0",
# CHECK-GX-JSON-DAG: "use": "{{[^"]+}}",
# CHECK-GX-JSON-DAG: "use-mi": "{{[^"]+}}",
# CHECK-GX-JSON-DAG: "distance": 20
# CHECK-GX-JSON: },
# CHECK-GX-JSON-NEXT: "furthest-subreg": {
# CHECK-GX-JSON-DAG: "register": "%0",
# CHECK-GX-JSON-DAG: "use": "{{[^"]+}}",
# CHECK-GX-JSON-DAG: "use-mi": "{{[^"]+}}",
# CHECK-GX-JSON-DAG: "distance": 20
# CHECK-GX-JSON: }
# CHECK-GX-JSON-NEXT: },
# CHECK-GX-JSON-NEXT: {
# CHECK-GX-JSON-NEXT: "instr": "%35:vgpr_32 = DS_READ_U8_gfx9 %3, 5, 0, implicit $exec :: (load (s8) from %ir.p2 + 5, addrspace 3)",
# CHECK-GX-JSON-NEXT: "id": {{[0-9]+}},
# CHECK-GX-JSON-NEXT: "head-len": {{[0-9]+}},
# CHECK-GX-JSON-NEXT: "tail-len": {{[0-9]+}},
# CHECK-GX-JSON-NEXT: "distances": {
# CHECK-GX-JSON-DAG: "%0": 19
# CHECK-GX-JSON-DAG: "%1": 18
# CHECK-GX-JSON-DAG: "%3": 0
# CHECK-GX-JSON-DAG: "%7": 14
# CHECK-GX-JSON-DAG: "%30": 6
# CHECK-GX-JSON-DAG: "%31": 6
# CHECK-GX-JSON-DAG: "%32": 7
# CHECK-GX-JSON-DAG: "%33": 7
# CHECK-GX-JSON-DAG: "%34": 3
# CHECK-GX-JSON: },
# CHECK-GX-JSON-NEXT: "furthest": {
# CHECK-GX-JSON-DAG: "register": "%0",
# CHECK-GX-JSON-DAG: "use": "{{[^"]+}}",
# CHECK-GX-JSON-DAG: "use-mi": "{{[^"]+}}",
# CHECK-GX-JSON-DAG: "distance": 19
# CHECK-GX-JSON: },
# CHECK-GX-JSON-NEXT: "furthest-subreg": {
# CHECK-GX-JSON-DAG: "register": "%0",
# CHECK-GX-JSON-DAG: "use": "{{[^"]+}}",
# CHECK-GX-JSON-DAG: "use-mi": "{{[^"]+}}",
# CHECK-GX-JSON-DAG: "distance": 19
# CHECK-GX-JSON: }
# CHECK-GX-JSON-NEXT: },
# CHECK-GX-JSON-NEXT: {
# CHECK-GX-JSON-NEXT: "instr": "%36:vgpr_32 = DS_READ_U8_gfx9 %3, 6, 0, implicit $exec :: (load (s8) from %ir.p2 + 6, addrspace 3)",
# CHECK-GX-JSON-NEXT: "id": {{[0-9]+}},
# CHECK-GX-JSON-NEXT: "head-len": {{[0-9]+}},
# CHECK-GX-JSON-NEXT: "tail-len": {{[0-9]+}},
# CHECK-GX-JSON-NEXT: "distances": {
# CHECK-GX-JSON-DAG: "%0": 18
# CHECK-GX-JSON-DAG: "%1": 17
# CHECK-GX-JSON-DAG: "%3": 0
# CHECK-GX-JSON-DAG: "%7": 13
# CHECK-GX-JSON-DAG: "%30": 5
# CHECK-GX-JSON-DAG: "%31": 5
# CHECK-GX-JSON-DAG: "%32": 6
# CHECK-GX-JSON-DAG: "%33": 6
# CHECK-GX-JSON-DAG: "%34": 2
# CHECK-GX-JSON-DAG: "%35": 2
# CHECK-GX-JSON: },
# CHECK-GX-JSON-NEXT: "furthest": {
# CHECK-GX-JSON-DAG: "register": "%0",
# CHECK-GX-JSON-DAG: "use": "{{[^"]+}}",
# CHECK-GX-JSON-DAG: "use-mi": "{{[^"]+}}",
# CHECK-GX-JSON-DAG: "distance": 18
# CHECK-GX-JSON: },
# CHECK-GX-JSON-NEXT: "furthest-subreg": {
# CHECK-GX-JSON-DAG: "register": "%0",
# CHECK-GX-JSON-DAG: "use": "{{[^"]+}}",
# CHECK-GX-JSON-DAG: "use-mi": "{{[^"]+}}",
# CHECK-GX-JSON-DAG: "distance": 18
# CHECK-GX-JSON: }
# CHECK-GX-JSON-NEXT: },
# CHECK-GX-JSON-NEXT: {
# CHECK-GX-JSON-NEXT: "instr": "%37:vgpr_32 = DS_READ_U8_gfx9 %3, 7, 0, implicit $exec :: (load (s8) from %ir.p2 + 7, addrspace 3)",
# CHECK-GX-JSON-NEXT: "id": {{[0-9]+}},
# CHECK-GX-JSON-NEXT: "head-len": {{[0-9]+}},
# CHECK-GX-JSON-NEXT: "tail-len": {{[0-9]+}},
# CHECK-GX-JSON-NEXT: "distances": {
# CHECK-GX-JSON-DAG: "%0": 17
# CHECK-GX-JSON-DAG: "%1": 16
# CHECK-GX-JSON-DAG: "%3": 0
# CHECK-GX-JSON-DAG: "%7": 12
# CHECK-GX-JSON-DAG: "%30": 4
# CHECK-GX-JSON-DAG: "%31": 4
# CHECK-GX-JSON-DAG: "%32": 5
# CHECK-GX-JSON-DAG: "%33": 5
# CHECK-GX-JSON-DAG: "%34": 1
# CHECK-GX-JSON-DAG: "%35": 1
# CHECK-GX-JSON-DAG: "%36": 2
# CHECK-GX-JSON: },
# CHECK-GX-JSON-NEXT: "furthest": {
# CHECK-GX-JSON-DAG: "register": "%0",
# CHECK-GX-JSON-DAG: "use": "{{[^"]+}}",
# CHECK-GX-JSON-DAG: "use-mi": "{{[^"]+}}",
# CHECK-GX-JSON-DAG: "distance": 17
# CHECK-GX-JSON: },
# CHECK-GX-JSON-NEXT: "furthest-subreg": {
# CHECK-GX-JSON-DAG: "register": "%0",
# CHECK-GX-JSON-DAG: "use": "{{[^"]+}}",
# CHECK-GX-JSON-DAG: "use-mi": "{{[^"]+}}",
# CHECK-GX-JSON-DAG: "distance": 17
# CHECK-GX-JSON: }
# CHECK-GX-JSON-NEXT: },
# CHECK-GX-JSON-NEXT: {
# CHECK-GX-JSON-NEXT: "instr": "%38:vgpr_32 = V_LSHL_OR_B32_e64 %35, 8, %34, implicit $exec",
# CHECK-GX-JSON-NEXT: "id": {{[0-9]+}},
# CHECK-GX-JSON-NEXT: "head-len": {{[0-9]+}},
# CHECK-GX-JSON-NEXT: "tail-len": {{[0-9]+}},
# CHECK-GX-JSON-NEXT: "distances": {
# CHECK-GX-JSON-DAG: "%0": 16
# CHECK-GX-JSON-DAG: "%1": 15
# CHECK-GX-JSON-DAG: "%7": 11
# CHECK-GX-JSON-DAG: "%30": 3
# CHECK-GX-JSON-DAG: "%31": 3
# CHECK-GX-JSON-DAG: "%32": 4
# CHECK-GX-JSON-DAG: "%33": 4
# CHECK-GX-JSON-DAG: "%34": 0
# CHECK-GX-JSON-DAG: "%35": 0
# CHECK-GX-JSON-DAG: "%36": 1
# CHECK-GX-JSON-DAG: "%37": 1
# CHECK-GX-JSON: },
# CHECK-GX-JSON-NEXT: "furthest": {
# CHECK-GX-JSON-DAG: "register": "%0",
# CHECK-GX-JSON-DAG: "use": "{{[^"]+}}",
# CHECK-GX-JSON-DAG: "use-mi": "{{[^"]+}}",
# CHECK-GX-JSON-DAG: "distance": 16
# CHECK-GX-JSON: },
# CHECK-GX-JSON-NEXT: "furthest-subreg": {
# CHECK-GX-JSON-DAG: "register": "%0",
# CHECK-GX-JSON-DAG: "use": "{{[^"]+}}",
# CHECK-GX-JSON-DAG: "use-mi": "{{[^"]+}}",
# CHECK-GX-JSON-DAG: "distance": 16
# CHECK-GX-JSON: }
# CHECK-GX-JSON-NEXT: },
# CHECK-GX-JSON-NEXT: {
# CHECK-GX-JSON-NEXT: "instr": "%39:vgpr_32 = V_LSHL_OR_B32_e64 %37, 8, %36, implicit $exec",
# CHECK-GX-JSON-NEXT: "id": {{[0-9]+}},
# CHECK-GX-JSON-NEXT: "head-len": {{[0-9]+}},
# CHECK-GX-JSON-NEXT: "tail-len": {{[0-9]+}},
# CHECK-GX-JSON-NEXT: "distances": {
# CHECK-GX-JSON-DAG: "%0": 15
# CHECK-GX-JSON-DAG: "%1": 14
# CHECK-GX-JSON-DAG: "%7": 10
# CHECK-GX-JSON-DAG: "%30": 2
# CHECK-GX-JSON-DAG: "%31": 2
# CHECK-GX-JSON-DAG: "%32": 3
# CHECK-GX-JSON-DAG: "%33": 3
# CHECK-GX-JSON-DAG: "%36": 0
# CHECK-GX-JSON-DAG: "%37": 0
# CHECK-GX-JSON-DAG: "%38": 1
# CHECK-GX-JSON: },
# CHECK-GX-JSON-NEXT: "furthest": {
# CHECK-GX-JSON-DAG: "register": "%0",
# CHECK-GX-JSON-DAG: "use": "{{[^"]+}}",
# CHECK-GX-JSON-DAG: "use-mi": "{{[^"]+}}",
# CHECK-GX-JSON-DAG: "distance": 15
# CHECK-GX-JSON: },
# CHECK-GX-JSON-NEXT: "furthest-subreg": {
# CHECK-GX-JSON-DAG: "register": "%0",
# CHECK-GX-JSON-DAG: "use": "{{[^"]+}}",
# CHECK-GX-JSON-DAG: "use-mi": "{{[^"]+}}",
# CHECK-GX-JSON-DAG: "distance": 15
# CHECK-GX-JSON: }
# CHECK-GX-JSON-NEXT: },
# CHECK-GX-JSON-NEXT: {
# CHECK-GX-JSON-NEXT: "instr": "%40:vgpr_32 = V_LSHL_OR_B32_e64 %39, 16, %38, implicit $exec",
# CHECK-GX-JSON-NEXT: "id": {{[0-9]+}},
# CHECK-GX-JSON-NEXT: "head-len": {{[0-9]+}},
# CHECK-GX-JSON-NEXT: "tail-len": {{[0-9]+}},
# CHECK-GX-JSON-NEXT: "distances": {
# CHECK-GX-JSON-DAG: "%0": 14
# CHECK-GX-JSON-DAG: "%1": 13
# CHECK-GX-JSON-DAG: "%7": 9
# CHECK-GX-JSON-DAG: "%30": 1
# CHECK-GX-JSON-DAG: "%31": 1
# CHECK-GX-JSON-DAG: "%32": 2
# CHECK-GX-JSON-DAG: "%33": 2
# CHECK-GX-JSON-DAG: "%38": 0
# CHECK-GX-JSON-DAG: "%39": 0
# CHECK-GX-JSON: },
# CHECK-GX-JSON-NEXT: "furthest": {
# CHECK-GX-JSON-DAG: "register": "%0",
# CHECK-GX-JSON-DAG: "use": "{{[^"]+}}",
# CHECK-GX-JSON-DAG: "use-mi": "{{[^"]+}}",
# CHECK-GX-JSON-DAG: "distance": 14
# CHECK-GX-JSON: },
# CHECK-GX-JSON-NEXT: "furthest-subreg": {
# CHECK-GX-JSON-DAG: "register": "%0",
# CHECK-GX-JSON-DAG: "use": "{{[^"]+}}",
# CHECK-GX-JSON-DAG: "use-mi": "{{[^"]+}}",
# CHECK-GX-JSON-DAG: "distance": 14
# CHECK-GX-JSON: }
# CHECK-GX-JSON-NEXT: },
# CHECK-GX-JSON-NEXT: {
# CHECK-GX-JSON-NEXT: "instr": "%41:vgpr_32 = V_LSHL_OR_B32_e64 %31, 8, %30, implicit $exec",
# CHECK-GX-JSON-NEXT: "id": {{[0-9]+}},
# CHECK-GX-JSON-NEXT: "head-len": {{[0-9]+}},
# CHECK-GX-JSON-NEXT: "tail-len": {{[0-9]+}},
# CHECK-GX-JSON-NEXT: "distances": {
# CHECK-GX-JSON-DAG: "%0": 13
# CHECK-GX-JSON-DAG: "%1": 12
# CHECK-GX-JSON-DAG: "%7": 8
# CHECK-GX-JSON-DAG: "%30": 0
# CHECK-GX-JSON-DAG: "%31": 0
# CHECK-GX-JSON-DAG: "%32": 1
# CHECK-GX-JSON-DAG: "%33": 1
# CHECK-GX-JSON-DAG: "%40": 3
# CHECK-GX-JSON: },
# CHECK-GX-JSON-NEXT: "furthest": {
# CHECK-GX-JSON-DAG: "register": "%0",
# CHECK-GX-JSON-DAG: "use": "{{[^"]+}}",
# CHECK-GX-JSON-DAG: "use-mi": "{{[^"]+}}",
# CHECK-GX-JSON-DAG: "distance": 13
# CHECK-GX-JSON: },
# CHECK-GX-JSON-NEXT: "furthest-subreg": {
# CHECK-GX-JSON-DAG: "register": "%0",
# CHECK-GX-JSON-DAG: "use": "{{[^"]+}}",
# CHECK-GX-JSON-DAG: "use-mi": "{{[^"]+}}",
# CHECK-GX-JSON-DAG: "distance": 13
# CHECK-GX-JSON: }
# CHECK-GX-JSON-NEXT: },
# CHECK-GX-JSON-NEXT: {
# CHECK-GX-JSON-NEXT: "instr": "%42:vgpr_32 = V_LSHL_OR_B32_e64 %33, 8, %32, implicit $exec",
# CHECK-GX-JSON-NEXT: "id": {{[0-9]+}},
# CHECK-GX-JSON-NEXT: "head-len": {{[0-9]+}},
# CHECK-GX-JSON-NEXT: "tail-len": {{[0-9]+}},
# CHECK-GX-JSON-NEXT: "distances": {
# CHECK-GX-JSON-DAG: "%0": 12
# CHECK-GX-JSON-DAG: "%1": 11
# CHECK-GX-JSON-DAG: "%7": 7
# CHECK-GX-JSON-DAG: "%32": 0
# CHECK-GX-JSON-DAG: "%33": 0
# CHECK-GX-JSON-DAG: "%40": 2
# CHECK-GX-JSON-DAG: "%41": 1
# CHECK-GX-JSON: },
# CHECK-GX-JSON-NEXT: "furthest": {
# CHECK-GX-JSON-DAG: "register": "%0",
# CHECK-GX-JSON-DAG: "use": "{{[^"]+}}",
# CHECK-GX-JSON-DAG: "use-mi": "{{[^"]+}}",
# CHECK-GX-JSON-DAG: "distance": 12
# CHECK-GX-JSON: },
# CHECK-GX-JSON-NEXT: "furthest-subreg": {
# CHECK-GX-JSON-DAG: "register": "%0",
# CHECK-GX-JSON-DAG: "use": "{{[^"]+}}",
# CHECK-GX-JSON-DAG: "use-mi": "{{[^"]+}}",
# CHECK-GX-JSON-DAG: "distance": 12
# CHECK-GX-JSON: }
# CHECK-GX-JSON-NEXT: },
# CHECK-GX-JSON-NEXT: {
# CHECK-GX-JSON-NEXT: "instr": "%43:vgpr_32 = V_LSHL_OR_B32_e64 %42, 16, %41, implicit $exec",
# CHECK-GX-JSON-NEXT: "id": {{[0-9]+}},
# CHECK-GX-JSON-NEXT: "head-len": {{[0-9]+}},
# CHECK-GX-JSON-NEXT: "tail-len": {{[0-9]+}},
# CHECK-GX-JSON-NEXT: "distances": {
# CHECK-GX-JSON-DAG: "%0": 11
# CHECK-GX-JSON-DAG: "%1": 10
# CHECK-GX-JSON-DAG: "%7": 6
# CHECK-GX-JSON-DAG: "%40": 1
# CHECK-GX-JSON-DAG: "%41": 0
# CHECK-GX-JSON-DAG: "%42": 0
# CHECK-GX-JSON: },
# CHECK-GX-JSON-NEXT: "furthest": {
# CHECK-GX-JSON-DAG: "register": "%0",
# CHECK-GX-JSON-DAG: "use": "{{[^"]+}}",
# CHECK-GX-JSON-DAG: "use-mi": "{{[^"]+}}",
# CHECK-GX-JSON-DAG: "distance": 11
# CHECK-GX-JSON: },
# CHECK-GX-JSON-NEXT: "furthest-subreg": {
# CHECK-GX-JSON-DAG: "register": "%0",
# CHECK-GX-JSON-DAG: "use": "{{[^"]+}}",
# CHECK-GX-JSON-DAG: "use-mi": "{{[^"]+}}",
# CHECK-GX-JSON-DAG: "distance": 11
# CHECK-GX-JSON: }
# CHECK-GX-JSON-NEXT: },
# CHECK-GX-JSON-NEXT: {
# CHECK-GX-JSON-NEXT: "instr": "%44:vreg_64 = REG_SEQUENCE %43, %subreg.sub0, %40, %subreg.sub1",
# CHECK-GX-JSON-NEXT: "id": {{[0-9]+}},
# CHECK-GX-JSON-NEXT: "head-len": {{[0-9]+}},
# CHECK-GX-JSON-NEXT: "tail-len": {{[0-9]+}},
# CHECK-GX-JSON-NEXT: "distances": {
# CHECK-GX-JSON-DAG: "%0": 10
# CHECK-GX-JSON-DAG: "%1": 9
# CHECK-GX-JSON-DAG: "%7": 5
# CHECK-GX-JSON-DAG: "%40": 0
# CHECK-GX-JSON-DAG: "%43": 0
# CHECK-GX-JSON: },
# CHECK-GX-JSON-NEXT: "furthest": {
# CHECK-GX-JSON-DAG: "register": "%0",
# CHECK-GX-JSON-DAG: "use": "{{[^"]+}}",
# CHECK-GX-JSON-DAG: "use-mi": "{{[^"]+}}",
# CHECK-GX-JSON-DAG: "distance": 10
# CHECK-GX-JSON: },
# CHECK-GX-JSON-NEXT: "furthest-subreg": {
# CHECK-GX-JSON-DAG: "register": "%0",
# CHECK-GX-JSON-DAG: "use": "{{[^"]+}}",
# CHECK-GX-JSON-DAG: "use-mi": "{{[^"]+}}",
# CHECK-GX-JSON-DAG: "distance": 10
# CHECK-GX-JSON: }
# CHECK-GX-JSON-NEXT: },
# CHECK-GX-JSON-NEXT: {
# CHECK-GX-JSON-NEXT: "instr": "%10:vreg_64 = COPY %44",
# CHECK-GX-JSON-NEXT: "id": {{[0-9]+}},
# CHECK-GX-JSON-NEXT: "head-len": {{[0-9]+}},
# CHECK-GX-JSON-NEXT: "tail-len": {{[0-9]+}},
# CHECK-GX-JSON-NEXT: "distances": {
# CHECK-GX-JSON-DAG: "%0": 9
# CHECK-GX-JSON-DAG: "%1": 8
# CHECK-GX-JSON-DAG: "%7": 4
# CHECK-GX-JSON-DAG: "%44": 0
# CHECK-GX-JSON: },
# CHECK-GX-JSON-NEXT: "furthest": {
# CHECK-GX-JSON-DAG: "register": "%0",
# CHECK-GX-JSON-DAG: "use": "{{[^"]+}}",
# CHECK-GX-JSON-DAG: "use-mi": "{{[^"]+}}",
# CHECK-GX-JSON-DAG: "distance": 9
# CHECK-GX-JSON: },
# CHECK-GX-JSON-NEXT: "furthest-subreg": {
# CHECK-GX-JSON-DAG: "register": "%0",
# CHECK-GX-JSON-DAG: "use": "{{[^"]+}}",
# CHECK-GX-JSON-DAG: "use-mi": "{{[^"]+}}",
# CHECK-GX-JSON-DAG: "distance": 9
# CHECK-GX-JSON: }
# CHECK-GX-JSON-NEXT: },
# CHECK-GX-JSON-NEXT: {
# CHECK-GX-JSON-NEXT: "instr": "S_BRANCH %bb.1",
# CHECK-GX-JSON-NEXT: "id": {{[0-9]+}},
# CHECK-GX-JSON-NEXT: "head-len": {{[0-9]+}},
# CHECK-GX-JSON-NEXT: "tail-len": {{[0-9]+}},
# CHECK-GX-JSON-NEXT: "distances": {
# CHECK-GX-JSON-DAG: "%0": 8
# CHECK-GX-JSON-DAG: "%1": 7
# CHECK-GX-JSON-DAG: "%7": 3
# CHECK-GX-JSON-DAG: "%10": 1
# CHECK-GX-JSON: },
# CHECK-GX-JSON-NEXT: "furthest": {
# CHECK-GX-JSON-DAG: "register": "%0",
# CHECK-GX-JSON-DAG: "use": "{{[^"]+}}",
# CHECK-GX-JSON-DAG: "use-mi": "{{[^"]+}}",
# CHECK-GX-JSON-DAG: "distance": 8
# CHECK-GX-JSON: },
# CHECK-GX-JSON-NEXT: "furthest-subreg": {
# CHECK-GX-JSON-DAG: "register": "%0",
# CHECK-GX-JSON-DAG: "use": "{{[^"]+}}",
# CHECK-GX-JSON-DAG: "use-mi": "{{[^"]+}}",
# CHECK-GX-JSON-DAG: "distance": 8
# CHECK-GX-JSON: }
# CHECK-GX-JSON-NEXT: }
# CHECK-GX-JSON-NEXT: ],
# CHECK-GX-JSON-NEXT: "bb.4": [
# CHECK-GX-JSON-NEXT: {
# CHECK-GX-JSON-NEXT: "instr": "%45:vreg_64 = PHI %8, %bb.1, %29, %bb.2",
# CHECK-GX-JSON-NEXT: "id": {{[0-9]+}},
# CHECK-GX-JSON-NEXT: "head-len": {{[0-9]+}},
# CHECK-GX-JSON-NEXT: "tail-len": {{[0-9]+}},
# CHECK-GX-JSON-NEXT: "distances": {
# CHECK-GX-JSON-DAG: "%0": 3
# CHECK-GX-JSON-DAG: "%1": 2
# CHECK-GX-JSON-DAG: "%13": 1
# CHECK-GX-JSON: },
# CHECK-GX-JSON-NEXT: "furthest": {
# CHECK-GX-JSON-DAG: "register": "%0",
# CHECK-GX-JSON-DAG: "use": "{{[^"]+}}",
# CHECK-GX-JSON-DAG: "use-mi": "{{[^"]+}}",
# CHECK-GX-JSON-DAG: "distance": 3
# CHECK-GX-JSON: },
# CHECK-GX-JSON-NEXT: "furthest-subreg": {
# CHECK-GX-JSON-DAG: "register": "%0",
# CHECK-GX-JSON-DAG: "use": "{{[^"]+}}",
# CHECK-GX-JSON-DAG: "use-mi": "{{[^"]+}}",
# CHECK-GX-JSON-DAG: "distance": 3
# CHECK-GX-JSON: }
# CHECK-GX-JSON-NEXT: },
# CHECK-GX-JSON-NEXT: {
# CHECK-GX-JSON-NEXT: "instr": "SI_END_CF %13, implicit-def dead $exec, implicit-def dead $scc, implicit $exec",
# CHECK-GX-JSON-NEXT: "id": {{[0-9]+}},
# CHECK-GX-JSON-NEXT: "head-len": {{[0-9]+}},
# CHECK-GX-JSON-NEXT: "tail-len": {{[0-9]+}},
# CHECK-GX-JSON-NEXT: "distances": {
# CHECK-GX-JSON-DAG: "%0": 2
# CHECK-GX-JSON-DAG: "%1": 1
# CHECK-GX-JSON-DAG: "%13": 0
# CHECK-GX-JSON-DAG: "%45:sub0": 1
# CHECK-GX-JSON-DAG: "%45:sub1": 2
# CHECK-GX-JSON: },
# CHECK-GX-JSON-NEXT: "furthest": {
# CHECK-GX-JSON-DAG: "register": "%0",
# CHECK-GX-JSON-DAG: "use": "{{[^"]+}}",
# CHECK-GX-JSON-DAG: "use-mi": "{{[^"]+}}",
# CHECK-GX-JSON-DAG: "distance": 2
# CHECK-GX-JSON: },
# CHECK-GX-JSON-NEXT: "furthest-subreg": {
# CHECK-GX-JSON-DAG: "register": "%0",
# CHECK-GX-JSON-DAG: "use": "{{[^"]+}}",
# CHECK-GX-JSON-DAG: "use-mi": "{{[^"]+}}",
# CHECK-GX-JSON-DAG: "distance": 2
# CHECK-GX-JSON: }
# CHECK-GX-JSON-NEXT: },
# CHECK-GX-JSON-NEXT: {
# CHECK-GX-JSON-NEXT: "instr": "%46:vgpr_32, %47:sreg_32_xm0_xexec = V_ADD_CO_U32_e64 %45.sub0, %1, 0, implicit $exec",
# CHECK-GX-JSON-NEXT: "id": {{[0-9]+}},
# CHECK-GX-JSON-NEXT: "head-len": {{[0-9]+}},
# CHECK-GX-JSON-NEXT: "tail-len": {{[0-9]+}},
# CHECK-GX-JSON-NEXT: "distances": {
# CHECK-GX-JSON-DAG: "%0": 1
# CHECK-GX-JSON-DAG: "%1": 0
# CHECK-GX-JSON-DAG: "%45:sub0": 0
# CHECK-GX-JSON-DAG: "%45:sub1": 1
# CHECK-GX-JSON: },
# CHECK-GX-JSON-NEXT: "furthest": {
# CHECK-GX-JSON-DAG: "register": "%0",
# CHECK-GX-JSON-DAG: "use": "{{[^"]+}}",
# CHECK-GX-JSON-DAG: "use-mi": "{{[^"]+}}",
# CHECK-GX-JSON-DAG: "distance": 1
# CHECK-GX-JSON: },
# CHECK-GX-JSON-NEXT: "furthest-subreg": {
# CHECK-GX-JSON-DAG: "register": "%0",
# CHECK-GX-JSON-DAG: "use": "{{[^"]+}}",
# CHECK-GX-JSON-DAG: "use-mi": "{{[^"]+}}",
# CHECK-GX-JSON-DAG: "distance": 1
# CHECK-GX-JSON: }
# CHECK-GX-JSON-NEXT: },
# CHECK-GX-JSON-NEXT: {
# CHECK-GX-JSON-NEXT: "instr": "%48:vgpr_32, dead $sgpr_null = V_ADDC_U32_e64 %45.sub1, %0, %47, 0, implicit $exec",
# CHECK-GX-JSON-NEXT: "id": {{[0-9]+}},
# CHECK-GX-JSON-NEXT: "head-len": {{[0-9]+}},
# CHECK-GX-JSON-NEXT: "tail-len": {{[0-9]+}},
# CHECK-GX-JSON-NEXT: "distances": {
# CHECK-GX-JSON-DAG: "%0": 0
# CHECK-GX-JSON-DAG: "%45:sub1": 0
# CHECK-GX-JSON-DAG: "%46": 1
# CHECK-GX-JSON-DAG: "%47": 0
# CHECK-GX-JSON: },
# CHECK-GX-JSON-NEXT: "furthest": {
# CHECK-GX-JSON-DAG: "register": "%46",
# CHECK-GX-JSON-DAG: "use": "{{[^"]+}}",
# CHECK-GX-JSON-DAG: "use-mi": "{{[^"]+}}",
# CHECK-GX-JSON-DAG: "distance": 1
# CHECK-GX-JSON: },
# CHECK-GX-JSON-NEXT: "furthest-subreg": {
# CHECK-GX-JSON-DAG: "register": "%46",
# CHECK-GX-JSON-DAG: "use": "{{[^"]+}}",
# CHECK-GX-JSON-DAG: "use-mi": "{{[^"]+}}",
# CHECK-GX-JSON-DAG: "distance": 1
# CHECK-GX-JSON: }
# CHECK-GX-JSON-NEXT: },
# CHECK-GX-JSON-NEXT: {
# CHECK-GX-JSON-NEXT: "instr": "%49:sreg_32_xm0 = V_READFIRSTLANE_B32 %46, implicit $exec",
# CHECK-GX-JSON-NEXT: "id": {{[0-9]+}},
# CHECK-GX-JSON-NEXT: "head-len": {{[0-9]+}},
# CHECK-GX-JSON-NEXT: "tail-len": {{[0-9]+}},
# CHECK-GX-JSON-NEXT: "distances": {
# CHECK-GX-JSON-DAG: "%46": 0
# CHECK-GX-JSON-DAG: "%48": 1
# CHECK-GX-JSON: },
# CHECK-GX-JSON-NEXT: "furthest": {
# CHECK-GX-JSON-DAG: "register": "%48",
# CHECK-GX-JSON-DAG: "use": "{{[^"]+}}",
# CHECK-GX-JSON-DAG: "use-mi": "{{[^"]+}}",
# CHECK-GX-JSON-DAG: "distance": 1
# CHECK-GX-JSON: },
# CHECK-GX-JSON-NEXT: "furthest-subreg": {
# CHECK-GX-JSON-DAG: "register": "%48",
# CHECK-GX-JSON-DAG: "use": "{{[^"]+}}",
# CHECK-GX-JSON-DAG: "use-mi": "{{[^"]+}}",
# CHECK-GX-JSON-DAG: "distance": 1
# CHECK-GX-JSON: }
# CHECK-GX-JSON-NEXT: },
# CHECK-GX-JSON-NEXT: {
# CHECK-GX-JSON-NEXT: "instr": "%50:sreg_32_xm0 = V_READFIRSTLANE_B32 %48, implicit $exec",
# CHECK-GX-JSON-NEXT: "id": {{[0-9]+}},
# CHECK-GX-JSON-NEXT: "head-len": {{[0-9]+}},
# CHECK-GX-JSON-NEXT: "tail-len": {{[0-9]+}},
# CHECK-GX-JSON-NEXT: "distances": {
# CHECK-GX-JSON-DAG: "%48": 0
# CHECK-GX-JSON-DAG: "%49": 1
# CHECK-GX-JSON: },
# CHECK-GX-JSON-NEXT: "furthest": {
# CHECK-GX-JSON-DAG: "register": "%49",
# CHECK-GX-JSON-DAG: "use": "{{[^"]+}}",
# CHECK-GX-JSON-DAG: "use-mi": "{{[^"]+}}",
# CHECK-GX-JSON-DAG: "distance": 1
# CHECK-GX-JSON: },
# CHECK-GX-JSON-NEXT: "furthest-subreg": {
# CHECK-GX-JSON-DAG: "register": "%49",
# CHECK-GX-JSON-DAG: "use": "{{[^"]+}}",
# CHECK-GX-JSON-DAG: "use-mi": "{{[^"]+}}",
# CHECK-GX-JSON-DAG: "distance": 1
# CHECK-GX-JSON: }
# CHECK-GX-JSON-NEXT: },
# CHECK-GX-JSON-NEXT: {
# CHECK-GX-JSON-NEXT: "instr": "$sgpr0 = COPY %49",
# CHECK-GX-JSON-NEXT: "id": {{[0-9]+}},
# CHECK-GX-JSON-NEXT: "head-len": {{[0-9]+}},
# CHECK-GX-JSON-NEXT: "tail-len": {{[0-9]+}},
# CHECK-GX-JSON-NEXT: "distances": {
# CHECK-GX-JSON-DAG: "%49": 0
# CHECK-GX-JSON-DAG: "%50": 1
# CHECK-GX-JSON: },
# CHECK-GX-JSON-NEXT: "furthest": {
# CHECK-GX-JSON-DAG: "register": "%50",
# CHECK-GX-JSON-DAG: "use": "{{[^"]+}}",
# CHECK-GX-JSON-DAG: "use-mi": "{{[^"]+}}",
# CHECK-GX-JSON-DAG: "distance": 1
# CHECK-GX-JSON: },
# CHECK-GX-JSON-NEXT: "furthest-subreg": {
# CHECK-GX-JSON-DAG: "register": "%50",
# CHECK-GX-JSON-DAG: "use": "{{[^"]+}}",
# CHECK-GX-JSON-DAG: "use-mi": "{{[^"]+}}",
# CHECK-GX-JSON-DAG: "distance": 1
# CHECK-GX-JSON: }
# CHECK-GX-JSON-NEXT: },
# CHECK-GX-JSON-NEXT: {
# CHECK-GX-JSON-NEXT: "instr": "$sgpr1 = COPY %50",
# CHECK-GX-JSON-NEXT: "id": {{[0-9]+}},
# CHECK-GX-JSON-NEXT: "head-len": {{[0-9]+}},
# CHECK-GX-JSON-NEXT: "tail-len": {{[0-9]+}},
# CHECK-GX-JSON-NEXT: "distances": {
# CHECK-GX-JSON-DAG: "%50": 0
# CHECK-GX-JSON: },
# CHECK-GX-JSON-NEXT: "furthest": {
# CHECK-GX-JSON-DAG: "register": "%50",
# CHECK-GX-JSON-DAG: "use": "{{[^"]+}}",
# CHECK-GX-JSON-DAG: "use-mi": "{{[^"]+}}",
# CHECK-GX-JSON-DAG: "distance": 0
# CHECK-GX-JSON: },
# CHECK-GX-JSON-NEXT: "furthest-subreg": {
# CHECK-GX-JSON-DAG: "register": "%50",
# CHECK-GX-JSON-DAG: "use": "{{[^"]+}}",
# CHECK-GX-JSON-DAG: "use-mi": "{{[^"]+}}",
# CHECK-GX-JSON-DAG: "distance": 0
# CHECK-GX-JSON: }
# CHECK-GX-JSON-NEXT: },
# CHECK-GX-JSON-NEXT: {
# CHECK-GX-JSON-NEXT: "instr": "SI_RETURN_TO_EPILOG killed $sgpr0, killed $sgpr1",
# CHECK-GX-JSON-NEXT: "id": {{[0-9]+}},
# CHECK-GX-JSON-NEXT: "head-len": {{[0-9]+}},
# CHECK-GX-JSON-NEXT: "tail-len": {{[0-9]+}},
# CHECK-GX-JSON-NEXT: "distances": {},
# CHECK-GX-JSON-NEXT: "furthest": {},
# CHECK-GX-JSON-NEXT: "furthest-subreg": {}
# CHECK-GX-JSON-NEXT: }
# CHECK-GX-JSON-NEXT: ]
# CHECK-GX-JSON-NEXT: },
# CHECK-GX-JSON-NEXT: "distance-from-def-to-closest-use": {
# CHECK-GX-JSON-DAG: "%0": 16,
# CHECK-GX-JSON-DAG: "%1": 14,
# CHECK-GX-JSON-DAG: "%2": 3,
# CHECK-GX-JSON-DAG: "%3": 6,
# CHECK-GX-JSON-DAG: "%4": 6,
# CHECK-GX-JSON-DAG: "%5": 1,
# CHECK-GX-JSON-DAG: "%6": 1,
# CHECK-GX-JSON-DAG: "%7": 4,
# CHECK-GX-JSON-DAG: "%8": 4,
# CHECK-GX-JSON-DAG: "%11": 3,
# CHECK-GX-JSON-DAG: "%13": 3,
# CHECK-GX-JSON-DAG: "%14": 11,
# CHECK-GX-JSON-DAG: "%15": 10,
# CHECK-GX-JSON-DAG: "%16": 10,
# CHECK-GX-JSON-DAG: "%17": 9,
# CHECK-GX-JSON-DAG: "%18": 4,
# CHECK-GX-JSON-DAG: "%19": 3,
# CHECK-GX-JSON-DAG: "%20": 3,
# CHECK-GX-JSON-DAG: "%21": 2,
# CHECK-GX-JSON-DAG: "%22": 2,
# CHECK-GX-JSON-DAG: "%23": 1,
# CHECK-GX-JSON-DAG: "%24": 4,
# CHECK-GX-JSON-DAG: "%25": 2,
# CHECK-GX-JSON-DAG: "%26": 1,
# CHECK-GX-JSON-DAG: "%27": 1,
# CHECK-GX-JSON-DAG: "%28": 1,
# CHECK-GX-JSON-DAG: "%29": 2,
# CHECK-GX-JSON-DAG: "%30": 11,
# CHECK-GX-JSON-DAG: "%31": 10,
# CHECK-GX-JSON-DAG: "%32": 10,
# CHECK-GX-JSON-DAG: "%33": 9,
# CHECK-GX-JSON-DAG: "%34": 4,
# CHECK-GX-JSON-DAG: "%35": 3,
# CHECK-GX-JSON-DAG: "%36": 3,
# CHECK-GX-JSON-DAG: "%37": 2,
# CHECK-GX-JSON-DAG: "%38": 2,
# CHECK-GX-JSON-DAG: "%39": 1,
# CHECK-GX-JSON-DAG: "%40": 4,
# CHECK-GX-JSON-DAG: "%41": 2,
# CHECK-GX-JSON-DAG: "%42": 1,
# CHECK-GX-JSON-DAG: "%43": 1,
# CHECK-GX-JSON-DAG: "%44": 1,
# CHECK-GX-JSON-DAG: "%10": 2,
# CHECK-GX-JSON-DAG: "%45": 2,
# CHECK-GX-JSON-DAG: "%46": 2,
# CHECK-GX-JSON-DAG: "%47": 1,
# CHECK-GX-JSON-DAG: "%48": 2,
# CHECK-GX-JSON-DAG: "%49": 2,
# CHECK-GX-JSON-DAG: "%50": 2
# CHECK-GX-JSON: },
# CHECK-GX-JSON-NEXT: "paths": [
# CHECK-GX-JSON: ],
# CHECK-GX-JSON-NEXT: "metrics": {
# CHECK-GX-JSON-NEXT: "distance-cache": {
# CHECK-GX-JSON-NEXT: "hits": {{[0-9]+}},
# CHECK-GX-JSON-NEXT: "misses": {{[0-9]+}}
# CHECK-GX-JSON-NEXT: }
# CHECK-GX-JSON-NEXT: }
# CHECK-GX-JSON-NEXT: },
# CHECK-GX-JSON-DAG: "time.amdgpu-next-use-analysis-json.json.wall": {{[0-9.e+-]+}},
# CHECK-GX-JSON-DAG: "time.amdgpu-next-use-analysis-json.json.user": {{[0-9.e+-]+}},
# CHECK-GX-JSON-DAG: "time.amdgpu-next-use-analysis-json.json.sys": {{[0-9.e+-]+}}
# CHECK-GX-JSON: }