Files
llvm-project/llvm/test/CodeGen/AMDGPU/NextUseAnalysis/simple-loop-3blocks.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

1366 lines
63 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 void @test4(ptr addrspace(3) %p) {
ret void
}
...
---
name: test4
tracksRegLiveness: true
body: |
bb.0:
successors: %bb.1(0x80000000)
liveins: $vgpr0, $vgpr1
%0:vgpr_32 = COPY $vgpr1
%1:vgpr_32 = COPY $vgpr0
%2:vgpr_32 = V_MOV_B32_e32 100, implicit $exec
%3:sreg_32 = S_MOV_B32 0
bb.1:
successors: %bb.1(0x40000000), %bb.2(0x40000000)
%4:sreg_32 = PHI %3, %bb.0, %5, %bb.1
%6:vgpr_32 = PHI %1, %bb.0, %7, %bb.1
%8:vgpr_32 = PHI %2, %bb.0, %9, %bb.1
%10:sreg_32 = PHI %3, %bb.0, %11, %bb.1
%12:vgpr_32 = DS_READ_U8_gfx9 %6, 0, 0, implicit $exec :: (load (s8) from %ir.p, addrspace 3)
%13:vgpr_32 = DS_READ_U8_gfx9 %6, 1, 0, implicit $exec :: (load (s8) from %ir.p + 1, addrspace 3)
%14:vgpr_32 = DS_READ_U8_gfx9 %6, 2, 0, implicit $exec :: (load (s8) from %ir.p + 2, addrspace 3)
%15:vgpr_32 = DS_READ_U8_gfx9 %6, 3, 0, implicit $exec :: (load (s8) from %ir.p + 3, addrspace 3)
%16:vgpr_32 = V_LSHL_OR_B32_e64 %13, 8, %12, implicit $exec
%17:vgpr_32 = V_LSHL_OR_B32_e64 %15, 8, %14, implicit $exec
%18:vgpr_32 = V_LSHL_OR_B32_e64 %17, 16, %16, implicit $exec
%9:vgpr_32 = V_ADD_U32_e64 %10, %18, 0, implicit $exec
%11:sreg_32 = S_ADD_I32 %10, 1, implicit-def dead $scc
%7:vgpr_32 = V_ADD_U32_e64 4, %6, 0, implicit $exec
%19:sreg_32 = V_CMP_GE_U32_e64 %11, %0, implicit $exec
%5:sreg_32 = SI_IF_BREAK %19, %4, implicit-def dead $scc
SI_LOOP %5, %bb.1, implicit-def dead $exec, implicit-def dead $scc, implicit $exec
S_BRANCH %bb.2
bb.2:
SI_END_CF %5, implicit-def dead $exec, implicit-def dead $scc, implicit $exec
DS_WRITE_B32_gfx9 %1, %8, 0, 0, implicit $exec :: (store (s32) into %ir.p, addrspace 3)
S_ENDPGM 0
...
# 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 $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-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 $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": 17
# 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": "%2:vgpr_32 = V_MOV_B32_e32 100, 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": 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": 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": "%3:sreg_32 = S_MOV_B32 0",
# 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": 2
# CHECK-GX-JSON-DAG: "%2": 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: "bb.1": [
# CHECK-GX-JSON-NEXT: {
# CHECK-GX-JSON-NEXT: "instr": "%4:sreg_32 = PHI %3, %bb.0, %5, %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": 14
# CHECK-GX-JSON-DAG: "%1": 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": 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": "%6:vgpr_32 = PHI %1, %bb.0, %7, %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": 13
# CHECK-GX-JSON-DAG: "%1": 0
# CHECK-GX-JSON-DAG: "%4": 14
# CHECK-GX-JSON: },
# CHECK-GX-JSON-NEXT: "furthest": {
# CHECK-GX-JSON-DAG: "register": "%4",
# 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": "%4",
# 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": "%8:vgpr_32 = PHI %2, %bb.0, %9, %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": 12
# CHECK-GX-JSON-DAG: "%1": 2306
# CHECK-GX-JSON-DAG: "%4": 13
# CHECK-GX-JSON-DAG: "%6": 2
# CHECK-GX-JSON: },
# CHECK-GX-JSON-NEXT: "furthest": {
# CHECK-GX-JSON-DAG: "register": "%1",
# CHECK-GX-JSON-DAG: "use": "{{[^"]+}}",
# CHECK-GX-JSON-DAG: "use-mi": "{{[^"]+}}",
# CHECK-GX-JSON-DAG: "distance": 2306
# CHECK-GX-JSON: },
# CHECK-GX-JSON-NEXT: "furthest-subreg": {
# CHECK-GX-JSON-DAG: "register": "%1",
# CHECK-GX-JSON-DAG: "use": "{{[^"]+}}",
# CHECK-GX-JSON-DAG: "use-mi": "{{[^"]+}}",
# CHECK-GX-JSON-DAG: "distance": 2306
# CHECK-GX-JSON: }
# CHECK-GX-JSON-NEXT: },
# CHECK-GX-JSON-NEXT: {
# CHECK-GX-JSON-NEXT: "instr": "%10:sreg_32 = PHI %3, %bb.0, %11, %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": 11
# CHECK-GX-JSON-DAG: "%1": 2306
# CHECK-GX-JSON-DAG: "%4": 12
# CHECK-GX-JSON-DAG: "%6": 1
# CHECK-GX-JSON-DAG: "%8": 2306
# CHECK-GX-JSON: },
# CHECK-GX-JSON-NEXT: "furthest": {
# CHECK-GX-JSON-DAG: "register": "%1",
# CHECK-GX-JSON-DAG: "use": "{{[^"]+}}",
# CHECK-GX-JSON-DAG: "use-mi": "{{[^"]+}}",
# CHECK-GX-JSON-DAG: "distance": 2306
# CHECK-GX-JSON: },
# CHECK-GX-JSON-NEXT: "furthest-subreg": {
# CHECK-GX-JSON-DAG: "register": "%1",
# CHECK-GX-JSON-DAG: "use": "{{[^"]+}}",
# CHECK-GX-JSON-DAG: "use-mi": "{{[^"]+}}",
# CHECK-GX-JSON-DAG: "distance": 2306
# CHECK-GX-JSON: }
# CHECK-GX-JSON-NEXT: },
# CHECK-GX-JSON-NEXT: {
# CHECK-GX-JSON-NEXT: "instr": "%12:vgpr_32 = DS_READ_U8_gfx9 %6, 0, 0, implicit $exec :: (load (s8) from %ir.p, 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": 10
# CHECK-GX-JSON-DAG: "%1": 2306
# CHECK-GX-JSON-DAG: "%4": 11
# CHECK-GX-JSON-DAG: "%6": 0
# CHECK-GX-JSON-DAG: "%8": 2306
# CHECK-GX-JSON-DAG: "%10": 7
# CHECK-GX-JSON: },
# CHECK-GX-JSON-NEXT: "furthest": {
# CHECK-GX-JSON-DAG: "register": "%1",
# CHECK-GX-JSON-DAG: "use": "{{[^"]+}}",
# CHECK-GX-JSON-DAG: "use-mi": "{{[^"]+}}",
# CHECK-GX-JSON-DAG: "distance": 2306
# CHECK-GX-JSON: },
# CHECK-GX-JSON-NEXT: "furthest-subreg": {
# CHECK-GX-JSON-DAG: "register": "%1",
# CHECK-GX-JSON-DAG: "use": "{{[^"]+}}",
# CHECK-GX-JSON-DAG: "use-mi": "{{[^"]+}}",
# CHECK-GX-JSON-DAG: "distance": 2306
# CHECK-GX-JSON: }
# CHECK-GX-JSON-NEXT: },
# CHECK-GX-JSON-NEXT: {
# CHECK-GX-JSON-NEXT: "instr": "%13:vgpr_32 = DS_READ_U8_gfx9 %6, 1, 0, implicit $exec :: (load (s8) from %ir.p + 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": 9
# CHECK-GX-JSON-DAG: "%1": 2306
# CHECK-GX-JSON-DAG: "%4": 10
# CHECK-GX-JSON-DAG: "%6": 0
# CHECK-GX-JSON-DAG: "%8": 2306
# CHECK-GX-JSON-DAG: "%10": 6
# CHECK-GX-JSON-DAG: "%12": 3
# CHECK-GX-JSON: },
# CHECK-GX-JSON-NEXT: "furthest": {
# CHECK-GX-JSON-DAG: "register": "%1",
# CHECK-GX-JSON-DAG: "use": "{{[^"]+}}",
# CHECK-GX-JSON-DAG: "use-mi": "{{[^"]+}}",
# CHECK-GX-JSON-DAG: "distance": 2306
# CHECK-GX-JSON: },
# CHECK-GX-JSON-NEXT: "furthest-subreg": {
# CHECK-GX-JSON-DAG: "register": "%1",
# CHECK-GX-JSON-DAG: "use": "{{[^"]+}}",
# CHECK-GX-JSON-DAG: "use-mi": "{{[^"]+}}",
# CHECK-GX-JSON-DAG: "distance": 2306
# CHECK-GX-JSON: }
# CHECK-GX-JSON-NEXT: },
# CHECK-GX-JSON-NEXT: {
# CHECK-GX-JSON-NEXT: "instr": "%14:vgpr_32 = DS_READ_U8_gfx9 %6, 2, 0, implicit $exec :: (load (s8) from %ir.p + 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": 8
# CHECK-GX-JSON-DAG: "%1": 2306
# CHECK-GX-JSON-DAG: "%4": 9
# CHECK-GX-JSON-DAG: "%6": 0
# CHECK-GX-JSON-DAG: "%8": 2306
# CHECK-GX-JSON-DAG: "%10": 5
# CHECK-GX-JSON-DAG: "%12": 2
# CHECK-GX-JSON-DAG: "%13": 2
# CHECK-GX-JSON: },
# CHECK-GX-JSON-NEXT: "furthest": {
# CHECK-GX-JSON-DAG: "register": "%1",
# CHECK-GX-JSON-DAG: "use": "{{[^"]+}}",
# CHECK-GX-JSON-DAG: "use-mi": "{{[^"]+}}",
# CHECK-GX-JSON-DAG: "distance": 2306
# CHECK-GX-JSON: },
# CHECK-GX-JSON-NEXT: "furthest-subreg": {
# CHECK-GX-JSON-DAG: "register": "%1",
# CHECK-GX-JSON-DAG: "use": "{{[^"]+}}",
# CHECK-GX-JSON-DAG: "use-mi": "{{[^"]+}}",
# CHECK-GX-JSON-DAG: "distance": 2306
# CHECK-GX-JSON: }
# CHECK-GX-JSON-NEXT: },
# CHECK-GX-JSON-NEXT: {
# CHECK-GX-JSON-NEXT: "instr": "%15:vgpr_32 = DS_READ_U8_gfx9 %6, 3, 0, implicit $exec :: (load (s8) from %ir.p + 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": 7
# CHECK-GX-JSON-DAG: "%1": 2306
# CHECK-GX-JSON-DAG: "%4": 8
# CHECK-GX-JSON-DAG: "%6": 0
# CHECK-GX-JSON-DAG: "%8": 2306
# CHECK-GX-JSON-DAG: "%10": 4
# CHECK-GX-JSON-DAG: "%12": 1
# CHECK-GX-JSON-DAG: "%13": 1
# CHECK-GX-JSON-DAG: "%14": 2
# CHECK-GX-JSON: },
# CHECK-GX-JSON-NEXT: "furthest": {
# CHECK-GX-JSON-DAG: "register": "%1",
# CHECK-GX-JSON-DAG: "use": "{{[^"]+}}",
# CHECK-GX-JSON-DAG: "use-mi": "{{[^"]+}}",
# CHECK-GX-JSON-DAG: "distance": 2306
# CHECK-GX-JSON: },
# CHECK-GX-JSON-NEXT: "furthest-subreg": {
# CHECK-GX-JSON-DAG: "register": "%1",
# CHECK-GX-JSON-DAG: "use": "{{[^"]+}}",
# CHECK-GX-JSON-DAG: "use-mi": "{{[^"]+}}",
# CHECK-GX-JSON-DAG: "distance": 2306
# CHECK-GX-JSON: }
# CHECK-GX-JSON-NEXT: },
# CHECK-GX-JSON-NEXT: {
# CHECK-GX-JSON-NEXT: "instr": "%16:vgpr_32 = V_LSHL_OR_B32_e64 %13, 8, %12, 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": 6
# CHECK-GX-JSON-DAG: "%1": 2306
# CHECK-GX-JSON-DAG: "%4": 7
# CHECK-GX-JSON-DAG: "%6": 5
# CHECK-GX-JSON-DAG: "%8": 2306
# CHECK-GX-JSON-DAG: "%10": 3
# CHECK-GX-JSON-DAG: "%12": 0
# CHECK-GX-JSON-DAG: "%13": 0
# CHECK-GX-JSON-DAG: "%14": 1
# CHECK-GX-JSON-DAG: "%15": 1
# CHECK-GX-JSON: },
# CHECK-GX-JSON-NEXT: "furthest": {
# CHECK-GX-JSON-DAG: "register": "%1",
# CHECK-GX-JSON-DAG: "use": "{{[^"]+}}",
# CHECK-GX-JSON-DAG: "use-mi": "{{[^"]+}}",
# CHECK-GX-JSON-DAG: "distance": 2306
# CHECK-GX-JSON: },
# CHECK-GX-JSON-NEXT: "furthest-subreg": {
# CHECK-GX-JSON-DAG: "register": "%1",
# CHECK-GX-JSON-DAG: "use": "{{[^"]+}}",
# CHECK-GX-JSON-DAG: "use-mi": "{{[^"]+}}",
# CHECK-GX-JSON-DAG: "distance": 2306
# CHECK-GX-JSON: }
# CHECK-GX-JSON-NEXT: },
# CHECK-GX-JSON-NEXT: {
# CHECK-GX-JSON-NEXT: "instr": "%17: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": 5
# CHECK-GX-JSON-DAG: "%1": 2306
# CHECK-GX-JSON-DAG: "%4": 6
# CHECK-GX-JSON-DAG: "%6": 4
# CHECK-GX-JSON-DAG: "%8": 2306
# CHECK-GX-JSON-DAG: "%10": 2
# CHECK-GX-JSON-DAG: "%14": 0
# CHECK-GX-JSON-DAG: "%15": 0
# CHECK-GX-JSON-DAG: "%16": 1
# CHECK-GX-JSON: },
# CHECK-GX-JSON-NEXT: "furthest": {
# CHECK-GX-JSON-DAG: "register": "%1",
# CHECK-GX-JSON-DAG: "use": "{{[^"]+}}",
# CHECK-GX-JSON-DAG: "use-mi": "{{[^"]+}}",
# CHECK-GX-JSON-DAG: "distance": 2306
# CHECK-GX-JSON: },
# CHECK-GX-JSON-NEXT: "furthest-subreg": {
# CHECK-GX-JSON-DAG: "register": "%1",
# CHECK-GX-JSON-DAG: "use": "{{[^"]+}}",
# CHECK-GX-JSON-DAG: "use-mi": "{{[^"]+}}",
# CHECK-GX-JSON-DAG: "distance": 2306
# CHECK-GX-JSON: }
# CHECK-GX-JSON-NEXT: },
# CHECK-GX-JSON-NEXT: {
# CHECK-GX-JSON-NEXT: "instr": "%18:vgpr_32 = V_LSHL_OR_B32_e64 %17, 16, %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": 4
# CHECK-GX-JSON-DAG: "%1": 2306
# CHECK-GX-JSON-DAG: "%4": 5
# CHECK-GX-JSON-DAG: "%6": 3
# CHECK-GX-JSON-DAG: "%8": 2306
# CHECK-GX-JSON-DAG: "%10": 1
# CHECK-GX-JSON-DAG: "%16": 0
# CHECK-GX-JSON-DAG: "%17": 0
# CHECK-GX-JSON: },
# CHECK-GX-JSON-NEXT: "furthest": {
# CHECK-GX-JSON-DAG: "register": "%1",
# CHECK-GX-JSON-DAG: "use": "{{[^"]+}}",
# CHECK-GX-JSON-DAG: "use-mi": "{{[^"]+}}",
# CHECK-GX-JSON-DAG: "distance": 2306
# CHECK-GX-JSON: },
# CHECK-GX-JSON-NEXT: "furthest-subreg": {
# CHECK-GX-JSON-DAG: "register": "%1",
# CHECK-GX-JSON-DAG: "use": "{{[^"]+}}",
# CHECK-GX-JSON-DAG: "use-mi": "{{[^"]+}}",
# CHECK-GX-JSON-DAG: "distance": 2306
# CHECK-GX-JSON: }
# CHECK-GX-JSON-NEXT: },
# CHECK-GX-JSON-NEXT: {
# CHECK-GX-JSON-NEXT: "instr": "%9:vgpr_32 = V_ADD_U32_e64 %10, %18, 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": 3
# CHECK-GX-JSON-DAG: "%1": 2306
# CHECK-GX-JSON-DAG: "%4": 4
# CHECK-GX-JSON-DAG: "%6": 2
# CHECK-GX-JSON-DAG: "%8": 2306
# CHECK-GX-JSON-DAG: "%10": 0
# CHECK-GX-JSON-DAG: "%18": 0
# CHECK-GX-JSON: },
# CHECK-GX-JSON-NEXT: "furthest": {
# CHECK-GX-JSON-DAG: "register": "%1",
# CHECK-GX-JSON-DAG: "use": "{{[^"]+}}",
# CHECK-GX-JSON-DAG: "use-mi": "{{[^"]+}}",
# CHECK-GX-JSON-DAG: "distance": 2306
# CHECK-GX-JSON: },
# CHECK-GX-JSON-NEXT: "furthest-subreg": {
# CHECK-GX-JSON-DAG: "register": "%1",
# CHECK-GX-JSON-DAG: "use": "{{[^"]+}}",
# CHECK-GX-JSON-DAG: "use-mi": "{{[^"]+}}",
# CHECK-GX-JSON-DAG: "distance": 2306
# CHECK-GX-JSON: }
# CHECK-GX-JSON-NEXT: },
# CHECK-GX-JSON-NEXT: {
# CHECK-GX-JSON-NEXT: "instr": "%11:sreg_32 = S_ADD_I32 %10, 1, implicit-def dead $scc",
# 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": 2306
# CHECK-GX-JSON-DAG: "%4": 3
# CHECK-GX-JSON-DAG: "%6": 1
# CHECK-GX-JSON-DAG: "%8": 2306
# CHECK-GX-JSON-DAG: "%10": 0
# CHECK-GX-JSON: },
# CHECK-GX-JSON-NEXT: "furthest": {
# CHECK-GX-JSON-DAG: "register": "%1",
# CHECK-GX-JSON-DAG: "use": "{{[^"]+}}",
# CHECK-GX-JSON-DAG: "use-mi": "{{[^"]+}}",
# CHECK-GX-JSON-DAG: "distance": 2306
# CHECK-GX-JSON: },
# CHECK-GX-JSON-NEXT: "furthest-subreg": {
# CHECK-GX-JSON-DAG: "register": "%1",
# CHECK-GX-JSON-DAG: "use": "{{[^"]+}}",
# CHECK-GX-JSON-DAG: "use-mi": "{{[^"]+}}",
# CHECK-GX-JSON-DAG: "distance": 2306
# CHECK-GX-JSON: }
# CHECK-GX-JSON-NEXT: },
# CHECK-GX-JSON-NEXT: {
# CHECK-GX-JSON-NEXT: "instr": "%7:vgpr_32 = V_ADD_U32_e64 4, %6, 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": 2306
# CHECK-GX-JSON-DAG: "%4": 2
# CHECK-GX-JSON-DAG: "%6": 0
# CHECK-GX-JSON-DAG: "%8": 2306
# CHECK-GX-JSON-DAG: "%11": 1
# CHECK-GX-JSON: },
# CHECK-GX-JSON-NEXT: "furthest": {
# CHECK-GX-JSON-DAG: "register": "%1",
# CHECK-GX-JSON-DAG: "use": "{{[^"]+}}",
# CHECK-GX-JSON-DAG: "use-mi": "{{[^"]+}}",
# CHECK-GX-JSON-DAG: "distance": 2306
# CHECK-GX-JSON: },
# CHECK-GX-JSON-NEXT: "furthest-subreg": {
# CHECK-GX-JSON-DAG: "register": "%1",
# CHECK-GX-JSON-DAG: "use": "{{[^"]+}}",
# CHECK-GX-JSON-DAG: "use-mi": "{{[^"]+}}",
# CHECK-GX-JSON-DAG: "distance": 2306
# CHECK-GX-JSON: }
# CHECK-GX-JSON-NEXT: },
# CHECK-GX-JSON-NEXT: {
# CHECK-GX-JSON-NEXT: "instr": "%19:sreg_32 = V_CMP_GE_U32_e64 %11, %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: "%1": 2306
# CHECK-GX-JSON-DAG: "%4": 1
# CHECK-GX-JSON-DAG: "%8": 2306
# CHECK-GX-JSON-DAG: "%11": 0
# CHECK-GX-JSON: },
# CHECK-GX-JSON-NEXT: "furthest": {
# CHECK-GX-JSON-DAG: "register": "%1",
# CHECK-GX-JSON-DAG: "use": "{{[^"]+}}",
# CHECK-GX-JSON-DAG: "use-mi": "{{[^"]+}}",
# CHECK-GX-JSON-DAG: "distance": 2306
# CHECK-GX-JSON: },
# CHECK-GX-JSON-NEXT: "furthest-subreg": {
# CHECK-GX-JSON-DAG: "register": "%1",
# CHECK-GX-JSON-DAG: "use": "{{[^"]+}}",
# CHECK-GX-JSON-DAG: "use-mi": "{{[^"]+}}",
# CHECK-GX-JSON-DAG: "distance": 2306
# CHECK-GX-JSON: }
# CHECK-GX-JSON-NEXT: },
# CHECK-GX-JSON-NEXT: {
# CHECK-GX-JSON-NEXT: "instr": "%5:sreg_32 = SI_IF_BREAK %19, %4, implicit-def dead $scc",
# 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: "%1": 2306
# CHECK-GX-JSON-DAG: "%4": 0
# CHECK-GX-JSON-DAG: "%8": 2306
# CHECK-GX-JSON-DAG: "%19": 0
# CHECK-GX-JSON: },
# CHECK-GX-JSON-NEXT: "furthest": {
# CHECK-GX-JSON-DAG: "register": "%1",
# CHECK-GX-JSON-DAG: "use": "{{[^"]+}}",
# CHECK-GX-JSON-DAG: "use-mi": "{{[^"]+}}",
# CHECK-GX-JSON-DAG: "distance": 2306
# CHECK-GX-JSON: },
# CHECK-GX-JSON-NEXT: "furthest-subreg": {
# CHECK-GX-JSON-DAG: "register": "%1",
# CHECK-GX-JSON-DAG: "use": "{{[^"]+}}",
# CHECK-GX-JSON-DAG: "use-mi": "{{[^"]+}}",
# CHECK-GX-JSON-DAG: "distance": 2306
# CHECK-GX-JSON: }
# CHECK-GX-JSON-NEXT: },
# CHECK-GX-JSON-NEXT: {
# CHECK-GX-JSON-NEXT: "instr": "SI_LOOP %5, %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: "%1": 2306
# CHECK-GX-JSON-DAG: "%5": 0
# CHECK-GX-JSON-DAG: "%8": 2306
# CHECK-GX-JSON: },
# CHECK-GX-JSON-NEXT: "furthest": {
# CHECK-GX-JSON-DAG: "register": "%1",
# CHECK-GX-JSON-DAG: "use": "{{[^"]+}}",
# CHECK-GX-JSON-DAG: "use-mi": "{{[^"]+}}",
# CHECK-GX-JSON-DAG: "distance": 2306
# CHECK-GX-JSON: },
# CHECK-GX-JSON-NEXT: "furthest-subreg": {
# CHECK-GX-JSON-DAG: "register": "%1",
# CHECK-GX-JSON-DAG: "use": "{{[^"]+}}",
# CHECK-GX-JSON-DAG: "use-mi": "{{[^"]+}}",
# CHECK-GX-JSON-DAG: "distance": 2306
# 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: "%1": 2306
# CHECK-GX-JSON-DAG: "%5": 2305
# CHECK-GX-JSON-DAG: "%8": 2306
# CHECK-GX-JSON: },
# CHECK-GX-JSON-NEXT: "furthest": {
# CHECK-GX-JSON-DAG: "register": "%1",
# CHECK-GX-JSON-DAG: "use": "{{[^"]+}}",
# CHECK-GX-JSON-DAG: "use-mi": "{{[^"]+}}",
# CHECK-GX-JSON-DAG: "distance": 2306
# CHECK-GX-JSON: },
# CHECK-GX-JSON-NEXT: "furthest-subreg": {
# CHECK-GX-JSON-DAG: "register": "%1",
# CHECK-GX-JSON-DAG: "use": "{{[^"]+}}",
# CHECK-GX-JSON-DAG: "use-mi": "{{[^"]+}}",
# CHECK-GX-JSON-DAG: "distance": 2306
# 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": "SI_END_CF %5, 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: "%1": 1
# CHECK-GX-JSON-DAG: "%5": 0
# CHECK-GX-JSON-DAG: "%8": 1
# CHECK-GX-JSON: },
# CHECK-GX-JSON-NEXT: "furthest": {
# CHECK-GX-JSON-DAG: "register": "%1",
# 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": "%1",
# 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": "DS_WRITE_B32_gfx9 %1, %8, 0, 0, implicit $exec :: (store (s32) into %ir.p, 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: "%1": 0
# CHECK-GX-JSON-DAG: "%8": 0
# CHECK-GX-JSON: },
# CHECK-GX-JSON-NEXT: "furthest": {
# CHECK-GX-JSON-DAG: "register": "%1",
# 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": "%1",
# 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": "S_ENDPGM 0",
# 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": 18,
# CHECK-GX-JSON-DAG: "%1": 4,
# CHECK-GX-JSON-DAG: "%2": 4,
# CHECK-GX-JSON-DAG: "%3": 1,
# CHECK-GX-JSON-DAG: "%4": 15,
# CHECK-GX-JSON-DAG: "%6": 3,
# CHECK-GX-JSON-DAG: "%8": 2306,
# CHECK-GX-JSON-DAG: "%10": 8,
# CHECK-GX-JSON-DAG: "%12": 4,
# CHECK-GX-JSON-DAG: "%13": 3,
# CHECK-GX-JSON-DAG: "%14": 3,
# CHECK-GX-JSON-DAG: "%15": 2,
# CHECK-GX-JSON-DAG: "%16": 2,
# CHECK-GX-JSON-DAG: "%17": 1,
# CHECK-GX-JSON-DAG: "%18": 1,
# CHECK-GX-JSON-DAG: "%9": "<unreachable>",
# CHECK-GX-JSON-DAG: "%11": 2,
# CHECK-GX-JSON-DAG: "%7": "<unreachable>",
# CHECK-GX-JSON-DAG: "%19": 1,
# CHECK-GX-JSON-DAG: "%5": 1
# 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: }
# 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 $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-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 $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": 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": "%2:vgpr_32 = V_MOV_B32_e32 100, 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": 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": "%3:sreg_32 = S_MOV_B32 0",
# 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: "%1": 0
# CHECK-CP-JSON-DAG: "%2": 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": 0
# 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": 0
# 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": "%4:sreg_32 = PHI %3, %bb.0, %5, %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": 10
# CHECK-CP-JSON-DAG: "%1": 1794
# CHECK-CP-JSON: },
# CHECK-CP-JSON-NEXT: "furthest": {
# CHECK-CP-JSON-DAG: "register": "%1",
# CHECK-CP-JSON-DAG: "use": "{{[^"]+}}",
# CHECK-CP-JSON-DAG: "use-mi": "{{[^"]+}}",
# CHECK-CP-JSON-DAG: "distance": 1794
# CHECK-CP-JSON: },
# CHECK-CP-JSON-NEXT: "furthest-subreg": {
# CHECK-CP-JSON-DAG: "register": "%1",
# CHECK-CP-JSON-DAG: "use": "{{[^"]+}}",
# CHECK-CP-JSON-DAG: "use-mi": "{{[^"]+}}",
# CHECK-CP-JSON-DAG: "distance": 1794
# CHECK-CP-JSON: }
# CHECK-CP-JSON-NEXT: },
# CHECK-CP-JSON-NEXT: {
# CHECK-CP-JSON-NEXT: "instr": "%6:vgpr_32 = PHI %1, %bb.0, %7, %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": 10
# CHECK-CP-JSON-DAG: "%1": 1794
# CHECK-CP-JSON-DAG: "%4": 11
# CHECK-CP-JSON: },
# CHECK-CP-JSON-NEXT: "furthest": {
# CHECK-CP-JSON-DAG: "register": "%1",
# CHECK-CP-JSON-DAG: "use": "{{[^"]+}}",
# CHECK-CP-JSON-DAG: "use-mi": "{{[^"]+}}",
# CHECK-CP-JSON-DAG: "distance": 1794
# CHECK-CP-JSON: },
# CHECK-CP-JSON-NEXT: "furthest-subreg": {
# CHECK-CP-JSON-DAG: "register": "%1",
# CHECK-CP-JSON-DAG: "use": "{{[^"]+}}",
# CHECK-CP-JSON-DAG: "use-mi": "{{[^"]+}}",
# CHECK-CP-JSON-DAG: "distance": 1794
# CHECK-CP-JSON: }
# CHECK-CP-JSON-NEXT: },
# CHECK-CP-JSON-NEXT: {
# CHECK-CP-JSON-NEXT: "instr": "%8:vgpr_32 = PHI %2, %bb.0, %9, %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": 10
# CHECK-CP-JSON-DAG: "%1": 1794
# CHECK-CP-JSON-DAG: "%4": 11
# CHECK-CP-JSON-DAG: "%6": 0
# CHECK-CP-JSON: },
# CHECK-CP-JSON-NEXT: "furthest": {
# CHECK-CP-JSON-DAG: "register": "%1",
# CHECK-CP-JSON-DAG: "use": "{{[^"]+}}",
# CHECK-CP-JSON-DAG: "use-mi": "{{[^"]+}}",
# CHECK-CP-JSON-DAG: "distance": 1794
# CHECK-CP-JSON: },
# CHECK-CP-JSON-NEXT: "furthest-subreg": {
# CHECK-CP-JSON-DAG: "register": "%1",
# CHECK-CP-JSON-DAG: "use": "{{[^"]+}}",
# CHECK-CP-JSON-DAG: "use-mi": "{{[^"]+}}",
# CHECK-CP-JSON-DAG: "distance": 1794
# CHECK-CP-JSON: }
# CHECK-CP-JSON-NEXT: },
# CHECK-CP-JSON-NEXT: {
# CHECK-CP-JSON-NEXT: "instr": "%10:sreg_32 = PHI %3, %bb.0, %11, %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": 10
# CHECK-CP-JSON-DAG: "%1": 1794
# CHECK-CP-JSON-DAG: "%4": 11
# CHECK-CP-JSON-DAG: "%6": 0
# CHECK-CP-JSON-DAG: "%8": 1794
# CHECK-CP-JSON: },
# CHECK-CP-JSON-NEXT: "furthest": {
# CHECK-CP-JSON-DAG: "register": "%1",
# CHECK-CP-JSON-DAG: "use": "{{[^"]+}}",
# CHECK-CP-JSON-DAG: "use-mi": "{{[^"]+}}",
# CHECK-CP-JSON-DAG: "distance": 1794
# CHECK-CP-JSON: },
# CHECK-CP-JSON-NEXT: "furthest-subreg": {
# CHECK-CP-JSON-DAG: "register": "%1",
# CHECK-CP-JSON-DAG: "use": "{{[^"]+}}",
# CHECK-CP-JSON-DAG: "use-mi": "{{[^"]+}}",
# CHECK-CP-JSON-DAG: "distance": 1794
# CHECK-CP-JSON: }
# CHECK-CP-JSON-NEXT: },
# CHECK-CP-JSON-NEXT: {
# CHECK-CP-JSON-NEXT: "instr": "%12:vgpr_32 = DS_READ_U8_gfx9 %6, 0, 0, implicit $exec :: (load (s8) from %ir.p, 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": 10
# CHECK-CP-JSON-DAG: "%1": 1794
# CHECK-CP-JSON-DAG: "%4": 11
# CHECK-CP-JSON-DAG: "%6": 0
# CHECK-CP-JSON-DAG: "%8": 1794
# CHECK-CP-JSON-DAG: "%10": 7
# CHECK-CP-JSON: },
# CHECK-CP-JSON-NEXT: "furthest": {
# CHECK-CP-JSON-DAG: "register": "%1",
# CHECK-CP-JSON-DAG: "use": "{{[^"]+}}",
# CHECK-CP-JSON-DAG: "use-mi": "{{[^"]+}}",
# CHECK-CP-JSON-DAG: "distance": 1794
# CHECK-CP-JSON: },
# CHECK-CP-JSON-NEXT: "furthest-subreg": {
# CHECK-CP-JSON-DAG: "register": "%1",
# CHECK-CP-JSON-DAG: "use": "{{[^"]+}}",
# CHECK-CP-JSON-DAG: "use-mi": "{{[^"]+}}",
# CHECK-CP-JSON-DAG: "distance": 1794
# CHECK-CP-JSON: }
# CHECK-CP-JSON-NEXT: },
# CHECK-CP-JSON-NEXT: {
# CHECK-CP-JSON-NEXT: "instr": "%13:vgpr_32 = DS_READ_U8_gfx9 %6, 1, 0, implicit $exec :: (load (s8) from %ir.p + 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": 9
# CHECK-CP-JSON-DAG: "%1": 1794
# CHECK-CP-JSON-DAG: "%4": 10
# CHECK-CP-JSON-DAG: "%6": 0
# CHECK-CP-JSON-DAG: "%8": 1794
# CHECK-CP-JSON-DAG: "%10": 6
# CHECK-CP-JSON-DAG: "%12": 3
# CHECK-CP-JSON: },
# CHECK-CP-JSON-NEXT: "furthest": {
# CHECK-CP-JSON-DAG: "register": "%1",
# CHECK-CP-JSON-DAG: "use": "{{[^"]+}}",
# CHECK-CP-JSON-DAG: "use-mi": "{{[^"]+}}",
# CHECK-CP-JSON-DAG: "distance": 1794
# CHECK-CP-JSON: },
# CHECK-CP-JSON-NEXT: "furthest-subreg": {
# CHECK-CP-JSON-DAG: "register": "%1",
# CHECK-CP-JSON-DAG: "use": "{{[^"]+}}",
# CHECK-CP-JSON-DAG: "use-mi": "{{[^"]+}}",
# CHECK-CP-JSON-DAG: "distance": 1794
# CHECK-CP-JSON: }
# CHECK-CP-JSON-NEXT: },
# CHECK-CP-JSON-NEXT: {
# CHECK-CP-JSON-NEXT: "instr": "%14:vgpr_32 = DS_READ_U8_gfx9 %6, 2, 0, implicit $exec :: (load (s8) from %ir.p + 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": 8
# CHECK-CP-JSON-DAG: "%1": 1794
# CHECK-CP-JSON-DAG: "%4": 9
# CHECK-CP-JSON-DAG: "%6": 0
# CHECK-CP-JSON-DAG: "%8": 1794
# CHECK-CP-JSON-DAG: "%10": 5
# CHECK-CP-JSON-DAG: "%12": 2
# CHECK-CP-JSON-DAG: "%13": 2
# CHECK-CP-JSON: },
# CHECK-CP-JSON-NEXT: "furthest": {
# CHECK-CP-JSON-DAG: "register": "%1",
# CHECK-CP-JSON-DAG: "use": "{{[^"]+}}",
# CHECK-CP-JSON-DAG: "use-mi": "{{[^"]+}}",
# CHECK-CP-JSON-DAG: "distance": 1794
# CHECK-CP-JSON: },
# CHECK-CP-JSON-NEXT: "furthest-subreg": {
# CHECK-CP-JSON-DAG: "register": "%1",
# CHECK-CP-JSON-DAG: "use": "{{[^"]+}}",
# CHECK-CP-JSON-DAG: "use-mi": "{{[^"]+}}",
# CHECK-CP-JSON-DAG: "distance": 1794
# CHECK-CP-JSON: }
# CHECK-CP-JSON-NEXT: },
# CHECK-CP-JSON-NEXT: {
# CHECK-CP-JSON-NEXT: "instr": "%15:vgpr_32 = DS_READ_U8_gfx9 %6, 3, 0, implicit $exec :: (load (s8) from %ir.p + 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": 7
# CHECK-CP-JSON-DAG: "%1": 1794
# CHECK-CP-JSON-DAG: "%4": 8
# CHECK-CP-JSON-DAG: "%6": 0
# CHECK-CP-JSON-DAG: "%8": 1794
# CHECK-CP-JSON-DAG: "%10": 4
# CHECK-CP-JSON-DAG: "%12": 1
# CHECK-CP-JSON-DAG: "%13": 1
# CHECK-CP-JSON-DAG: "%14": 2
# CHECK-CP-JSON: },
# CHECK-CP-JSON-NEXT: "furthest": {
# CHECK-CP-JSON-DAG: "register": "%1",
# CHECK-CP-JSON-DAG: "use": "{{[^"]+}}",
# CHECK-CP-JSON-DAG: "use-mi": "{{[^"]+}}",
# CHECK-CP-JSON-DAG: "distance": 1794
# CHECK-CP-JSON: },
# CHECK-CP-JSON-NEXT: "furthest-subreg": {
# CHECK-CP-JSON-DAG: "register": "%1",
# CHECK-CP-JSON-DAG: "use": "{{[^"]+}}",
# CHECK-CP-JSON-DAG: "use-mi": "{{[^"]+}}",
# CHECK-CP-JSON-DAG: "distance": 1794
# CHECK-CP-JSON: }
# CHECK-CP-JSON-NEXT: },
# CHECK-CP-JSON-NEXT: {
# CHECK-CP-JSON-NEXT: "instr": "%16:vgpr_32 = V_LSHL_OR_B32_e64 %13, 8, %12, 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": 1794
# CHECK-CP-JSON-DAG: "%4": 7
# CHECK-CP-JSON-DAG: "%6": 5
# CHECK-CP-JSON-DAG: "%8": 1794
# CHECK-CP-JSON-DAG: "%10": 3
# CHECK-CP-JSON-DAG: "%12": 0
# CHECK-CP-JSON-DAG: "%13": 0
# CHECK-CP-JSON-DAG: "%14": 1
# CHECK-CP-JSON-DAG: "%15": 1
# CHECK-CP-JSON: },
# CHECK-CP-JSON-NEXT: "furthest": {
# CHECK-CP-JSON-DAG: "register": "%1",
# CHECK-CP-JSON-DAG: "use": "{{[^"]+}}",
# CHECK-CP-JSON-DAG: "use-mi": "{{[^"]+}}",
# CHECK-CP-JSON-DAG: "distance": 1794
# CHECK-CP-JSON: },
# CHECK-CP-JSON-NEXT: "furthest-subreg": {
# CHECK-CP-JSON-DAG: "register": "%1",
# CHECK-CP-JSON-DAG: "use": "{{[^"]+}}",
# CHECK-CP-JSON-DAG: "use-mi": "{{[^"]+}}",
# CHECK-CP-JSON-DAG: "distance": 1794
# CHECK-CP-JSON: }
# CHECK-CP-JSON-NEXT: },
# CHECK-CP-JSON-NEXT: {
# CHECK-CP-JSON-NEXT: "instr": "%17: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": 5
# CHECK-CP-JSON-DAG: "%1": 1794
# CHECK-CP-JSON-DAG: "%4": 6
# CHECK-CP-JSON-DAG: "%6": 4
# CHECK-CP-JSON-DAG: "%8": 1794
# CHECK-CP-JSON-DAG: "%10": 2
# CHECK-CP-JSON-DAG: "%14": 0
# CHECK-CP-JSON-DAG: "%15": 0
# CHECK-CP-JSON-DAG: "%16": 1
# CHECK-CP-JSON: },
# CHECK-CP-JSON-NEXT: "furthest": {
# CHECK-CP-JSON-DAG: "register": "%1",
# CHECK-CP-JSON-DAG: "use": "{{[^"]+}}",
# CHECK-CP-JSON-DAG: "use-mi": "{{[^"]+}}",
# CHECK-CP-JSON-DAG: "distance": 1794
# CHECK-CP-JSON: },
# CHECK-CP-JSON-NEXT: "furthest-subreg": {
# CHECK-CP-JSON-DAG: "register": "%1",
# CHECK-CP-JSON-DAG: "use": "{{[^"]+}}",
# CHECK-CP-JSON-DAG: "use-mi": "{{[^"]+}}",
# CHECK-CP-JSON-DAG: "distance": 1794
# CHECK-CP-JSON: }
# CHECK-CP-JSON-NEXT: },
# CHECK-CP-JSON-NEXT: {
# CHECK-CP-JSON-NEXT: "instr": "%18:vgpr_32 = V_LSHL_OR_B32_e64 %17, 16, %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": 4
# CHECK-CP-JSON-DAG: "%1": 1794
# CHECK-CP-JSON-DAG: "%4": 5
# CHECK-CP-JSON-DAG: "%6": 3
# CHECK-CP-JSON-DAG: "%8": 1794
# CHECK-CP-JSON-DAG: "%10": 1
# CHECK-CP-JSON-DAG: "%16": 0
# CHECK-CP-JSON-DAG: "%17": 0
# CHECK-CP-JSON: },
# CHECK-CP-JSON-NEXT: "furthest": {
# CHECK-CP-JSON-DAG: "register": "%1",
# CHECK-CP-JSON-DAG: "use": "{{[^"]+}}",
# CHECK-CP-JSON-DAG: "use-mi": "{{[^"]+}}",
# CHECK-CP-JSON-DAG: "distance": 1794
# CHECK-CP-JSON: },
# CHECK-CP-JSON-NEXT: "furthest-subreg": {
# CHECK-CP-JSON-DAG: "register": "%1",
# CHECK-CP-JSON-DAG: "use": "{{[^"]+}}",
# CHECK-CP-JSON-DAG: "use-mi": "{{[^"]+}}",
# CHECK-CP-JSON-DAG: "distance": 1794
# CHECK-CP-JSON: }
# CHECK-CP-JSON-NEXT: },
# CHECK-CP-JSON-NEXT: {
# CHECK-CP-JSON-NEXT: "instr": "%9:vgpr_32 = V_ADD_U32_e64 %10, %18, 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": 3
# CHECK-CP-JSON-DAG: "%1": 1794
# CHECK-CP-JSON-DAG: "%4": 4
# CHECK-CP-JSON-DAG: "%6": 2
# CHECK-CP-JSON-DAG: "%8": 1794
# CHECK-CP-JSON-DAG: "%10": 0
# CHECK-CP-JSON-DAG: "%18": 0
# CHECK-CP-JSON: },
# CHECK-CP-JSON-NEXT: "furthest": {
# CHECK-CP-JSON-DAG: "register": "%1",
# CHECK-CP-JSON-DAG: "use": "{{[^"]+}}",
# CHECK-CP-JSON-DAG: "use-mi": "{{[^"]+}}",
# CHECK-CP-JSON-DAG: "distance": 1794
# CHECK-CP-JSON: },
# CHECK-CP-JSON-NEXT: "furthest-subreg": {
# CHECK-CP-JSON-DAG: "register": "%1",
# CHECK-CP-JSON-DAG: "use": "{{[^"]+}}",
# CHECK-CP-JSON-DAG: "use-mi": "{{[^"]+}}",
# CHECK-CP-JSON-DAG: "distance": 1794
# CHECK-CP-JSON: }
# CHECK-CP-JSON-NEXT: },
# CHECK-CP-JSON-NEXT: {
# CHECK-CP-JSON-NEXT: "instr": "%11:sreg_32 = S_ADD_I32 %10, 1, implicit-def dead $scc",
# 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": 1794
# CHECK-CP-JSON-DAG: "%4": 3
# CHECK-CP-JSON-DAG: "%6": 1
# CHECK-CP-JSON-DAG: "%8": 1794
# CHECK-CP-JSON-DAG: "%9": 5
# CHECK-CP-JSON-DAG: "%10": 0
# CHECK-CP-JSON: },
# CHECK-CP-JSON-NEXT: "furthest": {
# CHECK-CP-JSON-DAG: "register": "%1",
# CHECK-CP-JSON-DAG: "use": "{{[^"]+}}",
# CHECK-CP-JSON-DAG: "use-mi": "{{[^"]+}}",
# CHECK-CP-JSON-DAG: "distance": 1794
# CHECK-CP-JSON: },
# CHECK-CP-JSON-NEXT: "furthest-subreg": {
# CHECK-CP-JSON-DAG: "register": "%1",
# CHECK-CP-JSON-DAG: "use": "{{[^"]+}}",
# CHECK-CP-JSON-DAG: "use-mi": "{{[^"]+}}",
# CHECK-CP-JSON-DAG: "distance": 1794
# CHECK-CP-JSON: }
# CHECK-CP-JSON-NEXT: },
# CHECK-CP-JSON-NEXT: {
# CHECK-CP-JSON-NEXT: "instr": "%7:vgpr_32 = V_ADD_U32_e64 4, %6, 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": 1794
# CHECK-CP-JSON-DAG: "%4": 2
# CHECK-CP-JSON-DAG: "%6": 0
# CHECK-CP-JSON-DAG: "%8": 1794
# CHECK-CP-JSON-DAG: "%9": 4
# CHECK-CP-JSON-DAG: "%11": 1
# CHECK-CP-JSON: },
# CHECK-CP-JSON-NEXT: "furthest": {
# CHECK-CP-JSON-DAG: "register": "%1",
# CHECK-CP-JSON-DAG: "use": "{{[^"]+}}",
# CHECK-CP-JSON-DAG: "use-mi": "{{[^"]+}}",
# CHECK-CP-JSON-DAG: "distance": 1794
# CHECK-CP-JSON: },
# CHECK-CP-JSON-NEXT: "furthest-subreg": {
# CHECK-CP-JSON-DAG: "register": "%1",
# CHECK-CP-JSON-DAG: "use": "{{[^"]+}}",
# CHECK-CP-JSON-DAG: "use-mi": "{{[^"]+}}",
# CHECK-CP-JSON-DAG: "distance": 1794
# CHECK-CP-JSON: }
# CHECK-CP-JSON-NEXT: },
# CHECK-CP-JSON-NEXT: {
# CHECK-CP-JSON-NEXT: "instr": "%19:sreg_32 = V_CMP_GE_U32_e64 %11, %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: "%1": 1794
# CHECK-CP-JSON-DAG: "%4": 1
# CHECK-CP-JSON-DAG: "%7": 3
# CHECK-CP-JSON-DAG: "%8": 1794
# CHECK-CP-JSON-DAG: "%9": 3
# CHECK-CP-JSON-DAG: "%11": 0
# CHECK-CP-JSON: },
# CHECK-CP-JSON-NEXT: "furthest": {
# CHECK-CP-JSON-DAG: "register": "%1",
# CHECK-CP-JSON-DAG: "use": "{{[^"]+}}",
# CHECK-CP-JSON-DAG: "use-mi": "{{[^"]+}}",
# CHECK-CP-JSON-DAG: "distance": 1794
# CHECK-CP-JSON: },
# CHECK-CP-JSON-NEXT: "furthest-subreg": {
# CHECK-CP-JSON-DAG: "register": "%1",
# CHECK-CP-JSON-DAG: "use": "{{[^"]+}}",
# CHECK-CP-JSON-DAG: "use-mi": "{{[^"]+}}",
# CHECK-CP-JSON-DAG: "distance": 1794
# CHECK-CP-JSON: }
# CHECK-CP-JSON-NEXT: },
# CHECK-CP-JSON-NEXT: {
# CHECK-CP-JSON-NEXT: "instr": "%5:sreg_32 = SI_IF_BREAK %19, %4, implicit-def dead $scc",
# 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": 27
# CHECK-CP-JSON-DAG: "%1": 1794
# CHECK-CP-JSON-DAG: "%4": 0
# CHECK-CP-JSON-DAG: "%7": 2
# CHECK-CP-JSON-DAG: "%8": 1794
# CHECK-CP-JSON-DAG: "%9": 2
# CHECK-CP-JSON-DAG: "%11": 2
# CHECK-CP-JSON-DAG: "%19": 0
# CHECK-CP-JSON: },
# CHECK-CP-JSON-NEXT: "furthest": {
# CHECK-CP-JSON-DAG: "register": "%1",
# CHECK-CP-JSON-DAG: "use": "{{[^"]+}}",
# CHECK-CP-JSON-DAG: "use-mi": "{{[^"]+}}",
# CHECK-CP-JSON-DAG: "distance": 1794
# CHECK-CP-JSON: },
# CHECK-CP-JSON-NEXT: "furthest-subreg": {
# CHECK-CP-JSON-DAG: "register": "%1",
# CHECK-CP-JSON-DAG: "use": "{{[^"]+}}",
# CHECK-CP-JSON-DAG: "use-mi": "{{[^"]+}}",
# CHECK-CP-JSON-DAG: "distance": 1794
# CHECK-CP-JSON: }
# CHECK-CP-JSON-NEXT: },
# CHECK-CP-JSON-NEXT: {
# CHECK-CP-JSON-NEXT: "instr": "SI_LOOP %5, %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": 26
# CHECK-CP-JSON-DAG: "%1": 1794
# CHECK-CP-JSON-DAG: "%5": 0
# CHECK-CP-JSON-DAG: "%7": 1
# CHECK-CP-JSON-DAG: "%8": 1794
# CHECK-CP-JSON-DAG: "%9": 1
# CHECK-CP-JSON-DAG: "%11": 1
# CHECK-CP-JSON: },
# CHECK-CP-JSON-NEXT: "furthest": {
# CHECK-CP-JSON-DAG: "register": "%1",
# CHECK-CP-JSON-DAG: "use": "{{[^"]+}}",
# CHECK-CP-JSON-DAG: "use-mi": "{{[^"]+}}",
# CHECK-CP-JSON-DAG: "distance": 1794
# CHECK-CP-JSON: },
# CHECK-CP-JSON-NEXT: "furthest-subreg": {
# CHECK-CP-JSON-DAG: "register": "%1",
# CHECK-CP-JSON-DAG: "use": "{{[^"]+}}",
# CHECK-CP-JSON-DAG: "use-mi": "{{[^"]+}}",
# CHECK-CP-JSON-DAG: "distance": 1794
# 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": 25
# CHECK-CP-JSON-DAG: "%1": 1794
# CHECK-CP-JSON-DAG: "%5": 0
# CHECK-CP-JSON-DAG: "%7": 0
# CHECK-CP-JSON-DAG: "%8": 1794
# CHECK-CP-JSON-DAG: "%9": 0
# CHECK-CP-JSON-DAG: "%11": 0
# CHECK-CP-JSON: },
# CHECK-CP-JSON-NEXT: "furthest": {
# CHECK-CP-JSON-DAG: "register": "%1",
# CHECK-CP-JSON-DAG: "use": "{{[^"]+}}",
# CHECK-CP-JSON-DAG: "use-mi": "{{[^"]+}}",
# CHECK-CP-JSON-DAG: "distance": 1794
# CHECK-CP-JSON: },
# CHECK-CP-JSON-NEXT: "furthest-subreg": {
# CHECK-CP-JSON-DAG: "register": "%1",
# CHECK-CP-JSON-DAG: "use": "{{[^"]+}}",
# CHECK-CP-JSON-DAG: "use-mi": "{{[^"]+}}",
# CHECK-CP-JSON-DAG: "distance": 1794
# 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": "SI_END_CF %5, 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: "%1": 1
# CHECK-CP-JSON-DAG: "%5": 0
# CHECK-CP-JSON-DAG: "%8": 1
# CHECK-CP-JSON: },
# CHECK-CP-JSON-NEXT: "furthest": {
# CHECK-CP-JSON-DAG: "register": "%1",
# 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": "%1",
# 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": "DS_WRITE_B32_gfx9 %1, %8, 0, 0, implicit $exec :: (store (s32) into %ir.p, 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: "%1": 0
# CHECK-CP-JSON-DAG: "%8": 0
# CHECK-CP-JSON: },
# CHECK-CP-JSON-NEXT: "furthest": {
# CHECK-CP-JSON-DAG: "register": "%1",
# 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": "%1",
# 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": "S_ENDPGM 0",
# 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": 3,
# CHECK-CP-JSON-DAG: "%1": 2,
# CHECK-CP-JSON-DAG: "%2": 1,
# CHECK-CP-JSON-DAG: "%3": 0,
# CHECK-CP-JSON-DAG: "%4": 11,
# CHECK-CP-JSON-DAG: "%6": 0,
# CHECK-CP-JSON-DAG: "%8": 1794,
# CHECK-CP-JSON-DAG: "%10": 7,
# CHECK-CP-JSON-DAG: "%12": 4,
# CHECK-CP-JSON-DAG: "%13": 3,
# CHECK-CP-JSON-DAG: "%14": 3,
# CHECK-CP-JSON-DAG: "%15": 2,
# CHECK-CP-JSON-DAG: "%16": 2,
# CHECK-CP-JSON-DAG: "%17": 1,
# CHECK-CP-JSON-DAG: "%18": 1,
# CHECK-CP-JSON-DAG: "%9": 6,
# CHECK-CP-JSON-DAG: "%11": 2,
# CHECK-CP-JSON-DAG: "%7": 4,
# CHECK-CP-JSON-DAG: "%19": 1,
# CHECK-CP-JSON-DAG: "%5": 1
# 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: }