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
1226 lines
66 KiB
YAML
1226 lines
66 KiB
YAML
# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py
|
|
# RUN: llc -mtriple=amdgcn -mcpu=gfx950 -verify-machineinstrs -run-pass=post-RA-hazard-rec %s -o - | FileCheck -check-prefix=GCN %s
|
|
|
|
---
|
|
name: vcmpx_vopc_write_exec_permlane16_swap_vop1
|
|
body: |
|
|
bb.0:
|
|
liveins: $vgpr0, $vgpr1
|
|
; GCN-LABEL: name: vcmpx_vopc_write_exec_permlane16_swap_vop1
|
|
; GCN: liveins: $vgpr0, $vgpr1
|
|
; GCN-NEXT: {{ $}}
|
|
; GCN-NEXT: V_CMPX_EQ_I32_e32 $vgpr0, $vgpr1, implicit-def $exec, implicit-def $vcc, implicit $exec
|
|
; GCN-NEXT: S_NOP 3
|
|
; GCN-NEXT: renamable $vgpr0, renamable $vgpr1 = V_PERMLANE16_SWAP_B32_e32 killed $vgpr0, killed $vgpr1, implicit $exec
|
|
V_CMPX_EQ_I32_e32 $vgpr0, $vgpr1, implicit-def $exec, implicit-def $vcc, implicit $exec
|
|
renamable $vgpr0, renamable $vgpr1 = V_PERMLANE16_SWAP_B32_e32 killed $vgpr0, killed $vgpr1, implicit $exec
|
|
...
|
|
|
|
---
|
|
name: vcmpx_vop3_write_exec_permlane16_swap_vop1
|
|
body: |
|
|
bb.0:
|
|
liveins: $vgpr0, $vgpr1
|
|
; GCN-LABEL: name: vcmpx_vop3_write_exec_permlane16_swap_vop1
|
|
; GCN: liveins: $vgpr0, $vgpr1
|
|
; GCN-NEXT: {{ $}}
|
|
; GCN-NEXT: $exec = V_CMPX_EQ_I32_e64 $vgpr0, $vgpr1, implicit $exec
|
|
; GCN-NEXT: S_NOP 3
|
|
; GCN-NEXT: renamable $vgpr0, renamable $vgpr1 = V_PERMLANE16_SWAP_B32_e32 killed $vgpr0, killed $vgpr1, implicit $exec
|
|
$exec = V_CMPX_EQ_I32_e64 $vgpr0, $vgpr1, implicit $exec
|
|
renamable $vgpr0, renamable $vgpr1 = V_PERMLANE16_SWAP_B32_e32 killed $vgpr0, killed $vgpr1, implicit $exec
|
|
...
|
|
|
|
---
|
|
name: vcmpx_vopc_write_exec_permlane16_swap_vop3
|
|
body: |
|
|
bb.0:
|
|
liveins: $vgpr0, $vgpr1
|
|
; GCN-LABEL: name: vcmpx_vopc_write_exec_permlane16_swap_vop3
|
|
; GCN: liveins: $vgpr0, $vgpr1
|
|
; GCN-NEXT: {{ $}}
|
|
; GCN-NEXT: V_CMPX_EQ_I32_e32 $vgpr0, $vgpr1, implicit-def $exec, implicit-def $vcc, implicit $exec
|
|
; GCN-NEXT: S_NOP 3
|
|
; GCN-NEXT: renamable $vgpr0, renamable $vgpr1 = V_PERMLANE16_SWAP_B32_e64 killed $vgpr0, killed $vgpr1, -1, 1, implicit $exec
|
|
V_CMPX_EQ_I32_e32 $vgpr0, $vgpr1, implicit-def $exec, implicit-def $vcc, implicit $exec
|
|
renamable $vgpr0, renamable $vgpr1 = V_PERMLANE16_SWAP_B32_e64 killed $vgpr0, killed $vgpr1, -1, 1, implicit $exec
|
|
...
|
|
|
|
---
|
|
name: vcmpx_vop3_write_exec_permlane16_swap_vop3
|
|
body: |
|
|
bb.0:
|
|
liveins: $vgpr0, $vgpr1
|
|
; GCN-LABEL: name: vcmpx_vop3_write_exec_permlane16_swap_vop3
|
|
; GCN: liveins: $vgpr0, $vgpr1
|
|
; GCN-NEXT: {{ $}}
|
|
; GCN-NEXT: $exec = V_CMPX_EQ_I32_e64 $vgpr0, $vgpr1, implicit $exec
|
|
; GCN-NEXT: S_NOP 3
|
|
; GCN-NEXT: renamable $vgpr0, renamable $vgpr1 = V_PERMLANE16_SWAP_B32_e64 killed $vgpr0, killed $vgpr1, -1, 1, implicit $exec
|
|
$exec = V_CMPX_EQ_I32_e64 $vgpr0, $vgpr1, implicit $exec
|
|
renamable $vgpr0, renamable $vgpr1 = V_PERMLANE16_SWAP_B32_e64 killed $vgpr0, killed $vgpr1, -1, 1, implicit $exec
|
|
...
|
|
|
|
---
|
|
name: vcmpx_vopc_write_exec_permlane32_swap_vop1
|
|
body: |
|
|
bb.0:
|
|
liveins: $vgpr0, $vgpr1
|
|
; GCN-LABEL: name: vcmpx_vopc_write_exec_permlane32_swap_vop1
|
|
; GCN: liveins: $vgpr0, $vgpr1
|
|
; GCN-NEXT: {{ $}}
|
|
; GCN-NEXT: V_CMPX_EQ_I32_e32 $vgpr0, $vgpr1, implicit-def $exec, implicit-def $vcc, implicit $exec
|
|
; GCN-NEXT: S_NOP 3
|
|
; GCN-NEXT: renamable $vgpr0, renamable $vgpr1 = V_PERMLANE32_SWAP_B32_e32 killed $vgpr0, killed $vgpr1, implicit $exec
|
|
V_CMPX_EQ_I32_e32 $vgpr0, $vgpr1, implicit-def $exec, implicit-def $vcc, implicit $exec
|
|
renamable $vgpr0, renamable $vgpr1 = V_PERMLANE32_SWAP_B32_e32 killed $vgpr0, killed $vgpr1, implicit $exec
|
|
...
|
|
|
|
---
|
|
name: vcmpx_vop3_write_exec_permlane32_swap_vop1
|
|
body: |
|
|
bb.0:
|
|
liveins: $vgpr0, $vgpr1
|
|
; GCN-LABEL: name: vcmpx_vop3_write_exec_permlane32_swap_vop1
|
|
; GCN: liveins: $vgpr0, $vgpr1
|
|
; GCN-NEXT: {{ $}}
|
|
; GCN-NEXT: $exec = V_CMPX_EQ_I32_e64 $vgpr0, $vgpr1, implicit $exec
|
|
; GCN-NEXT: S_NOP 3
|
|
; GCN-NEXT: renamable $vgpr0, renamable $vgpr1 = V_PERMLANE32_SWAP_B32_e32 killed $vgpr0, killed $vgpr1, implicit $exec
|
|
$exec = V_CMPX_EQ_I32_e64 $vgpr0, $vgpr1, implicit $exec
|
|
renamable $vgpr0, renamable $vgpr1 = V_PERMLANE32_SWAP_B32_e32 killed $vgpr0, killed $vgpr1, implicit $exec
|
|
...
|
|
|
|
---
|
|
name: vcmpx_vopc_write_exec_permlane32_swap_vop3
|
|
body: |
|
|
bb.0:
|
|
liveins: $vgpr0, $vgpr1
|
|
; GCN-LABEL: name: vcmpx_vopc_write_exec_permlane32_swap_vop3
|
|
; GCN: liveins: $vgpr0, $vgpr1
|
|
; GCN-NEXT: {{ $}}
|
|
; GCN-NEXT: V_CMPX_EQ_I32_e32 $vgpr0, $vgpr1, implicit-def $exec, implicit-def $vcc, implicit $exec
|
|
; GCN-NEXT: S_NOP 3
|
|
; GCN-NEXT: renamable $vgpr0, renamable $vgpr1 = V_PERMLANE32_SWAP_B32_e64 killed $vgpr0, killed $vgpr1, -1, 1, implicit $exec
|
|
V_CMPX_EQ_I32_e32 $vgpr0, $vgpr1, implicit-def $exec, implicit-def $vcc, implicit $exec
|
|
renamable $vgpr0, renamable $vgpr1 = V_PERMLANE32_SWAP_B32_e64 killed $vgpr0, killed $vgpr1, -1, 1, implicit $exec
|
|
...
|
|
|
|
---
|
|
name: vcmpx_vop3_write_exec_permlane32_swap_vop3
|
|
body: |
|
|
bb.0:
|
|
liveins: $vgpr0, $vgpr1
|
|
; GCN-LABEL: name: vcmpx_vop3_write_exec_permlane32_swap_vop3
|
|
; GCN: liveins: $vgpr0, $vgpr1
|
|
; GCN-NEXT: {{ $}}
|
|
; GCN-NEXT: $exec = V_CMPX_EQ_I32_e64 $vgpr0, $vgpr1, implicit $exec
|
|
; GCN-NEXT: S_NOP 3
|
|
; GCN-NEXT: renamable $vgpr0, renamable $vgpr1 = V_PERMLANE32_SWAP_B32_e64 killed $vgpr0, killed $vgpr1, -1, 1, implicit $exec
|
|
$exec = V_CMPX_EQ_I32_e64 $vgpr0, $vgpr1, implicit $exec
|
|
renamable $vgpr0, renamable $vgpr1 = V_PERMLANE32_SWAP_B32_e64 killed $vgpr0, killed $vgpr1, -1, 1, implicit $exec
|
|
...
|
|
|
|
---
|
|
name: vcmpx_vopc_write_exec_permlane16_swap_vop1__nowait
|
|
body: |
|
|
bb.0:
|
|
liveins: $vgpr0, $vgpr1
|
|
; GCN-LABEL: name: vcmpx_vopc_write_exec_permlane16_swap_vop1__nowait
|
|
; GCN: liveins: $vgpr0, $vgpr1
|
|
; GCN-NEXT: {{ $}}
|
|
; GCN-NEXT: V_CMPX_EQ_I32_e32 $vgpr0, $vgpr1, implicit-def $exec, implicit-def $vcc, implicit $exec
|
|
; GCN-NEXT: $vgpr2 = V_MOV_B32_e32 0, implicit $exec
|
|
; GCN-NEXT: $vgpr3 = V_MOV_B32_e32 0, implicit $exec
|
|
; GCN-NEXT: $vgpr4 = V_MOV_B32_e32 0, implicit $exec
|
|
; GCN-NEXT: $vgpr5 = V_MOV_B32_e32 0, implicit $exec
|
|
; GCN-NEXT: renamable $vgpr0, renamable $vgpr1 = V_PERMLANE16_SWAP_B32_e32 killed $vgpr0, killed $vgpr1, implicit $exec
|
|
V_CMPX_EQ_I32_e32 $vgpr0, $vgpr1, implicit-def $exec, implicit-def $vcc, implicit $exec
|
|
$vgpr2 = V_MOV_B32_e32 0, implicit $exec
|
|
$vgpr3 = V_MOV_B32_e32 0, implicit $exec
|
|
$vgpr4 = V_MOV_B32_e32 0, implicit $exec
|
|
$vgpr5 = V_MOV_B32_e32 0, implicit $exec
|
|
renamable $vgpr0, renamable $vgpr1 = V_PERMLANE16_SWAP_B32_e32 killed $vgpr0, killed $vgpr1, implicit $exec
|
|
...
|
|
|
|
---
|
|
name: vcmpx_vopc_write_exec_permlane16_swap_vop1__wait1
|
|
body: |
|
|
bb.0:
|
|
liveins: $vgpr0, $vgpr1
|
|
; GCN-LABEL: name: vcmpx_vopc_write_exec_permlane16_swap_vop1__wait1
|
|
; GCN: liveins: $vgpr0, $vgpr1
|
|
; GCN-NEXT: {{ $}}
|
|
; GCN-NEXT: V_CMPX_EQ_I32_e32 $vgpr0, $vgpr1, implicit-def $exec, implicit-def $vcc, implicit $exec
|
|
; GCN-NEXT: $vgpr2 = V_MOV_B32_e32 0, implicit $exec
|
|
; GCN-NEXT: $vgpr3 = V_MOV_B32_e32 0, implicit $exec
|
|
; GCN-NEXT: $vgpr4 = V_MOV_B32_e32 0, implicit $exec
|
|
; GCN-NEXT: S_NOP 0
|
|
; GCN-NEXT: renamable $vgpr0, renamable $vgpr1 = V_PERMLANE16_SWAP_B32_e32 killed $vgpr0, killed $vgpr1, implicit $exec
|
|
V_CMPX_EQ_I32_e32 $vgpr0, $vgpr1, implicit-def $exec, implicit-def $vcc, implicit $exec
|
|
$vgpr2 = V_MOV_B32_e32 0, implicit $exec
|
|
$vgpr3 = V_MOV_B32_e32 0, implicit $exec
|
|
$vgpr4 = V_MOV_B32_e32 0, implicit $exec
|
|
renamable $vgpr0, renamable $vgpr1 = V_PERMLANE16_SWAP_B32_e32 killed $vgpr0, killed $vgpr1, implicit $exec
|
|
...
|
|
|
|
---
|
|
name: valu_write_vdst_read_permlane16_swap_0
|
|
body: |
|
|
bb.0:
|
|
liveins: $vgpr1
|
|
; GCN-LABEL: name: valu_write_vdst_read_permlane16_swap_0
|
|
; GCN: liveins: $vgpr1
|
|
; GCN-NEXT: {{ $}}
|
|
; GCN-NEXT: $vgpr0 = V_MOV_B32_e32 0, implicit $exec
|
|
; GCN-NEXT: S_NOP 1
|
|
; GCN-NEXT: renamable $vgpr0, renamable $vgpr1 = V_PERMLANE16_SWAP_B32_e64 killed $vgpr0, killed $vgpr1, -1, 1, implicit $exec
|
|
$vgpr0 = V_MOV_B32_e32 0, implicit $exec
|
|
renamable $vgpr0, renamable $vgpr1 = V_PERMLANE16_SWAP_B32_e64 killed $vgpr0, killed $vgpr1, -1, 1, implicit $exec
|
|
...
|
|
|
|
---
|
|
name: valu_write_vdst_read_permlane16_swap_1
|
|
body: |
|
|
bb.0:
|
|
liveins: $vgpr0
|
|
; GCN-LABEL: name: valu_write_vdst_read_permlane16_swap_1
|
|
; GCN: liveins: $vgpr0
|
|
; GCN-NEXT: {{ $}}
|
|
; GCN-NEXT: $vgpr1 = V_MOV_B32_e32 0, implicit $exec
|
|
; GCN-NEXT: S_NOP 1
|
|
; GCN-NEXT: renamable $vgpr0, renamable $vgpr1 = V_PERMLANE16_SWAP_B32_e64 killed $vgpr0, killed $vgpr1, -1, 1, implicit $exec
|
|
$vgpr1 = V_MOV_B32_e32 0, implicit $exec
|
|
renamable $vgpr0, renamable $vgpr1 = V_PERMLANE16_SWAP_B32_e64 killed $vgpr0, killed $vgpr1, -1, 1, implicit $exec
|
|
...
|
|
|
|
---
|
|
name: valu_write_vdst_read_permlane32_swap_0
|
|
body: |
|
|
bb.0:
|
|
liveins: $vgpr1
|
|
; GCN-LABEL: name: valu_write_vdst_read_permlane32_swap_0
|
|
; GCN: liveins: $vgpr1
|
|
; GCN-NEXT: {{ $}}
|
|
; GCN-NEXT: $vgpr0 = V_MOV_B32_e32 0, implicit $exec
|
|
; GCN-NEXT: S_NOP 1
|
|
; GCN-NEXT: renamable $vgpr0, renamable $vgpr1 = V_PERMLANE32_SWAP_B32_e64 killed $vgpr0, killed $vgpr1, -1, 1, implicit $exec
|
|
$vgpr0 = V_MOV_B32_e32 0, implicit $exec
|
|
renamable $vgpr0, renamable $vgpr1 = V_PERMLANE32_SWAP_B32_e64 killed $vgpr0, killed $vgpr1, -1, 1, implicit $exec
|
|
...
|
|
|
|
---
|
|
name: valu_write_vdst_read_permlane32_swap_1
|
|
body: |
|
|
bb.0:
|
|
liveins: $vgpr0
|
|
; GCN-LABEL: name: valu_write_vdst_read_permlane32_swap_1
|
|
; GCN: liveins: $vgpr0
|
|
; GCN-NEXT: {{ $}}
|
|
; GCN-NEXT: $vgpr1 = V_MOV_B32_e32 0, implicit $exec
|
|
; GCN-NEXT: S_NOP 1
|
|
; GCN-NEXT: renamable $vgpr0, renamable $vgpr1 = V_PERMLANE32_SWAP_B32_e64 killed $vgpr0, killed $vgpr1, -1, 1, implicit $exec
|
|
$vgpr1 = V_MOV_B32_e32 0, implicit $exec
|
|
renamable $vgpr0, renamable $vgpr1 = V_PERMLANE32_SWAP_B32_e64 killed $vgpr0, killed $vgpr1, -1, 1, implicit $exec
|
|
...
|
|
|
|
---
|
|
# No hazard, write of other register
|
|
name: valu_write_vdst_read_permlane16_swap_0_otherreg
|
|
body: |
|
|
bb.0:
|
|
liveins: $vgpr1
|
|
; GCN-LABEL: name: valu_write_vdst_read_permlane16_swap_0_otherreg
|
|
; GCN: liveins: $vgpr1
|
|
; GCN-NEXT: {{ $}}
|
|
; GCN-NEXT: $vgpr2 = V_MOV_B32_e32 0, implicit $exec
|
|
; GCN-NEXT: renamable $vgpr0, renamable $vgpr1 = V_PERMLANE16_SWAP_B32_e64 killed $vgpr0, killed $vgpr1, -1, 1, implicit $exec
|
|
$vgpr2 = V_MOV_B32_e32 0, implicit $exec
|
|
renamable $vgpr0, renamable $vgpr1 = V_PERMLANE16_SWAP_B32_e64 killed $vgpr0, killed $vgpr1, -1, 1, implicit $exec
|
|
...
|
|
|
|
---
|
|
# Both permlane hazards at once.
|
|
name: valu_writes_vdst__vcmpx_write_exec__permlane32_swap
|
|
body: |
|
|
bb.0:
|
|
liveins: $vgpr0, $vgpr2, $vgpr3
|
|
; GCN-LABEL: name: valu_writes_vdst__vcmpx_write_exec__permlane32_swap
|
|
; GCN: liveins: $vgpr0, $vgpr2, $vgpr3
|
|
; GCN-NEXT: {{ $}}
|
|
; GCN-NEXT: $vgpr1 = V_MOV_B32_e32 0, implicit $exec
|
|
; GCN-NEXT: $exec = V_CMPX_EQ_I32_e64 $vgpr2, $vgpr3, implicit $exec
|
|
; GCN-NEXT: S_NOP 3
|
|
; GCN-NEXT: renamable $vgpr0, renamable $vgpr1 = V_PERMLANE32_SWAP_B32_e32 killed $vgpr0, killed $vgpr1, implicit $exec
|
|
$vgpr1 = V_MOV_B32_e32 0, implicit $exec
|
|
$exec = V_CMPX_EQ_I32_e64 $vgpr2, $vgpr3, implicit $exec
|
|
renamable $vgpr0, renamable $vgpr1 = V_PERMLANE32_SWAP_B32_e32 killed $vgpr0, killed $vgpr1, implicit $exec
|
|
...
|
|
|
|
---
|
|
name: vcmpx_write_exec__valu_writes_vdst___permlane32_swap
|
|
body: |
|
|
bb.0:
|
|
liveins: $vgpr0, $vgpr2, $vgpr3
|
|
; GCN-LABEL: name: vcmpx_write_exec__valu_writes_vdst___permlane32_swap
|
|
; GCN: liveins: $vgpr0, $vgpr2, $vgpr3
|
|
; GCN-NEXT: {{ $}}
|
|
; GCN-NEXT: $exec = V_CMPX_EQ_I32_e64 $vgpr2, $vgpr3, implicit $exec
|
|
; GCN-NEXT: $vgpr1 = V_MOV_B32_e32 0, implicit $exec
|
|
; GCN-NEXT: S_NOP 2
|
|
; GCN-NEXT: renamable $vgpr0, renamable $vgpr1 = V_PERMLANE32_SWAP_B32_e32 killed $vgpr0, killed $vgpr1, implicit $exec
|
|
$exec = V_CMPX_EQ_I32_e64 $vgpr2, $vgpr3, implicit $exec
|
|
$vgpr1 = V_MOV_B32_e32 0, implicit $exec
|
|
renamable $vgpr0, renamable $vgpr1 = V_PERMLANE32_SWAP_B32_e32 killed $vgpr0, killed $vgpr1, implicit $exec
|
|
...
|
|
|
|
---
|
|
name: vcmpx_write_exec__valu_writes_vdstx2___permlane32_swap
|
|
body: |
|
|
bb.0:
|
|
liveins: $vgpr0, $vgpr2, $vgpr3
|
|
; GCN-LABEL: name: vcmpx_write_exec__valu_writes_vdstx2___permlane32_swap
|
|
; GCN: liveins: $vgpr0, $vgpr2, $vgpr3
|
|
; GCN-NEXT: {{ $}}
|
|
; GCN-NEXT: $exec = V_CMPX_EQ_I32_e64 $vgpr2, $vgpr3, implicit $exec
|
|
; GCN-NEXT: $vgpr1 = V_MOV_B32_e32 0, implicit $exec
|
|
; GCN-NEXT: $vgpr0 = V_MOV_B32_e32 0, implicit $exec
|
|
; GCN-NEXT: S_NOP 1
|
|
; GCN-NEXT: renamable $vgpr0, renamable $vgpr1 = V_PERMLANE32_SWAP_B32_e32 killed $vgpr0, killed $vgpr1, implicit $exec
|
|
$exec = V_CMPX_EQ_I32_e64 $vgpr2, $vgpr3, implicit $exec
|
|
$vgpr1 = V_MOV_B32_e32 0, implicit $exec
|
|
$vgpr0 = V_MOV_B32_e32 0, implicit $exec
|
|
renamable $vgpr0, renamable $vgpr1 = V_PERMLANE32_SWAP_B32_e32 killed $vgpr0, killed $vgpr1, implicit $exec
|
|
...
|
|
|
|
|
|
---
|
|
name: test_cvt_scalef32_sr_fp8_bf16_hazard
|
|
body: |
|
|
bb.0:
|
|
liveins: $vgpr0, $vgpr1, $vgpr2, $vgpr3, $vgpr4
|
|
; GCN-LABEL: name: test_cvt_scalef32_sr_fp8_bf16_hazard
|
|
; GCN: liveins: $vgpr0, $vgpr1, $vgpr2, $vgpr3, $vgpr4
|
|
; GCN-NEXT: {{ $}}
|
|
; GCN-NEXT: renamable $vgpr5 = GLOBAL_LOAD_DWORD renamable $vgpr0_vgpr1, 0, 0, implicit $exec
|
|
; GCN-NEXT: S_WAITCNT .Vmcnt_0
|
|
; GCN-NEXT: renamable $vgpr5 = V_CVT_SCALEF32_SR_FP8_BF16_e64 8, killed $vgpr2, 0, killed $vgpr3, 4, killed $vgpr4, killed $vgpr5, 0, implicit $mode, implicit $exec
|
|
; GCN-NEXT: GLOBAL_STORE_DWORD killed renamable $vgpr0_vgpr1, killed renamable $vgpr5, 0, 0, implicit $exec
|
|
; GCN-NEXT: S_ENDPGM 0
|
|
renamable $vgpr5 = GLOBAL_LOAD_DWORD renamable $vgpr0_vgpr1, 0, 0, implicit $exec
|
|
S_WAITCNT 3952
|
|
renamable $vgpr5 = V_CVT_SCALEF32_SR_FP8_BF16_e64 8, killed $vgpr2, 0, killed $vgpr3, 4, killed $vgpr4, killed $vgpr5, 0, implicit $mode, implicit $exec
|
|
GLOBAL_STORE_DWORD killed renamable $vgpr0_vgpr1, killed renamable $vgpr5, 0, 0, implicit $exec
|
|
S_ENDPGM 0
|
|
...
|
|
|
|
---
|
|
name: test_cvt_scalef32_sr_fp8_f16_hazard
|
|
body: |
|
|
bb.0:
|
|
liveins: $vgpr0, $vgpr1, $vgpr2, $vgpr3, $vgpr4
|
|
; GCN-LABEL: name: test_cvt_scalef32_sr_fp8_f16_hazard
|
|
; GCN: liveins: $vgpr0, $vgpr1, $vgpr2, $vgpr3, $vgpr4
|
|
; GCN-NEXT: {{ $}}
|
|
; GCN-NEXT: renamable $vgpr5 = GLOBAL_LOAD_DWORD renamable $vgpr0_vgpr1, 0, 0, implicit $exec
|
|
; GCN-NEXT: S_WAITCNT .Vmcnt_0
|
|
; GCN-NEXT: renamable $vgpr5 = V_CVT_SCALEF32_SR_FP8_F16_e64 8, killed $vgpr2, 0, killed $vgpr3, 4, killed $vgpr4, killed $vgpr5, 0, implicit $mode, implicit $exec
|
|
; GCN-NEXT: GLOBAL_STORE_DWORD killed renamable $vgpr0_vgpr1, killed renamable $vgpr5, 0, 0, implicit $exec
|
|
; GCN-NEXT: S_ENDPGM 0
|
|
renamable $vgpr5 = GLOBAL_LOAD_DWORD renamable $vgpr0_vgpr1, 0, 0, implicit $exec
|
|
S_WAITCNT 3952
|
|
renamable $vgpr5 = V_CVT_SCALEF32_SR_FP8_F16_e64 8, killed $vgpr2, 0, killed $vgpr3, 4, killed $vgpr4, killed $vgpr5, 0, implicit $mode, implicit $exec
|
|
GLOBAL_STORE_DWORD killed renamable $vgpr0_vgpr1, killed renamable $vgpr5, 0, 0, implicit $exec
|
|
S_ENDPGM 0
|
|
...
|
|
|
|
---
|
|
name: test_cvt_scalef32_sr_fp8_f32_hazard
|
|
body: |
|
|
bb.0:
|
|
liveins: $vgpr0, $vgpr1, $vgpr2, $vgpr3, $vgpr4
|
|
; GCN-LABEL: name: test_cvt_scalef32_sr_fp8_f32_hazard
|
|
; GCN: liveins: $vgpr0, $vgpr1, $vgpr2, $vgpr3, $vgpr4
|
|
; GCN-NEXT: {{ $}}
|
|
; GCN-NEXT: renamable $vgpr5 = GLOBAL_LOAD_DWORD renamable $vgpr0_vgpr1, 0, 0, implicit $exec
|
|
; GCN-NEXT: S_WAITCNT .Vmcnt_0
|
|
; GCN-NEXT: renamable $vgpr5 = V_CVT_SCALEF32_SR_FP8_F32_e64 8, killed $vgpr2, 0, killed $vgpr3, 4, killed $vgpr4, killed $vgpr5, 0, implicit $mode, implicit $exec
|
|
; GCN-NEXT: S_NOP 0
|
|
; GCN-NEXT: renamable $vgpr2 = V_ADD_U32_e32 4, killed $vgpr5, implicit $exec
|
|
; GCN-NEXT: GLOBAL_STORE_DWORD killed renamable $vgpr0_vgpr1, killed renamable $vgpr2, 0, 0, implicit $exec
|
|
; GCN-NEXT: S_ENDPGM 0
|
|
renamable $vgpr5 = GLOBAL_LOAD_DWORD renamable $vgpr0_vgpr1, 0, 0, implicit $exec
|
|
S_WAITCNT 3952
|
|
renamable $vgpr5 = V_CVT_SCALEF32_SR_FP8_F32_e64 8, killed $vgpr2, 0, killed $vgpr3, 4, killed $vgpr4, killed $vgpr5, 0, implicit $mode, implicit $exec
|
|
renamable $vgpr2 = V_ADD_U32_e32 4, killed $vgpr5, implicit $exec
|
|
GLOBAL_STORE_DWORD killed renamable $vgpr0_vgpr1, killed renamable $vgpr2, 0, 0, implicit $exec
|
|
S_ENDPGM 0
|
|
...
|
|
|
|
---
|
|
name: test_cvt_scalef32_pk_fp8_f32_hazard
|
|
body: |
|
|
bb.0:
|
|
liveins: $vgpr0, $vgpr1, $vgpr2, $vgpr3
|
|
; GCN-LABEL: name: test_cvt_scalef32_pk_fp8_f32_hazard
|
|
; GCN: liveins: $vgpr0, $vgpr1, $vgpr2, $vgpr3
|
|
; GCN-NEXT: {{ $}}
|
|
; GCN-NEXT: S_WAITCNT .Vmcnt_0_Expcnt_0_Lgkmcnt_0
|
|
; GCN-NEXT: renamable $vgpr1 = V_AND_B32_e32 2147483647, killed $vgpr1, implicit $exec
|
|
; GCN-NEXT: renamable $vgpr2 = V_XOR_B32_e32 -2147483648, killed $vgpr2, implicit $exec
|
|
; GCN-NEXT: renamable $vgpr0 = V_CVT_SCALEF32_PK_FP8_F32_e64 8, killed $vgpr1, 0, killed $vgpr2, 0, killed $vgpr3, killed $vgpr0, 0, implicit $mode, implicit $exec
|
|
; GCN-NEXT: S_NOP 0
|
|
; GCN-NEXT: renamable $vgpr0 = V_PK_ADD_U16 8, killed $vgpr0, 8, $vgpr0, 0, 0, 0, 0, 0, implicit $exec
|
|
; GCN-NEXT: S_SETPC_B64_return undef $sgpr30_sgpr31, implicit killed $vgpr0
|
|
S_WAITCNT 0
|
|
renamable $vgpr1 = V_AND_B32_e32 2147483647, killed $vgpr1, implicit $exec
|
|
renamable $vgpr2 = V_XOR_B32_e32 -2147483648, killed $vgpr2, implicit $exec
|
|
renamable $vgpr0 = V_CVT_SCALEF32_PK_FP8_F32_e64 8, killed $vgpr1, 0, killed $vgpr2, 0, killed $vgpr3, killed $vgpr0, 0, implicit $mode, implicit $exec
|
|
renamable $vgpr0 = V_PK_ADD_U16 8, killed $vgpr0, 8, $vgpr0, 0, 0, 0, 0, 0, implicit $exec
|
|
S_SETPC_B64_return undef $sgpr30_sgpr31, implicit killed $vgpr0
|
|
...
|
|
|
|
---
|
|
name: test_cvt_scalef32_pk_fp8_f16_hazard
|
|
body: |
|
|
bb.0:
|
|
liveins: $vgpr0, $vgpr1, $vgpr2
|
|
; GCN-LABEL: name: test_cvt_scalef32_pk_fp8_f16_hazard
|
|
; GCN: liveins: $vgpr0, $vgpr1, $vgpr2
|
|
; GCN-NEXT: {{ $}}
|
|
; GCN-NEXT: S_WAITCNT .Vmcnt_0_Expcnt_0_Lgkmcnt_0
|
|
; GCN-NEXT: renamable $vgpr0 = V_CVT_SCALEF32_PK_FP8_F16_e64 8, killed $vgpr1, 0, killed $vgpr2, killed $vgpr0, 0, implicit $mode, implicit $exec
|
|
; GCN-NEXT: S_NOP 0
|
|
; GCN-NEXT: renamable $vgpr0 = V_PK_ADD_U16 8, killed $vgpr0, 8, $vgpr0, 0, 0, 0, 0, 0, implicit $exec
|
|
; GCN-NEXT: S_SETPC_B64_return undef $sgpr30_sgpr31, implicit killed $vgpr0
|
|
S_WAITCNT 0
|
|
renamable $vgpr0 = V_CVT_SCALEF32_PK_FP8_F16_e64 8, killed $vgpr1, 0, killed $vgpr2, killed $vgpr0, 0, implicit $mode, implicit $exec
|
|
renamable $vgpr0 = V_PK_ADD_U16 8, killed $vgpr0, 8, $vgpr0, 0, 0, 0, 0, 0, implicit $exec
|
|
S_SETPC_B64_return undef $sgpr30_sgpr31, implicit killed $vgpr0
|
|
...
|
|
|
|
---
|
|
name: test_cvt_scalef32_pk_fp8_bf16_hazard
|
|
body: |
|
|
bb.0:
|
|
liveins: $vgpr0, $vgpr1, $vgpr2, $vgpr3, $vgpr4
|
|
; GCN-LABEL: name: test_cvt_scalef32_pk_fp8_bf16_hazard
|
|
; GCN: liveins: $vgpr0, $vgpr1, $vgpr2, $vgpr3, $vgpr4
|
|
; GCN-NEXT: {{ $}}
|
|
; GCN-NEXT: S_WAITCNT .Vmcnt_0_Expcnt_0_Lgkmcnt_0
|
|
; GCN-NEXT: renamable $vgpr0 = GLOBAL_LOAD_DWORD killed renamable $vgpr0_vgpr1, 0, 0, implicit $exec
|
|
; GCN-NEXT: S_WAITCNT .Vmcnt_0
|
|
; GCN-NEXT: renamable $vgpr0 = V_CVT_SCALEF32_SR_BF8_BF16_e64 8, killed $vgpr2, 0, killed $vgpr3, 4, killed $vgpr4, killed $vgpr0, 0, implicit $mode, implicit $exec
|
|
; GCN-NEXT: S_NOP 0
|
|
; GCN-NEXT: renamable $vgpr0 = V_ADD_U32_e32 killed $vgpr0, $vgpr0, implicit $exec
|
|
; GCN-NEXT: S_SETPC_B64_return undef $sgpr30_sgpr31, implicit killed $vgpr0
|
|
S_WAITCNT 0
|
|
renamable $vgpr0 = GLOBAL_LOAD_DWORD killed renamable $vgpr0_vgpr1, 0, 0, implicit $exec
|
|
S_WAITCNT 3952
|
|
renamable $vgpr0 = V_CVT_SCALEF32_SR_BF8_BF16_e64 8, killed $vgpr2, 0, killed $vgpr3, 4, killed $vgpr4, killed $vgpr0, 0, implicit $mode, implicit $exec
|
|
renamable $vgpr0 = V_ADD_U32_e32 killed $vgpr0, $vgpr0, implicit $exec
|
|
S_SETPC_B64_return undef $sgpr30_sgpr31, implicit killed $vgpr0
|
|
...
|
|
|
|
---
|
|
name: test_cvt_scalef32_sr_bf8_f16_hazard
|
|
body: |
|
|
bb.0:
|
|
liveins: $vgpr0, $vgpr1, $vgpr2, $vgpr3, $vgpr4
|
|
; GCN-LABEL: name: test_cvt_scalef32_sr_bf8_f16_hazard
|
|
; GCN: liveins: $vgpr0, $vgpr1, $vgpr2, $vgpr3, $vgpr4
|
|
; GCN-NEXT: {{ $}}
|
|
; GCN-NEXT: S_WAITCNT .Vmcnt_0_Expcnt_0_Lgkmcnt_0
|
|
; GCN-NEXT: renamable $vgpr0 = GLOBAL_LOAD_DWORD killed renamable $vgpr0_vgpr1, 0, 0, implicit $exec
|
|
; GCN-NEXT: S_WAITCNT .Vmcnt_0
|
|
; GCN-NEXT: renamable $vgpr0 = V_CVT_SCALEF32_SR_BF8_F16_e64 8, killed $vgpr2, 0, killed $vgpr3, 4, killed $vgpr4, killed $vgpr0, 0, implicit $mode, implicit $exec
|
|
; GCN-NEXT: S_NOP 0
|
|
; GCN-NEXT: renamable $vgpr0 = V_ADD_U32_e32 killed $vgpr0, $vgpr0, implicit $exec
|
|
; GCN-NEXT: S_SETPC_B64_return undef $sgpr30_sgpr31, implicit killed $vgpr0
|
|
S_WAITCNT 0
|
|
renamable $vgpr0 = GLOBAL_LOAD_DWORD killed renamable $vgpr0_vgpr1, 0, 0, implicit $exec
|
|
S_WAITCNT 3952
|
|
renamable $vgpr0 = V_CVT_SCALEF32_SR_BF8_F16_e64 8, killed $vgpr2, 0, killed $vgpr3, 4, killed $vgpr4, killed $vgpr0, 0, implicit $mode, implicit $exec
|
|
renamable $vgpr0 = V_ADD_U32_e32 killed $vgpr0, $vgpr0, implicit $exec
|
|
S_SETPC_B64_return undef $sgpr30_sgpr31, implicit killed $vgpr0
|
|
...
|
|
|
|
---
|
|
name: test_cvt_scalef32_sr_bf8_f32_hazard
|
|
body: |
|
|
bb.0:
|
|
liveins: $vgpr0, $vgpr1, $vgpr2, $vgpr3, $vgpr4
|
|
; GCN-LABEL: name: test_cvt_scalef32_sr_bf8_f32_hazard
|
|
; GCN: liveins: $vgpr0, $vgpr1, $vgpr2, $vgpr3, $vgpr4
|
|
; GCN-NEXT: {{ $}}
|
|
; GCN-NEXT: S_WAITCNT .Vmcnt_0_Expcnt_0_Lgkmcnt_0
|
|
; GCN-NEXT: renamable $vgpr0 = GLOBAL_LOAD_DWORD killed renamable $vgpr0_vgpr1, 0, 0, implicit $exec
|
|
; GCN-NEXT: S_WAITCNT .Vmcnt_0
|
|
; GCN-NEXT: renamable $vgpr0 = V_CVT_SCALEF32_SR_BF8_F32_e64 8, killed $vgpr2, 0, killed $vgpr3, 4, killed $vgpr4, killed $vgpr0, 0, implicit $mode, implicit $exec
|
|
; GCN-NEXT: S_NOP 0
|
|
; GCN-NEXT: renamable $vgpr0 = V_ADD_U32_e32 killed $vgpr0, $vgpr0, implicit $exec
|
|
; GCN-NEXT: S_SETPC_B64_return undef $sgpr30_sgpr31, implicit killed $vgpr0
|
|
S_WAITCNT 0
|
|
renamable $vgpr0 = GLOBAL_LOAD_DWORD killed renamable $vgpr0_vgpr1, 0, 0, implicit $exec
|
|
S_WAITCNT 3952
|
|
renamable $vgpr0 = V_CVT_SCALEF32_SR_BF8_F32_e64 8, killed $vgpr2, 0, killed $vgpr3, 4, killed $vgpr4, killed $vgpr0, 0, implicit $mode, implicit $exec
|
|
renamable $vgpr0 = V_ADD_U32_e32 killed $vgpr0, $vgpr0, implicit $exec
|
|
S_SETPC_B64_return undef $sgpr30_sgpr31, implicit killed $vgpr0
|
|
...
|
|
|
|
---
|
|
name: test_cvt_scalef32_pk_bf8_f32_hazard
|
|
body: |
|
|
bb.0:
|
|
liveins: $vgpr0, $vgpr1, $vgpr2, $vgpr3
|
|
; GCN-LABEL: name: test_cvt_scalef32_pk_bf8_f32_hazard
|
|
; GCN: liveins: $vgpr0, $vgpr1, $vgpr2, $vgpr3
|
|
; GCN-NEXT: {{ $}}
|
|
; GCN-NEXT: S_WAITCNT .Vmcnt_0_Expcnt_0_Lgkmcnt_0
|
|
; GCN-NEXT: renamable $vgpr1 = V_AND_B32_e32 2147483647, killed $vgpr1, implicit $exec
|
|
; GCN-NEXT: renamable $vgpr2 = V_XOR_B32_e32 -2147483648, killed $vgpr2, implicit $exec
|
|
; GCN-NEXT: renamable $vgpr0 = V_CVT_SCALEF32_PK_BF8_F32_e64 8, killed $vgpr1, 0, killed $vgpr2, 0, killed $vgpr3, killed $vgpr0, 0, implicit $mode, implicit $exec
|
|
; GCN-NEXT: S_NOP 0
|
|
; GCN-NEXT: renamable $vgpr0 = V_PK_ADD_U16 8, killed $vgpr0, 8, $vgpr0, 0, 0, 0, 0, 0, implicit $exec
|
|
; GCN-NEXT: S_SETPC_B64_return undef $sgpr30_sgpr31, implicit killed $vgpr0
|
|
S_WAITCNT 0
|
|
renamable $vgpr1 = V_AND_B32_e32 2147483647, killed $vgpr1, implicit $exec
|
|
renamable $vgpr2 = V_XOR_B32_e32 -2147483648, killed $vgpr2, implicit $exec
|
|
renamable $vgpr0 = V_CVT_SCALEF32_PK_BF8_F32_e64 8, killed $vgpr1, 0, killed $vgpr2, 0, killed $vgpr3, killed $vgpr0, 0, implicit $mode, implicit $exec
|
|
renamable $vgpr0 = V_PK_ADD_U16 8, killed $vgpr0, 8, $vgpr0, 0, 0, 0, 0, 0, implicit $exec
|
|
S_SETPC_B64_return undef $sgpr30_sgpr31, implicit killed $vgpr0
|
|
...
|
|
|
|
---
|
|
name: test_cvt_scalef32_pk_bf8_f16_hazard
|
|
body: |
|
|
bb.0:
|
|
liveins: $vgpr0, $vgpr1, $vgpr2
|
|
; GCN-LABEL: name: test_cvt_scalef32_pk_bf8_f16_hazard
|
|
; GCN: liveins: $vgpr0, $vgpr1, $vgpr2
|
|
; GCN-NEXT: {{ $}}
|
|
; GCN-NEXT: S_WAITCNT .Vmcnt_0_Expcnt_0_Lgkmcnt_0
|
|
; GCN-NEXT: renamable $vgpr0 = V_CVT_SCALEF32_PK_BF8_F16_e64 8, killed $vgpr1, 0, killed $vgpr2, killed $vgpr0, 0, implicit $mode, implicit $exec
|
|
; GCN-NEXT: S_NOP 0
|
|
; GCN-NEXT: renamable $vgpr0 = V_PK_ADD_U16 8, killed $vgpr0, 8, $vgpr0, 0, 0, 0, 0, 0, implicit $exec
|
|
; GCN-NEXT: S_SETPC_B64_return undef $sgpr30_sgpr31, implicit killed $vgpr0
|
|
S_WAITCNT 0
|
|
renamable $vgpr0 = V_CVT_SCALEF32_PK_BF8_F16_e64 8, killed $vgpr1, 0, killed $vgpr2, killed $vgpr0, 0, implicit $mode, implicit $exec
|
|
renamable $vgpr0 = V_PK_ADD_U16 8, killed $vgpr0, 8, $vgpr0, 0, 0, 0, 0, 0, implicit $exec
|
|
S_SETPC_B64_return undef $sgpr30_sgpr31, implicit killed $vgpr0
|
|
...
|
|
|
|
---
|
|
name: test_cvt_scalef32_pk_bf8_bf16_hazard
|
|
body: |
|
|
bb.0:
|
|
liveins: $vgpr0, $vgpr1, $vgpr2
|
|
; GCN-LABEL: name: test_cvt_scalef32_pk_bf8_bf16_hazard
|
|
; GCN: liveins: $vgpr0, $vgpr1, $vgpr2
|
|
; GCN-NEXT: {{ $}}
|
|
; GCN-NEXT: S_WAITCNT .Vmcnt_0_Expcnt_0_Lgkmcnt_0
|
|
; GCN-NEXT: renamable $vgpr0 = V_CVT_SCALEF32_PK_BF8_BF16_e64 8, killed $vgpr1, 0, killed $vgpr2, killed $vgpr0, 0, implicit $mode, implicit $exec
|
|
; GCN-NEXT: S_NOP 0
|
|
; GCN-NEXT: renamable $vgpr0 = V_PK_ADD_U16 8, killed $vgpr0, 8, $vgpr0, 0, 0, 0, 0, 0, implicit $exec
|
|
; GCN-NEXT: S_SETPC_B64_return undef $sgpr30_sgpr31, implicit killed $vgpr0
|
|
S_WAITCNT 0
|
|
renamable $vgpr0 = V_CVT_SCALEF32_PK_BF8_BF16_e64 8, killed $vgpr1, 0, killed $vgpr2, killed $vgpr0, 0, implicit $mode, implicit $exec
|
|
renamable $vgpr0 = V_PK_ADD_U16 8, killed $vgpr0, 8, $vgpr0, 0, 0, 0, 0, 0, implicit $exec
|
|
S_SETPC_B64_return undef $sgpr30_sgpr31, implicit killed $vgpr0
|
|
...
|
|
|
|
---
|
|
name: test_cvt_scalef32_pk_fp4_f32_neg_hazard_opsel0
|
|
body: |
|
|
bb.0:
|
|
liveins: $vgpr0, $vgpr1, $vgpr2, $vgpr3
|
|
; GCN-LABEL: name: test_cvt_scalef32_pk_fp4_f32_neg_hazard_opsel0
|
|
; GCN: liveins: $vgpr0, $vgpr1, $vgpr2, $vgpr3
|
|
; GCN-NEXT: {{ $}}
|
|
; GCN-NEXT: S_WAITCNT .Vmcnt_0_Expcnt_0_Lgkmcnt_0
|
|
; GCN-NEXT: renamable $vgpr1 = V_AND_B32_e32 2147483647, killed $vgpr1, implicit $exec
|
|
; GCN-NEXT: renamable $vgpr2 = V_XOR_B32_e32 -2147483648, killed $vgpr2, implicit $exec
|
|
; GCN-NEXT: renamable $vgpr0 = V_CVT_SCALEF32_PK_FP4_F32_e64 0, killed $vgpr1, 0, killed $vgpr2, 0, killed $vgpr3, killed $vgpr0, 0, implicit $mode, implicit $exec
|
|
; GCN-NEXT: renamable $vgpr0 = V_ADD_U32_e32 killed $vgpr0, $vgpr0, implicit $exec
|
|
; GCN-NEXT: S_SETPC_B64_return undef $sgpr30_sgpr31, implicit killed $vgpr0
|
|
S_WAITCNT 0
|
|
renamable $vgpr1 = V_AND_B32_e32 2147483647, killed $vgpr1, implicit $exec
|
|
renamable $vgpr2 = V_XOR_B32_e32 -2147483648, killed $vgpr2, implicit $exec
|
|
renamable $vgpr0 = V_CVT_SCALEF32_PK_FP4_F32_e64 0, killed $vgpr1, 0, killed $vgpr2, 0, killed $vgpr3, killed $vgpr0, 0, implicit $mode, implicit $exec
|
|
renamable $vgpr0 = V_ADD_U32_e32 killed $vgpr0, $vgpr0, implicit $exec
|
|
S_SETPC_B64_return undef $sgpr30_sgpr31, implicit killed $vgpr0
|
|
...
|
|
|
|
---
|
|
name: test_cvt_scalef32_pk_fp4_f32_opsel3_hazard
|
|
body: |
|
|
bb.0:
|
|
liveins: $vgpr0, $vgpr1, $vgpr2, $vgpr3
|
|
; GCN-LABEL: name: test_cvt_scalef32_pk_fp4_f32_opsel3_hazard
|
|
; GCN: liveins: $vgpr0, $vgpr1, $vgpr2, $vgpr3
|
|
; GCN-NEXT: {{ $}}
|
|
; GCN-NEXT: S_WAITCNT .Vmcnt_0_Expcnt_0_Lgkmcnt_0
|
|
; GCN-NEXT: renamable $vgpr1 = V_AND_B32_e32 2147483647, killed $vgpr1, implicit $exec
|
|
; GCN-NEXT: renamable $vgpr2 = V_XOR_B32_e32 -2147483648, killed $vgpr2, implicit $exec
|
|
; GCN-NEXT: renamable $vgpr0 = V_CVT_SCALEF32_PK_FP4_F32_e64 8, killed $vgpr1, 0, killed $vgpr2, 4, killed $vgpr3, killed $vgpr0, 0, implicit $mode, implicit $exec
|
|
; GCN-NEXT: S_NOP 0
|
|
; GCN-NEXT: renamable $vgpr0 = V_ADD_U32_e32 killed $vgpr0, $vgpr0, implicit $exec
|
|
; GCN-NEXT: S_SETPC_B64_return undef $sgpr30_sgpr31, implicit killed $vgpr0
|
|
S_WAITCNT 0
|
|
renamable $vgpr1 = V_AND_B32_e32 2147483647, killed $vgpr1, implicit $exec
|
|
renamable $vgpr2 = V_XOR_B32_e32 -2147483648, killed $vgpr2, implicit $exec
|
|
renamable $vgpr0 = V_CVT_SCALEF32_PK_FP4_F32_e64 8, killed $vgpr1, 0, killed $vgpr2, 4, killed $vgpr3, killed $vgpr0, 0, implicit $mode, implicit $exec
|
|
renamable $vgpr0 = V_ADD_U32_e32 killed $vgpr0, $vgpr0, implicit $exec
|
|
S_SETPC_B64_return undef $sgpr30_sgpr31, implicit killed $vgpr0
|
|
...
|
|
|
|
---
|
|
name: test_cvt_scalef32_pk_fp4_f32_opsel0_neg_fp4_as_src_hazard
|
|
body: |
|
|
bb.0:
|
|
liveins: $vgpr0, $vgpr1, $vgpr2, $vgpr3
|
|
; GCN-LABEL: name: test_cvt_scalef32_pk_fp4_f32_opsel0_neg_fp4_as_src_hazard
|
|
; GCN: liveins: $vgpr0, $vgpr1, $vgpr2, $vgpr3
|
|
; GCN-NEXT: {{ $}}
|
|
; GCN-NEXT: S_WAITCNT .Vmcnt_0_Expcnt_0_Lgkmcnt_0
|
|
; GCN-NEXT: renamable $vgpr1 = V_AND_B32_e32 2147483647, killed $vgpr1, implicit $exec
|
|
; GCN-NEXT: renamable $vgpr2 = V_XOR_B32_e32 -2147483648, killed $vgpr2, implicit $exec
|
|
; GCN-NEXT: renamable $vgpr0 = V_CVT_SCALEF32_PK_FP4_F32_e64 0, killed $vgpr1, 0, killed $vgpr2, 0, killed $vgpr3, killed $vgpr0, 0, implicit $mode, implicit $exec
|
|
; GCN-NEXT: renamable $vgpr1 = V_ADD_U32_e32 killed $vgpr1, $vgpr1, implicit $exec
|
|
; GCN-NEXT: S_SETPC_B64_return undef $sgpr30_sgpr31, implicit killed $vgpr0
|
|
S_WAITCNT 0
|
|
renamable $vgpr1 = V_AND_B32_e32 2147483647, killed $vgpr1, implicit $exec
|
|
renamable $vgpr2 = V_XOR_B32_e32 -2147483648, killed $vgpr2, implicit $exec
|
|
renamable $vgpr0 = V_CVT_SCALEF32_PK_FP4_F32_e64 0, killed $vgpr1, 0, killed $vgpr2, 0, killed $vgpr3, killed $vgpr0, 0, implicit $mode, implicit $exec
|
|
renamable $vgpr1 = V_ADD_U32_e32 killed $vgpr1, $vgpr1, implicit $exec
|
|
S_SETPC_B64_return undef $sgpr30_sgpr31, implicit killed $vgpr0
|
|
...
|
|
|
|
---
|
|
name: test_cvt_scalef32_pk_fp4_f32_opsel3_neg_fp4_as_src_hazard
|
|
body: |
|
|
bb.0:
|
|
liveins: $vgpr0, $vgpr1, $vgpr2, $vgpr3
|
|
; GCN-LABEL: name: test_cvt_scalef32_pk_fp4_f32_opsel3_neg_fp4_as_src_hazard
|
|
; GCN: liveins: $vgpr0, $vgpr1, $vgpr2, $vgpr3
|
|
; GCN-NEXT: {{ $}}
|
|
; GCN-NEXT: S_WAITCNT .Vmcnt_0_Expcnt_0_Lgkmcnt_0
|
|
; GCN-NEXT: renamable $vgpr1 = V_AND_B32_e32 2147483647, killed $vgpr1, implicit $exec
|
|
; GCN-NEXT: renamable $vgpr2 = V_XOR_B32_e32 -2147483648, killed $vgpr2, implicit $exec
|
|
; GCN-NEXT: renamable $vgpr0 = V_CVT_SCALEF32_PK_FP4_F32_e64 8, killed $vgpr1, 0, killed $vgpr2, 4, killed $vgpr3, killed $vgpr0, 0, implicit $mode, implicit $exec
|
|
; GCN-NEXT: renamable $vgpr1 = V_ADD_U32_e32 killed $vgpr1, $vgpr1, implicit $exec
|
|
; GCN-NEXT: S_SETPC_B64_return undef $sgpr30_sgpr31, implicit killed $vgpr0
|
|
S_WAITCNT 0
|
|
renamable $vgpr1 = V_AND_B32_e32 2147483647, killed $vgpr1, implicit $exec
|
|
renamable $vgpr2 = V_XOR_B32_e32 -2147483648, killed $vgpr2, implicit $exec
|
|
renamable $vgpr0 = V_CVT_SCALEF32_PK_FP4_F32_e64 8, killed $vgpr1, 0, killed $vgpr2, 4, killed $vgpr3, killed $vgpr0, 0, implicit $mode, implicit $exec
|
|
renamable $vgpr1 = V_ADD_U32_e32 killed $vgpr1, $vgpr1, implicit $exec
|
|
S_SETPC_B64_return undef $sgpr30_sgpr31, implicit killed $vgpr0
|
|
...
|
|
|
|
---
|
|
name: test_scalef32_sr_pk_fp4_f16_hazard
|
|
body: |
|
|
bb.0:
|
|
liveins: $vgpr0, $vgpr1, $vgpr2, $vgpr3, $vgpr4
|
|
; GCN-LABEL: name: test_scalef32_sr_pk_fp4_f16_hazard
|
|
; GCN: liveins: $vgpr0, $vgpr1, $vgpr2, $vgpr3, $vgpr4
|
|
; GCN-NEXT: {{ $}}
|
|
; GCN-NEXT: S_WAITCNT .Vmcnt_0_Expcnt_0_Lgkmcnt_0
|
|
; GCN-NEXT: renamable $vgpr0 = GLOBAL_LOAD_DWORD killed renamable $vgpr0_vgpr1, 0, 0, implicit $exec
|
|
; GCN-NEXT: S_WAITCNT .Vmcnt_0
|
|
; GCN-NEXT: early-clobber renamable $vgpr1 = V_CVT_SCALEF32_SR_PK_FP4_F16_e64 8, killed $vgpr2, 0, killed $vgpr3, 4, killed $vgpr4, killed $vgpr0, 0, implicit $mode, implicit $exec
|
|
; GCN-NEXT: S_NOP 0
|
|
; GCN-NEXT: renamable $vgpr0 = V_ADD_U32_e32 killed $vgpr1, $vgpr1, implicit $exec
|
|
; GCN-NEXT: S_SETPC_B64_return undef $sgpr30_sgpr31, implicit killed $vgpr0
|
|
S_WAITCNT 0
|
|
renamable $vgpr0 = GLOBAL_LOAD_DWORD killed renamable $vgpr0_vgpr1, 0, 0, implicit $exec
|
|
S_WAITCNT 3952
|
|
early-clobber renamable $vgpr1 = V_CVT_SCALEF32_SR_PK_FP4_F16_e64 8, killed $vgpr2, 0, killed $vgpr3, 4, killed $vgpr4, killed $vgpr0, 0, implicit $mode, implicit $exec
|
|
renamable $vgpr0 = V_ADD_U32_e32 killed $vgpr1, $vgpr1, implicit $exec
|
|
S_SETPC_B64_return undef $sgpr30_sgpr31, implicit killed $vgpr0
|
|
...
|
|
|
|
---
|
|
name: test_scalef32_sr_pk_fp4_bf16_opsel0_hazard
|
|
body: |
|
|
bb.0:
|
|
liveins: $vgpr0, $vgpr1, $vgpr2, $vgpr3, $vgpr4
|
|
; GCN-LABEL: name: test_scalef32_sr_pk_fp4_bf16_opsel0_hazard
|
|
; GCN: liveins: $vgpr0, $vgpr1, $vgpr2, $vgpr3, $vgpr4
|
|
; GCN-NEXT: {{ $}}
|
|
; GCN-NEXT: S_WAITCNT .Vmcnt_0_Expcnt_0_Lgkmcnt_0
|
|
; GCN-NEXT: renamable $vgpr0 = GLOBAL_LOAD_DWORD killed renamable $vgpr0_vgpr1, 0, 0, implicit $exec
|
|
; GCN-NEXT: S_WAITCNT .Vmcnt_0
|
|
; GCN-NEXT: early-clobber renamable $vgpr1 = V_CVT_SCALEF32_SR_PK_FP4_BF16_e64 0, killed $vgpr2, 0, killed $vgpr3, 0, killed $vgpr4, killed $vgpr0, 0, implicit $mode, implicit $exec
|
|
; GCN-NEXT: S_NOP 0
|
|
; GCN-NEXT: renamable $vgpr0 = V_ADD_U32_e32 killed $vgpr1, $vgpr1, implicit $exec
|
|
; GCN-NEXT: S_SETPC_B64_return undef $sgpr30_sgpr31, implicit killed $vgpr0
|
|
S_WAITCNT 0
|
|
renamable $vgpr0 = GLOBAL_LOAD_DWORD killed renamable $vgpr0_vgpr1, 0, 0, implicit $exec
|
|
S_WAITCNT 3952
|
|
early-clobber renamable $vgpr1 = V_CVT_SCALEF32_SR_PK_FP4_BF16_e64 0, killed $vgpr2, 0, killed $vgpr3, 0, killed $vgpr4, killed $vgpr0, 0, implicit $mode, implicit $exec
|
|
renamable $vgpr0 = V_ADD_U32_e32 killed $vgpr1, $vgpr1, implicit $exec
|
|
S_SETPC_B64_return undef $sgpr30_sgpr31, implicit killed $vgpr0
|
|
...
|
|
|
|
---
|
|
name: test_scalef32_sr_pk_fp4_bf16_opsel3_hazard
|
|
body: |
|
|
bb.0:
|
|
liveins: $vgpr0, $vgpr1, $vgpr2, $vgpr3, $vgpr4
|
|
; GCN-LABEL: name: test_scalef32_sr_pk_fp4_bf16_opsel3_hazard
|
|
; GCN: liveins: $vgpr0, $vgpr1, $vgpr2, $vgpr3, $vgpr4
|
|
; GCN-NEXT: {{ $}}
|
|
; GCN-NEXT: S_WAITCNT .Vmcnt_0_Expcnt_0_Lgkmcnt_0
|
|
; GCN-NEXT: renamable $vgpr0 = GLOBAL_LOAD_DWORD killed renamable $vgpr0_vgpr1, 0, 0, implicit $exec
|
|
; GCN-NEXT: S_WAITCNT .Vmcnt_0
|
|
; GCN-NEXT: early-clobber renamable $vgpr1 = V_CVT_SCALEF32_SR_PK_FP4_BF16_e64 8, killed $vgpr2, 0, killed $vgpr3, 4, killed $vgpr4, killed $vgpr0, 0, implicit $mode, implicit $exec
|
|
; GCN-NEXT: S_NOP 0
|
|
; GCN-NEXT: renamable $vgpr0 = V_ADD_U32_e32 killed $vgpr1, $vgpr1, implicit $exec
|
|
; GCN-NEXT: S_SETPC_B64_return undef $sgpr30_sgpr31, implicit killed $vgpr0
|
|
S_WAITCNT 0
|
|
renamable $vgpr0 = GLOBAL_LOAD_DWORD killed renamable $vgpr0_vgpr1, 0, 0, implicit $exec
|
|
S_WAITCNT 3952
|
|
early-clobber renamable $vgpr1 = V_CVT_SCALEF32_SR_PK_FP4_BF16_e64 8, killed $vgpr2, 0, killed $vgpr3, 4, killed $vgpr4, killed $vgpr0, 0, implicit $mode, implicit $exec
|
|
renamable $vgpr0 = V_ADD_U32_e32 killed $vgpr1, $vgpr1, implicit $exec
|
|
S_SETPC_B64_return undef $sgpr30_sgpr31, implicit killed $vgpr0
|
|
...
|
|
|
|
---
|
|
name: test_scalef32_sr_pk_fp4_bf16_opsel0_neg_fp4_as_src_hazard
|
|
body: |
|
|
bb.0:
|
|
liveins: $vgpr0, $vgpr1, $vgpr2, $vgpr3, $vgpr4
|
|
; GCN-LABEL: name: test_scalef32_sr_pk_fp4_bf16_opsel0_neg_fp4_as_src_hazard
|
|
; GCN: liveins: $vgpr0, $vgpr1, $vgpr2, $vgpr3, $vgpr4
|
|
; GCN-NEXT: {{ $}}
|
|
; GCN-NEXT: S_WAITCNT .Vmcnt_0_Expcnt_0_Lgkmcnt_0
|
|
; GCN-NEXT: renamable $vgpr0 = GLOBAL_LOAD_DWORD killed renamable $vgpr0_vgpr1, 0, 0, implicit $exec
|
|
; GCN-NEXT: S_WAITCNT .Vmcnt_0
|
|
; GCN-NEXT: early-clobber renamable $vgpr1 = V_CVT_SCALEF32_SR_PK_FP4_BF16_e64 0, killed $vgpr2, 0, killed $vgpr3, 0, killed $vgpr4, killed $vgpr0, 0, implicit $mode, implicit $exec
|
|
; GCN-NEXT: renamable $vgpr0 = V_ADD_U32_e32 killed $vgpr0, $vgpr0, implicit $exec
|
|
; GCN-NEXT: S_SETPC_B64_return undef $sgpr30_sgpr31, implicit killed $vgpr0
|
|
S_WAITCNT 0
|
|
renamable $vgpr0 = GLOBAL_LOAD_DWORD killed renamable $vgpr0_vgpr1, 0, 0, implicit $exec
|
|
S_WAITCNT 3952
|
|
early-clobber renamable $vgpr1 = V_CVT_SCALEF32_SR_PK_FP4_BF16_e64 0, killed $vgpr2, 0, killed $vgpr3, 0, killed $vgpr4, killed $vgpr0, 0, implicit $mode, implicit $exec
|
|
renamable $vgpr0 = V_ADD_U32_e32 killed $vgpr0, $vgpr0, implicit $exec
|
|
S_SETPC_B64_return undef $sgpr30_sgpr31, implicit killed $vgpr0
|
|
...
|
|
|
|
---
|
|
name: test_scalef32_sr_pk_fp4_bf16_opsel3_neg_fp4_as_src_hazard
|
|
body: |
|
|
bb.0:
|
|
liveins: $vgpr0, $vgpr1, $vgpr2, $vgpr3, $vgpr4
|
|
; GCN-LABEL: name: test_scalef32_sr_pk_fp4_bf16_opsel3_neg_fp4_as_src_hazard
|
|
; GCN: liveins: $vgpr0, $vgpr1, $vgpr2, $vgpr3, $vgpr4
|
|
; GCN-NEXT: {{ $}}
|
|
; GCN-NEXT: S_WAITCNT .Vmcnt_0_Expcnt_0_Lgkmcnt_0
|
|
; GCN-NEXT: renamable $vgpr0 = GLOBAL_LOAD_DWORD killed renamable $vgpr0_vgpr1, 0, 0, implicit $exec
|
|
; GCN-NEXT: S_WAITCNT .Vmcnt_0
|
|
; GCN-NEXT: early-clobber renamable $vgpr1 = V_CVT_SCALEF32_SR_PK_FP4_BF16_e64 8, killed $vgpr2, 0, killed $vgpr3, 4, killed $vgpr4, killed $vgpr0, 0, implicit $mode, implicit $exec
|
|
; GCN-NEXT: renamable $vgpr0 = V_ADD_U32_e32 killed $vgpr0, $vgpr0, implicit $exec
|
|
; GCN-NEXT: S_SETPC_B64_return undef $sgpr30_sgpr31, implicit killed $vgpr0
|
|
S_WAITCNT 0
|
|
renamable $vgpr0 = GLOBAL_LOAD_DWORD killed renamable $vgpr0_vgpr1, 0, 0, implicit $exec
|
|
S_WAITCNT 3952
|
|
early-clobber renamable $vgpr1 = V_CVT_SCALEF32_SR_PK_FP4_BF16_e64 8, killed $vgpr2, 0, killed $vgpr3, 4, killed $vgpr4, killed $vgpr0, 0, implicit $mode, implicit $exec
|
|
renamable $vgpr0 = V_ADD_U32_e32 killed $vgpr0, $vgpr0, implicit $exec
|
|
S_SETPC_B64_return undef $sgpr30_sgpr31, implicit killed $vgpr0
|
|
...
|
|
|
|
---
|
|
name: test_scalef32_sr_pk_fp4_f32_opsel0_hazard
|
|
body: |
|
|
bb.0:
|
|
liveins: $vgpr0, $vgpr1, $vgpr2, $vgpr3, $vgpr4, $vgpr5
|
|
; GCN-LABEL: name: test_scalef32_sr_pk_fp4_f32_opsel0_hazard
|
|
; GCN: liveins: $vgpr0, $vgpr1, $vgpr2, $vgpr3, $vgpr4, $vgpr5
|
|
; GCN-NEXT: {{ $}}
|
|
; GCN-NEXT: S_WAITCNT .Vmcnt_0_Expcnt_0_Lgkmcnt_0
|
|
; GCN-NEXT: renamable $vgpr0 = GLOBAL_LOAD_DWORD killed renamable $vgpr0_vgpr1, 0, 0, implicit $exec
|
|
; GCN-NEXT: S_WAITCNT .Vmcnt_0
|
|
; GCN-NEXT: early-clobber renamable $vgpr1 = V_CVT_SCALEF32_SR_PK_FP4_F32_e64 0, killed $vgpr2_vgpr3, 0, killed $vgpr4, 0, killed $vgpr5, killed $vgpr0, 0, implicit $mode, implicit $exec
|
|
; GCN-NEXT: S_NOP 0
|
|
; GCN-NEXT: renamable $vgpr0 = V_ADD_U32_e32 killed $vgpr1, $vgpr1, implicit $exec
|
|
; GCN-NEXT: S_SETPC_B64_return undef $sgpr30_sgpr31, implicit killed $vgpr0
|
|
S_WAITCNT 0
|
|
renamable $vgpr0 = GLOBAL_LOAD_DWORD killed renamable $vgpr0_vgpr1, 0, 0, implicit $exec
|
|
S_WAITCNT 3952
|
|
early-clobber renamable $vgpr1 = V_CVT_SCALEF32_SR_PK_FP4_F32_e64 0, killed $vgpr2_vgpr3, 0, killed $vgpr4, 0, killed $vgpr5, killed $vgpr0, 0, implicit $mode, implicit $exec
|
|
renamable $vgpr0 = V_ADD_U32_e32 killed $vgpr1, $vgpr1, implicit $exec
|
|
S_SETPC_B64_return undef $sgpr30_sgpr31, implicit killed $vgpr0
|
|
...
|
|
|
|
---
|
|
name: test_scalef32_sr_pk_fp4_f32_opsel3_hazard
|
|
body: |
|
|
bb.0:
|
|
liveins: $vgpr0, $vgpr1, $vgpr2, $vgpr3, $vgpr4, $vgpr5
|
|
; GCN-LABEL: name: test_scalef32_sr_pk_fp4_f32_opsel3_hazard
|
|
; GCN: liveins: $vgpr0, $vgpr1, $vgpr2, $vgpr3, $vgpr4, $vgpr5
|
|
; GCN-NEXT: {{ $}}
|
|
; GCN-NEXT: S_WAITCNT .Vmcnt_0_Expcnt_0_Lgkmcnt_0
|
|
; GCN-NEXT: renamable $vgpr0 = GLOBAL_LOAD_DWORD killed renamable $vgpr0_vgpr1, 0, 0, implicit $exec
|
|
; GCN-NEXT: S_WAITCNT .Vmcnt_0
|
|
; GCN-NEXT: early-clobber renamable $vgpr1 = V_CVT_SCALEF32_SR_PK_FP4_F32_e64 8, killed $vgpr2_vgpr3, 0, killed $vgpr4, 4, killed $vgpr5, killed $vgpr0, 0, implicit $mode, implicit $exec
|
|
; GCN-NEXT: S_NOP 0
|
|
; GCN-NEXT: renamable $vgpr0 = V_ADD_U32_e32 killed $vgpr1, $vgpr1, implicit $exec
|
|
; GCN-NEXT: S_SETPC_B64_return undef $sgpr30_sgpr31, implicit killed $vgpr0
|
|
S_WAITCNT 0
|
|
renamable $vgpr0 = GLOBAL_LOAD_DWORD killed renamable $vgpr0_vgpr1, 0, 0, implicit $exec
|
|
S_WAITCNT 3952
|
|
early-clobber renamable $vgpr1 = V_CVT_SCALEF32_SR_PK_FP4_F32_e64 8, killed $vgpr2_vgpr3, 0, killed $vgpr4, 4, killed $vgpr5, killed $vgpr0, 0, implicit $mode, implicit $exec
|
|
renamable $vgpr0 = V_ADD_U32_e32 killed $vgpr1, $vgpr1, implicit $exec
|
|
S_SETPC_B64_return undef $sgpr30_sgpr31, implicit killed $vgpr0
|
|
...
|
|
|
|
---
|
|
name: test_scalef32_sr_pk_fp4_f32_opsel0_neg_fp4_as_src_hazard
|
|
body: |
|
|
bb.0:
|
|
liveins: $vgpr0, $vgpr1, $vgpr2, $vgpr3, $vgpr4, $vgpr5
|
|
; GCN-LABEL: name: test_scalef32_sr_pk_fp4_f32_opsel0_neg_fp4_as_src_hazard
|
|
; GCN: liveins: $vgpr0, $vgpr1, $vgpr2, $vgpr3, $vgpr4, $vgpr5
|
|
; GCN-NEXT: {{ $}}
|
|
; GCN-NEXT: S_WAITCNT .Vmcnt_0_Expcnt_0_Lgkmcnt_0
|
|
; GCN-NEXT: renamable $vgpr0 = GLOBAL_LOAD_DWORD killed renamable $vgpr0_vgpr1, 0, 0, implicit $exec
|
|
; GCN-NEXT: S_WAITCNT .Vmcnt_0
|
|
; GCN-NEXT: early-clobber renamable $vgpr1 = V_CVT_SCALEF32_SR_PK_FP4_F32_e64 0, killed $vgpr2_vgpr3, 0, killed $vgpr4, 0, killed $vgpr5, killed $vgpr0, 0, implicit $mode, implicit $exec
|
|
; GCN-NEXT: renamable $vgpr0 = V_ADD_U32_e32 killed $vgpr0, $vgpr0, implicit $exec
|
|
; GCN-NEXT: S_SETPC_B64_return undef $sgpr30_sgpr31, implicit killed $vgpr0
|
|
S_WAITCNT 0
|
|
renamable $vgpr0 = GLOBAL_LOAD_DWORD killed renamable $vgpr0_vgpr1, 0, 0, implicit $exec
|
|
S_WAITCNT 3952
|
|
early-clobber renamable $vgpr1 = V_CVT_SCALEF32_SR_PK_FP4_F32_e64 0, killed $vgpr2_vgpr3, 0, killed $vgpr4, 0, killed $vgpr5, killed $vgpr0, 0, implicit $mode, implicit $exec
|
|
renamable $vgpr0 = V_ADD_U32_e32 killed $vgpr0, $vgpr0, implicit $exec
|
|
S_SETPC_B64_return undef $sgpr30_sgpr31, implicit killed $vgpr0
|
|
...
|
|
|
|
---
|
|
name: test_scalef32_sr_pk_fp4_f32_opsel3_neg_fp4_as_src_hazard
|
|
body: |
|
|
bb.0:
|
|
liveins: $vgpr0, $vgpr1, $vgpr2, $vgpr3, $vgpr4, $vgpr5
|
|
; GCN-LABEL: name: test_scalef32_sr_pk_fp4_f32_opsel3_neg_fp4_as_src_hazard
|
|
; GCN: liveins: $vgpr0, $vgpr1, $vgpr2, $vgpr3, $vgpr4, $vgpr5
|
|
; GCN-NEXT: {{ $}}
|
|
; GCN-NEXT: S_WAITCNT .Vmcnt_0_Expcnt_0_Lgkmcnt_0
|
|
; GCN-NEXT: renamable $vgpr0 = GLOBAL_LOAD_DWORD killed renamable $vgpr0_vgpr1, 0, 0, implicit $exec
|
|
; GCN-NEXT: S_WAITCNT .Vmcnt_0
|
|
; GCN-NEXT: early-clobber renamable $vgpr1 = V_CVT_SCALEF32_SR_PK_FP4_F32_e64 8, killed $vgpr2_vgpr3, 0, killed $vgpr4, 4, killed $vgpr5, killed $vgpr0, 0, implicit $mode, implicit $exec
|
|
; GCN-NEXT: renamable $vgpr0 = V_ADD_U32_e32 killed $vgpr0, $vgpr0, implicit $exec
|
|
; GCN-NEXT: S_SETPC_B64_return undef $sgpr30_sgpr31, implicit killed $vgpr0
|
|
S_WAITCNT 0
|
|
renamable $vgpr0 = GLOBAL_LOAD_DWORD killed renamable $vgpr0_vgpr1, 0, 0, implicit $exec
|
|
S_WAITCNT 3952
|
|
early-clobber renamable $vgpr1 = V_CVT_SCALEF32_SR_PK_FP4_F32_e64 8, killed $vgpr2_vgpr3, 0, killed $vgpr4, 4, killed $vgpr5, killed $vgpr0, 0, implicit $mode, implicit $exec
|
|
renamable $vgpr0 = V_ADD_U32_e32 killed $vgpr0, $vgpr0, implicit $exec
|
|
S_SETPC_B64_return undef $sgpr30_sgpr31, implicit killed $vgpr0
|
|
...
|
|
|
|
---
|
|
name: test_cvt_scalef32_pk_fp4_f16_neg_opsel0_hazard
|
|
body: |
|
|
bb.0:
|
|
liveins: $vgpr0, $vgpr1, $vgpr2
|
|
; GCN-LABEL: name: test_cvt_scalef32_pk_fp4_f16_neg_opsel0_hazard
|
|
; GCN: liveins: $vgpr0, $vgpr1, $vgpr2
|
|
; GCN-NEXT: {{ $}}
|
|
; GCN-NEXT: S_WAITCNT .Vmcnt_0_Expcnt_0_Lgkmcnt_0
|
|
; GCN-NEXT: renamable $vgpr2 = V_CVT_SCALEF32_PK_FP4_F16_e64 0, killed $vgpr0, 0, killed $vgpr1, 0, killed $vgpr2, 0, implicit $mode, implicit $exec
|
|
; GCN-NEXT: renamable $vgpr0 = V_ADD_U32_e32 killed $vgpr2, $vgpr2, implicit $exec
|
|
; GCN-NEXT: S_SETPC_B64_return undef $sgpr30_sgpr31, implicit killed $vgpr0
|
|
S_WAITCNT 0
|
|
renamable $vgpr2 = V_CVT_SCALEF32_PK_FP4_F16_e64 0, killed $vgpr0, 0, killed $vgpr1, 0, killed $vgpr2, 0, implicit $mode, implicit $exec
|
|
renamable $vgpr0 = V_ADD_U32_e32 killed $vgpr2, $vgpr2, implicit $exec
|
|
S_SETPC_B64_return undef $sgpr30_sgpr31, implicit killed $vgpr0
|
|
...
|
|
|
|
---
|
|
name: test_cvt_scalef32_pk_fp4_f16_opsel3_hazard
|
|
body: |
|
|
bb.0:
|
|
liveins: $vgpr0, $vgpr1, $vgpr2
|
|
; GCN-LABEL: name: test_cvt_scalef32_pk_fp4_f16_opsel3_hazard
|
|
; GCN: liveins: $vgpr0, $vgpr1, $vgpr2
|
|
; GCN-NEXT: {{ $}}
|
|
; GCN-NEXT: S_WAITCNT .Vmcnt_0_Expcnt_0_Lgkmcnt_0
|
|
; GCN-NEXT: renamable $vgpr2 = V_CVT_SCALEF32_PK_FP4_F16_e64 8, killed $vgpr0, 0, killed $vgpr1, 4, killed $vgpr2, 0, implicit $mode, implicit $exec
|
|
; GCN-NEXT: S_NOP 0
|
|
; GCN-NEXT: renamable $vgpr0 = V_ADD_U32_e32 killed $vgpr2, $vgpr2, implicit $exec
|
|
; GCN-NEXT: S_SETPC_B64_return undef $sgpr30_sgpr31, implicit killed $vgpr0
|
|
S_WAITCNT 0
|
|
renamable $vgpr2 = V_CVT_SCALEF32_PK_FP4_F16_e64 8, killed $vgpr0, 0, killed $vgpr1, 4, killed $vgpr2, 0, implicit $mode, implicit $exec
|
|
renamable $vgpr0 = V_ADD_U32_e32 killed $vgpr2, $vgpr2, implicit $exec
|
|
S_SETPC_B64_return undef $sgpr30_sgpr31, implicit killed $vgpr0
|
|
...
|
|
|
|
---
|
|
name: test_cvt_scalef32_pk_fp4_f16_opsel0_neg_fp4_as_src_hazard
|
|
body: |
|
|
bb.0:
|
|
liveins: $vgpr0, $vgpr1, $vgpr2
|
|
; GCN-LABEL: name: test_cvt_scalef32_pk_fp4_f16_opsel0_neg_fp4_as_src_hazard
|
|
; GCN: liveins: $vgpr0, $vgpr1, $vgpr2
|
|
; GCN-NEXT: {{ $}}
|
|
; GCN-NEXT: S_WAITCNT .Vmcnt_0_Expcnt_0_Lgkmcnt_0
|
|
; GCN-NEXT: renamable $vgpr2 = V_CVT_SCALEF32_PK_FP4_F16_e64 0, killed $vgpr0, 0, killed $vgpr1, 0, killed $vgpr2, 0, implicit $mode, implicit $exec
|
|
; GCN-NEXT: renamable $vgpr0 = V_ADD_U32_e32 killed $vgpr1, $vgpr1, implicit $exec
|
|
; GCN-NEXT: S_SETPC_B64_return undef $sgpr30_sgpr31, implicit killed $vgpr0
|
|
S_WAITCNT 0
|
|
renamable $vgpr2 = V_CVT_SCALEF32_PK_FP4_F16_e64 0, killed $vgpr0, 0, killed $vgpr1, 0, killed $vgpr2, 0, implicit $mode, implicit $exec
|
|
renamable $vgpr0 = V_ADD_U32_e32 killed $vgpr1, $vgpr1, implicit $exec
|
|
S_SETPC_B64_return undef $sgpr30_sgpr31, implicit killed $vgpr0
|
|
...
|
|
|
|
---
|
|
name: test_cvt_scalef32_pk_fp4_f16_opsel3_neg_fp4_as_src_hazard
|
|
body: |
|
|
bb.0:
|
|
liveins: $vgpr0, $vgpr1, $vgpr2
|
|
; GCN-LABEL: name: test_cvt_scalef32_pk_fp4_f16_opsel3_neg_fp4_as_src_hazard
|
|
; GCN: liveins: $vgpr0, $vgpr1, $vgpr2
|
|
; GCN-NEXT: {{ $}}
|
|
; GCN-NEXT: S_WAITCNT .Vmcnt_0_Expcnt_0_Lgkmcnt_0
|
|
; GCN-NEXT: renamable $vgpr2 = V_CVT_SCALEF32_PK_FP4_F16_e64 8, killed $vgpr0, 0, killed $vgpr1, 4, killed $vgpr2, 0, implicit $mode, implicit $exec
|
|
; GCN-NEXT: renamable $vgpr0 = V_ADD_U32_e32 killed $vgpr1, $vgpr1, implicit $exec
|
|
; GCN-NEXT: S_SETPC_B64_return undef $sgpr30_sgpr31, implicit killed $vgpr0
|
|
S_WAITCNT 0
|
|
renamable $vgpr2 = V_CVT_SCALEF32_PK_FP4_F16_e64 8, killed $vgpr0, 0, killed $vgpr1, 4, killed $vgpr2, 0, implicit $mode, implicit $exec
|
|
renamable $vgpr0 = V_ADD_U32_e32 killed $vgpr1, $vgpr1, implicit $exec
|
|
S_SETPC_B64_return undef $sgpr30_sgpr31, implicit killed $vgpr0
|
|
...
|
|
|
|
---
|
|
name: test_cvt_scalef32_pk_fp4_bf16_neg_opsel0_hazard
|
|
body: |
|
|
bb.0:
|
|
liveins: $vgpr0, $vgpr1, $vgpr2
|
|
; GCN-LABEL: name: test_cvt_scalef32_pk_fp4_bf16_neg_opsel0_hazard
|
|
; GCN: liveins: $vgpr0, $vgpr1, $vgpr2
|
|
; GCN-NEXT: {{ $}}
|
|
; GCN-NEXT: S_WAITCNT .Vmcnt_0_Expcnt_0_Lgkmcnt_0
|
|
; GCN-NEXT: renamable $vgpr2 = V_CVT_SCALEF32_PK_FP4_BF16_e64 0, killed $vgpr0, 0, killed $vgpr1, 0, killed $vgpr2, 0, implicit $mode, implicit $exec
|
|
; GCN-NEXT: renamable $vgpr0 = V_ADD_U32_e32 killed $vgpr2, $vgpr2, implicit $exec
|
|
; GCN-NEXT: S_SETPC_B64_return undef $sgpr30_sgpr31, implicit killed $vgpr0
|
|
S_WAITCNT 0
|
|
renamable $vgpr2 = V_CVT_SCALEF32_PK_FP4_BF16_e64 0, killed $vgpr0, 0, killed $vgpr1, 0, killed $vgpr2, 0, implicit $mode, implicit $exec
|
|
renamable $vgpr0 = V_ADD_U32_e32 killed $vgpr2, $vgpr2, implicit $exec
|
|
S_SETPC_B64_return undef $sgpr30_sgpr31, implicit killed $vgpr0
|
|
...
|
|
|
|
---
|
|
name: test_cvt_scalef32_pk_fp4_bf16_opsel3_hazard
|
|
body: |
|
|
bb.0:
|
|
liveins: $vgpr0, $vgpr1, $vgpr2
|
|
; GCN-LABEL: name: test_cvt_scalef32_pk_fp4_bf16_opsel3_hazard
|
|
; GCN: liveins: $vgpr0, $vgpr1, $vgpr2
|
|
; GCN-NEXT: {{ $}}
|
|
; GCN-NEXT: S_WAITCNT .Vmcnt_0_Expcnt_0_Lgkmcnt_0
|
|
; GCN-NEXT: renamable $vgpr2 = V_CVT_SCALEF32_PK_FP4_BF16_e64 8, killed $vgpr0, 0, killed $vgpr1, 4, killed $vgpr2, 0, implicit $mode, implicit $exec
|
|
; GCN-NEXT: S_NOP 0
|
|
; GCN-NEXT: renamable $vgpr0 = V_ADD_U32_e32 killed $vgpr2, $vgpr2, implicit $exec
|
|
; GCN-NEXT: S_SETPC_B64_return undef $sgpr30_sgpr31, implicit killed $vgpr0
|
|
S_WAITCNT 0
|
|
renamable $vgpr2 = V_CVT_SCALEF32_PK_FP4_BF16_e64 8, killed $vgpr0, 0, killed $vgpr1, 4, killed $vgpr2, 0, implicit $mode, implicit $exec
|
|
renamable $vgpr0 = V_ADD_U32_e32 killed $vgpr2, $vgpr2, implicit $exec
|
|
S_SETPC_B64_return undef $sgpr30_sgpr31, implicit killed $vgpr0
|
|
...
|
|
|
|
---
|
|
name: test_cvt_scalef32_pk_fp4_bf16_opsel0_neg_fp4_as_src_hazard
|
|
body: |
|
|
bb.0:
|
|
liveins: $vgpr0, $vgpr1, $vgpr2
|
|
; GCN-LABEL: name: test_cvt_scalef32_pk_fp4_bf16_opsel0_neg_fp4_as_src_hazard
|
|
; GCN: liveins: $vgpr0, $vgpr1, $vgpr2
|
|
; GCN-NEXT: {{ $}}
|
|
; GCN-NEXT: S_WAITCNT .Vmcnt_0_Expcnt_0_Lgkmcnt_0
|
|
; GCN-NEXT: renamable $vgpr2 = V_CVT_SCALEF32_PK_FP4_BF16_e64 0, killed $vgpr0, 0, killed $vgpr1, 0, killed $vgpr2, 0, implicit $mode, implicit $exec
|
|
; GCN-NEXT: renamable $vgpr0 = V_ADD_U32_e32 killed $vgpr0, $vgpr0, implicit $exec
|
|
; GCN-NEXT: S_SETPC_B64_return undef $sgpr30_sgpr31, implicit killed $vgpr0
|
|
S_WAITCNT 0
|
|
renamable $vgpr2 = V_CVT_SCALEF32_PK_FP4_BF16_e64 0, killed $vgpr0, 0, killed $vgpr1, 0, killed $vgpr2, 0, implicit $mode, implicit $exec
|
|
renamable $vgpr0 = V_ADD_U32_e32 killed $vgpr0, $vgpr0, implicit $exec
|
|
S_SETPC_B64_return undef $sgpr30_sgpr31, implicit killed $vgpr0
|
|
...
|
|
|
|
---
|
|
name: test_cvt_scalef32_pk_fp4_bf16_opsel3_neg_fp4_as_src_hazard
|
|
body: |
|
|
bb.0:
|
|
liveins: $vgpr0, $vgpr1, $vgpr2
|
|
; GCN-LABEL: name: test_cvt_scalef32_pk_fp4_bf16_opsel3_neg_fp4_as_src_hazard
|
|
; GCN: liveins: $vgpr0, $vgpr1, $vgpr2
|
|
; GCN-NEXT: {{ $}}
|
|
; GCN-NEXT: S_WAITCNT .Vmcnt_0_Expcnt_0_Lgkmcnt_0
|
|
; GCN-NEXT: renamable $vgpr2 = V_CVT_SCALEF32_PK_FP4_BF16_e64 8, killed $vgpr0, 0, killed $vgpr1, 4, killed $vgpr2, 0, implicit $mode, implicit $exec
|
|
; GCN-NEXT: renamable $vgpr0 = V_ADD_U32_e32 killed $vgpr0, $vgpr0, implicit $exec
|
|
; GCN-NEXT: S_SETPC_B64_return undef $sgpr30_sgpr31, implicit killed $vgpr0
|
|
S_WAITCNT 0
|
|
renamable $vgpr2 = V_CVT_SCALEF32_PK_FP4_BF16_e64 8, killed $vgpr0, 0, killed $vgpr1, 4, killed $vgpr2, 0, implicit $mode, implicit $exec
|
|
renamable $vgpr0 = V_ADD_U32_e32 killed $vgpr0, $vgpr0, implicit $exec
|
|
S_SETPC_B64_return undef $sgpr30_sgpr31, implicit killed $vgpr0
|
|
...
|
|
|
|
---
|
|
name: test_cvt_scalef32_hazard_skipping_over_meta_instr
|
|
body: |
|
|
bb.0:
|
|
liveins: $vgpr0, $vgpr1, $vgpr2, $vgpr3, $vgpr4
|
|
; GCN-LABEL: name: test_cvt_scalef32_hazard_skipping_over_meta_instr
|
|
; GCN: liveins: $vgpr0, $vgpr1, $vgpr2, $vgpr3, $vgpr4
|
|
; GCN-NEXT: {{ $}}
|
|
; GCN-NEXT: S_WAITCNT .Vmcnt_0_Expcnt_0_Lgkmcnt_0
|
|
; GCN-NEXT: renamable $vgpr0 = GLOBAL_LOAD_DWORD killed renamable $vgpr0_vgpr1, 0, 0, implicit $exec
|
|
; GCN-NEXT: S_WAITCNT .Vmcnt_0
|
|
; GCN-NEXT: renamable $vgpr0 = V_CVT_SCALEF32_SR_BF8_F16_e64 8, killed $vgpr2, 0, killed $vgpr3, 4, killed $vgpr4, killed $vgpr0, 0, implicit $mode, implicit $exec
|
|
; GCN-NEXT: $vgpr4 = KILL
|
|
; GCN-NEXT: S_NOP 0
|
|
; GCN-NEXT: renamable $vgpr0 = V_ADD_U32_e32 killed $vgpr0, $vgpr0, implicit $exec
|
|
; GCN-NEXT: S_SETPC_B64_return undef $sgpr30_sgpr31, implicit killed $vgpr0
|
|
S_WAITCNT 0
|
|
renamable $vgpr0 = GLOBAL_LOAD_DWORD killed renamable $vgpr0_vgpr1, 0, 0, implicit $exec
|
|
S_WAITCNT 3952
|
|
renamable $vgpr0 = V_CVT_SCALEF32_SR_BF8_F16_e64 8, killed $vgpr2, 0, killed $vgpr3, 4, killed $vgpr4, killed $vgpr0, 0, implicit $mode, implicit $exec
|
|
$vgpr4 = KILL
|
|
renamable $vgpr0 = V_ADD_U32_e32 killed $vgpr0, $vgpr0, implicit $exec
|
|
S_SETPC_B64_return undef $sgpr30_sgpr31, implicit killed $vgpr0
|
|
...
|
|
|
|
---
|
|
name: test_cvt_f16_to_fp4_to_f16_hazard
|
|
body: |
|
|
bb.0:
|
|
liveins: $vgpr0, $vgpr1, $vgpr2
|
|
; GCN-LABEL: name: test_cvt_f16_to_fp4_to_f16_hazard
|
|
; GCN: liveins: $vgpr0, $vgpr1, $vgpr2
|
|
; GCN-NEXT: {{ $}}
|
|
; GCN-NEXT: S_WAITCNT .Vmcnt_0_Expcnt_0_Lgkmcnt_0
|
|
; GCN-NEXT: renamable $vgpr2 = V_CVT_SCALEF32_PK_FP4_F16_e64 8, killed $vgpr0, 0, $vgpr1, 4, killed $vgpr2, 0, implicit $mode, implicit $exec
|
|
; GCN-NEXT: S_NOP 0
|
|
; GCN-NEXT: renamable $vgpr0 = V_CVT_SCALEF32_PK_F16_FP4_e64 4, killed $vgpr2, 0, killed $vgpr1, 0, implicit $mode, implicit $exec
|
|
; GCN-NEXT: S_SETPC_B64_return undef $sgpr30_sgpr31, implicit killed $vgpr0
|
|
S_WAITCNT 0
|
|
renamable $vgpr2 = V_CVT_SCALEF32_PK_FP4_F16_e64 8, killed $vgpr0, 0, $vgpr1, 4, killed $vgpr2, 0, implicit $mode, implicit $exec
|
|
renamable $vgpr0 = V_CVT_SCALEF32_PK_F16_FP4_e64 4, killed $vgpr2, 0, killed $vgpr1, 0, implicit $mode, implicit $exec
|
|
S_SETPC_B64_return undef $sgpr30_sgpr31, implicit killed $vgpr0
|
|
...
|
|
|
|
---
|
|
name: test_cvt_scalef32_pk_f16_fp4_opsel0_neg_hazard
|
|
body: |
|
|
bb.0:
|
|
liveins: $vgpr0, $vgpr1, $vgpr2
|
|
; GCN-LABEL: name: test_cvt_scalef32_pk_f16_fp4_opsel0_neg_hazard
|
|
; GCN: liveins: $vgpr0, $vgpr1, $vgpr2
|
|
; GCN-NEXT: {{ $}}
|
|
; GCN-NEXT: S_WAITCNT .Vmcnt_0_Expcnt_0_Lgkmcnt_0
|
|
; GCN-NEXT: renamable $vgpr0 = V_CVT_SCALEF32_PK_F16_FP4_e64 0, killed $vgpr2, 0, killed $vgpr1, 0, implicit $mode, implicit $exec
|
|
; GCN-NEXT: renamable $vgpr0 = V_ADD_U32_e32 killed $vgpr0, $vgpr0, implicit $exec
|
|
; GCN-NEXT: S_SETPC_B64_return undef $sgpr30_sgpr31, implicit killed $vgpr0
|
|
S_WAITCNT 0
|
|
renamable $vgpr0 = V_CVT_SCALEF32_PK_F16_FP4_e64 0, killed $vgpr2, 0, killed $vgpr1, 0, implicit $mode, implicit $exec
|
|
renamable $vgpr0 = V_ADD_U32_e32 killed $vgpr0, $vgpr0, implicit $exec
|
|
S_SETPC_B64_return undef $sgpr30_sgpr31, implicit killed $vgpr0
|
|
...
|
|
|
|
|
|
---
|
|
name: test_cvt_scalef32_pk_f16_fp4_opsel3_neg_hazard
|
|
body: |
|
|
bb.0:
|
|
liveins: $vgpr0, $vgpr1, $vgpr2
|
|
; GCN-LABEL: name: test_cvt_scalef32_pk_f16_fp4_opsel3_neg_hazard
|
|
; GCN: liveins: $vgpr0, $vgpr1, $vgpr2
|
|
; GCN-NEXT: {{ $}}
|
|
; GCN-NEXT: S_WAITCNT .Vmcnt_0_Expcnt_0_Lgkmcnt_0
|
|
; GCN-NEXT: renamable $vgpr0 = V_CVT_SCALEF32_PK_F16_FP4_e64 4, killed $vgpr2, 4, killed $vgpr1, 0, implicit $mode, implicit $exec
|
|
; GCN-NEXT: renamable $vgpr0 = V_ADD_U32_e32 killed $vgpr0, $vgpr0, implicit $exec
|
|
; GCN-NEXT: S_SETPC_B64_return undef $sgpr30_sgpr31, implicit killed $vgpr0
|
|
S_WAITCNT 0
|
|
renamable $vgpr0 = V_CVT_SCALEF32_PK_F16_FP4_e64 4, killed $vgpr2, 4, killed $vgpr1, 0, implicit $mode, implicit $exec
|
|
renamable $vgpr0 = V_ADD_U32_e32 killed $vgpr0, $vgpr0, implicit $exec
|
|
S_SETPC_B64_return undef $sgpr30_sgpr31, implicit killed $vgpr0
|
|
...
|
|
|
|
---
|
|
name: test_cvt_scalef32_hazard_pseudo
|
|
body: |
|
|
bb.0:
|
|
liveins: $vgpr0, $vgpr1, $vgpr2, $vgpr3, $vgpr4
|
|
; GCN-LABEL: name: test_cvt_scalef32_hazard_pseudo
|
|
; GCN: liveins: $vgpr0, $vgpr1, $vgpr2, $vgpr3, $vgpr4
|
|
; GCN-NEXT: {{ $}}
|
|
; GCN-NEXT: S_WAITCNT .Vmcnt_0_Expcnt_0_Lgkmcnt_0
|
|
; GCN-NEXT: renamable $vgpr0 = GLOBAL_LOAD_DWORD killed renamable $vgpr0_vgpr1, 0, 0, implicit $exec
|
|
; GCN-NEXT: S_WAITCNT .Vmcnt_0
|
|
; GCN-NEXT: renamable $vgpr0 = V_CVT_SCALEF32_SR_BF8_F16_e64 8, killed $vgpr2, 0, killed $vgpr3, 4, killed $vgpr4, killed $vgpr0, 0, implicit $mode, implicit $exec
|
|
; GCN-NEXT: WAVE_BARRIER
|
|
; GCN-NEXT: S_NOP 0
|
|
; GCN-NEXT: renamable $vgpr0 = V_ADD_U32_e32 killed $vgpr0, $vgpr0, implicit $exec
|
|
; GCN-NEXT: S_SETPC_B64_return undef $sgpr30_sgpr31, implicit killed $vgpr0
|
|
S_WAITCNT 0
|
|
renamable $vgpr0 = GLOBAL_LOAD_DWORD killed renamable $vgpr0_vgpr1, 0, 0, implicit $exec
|
|
S_WAITCNT 3952
|
|
renamable $vgpr0 = V_CVT_SCALEF32_SR_BF8_F16_e64 8, killed $vgpr2, 0, killed $vgpr3, 4, killed $vgpr4, killed $vgpr0, 0, implicit $mode, implicit $exec
|
|
WAVE_BARRIER
|
|
renamable $vgpr0 = V_ADD_U32_e32 killed $vgpr0, $vgpr0, implicit $exec
|
|
S_SETPC_B64_return undef $sgpr30_sgpr31, implicit killed $vgpr0
|
|
...
|
|
|
|
---
|
|
name: test_call_consuming_cvt_scalef32_hazard
|
|
body: |
|
|
bb.0:
|
|
liveins: $vgpr0, $vgpr1, $vgpr2
|
|
; GCN-LABEL: name: test_call_consuming_cvt_scalef32_hazard
|
|
; GCN: liveins: $vgpr0, $vgpr1, $vgpr2
|
|
; GCN-NEXT: {{ $}}
|
|
; GCN-NEXT: BUNDLE implicit-def $sgpr0_sgpr1, implicit-def $sgpr0, implicit-def $sgpr0_lo16, implicit-def $sgpr0_hi16, implicit-def $sgpr1, implicit-def $sgpr1_lo16, implicit-def $sgpr1_hi16, implicit-def $scc {
|
|
; GCN-NEXT: $sgpr0_sgpr1 = S_GETPC_B64
|
|
; GCN-NEXT: $sgpr0 = S_ADD_U32 internal $sgpr0, target-flags(amdgpu-gotprel32-lo) @test_cvt_scalef32_hazard_pseudo + 4, implicit-def $scc
|
|
; GCN-NEXT: $sgpr1 = S_ADDC_U32 internal $sgpr1, target-flags(amdgpu-gotprel32-hi) @test_cvt_scalef32_hazard_pseudo + 12, implicit-def $scc, implicit internal $scc
|
|
; GCN-NEXT: }
|
|
; GCN-NEXT: renamable $sgpr0_sgpr1 = S_LOAD_DWORDX2_IMM killed renamable $sgpr0_sgpr1, 0, 0
|
|
; GCN-NEXT: renamable $vgpr2 = V_CVT_SCALEF32_PK_FP4_F16_e64 8, killed $vgpr0, 0, killed $vgpr1, 4, killed $vgpr2, 0, implicit $mode, implicit $exec
|
|
; GCN-NEXT: dead $sgpr30_sgpr31 = SI_CALL killed renamable $sgpr0_sgpr1, @test_cvt_scalef32_hazard_pseudo, csr_amdgpu_gfx90ainsts, implicit undef $sgpr4_sgpr5, implicit undef $sgpr6_sgpr7, implicit killed $sgpr8_sgpr9, implicit undef $sgpr10_sgpr11, implicit undef $sgpr12, implicit undef $sgpr13, implicit undef $sgpr14, implicit-def $sgpr15, implicit undef $vgpr31, implicit killed $vgpr2, implicit-def $vgpr2
|
|
; GCN-NEXT: SI_RETURN_TO_EPILOG killed $vgpr0
|
|
BUNDLE implicit-def $sgpr0_sgpr1, implicit-def $sgpr0, implicit-def $sgpr0_lo16, implicit-def $sgpr0_hi16, implicit-def $sgpr1, implicit-def $sgpr1_lo16, implicit-def $sgpr1_hi16, implicit-def $scc {
|
|
$sgpr0_sgpr1 = S_GETPC_B64
|
|
$sgpr0 = S_ADD_U32 internal $sgpr0, target-flags(amdgpu-gotprel32-lo) @test_cvt_scalef32_hazard_pseudo + 4, implicit-def $scc
|
|
$sgpr1 = S_ADDC_U32 internal $sgpr1, target-flags(amdgpu-gotprel32-hi) @test_cvt_scalef32_hazard_pseudo + 12, implicit-def $scc, implicit internal $scc
|
|
}
|
|
renamable $sgpr0_sgpr1 = S_LOAD_DWORDX2_IMM killed renamable $sgpr0_sgpr1, 0, 0
|
|
renamable $vgpr2 = V_CVT_SCALEF32_PK_FP4_F16_e64 8, killed $vgpr0, 0, killed $vgpr1, 4, killed $vgpr2, 0, implicit $mode, implicit $exec
|
|
dead $sgpr30_sgpr31 = SI_CALL killed renamable $sgpr0_sgpr1, @test_cvt_scalef32_hazard_pseudo, csr_amdgpu_gfx90ainsts, implicit undef $sgpr4_sgpr5, implicit undef $sgpr6_sgpr7, implicit killed $sgpr8_sgpr9, implicit undef $sgpr10_sgpr11, implicit undef $sgpr12, implicit undef $sgpr13, implicit undef $sgpr14, implicit-def $sgpr15, implicit undef $vgpr31, implicit killed $vgpr2, implicit-def $vgpr2
|
|
SI_RETURN_TO_EPILOG killed $vgpr0
|
|
...
|
|
|
|
---
|
|
name: test_cvt_scalef32_inlineasm_hazard
|
|
body: |
|
|
bb.0:
|
|
liveins: $vgpr0, $vgpr1, $vgpr2
|
|
; GCN-LABEL: name: test_cvt_scalef32_inlineasm_hazard
|
|
; GCN: liveins: $vgpr0, $vgpr1, $vgpr2
|
|
; GCN-NEXT: {{ $}}
|
|
; GCN-NEXT: S_WAITCNT .Vmcnt_0_Expcnt_0_Lgkmcnt_0
|
|
; GCN-NEXT: renamable $vgpr2 = V_CVT_SCALEF32_PK_FP4_F16_e64 8, killed $vgpr0, 0, killed $vgpr1, 4, killed $vgpr2, 0, implicit $mode, implicit $exec
|
|
; GCN-NEXT: S_NOP 0
|
|
; GCN-NEXT: INLINEASM &"; use $0", sideeffect attdialect, reguse:VGPR_32, killed renamable $vgpr2
|
|
; GCN-NEXT: S_SETPC_B64_return undef $sgpr30_sgpr31
|
|
S_WAITCNT 0
|
|
renamable $vgpr2 = V_CVT_SCALEF32_PK_FP4_F16_e64 8, killed $vgpr0, 0, killed $vgpr1, 4, killed $vgpr2, 0, implicit $mode, implicit $exec
|
|
INLINEASM &"; use $0", sideeffect attdialect, reguse:VGPR_32, killed renamable $vgpr2
|
|
S_SETPC_B64_return undef $sgpr30_sgpr31
|
|
...
|
|
|
|
---
|
|
name: test_cvt_scale_cvt_scalef32_sr_pk_fp4_f16_opsel0_hazard
|
|
body: |
|
|
bb.0:
|
|
liveins: $vgpr0, $vgpr1, $vgpr2, $vgpr3
|
|
; GCN-LABEL: name: test_cvt_scale_cvt_scalef32_sr_pk_fp4_f16_opsel0_hazard
|
|
; GCN: liveins: $vgpr0, $vgpr1, $vgpr2, $vgpr3
|
|
; GCN-NEXT: {{ $}}
|
|
; GCN-NEXT: S_WAITCNT .Vmcnt_0_Expcnt_0_Lgkmcnt_0
|
|
; GCN-NEXT: renamable $vgpr2 = V_CVT_SCALEF32_PK_FP4_F16_e64 8, $vgpr0, 0, $vgpr1, 4, killed $vgpr2, 0, implicit $mode, implicit $exec
|
|
; GCN-NEXT: S_NOP 0
|
|
; GCN-NEXT: early-clobber renamable $vgpr4 = V_CVT_SCALEF32_SR_PK_FP4_F16_e64 0, killed $vgpr0, 0, killed $vgpr3, 0, killed $vgpr1, killed $vgpr2, 0, implicit $mode, implicit $exec
|
|
; GCN-NEXT: S_NOP 0
|
|
; GCN-NEXT: $vgpr0 = V_MOV_B32_e32 killed $vgpr4, implicit $exec, implicit $exec
|
|
; GCN-NEXT: S_SETPC_B64_return undef $sgpr30_sgpr31, implicit killed $vgpr0
|
|
S_WAITCNT 0
|
|
renamable $vgpr2 = V_CVT_SCALEF32_PK_FP4_F16_e64 8, $vgpr0, 0, $vgpr1, 4, killed $vgpr2, 0, implicit $mode, implicit $exec
|
|
early-clobber renamable $vgpr4 = V_CVT_SCALEF32_SR_PK_FP4_F16_e64 0, killed $vgpr0, 0, killed $vgpr3, 0, killed $vgpr1, killed $vgpr2, 0, implicit $mode, implicit $exec
|
|
$vgpr0 = V_MOV_B32_e32 killed $vgpr4, implicit $exec, implicit $exec
|
|
S_SETPC_B64_return undef $sgpr30_sgpr31, implicit killed $vgpr0
|
|
...
|
|
|
|
---
|
|
name: test_cvt_scale_cvt_scalef32_sr_pk_fp4_f16_opsel3_hazard
|
|
body: |
|
|
bb.0:
|
|
liveins: $vgpr0, $vgpr1, $vgpr2, $vgpr3
|
|
; GCN-LABEL: name: test_cvt_scale_cvt_scalef32_sr_pk_fp4_f16_opsel3_hazard
|
|
; GCN: liveins: $vgpr0, $vgpr1, $vgpr2, $vgpr3
|
|
; GCN-NEXT: {{ $}}
|
|
; GCN-NEXT: S_WAITCNT .Vmcnt_0_Expcnt_0_Lgkmcnt_0
|
|
; GCN-NEXT: renamable $vgpr2 = V_CVT_SCALEF32_PK_FP4_F16_e64 8, $vgpr0, 0, $vgpr1, 4, killed $vgpr2, 0, implicit $mode, implicit $exec
|
|
; GCN-NEXT: S_NOP 0
|
|
; GCN-NEXT: early-clobber renamable $vgpr4 = V_CVT_SCALEF32_SR_PK_FP4_F16_e64 8, killed $vgpr0, 0, killed $vgpr3, 4, killed $vgpr1, killed $vgpr2, 0, implicit $mode, implicit $exec
|
|
; GCN-NEXT: S_NOP 0
|
|
; GCN-NEXT: $vgpr0 = V_MOV_B32_e32 killed $vgpr4, implicit $exec, implicit $exec
|
|
; GCN-NEXT: S_SETPC_B64_return undef $sgpr30_sgpr31, implicit killed $vgpr0
|
|
S_WAITCNT 0
|
|
renamable $vgpr2 = V_CVT_SCALEF32_PK_FP4_F16_e64 8, $vgpr0, 0, $vgpr1, 4, killed $vgpr2, 0, implicit $mode, implicit $exec
|
|
early-clobber renamable $vgpr4 = V_CVT_SCALEF32_SR_PK_FP4_F16_e64 8, killed $vgpr0, 0, killed $vgpr3, 4, killed $vgpr1, killed $vgpr2, 0, implicit $mode, implicit $exec
|
|
$vgpr0 = V_MOV_B32_e32 killed $vgpr4, implicit $exec, implicit $exec
|
|
S_SETPC_B64_return undef $sgpr30_sgpr31, implicit killed $vgpr0
|
|
...
|
|
|
|
---
|
|
name: test_cvt_scale_cvt_scalef32_sr_pk_fp4_f16_opsel0_neg_fp4_as_src_hazard
|
|
body: |
|
|
bb.0:
|
|
liveins: $vgpr0, $vgpr1, $vgpr2, $vgpr3
|
|
; GCN-LABEL: name: test_cvt_scale_cvt_scalef32_sr_pk_fp4_f16_opsel0_neg_fp4_as_src_hazard
|
|
; GCN: liveins: $vgpr0, $vgpr1, $vgpr2, $vgpr3
|
|
; GCN-NEXT: {{ $}}
|
|
; GCN-NEXT: S_WAITCNT .Vmcnt_0_Expcnt_0_Lgkmcnt_0
|
|
; GCN-NEXT: renamable $vgpr2 = V_CVT_SCALEF32_PK_FP4_F16_e64 0, $vgpr0, 0, $vgpr1, 0, killed $vgpr2, 0, implicit $mode, implicit $exec
|
|
; GCN-NEXT: early-clobber renamable $vgpr4 = V_CVT_SCALEF32_SR_PK_FP4_F16_e64 8, killed $vgpr0, 0, killed $vgpr3, 4, killed $vgpr1, killed $vgpr2, 0, implicit $mode, implicit $exec
|
|
; GCN-NEXT: $vgpr0 = V_MOV_B32_e32 killed $vgpr1, implicit $exec, implicit $exec
|
|
; GCN-NEXT: S_SETPC_B64_return undef $sgpr30_sgpr31, implicit killed $vgpr0
|
|
S_WAITCNT 0
|
|
renamable $vgpr2 = V_CVT_SCALEF32_PK_FP4_F16_e64 0, $vgpr0, 0, $vgpr1, 0, killed $vgpr2, 0, implicit $mode, implicit $exec
|
|
early-clobber renamable $vgpr4 = V_CVT_SCALEF32_SR_PK_FP4_F16_e64 8, killed $vgpr0, 0, killed $vgpr3, 4, killed $vgpr1, killed $vgpr2, 0, implicit $mode, implicit $exec
|
|
$vgpr0 = V_MOV_B32_e32 killed $vgpr1, implicit $exec, implicit $exec
|
|
S_SETPC_B64_return undef $sgpr30_sgpr31, implicit killed $vgpr0
|
|
...
|
|
|
|
---
|
|
name: test_cvt_scale_cvt_scalef32_sr_pk_fp4_f16_opsel3_neg_fp4_as_src_hazard
|
|
body: |
|
|
bb.0:
|
|
liveins: $vgpr0, $vgpr1, $vgpr2, $vgpr3
|
|
; GCN-LABEL: name: test_cvt_scale_cvt_scalef32_sr_pk_fp4_f16_opsel3_neg_fp4_as_src_hazard
|
|
; GCN: liveins: $vgpr0, $vgpr1, $vgpr2, $vgpr3
|
|
; GCN-NEXT: {{ $}}
|
|
; GCN-NEXT: S_WAITCNT .Vmcnt_0_Expcnt_0_Lgkmcnt_0
|
|
; GCN-NEXT: renamable $vgpr2 = V_CVT_SCALEF32_PK_FP4_F16_e64 8, $vgpr0, 0, $vgpr1, 4, killed $vgpr2, 0, implicit $mode, implicit $exec
|
|
; GCN-NEXT: S_NOP 0
|
|
; GCN-NEXT: early-clobber renamable $vgpr4 = V_CVT_SCALEF32_SR_PK_FP4_F16_e64 8, killed $vgpr0, 0, killed $vgpr3, 4, killed $vgpr1, killed $vgpr2, 0, implicit $mode, implicit $exec
|
|
; GCN-NEXT: $vgpr0 = V_MOV_B32_e32 killed $vgpr1, implicit $exec, implicit $exec
|
|
; GCN-NEXT: S_SETPC_B64_return undef $sgpr30_sgpr31, implicit killed $vgpr0
|
|
S_WAITCNT 0
|
|
renamable $vgpr2 = V_CVT_SCALEF32_PK_FP4_F16_e64 8, $vgpr0, 0, $vgpr1, 4, killed $vgpr2, 0, implicit $mode, implicit $exec
|
|
early-clobber renamable $vgpr4 = V_CVT_SCALEF32_SR_PK_FP4_F16_e64 8, killed $vgpr0, 0, killed $vgpr3, 4, killed $vgpr1, killed $vgpr2, 0, implicit $mode, implicit $exec
|
|
$vgpr0 = V_MOV_B32_e32 killed $vgpr1, implicit $exec, implicit $exec
|
|
S_SETPC_B64_return undef $sgpr30_sgpr31, implicit killed $vgpr0
|
|
...
|
|
|
|
---
|
|
name: test_cvt_scale_cvt_scale_waw_hazard
|
|
body: |
|
|
bb.0:
|
|
liveins: $vgpr0, $vgpr1, $vgpr2, $vgpr3
|
|
; GCN-LABEL: name: test_cvt_scale_cvt_scale_waw_hazard
|
|
; GCN: liveins: $vgpr0, $vgpr1, $vgpr2, $vgpr3
|
|
; GCN-NEXT: {{ $}}
|
|
; GCN-NEXT: S_WAITCNT .Vmcnt_0_Expcnt_0_Lgkmcnt_0
|
|
; GCN-NEXT: renamable $vgpr2 = V_CVT_SCALEF32_PK_FP4_F16_e64 8, $vgpr0, 0, $vgpr1, 4, killed $vgpr2, 0, implicit $mode, implicit $exec
|
|
; GCN-NEXT: S_NOP 0
|
|
; GCN-NEXT: early-clobber renamable $vgpr2 = V_CVT_SCALEF32_SR_PK_FP4_F16_e64 8, killed $vgpr0, 0, killed $vgpr3, 4, killed $vgpr1, killed $vgpr1, 0, implicit $mode, implicit $exec
|
|
; GCN-NEXT: S_SETPC_B64_return undef $sgpr30_sgpr31, implicit killed $vgpr0
|
|
S_WAITCNT 0
|
|
renamable $vgpr2 = V_CVT_SCALEF32_PK_FP4_F16_e64 8, $vgpr0, 0, $vgpr1, 4, killed $vgpr2, 0, implicit $mode, implicit $exec
|
|
early-clobber renamable $vgpr2 = V_CVT_SCALEF32_SR_PK_FP4_F16_e64 8, killed $vgpr0, 0, killed $vgpr3, 4, killed $vgpr1, killed $vgpr1, 0, implicit $mode, implicit $exec
|
|
S_SETPC_B64_return undef $sgpr30_sgpr31, implicit killed $vgpr0
|
|
...
|