blob: b9ffb229b2d12fd8bd1c642ab91e3556b52709fb [file]
# 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
---
name: test_proper_nested_loops
tracksRegLiveness: true
body: |
bb.0:
successors: %bb.1(0x80000000)
%0:sgpr_32 = S_MOV_B32 10
%1:sgpr_32 = S_MOV_B32 5
%2:sgpr_32 = S_MOV_B32 0
%3:sgpr_32 = S_MOV_B32 999
S_BRANCH %bb.1
bb.1:
successors: %bb.2(0x40000000), %bb.5(0x40000000)
%4:sgpr_32 = PHI %2, %bb.0, %5, %bb.4
S_CMP_LT_I32 %4, %0, implicit-def $scc
S_CBRANCH_SCC1 %bb.2, implicit $scc
S_BRANCH %bb.5
bb.2:
successors: %bb.3(0x80000000)
%6:sgpr_32 = S_MOV_B32 0
S_BRANCH %bb.3
bb.3:
successors: %bb.3(0x40000000), %bb.4(0x40000000)
%7:sgpr_32 = PHI %6, %bb.2, %8, %bb.3
S_NOP 0
S_CMP_LT_I32 %7, %1, implicit-def $scc
%8:sgpr_32 = S_ADD_U32 %7, 1, implicit-def $scc
S_CBRANCH_SCC1 %bb.3, implicit $scc
S_BRANCH %bb.4
bb.4:
successors: %bb.1(0x80000000)
%5:sgpr_32 = S_ADD_U32 %4, 1, implicit-def $scc
S_BRANCH %bb.1
bb.5:
dead %9:sgpr_32 = S_ADD_U32 %4, %3, implicit-def $scc
S_ENDPGM 0
# Test 1: Basic finite distances in entry block - instruction-specific validation
# Test 2: Three-tier ranking in inner loop - exact instruction context
# Test 3: Loop exit distances validation
...
# 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:sgpr_32 = S_MOV_B32 10",
# 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:sgpr_32 = S_MOV_B32 5",
# 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: },
# 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": "%2:sgpr_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": 4
# CHECK-GX-JSON-DAG: "%1": 11
# 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": 11
# 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": 11
# CHECK-GX-JSON: }
# CHECK-GX-JSON-NEXT: },
# CHECK-GX-JSON-NEXT: {
# CHECK-GX-JSON-NEXT: "instr": "%3:sgpr_32 = S_MOV_B32 999",
# 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": 10
# CHECK-GX-JSON-DAG: "%2": 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": 10
# 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": 10
# 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": 2
# CHECK-GX-JSON-DAG: "%1": 9
# CHECK-GX-JSON-DAG: "%2": 1
# CHECK-GX-JSON-DAG: "%3": 513
# CHECK-GX-JSON: },
# CHECK-GX-JSON-NEXT: "furthest": {
# CHECK-GX-JSON-DAG: "register": "%3",
# CHECK-GX-JSON-DAG: "use": "{{[^"]+}}",
# CHECK-GX-JSON-DAG: "use-mi": "{{[^"]+}}",
# CHECK-GX-JSON-DAG: "distance": 513
# CHECK-GX-JSON: },
# CHECK-GX-JSON-NEXT: "furthest-subreg": {
# CHECK-GX-JSON-DAG: "register": "%3",
# CHECK-GX-JSON-DAG: "use": "{{[^"]+}}",
# CHECK-GX-JSON-DAG: "use-mi": "{{[^"]+}}",
# CHECK-GX-JSON-DAG: "distance": 513
# 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:sgpr_32 = PHI %2, %bb.0, %5, %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": 1
# CHECK-GX-JSON-DAG: "%1": 8
# CHECK-GX-JSON-DAG: "%3": 513
# CHECK-GX-JSON: },
# CHECK-GX-JSON-NEXT: "furthest": {
# CHECK-GX-JSON-DAG: "register": "%3",
# CHECK-GX-JSON-DAG: "use": "{{[^"]+}}",
# CHECK-GX-JSON-DAG: "use-mi": "{{[^"]+}}",
# CHECK-GX-JSON-DAG: "distance": 513
# CHECK-GX-JSON: },
# CHECK-GX-JSON-NEXT: "furthest-subreg": {
# CHECK-GX-JSON-DAG: "register": "%3",
# CHECK-GX-JSON-DAG: "use": "{{[^"]+}}",
# CHECK-GX-JSON-DAG: "use-mi": "{{[^"]+}}",
# CHECK-GX-JSON-DAG: "distance": 513
# CHECK-GX-JSON: }
# CHECK-GX-JSON-NEXT: },
# CHECK-GX-JSON-NEXT: {
# CHECK-GX-JSON-NEXT: "instr": "S_CMP_LT_I32 %4, %0, implicit-def $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": 0
# CHECK-GX-JSON-DAG: "%1": 7
# CHECK-GX-JSON-DAG: "%3": 513
# CHECK-GX-JSON-DAG: "%4": 0
# CHECK-GX-JSON: },
# CHECK-GX-JSON-NEXT: "furthest": {
# CHECK-GX-JSON-DAG: "register": "%3",
# CHECK-GX-JSON-DAG: "use": "{{[^"]+}}",
# CHECK-GX-JSON-DAG: "use-mi": "{{[^"]+}}",
# CHECK-GX-JSON-DAG: "distance": 513
# CHECK-GX-JSON: },
# CHECK-GX-JSON-NEXT: "furthest-subreg": {
# CHECK-GX-JSON-DAG: "register": "%3",
# CHECK-GX-JSON-DAG: "use": "{{[^"]+}}",
# CHECK-GX-JSON-DAG: "use-mi": "{{[^"]+}}",
# CHECK-GX-JSON-DAG: "distance": 513
# CHECK-GX-JSON: }
# CHECK-GX-JSON-NEXT: },
# CHECK-GX-JSON-NEXT: {
# CHECK-GX-JSON-NEXT: "instr": "S_CBRANCH_SCC1 %bb.2, implicit $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": 6
# CHECK-GX-JSON-DAG: "%3": 513
# CHECK-GX-JSON-DAG: "%4": 513
# CHECK-GX-JSON: },
# CHECK-GX-JSON-NEXT: "furthest": {
# CHECK-GX-JSON-DAG: "register": "%3",
# CHECK-GX-JSON-DAG: "use": "{{[^"]+}}",
# CHECK-GX-JSON-DAG: "use-mi": "{{[^"]+}}",
# CHECK-GX-JSON-DAG: "distance": 513
# CHECK-GX-JSON: },
# CHECK-GX-JSON-NEXT: "furthest-subreg": {
# CHECK-GX-JSON-DAG: "register": "%3",
# CHECK-GX-JSON-DAG: "use": "{{[^"]+}}",
# CHECK-GX-JSON-DAG: "use-mi": "{{[^"]+}}",
# CHECK-GX-JSON-DAG: "distance": 513
# CHECK-GX-JSON: }
# CHECK-GX-JSON-NEXT: },
# CHECK-GX-JSON-NEXT: {
# CHECK-GX-JSON-NEXT: "instr": "S_BRANCH %bb.5",
# 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": 5
# CHECK-GX-JSON-DAG: "%3": 513
# CHECK-GX-JSON-DAG: "%4": 513
# CHECK-GX-JSON: },
# CHECK-GX-JSON-NEXT: "furthest": {
# CHECK-GX-JSON-DAG: "register": "%3",
# CHECK-GX-JSON-DAG: "use": "{{[^"]+}}",
# CHECK-GX-JSON-DAG: "use-mi": "{{[^"]+}}",
# CHECK-GX-JSON-DAG: "distance": 513
# CHECK-GX-JSON: },
# CHECK-GX-JSON-NEXT: "furthest-subreg": {
# CHECK-GX-JSON-DAG: "register": "%3",
# CHECK-GX-JSON-DAG: "use": "{{[^"]+}}",
# CHECK-GX-JSON-DAG: "use-mi": "{{[^"]+}}",
# CHECK-GX-JSON-DAG: "distance": 513
# 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": "%6:sgpr_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: "%1": 4
# CHECK-GX-JSON-DAG: "%4": 770
# 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": 770
# 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": 770
# 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: "%1": 3
# CHECK-GX-JSON-DAG: "%4": 769
# CHECK-GX-JSON-DAG: "%6": 1
# 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": 769
# 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": 769
# 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": "%7:sgpr_32 = PHI %6, %bb.2, %8, %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: "%1": 2
# CHECK-GX-JSON-DAG: "%4": 769
# 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": 769
# 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": 769
# CHECK-GX-JSON: }
# CHECK-GX-JSON-NEXT: },
# CHECK-GX-JSON-NEXT: {
# CHECK-GX-JSON-NEXT: "instr": "S_NOP 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: "%1": 1
# CHECK-GX-JSON-DAG: "%4": 769
# CHECK-GX-JSON-DAG: "%7": 1
# 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": 769
# 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": 769
# CHECK-GX-JSON: }
# CHECK-GX-JSON-NEXT: },
# CHECK-GX-JSON-NEXT: {
# CHECK-GX-JSON-NEXT: "instr": "S_CMP_LT_I32 %7, %1, implicit-def $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": 0
# CHECK-GX-JSON-DAG: "%4": 769
# CHECK-GX-JSON-DAG: "%7": 0
# 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": 769
# 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": 769
# CHECK-GX-JSON: }
# CHECK-GX-JSON-NEXT: },
# CHECK-GX-JSON-NEXT: {
# CHECK-GX-JSON-NEXT: "instr": "%8:sgpr_32 = S_ADD_U32 %7, 1, implicit-def $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: "%4": 769
# CHECK-GX-JSON-DAG: "%7": 0
# 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": 769
# 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": 769
# CHECK-GX-JSON: }
# CHECK-GX-JSON-NEXT: },
# CHECK-GX-JSON-NEXT: {
# CHECK-GX-JSON-NEXT: "instr": "S_CBRANCH_SCC1 %bb.3, implicit $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: "%4": 769
# 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": 769
# 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": 769
# 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: "%4": 769
# 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": 769
# 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": 769
# 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": "%5:sgpr_32 = S_ADD_U32 %4, 1, implicit-def $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: "%4": 0
# 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": 0
# 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": 0
# 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-NEXT: "furthest": {},
# CHECK-GX-JSON-NEXT: "furthest-subreg": {}
# CHECK-GX-JSON-NEXT: }
# CHECK-GX-JSON-NEXT: ],
# CHECK-GX-JSON-NEXT: "bb.5": [
# CHECK-GX-JSON-NEXT: {
# CHECK-GX-JSON-NEXT: "instr": "dead %9:sgpr_32 = S_ADD_U32 %4, %3, implicit-def $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: "%3": 0
# CHECK-GX-JSON-DAG: "%4": 0
# CHECK-GX-JSON: },
# CHECK-GX-JSON-NEXT: "furthest": {
# CHECK-GX-JSON-DAG: "register": "%3",
# 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": "%3",
# 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": 6,
# CHECK-GX-JSON-DAG: "%1": 12,
# CHECK-GX-JSON-DAG: "%2": 3,
# CHECK-GX-JSON-DAG: "%3": 514,
# CHECK-GX-JSON-DAG: "%4": 1,
# CHECK-GX-JSON-DAG: "%6": 2,
# CHECK-GX-JSON-DAG: "%7": 2,
# CHECK-GX-JSON-DAG: "%8": "<unreachable>",
# CHECK-GX-JSON-DAG: "%5": "<unreachable>",
# CHECK-GX-JSON-DAG: "%9": "<unreachable>"
# 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:sgpr_32 = S_MOV_B32 10",
# 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:sgpr_32 = S_MOV_B32 5",
# 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: },
# 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: "instr": "%2:sgpr_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": 2
# CHECK-CP-JSON-DAG: "%1": 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": "%3:sgpr_32 = S_MOV_B32 999",
# 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-DAG: "%2": 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": "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": 0
# CHECK-CP-JSON-DAG: "%1": 0
# CHECK-CP-JSON-DAG: "%2": 0
# CHECK-CP-JSON-DAG: "%3": 4
# CHECK-CP-JSON: },
# CHECK-CP-JSON-NEXT: "furthest": {
# CHECK-CP-JSON-DAG: "register": "%3",
# 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": "%3",
# 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: "bb.1": [
# CHECK-CP-JSON-NEXT: {
# CHECK-CP-JSON-NEXT: "instr": "%4:sgpr_32 = PHI %2, %bb.0, %5, %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": 0
# CHECK-CP-JSON-DAG: "%1": 4
# CHECK-CP-JSON-DAG: "%3": 385
# CHECK-CP-JSON: },
# CHECK-CP-JSON-NEXT: "furthest": {
# CHECK-CP-JSON-DAG: "register": "%3",
# CHECK-CP-JSON-DAG: "use": "{{[^"]+}}",
# CHECK-CP-JSON-DAG: "use-mi": "{{[^"]+}}",
# CHECK-CP-JSON-DAG: "distance": 385
# CHECK-CP-JSON: },
# CHECK-CP-JSON-NEXT: "furthest-subreg": {
# CHECK-CP-JSON-DAG: "register": "%3",
# CHECK-CP-JSON-DAG: "use": "{{[^"]+}}",
# CHECK-CP-JSON-DAG: "use-mi": "{{[^"]+}}",
# CHECK-CP-JSON-DAG: "distance": 385
# CHECK-CP-JSON: }
# CHECK-CP-JSON-NEXT: },
# CHECK-CP-JSON-NEXT: {
# CHECK-CP-JSON-NEXT: "instr": "S_CMP_LT_I32 %4, %0, implicit-def $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": 0
# CHECK-CP-JSON-DAG: "%1": 4
# CHECK-CP-JSON-DAG: "%3": 385
# CHECK-CP-JSON-DAG: "%4": 0
# CHECK-CP-JSON: },
# CHECK-CP-JSON-NEXT: "furthest": {
# CHECK-CP-JSON-DAG: "register": "%3",
# CHECK-CP-JSON-DAG: "use": "{{[^"]+}}",
# CHECK-CP-JSON-DAG: "use-mi": "{{[^"]+}}",
# CHECK-CP-JSON-DAG: "distance": 385
# CHECK-CP-JSON: },
# CHECK-CP-JSON-NEXT: "furthest-subreg": {
# CHECK-CP-JSON-DAG: "register": "%3",
# CHECK-CP-JSON-DAG: "use": "{{[^"]+}}",
# CHECK-CP-JSON-DAG: "use-mi": "{{[^"]+}}",
# CHECK-CP-JSON-DAG: "distance": 385
# CHECK-CP-JSON: }
# CHECK-CP-JSON-NEXT: },
# CHECK-CP-JSON-NEXT: {
# CHECK-CP-JSON-NEXT: "instr": "S_CBRANCH_SCC1 %bb.2, implicit $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": 11
# CHECK-CP-JSON-DAG: "%1": 3
# CHECK-CP-JSON-DAG: "%3": 385
# CHECK-CP-JSON-DAG: "%4": 9
# CHECK-CP-JSON: },
# CHECK-CP-JSON-NEXT: "furthest": {
# CHECK-CP-JSON-DAG: "register": "%3",
# CHECK-CP-JSON-DAG: "use": "{{[^"]+}}",
# CHECK-CP-JSON-DAG: "use-mi": "{{[^"]+}}",
# CHECK-CP-JSON-DAG: "distance": 385
# CHECK-CP-JSON: },
# CHECK-CP-JSON-NEXT: "furthest-subreg": {
# CHECK-CP-JSON-DAG: "register": "%3",
# CHECK-CP-JSON-DAG: "use": "{{[^"]+}}",
# CHECK-CP-JSON-DAG: "use-mi": "{{[^"]+}}",
# CHECK-CP-JSON-DAG: "distance": 385
# CHECK-CP-JSON: }
# CHECK-CP-JSON-NEXT: },
# CHECK-CP-JSON-NEXT: {
# CHECK-CP-JSON-NEXT: "instr": "S_BRANCH %bb.5",
# 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": 2
# CHECK-CP-JSON-DAG: "%3": 385
# CHECK-CP-JSON-DAG: "%4": 8
# CHECK-CP-JSON: },
# CHECK-CP-JSON-NEXT: "furthest": {
# CHECK-CP-JSON-DAG: "register": "%3",
# CHECK-CP-JSON-DAG: "use": "{{[^"]+}}",
# CHECK-CP-JSON-DAG: "use-mi": "{{[^"]+}}",
# CHECK-CP-JSON-DAG: "distance": 385
# CHECK-CP-JSON: },
# CHECK-CP-JSON-NEXT: "furthest-subreg": {
# CHECK-CP-JSON-DAG: "register": "%3",
# CHECK-CP-JSON-DAG: "use": "{{[^"]+}}",
# CHECK-CP-JSON-DAG: "use-mi": "{{[^"]+}}",
# CHECK-CP-JSON-DAG: "distance": 385
# 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": "%6:sgpr_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": 9
# CHECK-CP-JSON-DAG: "%1": 1
# CHECK-CP-JSON-DAG: "%3": 82817
# CHECK-CP-JSON-DAG: "%4": 7
# CHECK-CP-JSON: },
# CHECK-CP-JSON-NEXT: "furthest": {
# CHECK-CP-JSON-DAG: "register": "%3",
# CHECK-CP-JSON-DAG: "use": "{{[^"]+}}",
# CHECK-CP-JSON-DAG: "use-mi": "{{[^"]+}}",
# CHECK-CP-JSON-DAG: "distance": 82817
# CHECK-CP-JSON: },
# CHECK-CP-JSON-NEXT: "furthest-subreg": {
# CHECK-CP-JSON-DAG: "register": "%3",
# CHECK-CP-JSON-DAG: "use": "{{[^"]+}}",
# CHECK-CP-JSON-DAG: "use-mi": "{{[^"]+}}",
# CHECK-CP-JSON-DAG: "distance": 82817
# 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": 8
# CHECK-CP-JSON-DAG: "%1": 0
# CHECK-CP-JSON-DAG: "%3": 82817
# CHECK-CP-JSON-DAG: "%4": 6
# CHECK-CP-JSON-DAG: "%6": 0
# CHECK-CP-JSON: },
# CHECK-CP-JSON-NEXT: "furthest": {
# CHECK-CP-JSON-DAG: "register": "%3",
# CHECK-CP-JSON-DAG: "use": "{{[^"]+}}",
# CHECK-CP-JSON-DAG: "use-mi": "{{[^"]+}}",
# CHECK-CP-JSON-DAG: "distance": 82817
# CHECK-CP-JSON: },
# CHECK-CP-JSON-NEXT: "furthest-subreg": {
# CHECK-CP-JSON-DAG: "register": "%3",
# CHECK-CP-JSON-DAG: "use": "{{[^"]+}}",
# CHECK-CP-JSON-DAG: "use-mi": "{{[^"]+}}",
# CHECK-CP-JSON-DAG: "distance": 82817
# 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": "%7:sgpr_32 = PHI %6, %bb.2, %8, %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": 643
# CHECK-CP-JSON-DAG: "%1": 1
# CHECK-CP-JSON-DAG: "%3": 83201
# CHECK-CP-JSON-DAG: "%4": 641
# CHECK-CP-JSON: },
# CHECK-CP-JSON-NEXT: "furthest": {
# CHECK-CP-JSON-DAG: "register": "%3",
# CHECK-CP-JSON-DAG: "use": "{{[^"]+}}",
# CHECK-CP-JSON-DAG: "use-mi": "{{[^"]+}}",
# CHECK-CP-JSON-DAG: "distance": 83201
# CHECK-CP-JSON: },
# CHECK-CP-JSON-NEXT: "furthest-subreg": {
# CHECK-CP-JSON-DAG: "register": "%3",
# CHECK-CP-JSON-DAG: "use": "{{[^"]+}}",
# CHECK-CP-JSON-DAG: "use-mi": "{{[^"]+}}",
# CHECK-CP-JSON-DAG: "distance": 83201
# CHECK-CP-JSON: }
# CHECK-CP-JSON-NEXT: },
# CHECK-CP-JSON-NEXT: {
# CHECK-CP-JSON-NEXT: "instr": "S_NOP 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": 643
# CHECK-CP-JSON-DAG: "%1": 1
# CHECK-CP-JSON-DAG: "%3": 83201
# CHECK-CP-JSON-DAG: "%4": 641
# CHECK-CP-JSON-DAG: "%7": 1
# CHECK-CP-JSON: },
# CHECK-CP-JSON-NEXT: "furthest": {
# CHECK-CP-JSON-DAG: "register": "%3",
# CHECK-CP-JSON-DAG: "use": "{{[^"]+}}",
# CHECK-CP-JSON-DAG: "use-mi": "{{[^"]+}}",
# CHECK-CP-JSON-DAG: "distance": 83201
# CHECK-CP-JSON: },
# CHECK-CP-JSON-NEXT: "furthest-subreg": {
# CHECK-CP-JSON-DAG: "register": "%3",
# CHECK-CP-JSON-DAG: "use": "{{[^"]+}}",
# CHECK-CP-JSON-DAG: "use-mi": "{{[^"]+}}",
# CHECK-CP-JSON-DAG: "distance": 83201
# CHECK-CP-JSON: }
# CHECK-CP-JSON-NEXT: },
# CHECK-CP-JSON-NEXT: {
# CHECK-CP-JSON-NEXT: "instr": "S_CMP_LT_I32 %7, %1, implicit-def $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": 643
# CHECK-CP-JSON-DAG: "%1": 0
# CHECK-CP-JSON-DAG: "%3": 83201
# CHECK-CP-JSON-DAG: "%4": 641
# CHECK-CP-JSON-DAG: "%7": 0
# CHECK-CP-JSON: },
# CHECK-CP-JSON-NEXT: "furthest": {
# CHECK-CP-JSON-DAG: "register": "%3",
# CHECK-CP-JSON-DAG: "use": "{{[^"]+}}",
# CHECK-CP-JSON-DAG: "use-mi": "{{[^"]+}}",
# CHECK-CP-JSON-DAG: "distance": 83201
# CHECK-CP-JSON: },
# CHECK-CP-JSON-NEXT: "furthest-subreg": {
# CHECK-CP-JSON-DAG: "register": "%3",
# CHECK-CP-JSON-DAG: "use": "{{[^"]+}}",
# CHECK-CP-JSON-DAG: "use-mi": "{{[^"]+}}",
# CHECK-CP-JSON-DAG: "distance": 83201
# CHECK-CP-JSON: }
# CHECK-CP-JSON-NEXT: },
# CHECK-CP-JSON-NEXT: {
# CHECK-CP-JSON-NEXT: "instr": "%8:sgpr_32 = S_ADD_U32 %7, 1, implicit-def $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": 643
# CHECK-CP-JSON-DAG: "%1": 9
# CHECK-CP-JSON-DAG: "%3": 83201
# CHECK-CP-JSON-DAG: "%4": 641
# CHECK-CP-JSON-DAG: "%7": 0
# CHECK-CP-JSON: },
# CHECK-CP-JSON-NEXT: "furthest": {
# CHECK-CP-JSON-DAG: "register": "%3",
# CHECK-CP-JSON-DAG: "use": "{{[^"]+}}",
# CHECK-CP-JSON-DAG: "use-mi": "{{[^"]+}}",
# CHECK-CP-JSON-DAG: "distance": 83201
# CHECK-CP-JSON: },
# CHECK-CP-JSON-NEXT: "furthest-subreg": {
# CHECK-CP-JSON-DAG: "register": "%3",
# CHECK-CP-JSON-DAG: "use": "{{[^"]+}}",
# CHECK-CP-JSON-DAG: "use-mi": "{{[^"]+}}",
# CHECK-CP-JSON-DAG: "distance": 83201
# CHECK-CP-JSON: }
# CHECK-CP-JSON-NEXT: },
# CHECK-CP-JSON-NEXT: {
# CHECK-CP-JSON-NEXT: "instr": "S_CBRANCH_SCC1 %bb.3, implicit $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": 643
# CHECK-CP-JSON-DAG: "%1": 8
# CHECK-CP-JSON-DAG: "%3": 83201
# CHECK-CP-JSON-DAG: "%4": 641
# CHECK-CP-JSON-DAG: "%8": 1
# CHECK-CP-JSON: },
# CHECK-CP-JSON-NEXT: "furthest": {
# CHECK-CP-JSON-DAG: "register": "%3",
# CHECK-CP-JSON-DAG: "use": "{{[^"]+}}",
# CHECK-CP-JSON-DAG: "use-mi": "{{[^"]+}}",
# CHECK-CP-JSON-DAG: "distance": 83201
# CHECK-CP-JSON: },
# CHECK-CP-JSON-NEXT: "furthest-subreg": {
# CHECK-CP-JSON-DAG: "register": "%3",
# CHECK-CP-JSON-DAG: "use": "{{[^"]+}}",
# CHECK-CP-JSON-DAG: "use-mi": "{{[^"]+}}",
# CHECK-CP-JSON-DAG: "distance": 83201
# 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": 643
# CHECK-CP-JSON-DAG: "%1": 7
# CHECK-CP-JSON-DAG: "%3": 83201
# CHECK-CP-JSON-DAG: "%4": 641
# CHECK-CP-JSON-DAG: "%8": 0
# CHECK-CP-JSON: },
# CHECK-CP-JSON-NEXT: "furthest": {
# CHECK-CP-JSON-DAG: "register": "%3",
# CHECK-CP-JSON-DAG: "use": "{{[^"]+}}",
# CHECK-CP-JSON-DAG: "use-mi": "{{[^"]+}}",
# CHECK-CP-JSON-DAG: "distance": 83201
# CHECK-CP-JSON: },
# CHECK-CP-JSON-NEXT: "furthest-subreg": {
# CHECK-CP-JSON-DAG: "register": "%3",
# CHECK-CP-JSON-DAG: "use": "{{[^"]+}}",
# CHECK-CP-JSON-DAG: "use-mi": "{{[^"]+}}",
# CHECK-CP-JSON-DAG: "distance": 83201
# 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": "%5:sgpr_32 = S_ADD_U32 %4, 1, implicit-def $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": 6
# CHECK-CP-JSON-DAG: "%3": 82817
# CHECK-CP-JSON-DAG: "%4": 0
# CHECK-CP-JSON: },
# CHECK-CP-JSON-NEXT: "furthest": {
# CHECK-CP-JSON-DAG: "register": "%3",
# CHECK-CP-JSON-DAG: "use": "{{[^"]+}}",
# CHECK-CP-JSON-DAG: "use-mi": "{{[^"]+}}",
# CHECK-CP-JSON-DAG: "distance": 82817
# CHECK-CP-JSON: },
# CHECK-CP-JSON-NEXT: "furthest-subreg": {
# CHECK-CP-JSON-DAG: "register": "%3",
# CHECK-CP-JSON-DAG: "use": "{{[^"]+}}",
# CHECK-CP-JSON-DAG: "use-mi": "{{[^"]+}}",
# CHECK-CP-JSON-DAG: "distance": 82817
# 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": 1
# CHECK-CP-JSON-DAG: "%1": 5
# CHECK-CP-JSON-DAG: "%3": 82817
# CHECK-CP-JSON-DAG: "%5": 0
# CHECK-CP-JSON: },
# CHECK-CP-JSON-NEXT: "furthest": {
# CHECK-CP-JSON-DAG: "register": "%3",
# CHECK-CP-JSON-DAG: "use": "{{[^"]+}}",
# CHECK-CP-JSON-DAG: "use-mi": "{{[^"]+}}",
# CHECK-CP-JSON-DAG: "distance": 82817
# CHECK-CP-JSON: },
# CHECK-CP-JSON-NEXT: "furthest-subreg": {
# CHECK-CP-JSON-DAG: "register": "%3",
# CHECK-CP-JSON-DAG: "use": "{{[^"]+}}",
# CHECK-CP-JSON-DAG: "use-mi": "{{[^"]+}}",
# CHECK-CP-JSON-DAG: "distance": 82817
# CHECK-CP-JSON: }
# CHECK-CP-JSON-NEXT: }
# CHECK-CP-JSON-NEXT: ],
# CHECK-CP-JSON-NEXT: "bb.5": [
# CHECK-CP-JSON-NEXT: {
# CHECK-CP-JSON-NEXT: "instr": "dead %9:sgpr_32 = S_ADD_U32 %4, %3, implicit-def $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: "%3": 0
# CHECK-CP-JSON-DAG: "%4": 0
# CHECK-CP-JSON: },
# CHECK-CP-JSON-NEXT: "furthest": {
# CHECK-CP-JSON-DAG: "register": "%3",
# 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": "%3",
# 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": 4,
# CHECK-CP-JSON-DAG: "%1": 3,
# CHECK-CP-JSON-DAG: "%2": 2,
# CHECK-CP-JSON-DAG: "%3": 5,
# CHECK-CP-JSON-DAG: "%4": 0,
# CHECK-CP-JSON-DAG: "%6": 1,
# CHECK-CP-JSON-DAG: "%7": 1,
# CHECK-CP-JSON-DAG: "%8": 2,
# CHECK-CP-JSON-DAG: "%5": 1,
# CHECK-CP-JSON-DAG: "%9": "<unreachable>"
# 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: }