Files
derek.holloway 7502bf64a4
CodeQL / Analyze (actions) (push) Canceled after 0s
CodeQL / Analyze (python) (push) Canceled after 0s
pre-commit / pre-commit (push) Canceled after 0s
Multi-Arch CI / setup (push) Canceled after 0s
Publish build_manylinux_x86_64 images / publish_build_manylinux_x86_64 (push) Canceled after 0s
Setup (Multi-Arch) / setup (push) Canceled after 0s
Multi-Arch CI / Linux::${{ fromJSON(needs.setup.outputs.linux_build_config || '{}').build_variant_label || 'skip' }} (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Publish no_rocm_image_ubi10 image / publish_no_rocm_image_ubi10 (push) Canceled after 0s
Multi-Arch CI / Windows::${{ fromJSON(needs.setup.outputs.windows_build_config || '{}').build_variant_label || 'skip' }} (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Multi-Arch CI / Manifest Diff (push) Canceled after 0s
TheRock Manifest Diff Report / Generate Manifest Diff Report (push) Canceled after 0s
Multi-Arch CI / CI Summary (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04 (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04_ocl_rt images / publish_no_rocm_image_ubuntu24_04_ocl_rt (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04_rocgdb (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04_rocgdb images / publish_no_rocm_image_ubuntu24_04_rocgdb (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04_ocl_rt (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Unit Tests / Unit Tests :: ubuntu-24.04 (push) Canceled after 0s
Unit Tests / Unit Tests :: windows-2022 (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04_media (push) Canceled after 0s
Unit Tests / Unit Tests Summary (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04_openmpi (push) Canceled after 0s
Flatten subprojects into a single base monorepo
2026-09-02 16:34:47 -07:00

1063 lines
47 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
---
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: }