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
95 lines
5.0 KiB
LLVM
95 lines
5.0 KiB
LLVM
; RUN: llc -mtriple=amdgcn-amd-amdhsa -mcpu=gfx942 -filetype=obj < %s | llvm-objdump -s -j .rodata - | FileCheck --check-prefix=OBJDUMP %s
|
|
; RUN: llc -mtriple=amdgcn-amd-amdhsa -mcpu=gfx942 < %s | FileCheck --check-prefix=ASM %s
|
|
; RUN: llc -mtriple=amdgcn-amd-amdhsa -mcpu=gfx1250 -filetype=obj < %s | llvm-objdump -s -j .rodata - | FileCheck --check-prefix=GFX1250-OBJDUMP %s
|
|
; RUN: llc -mtriple=amdgcn-amd-amdhsa -mcpu=gfx1250 < %s | FileCheck --check-prefix=GFX1250-ASM %s
|
|
|
|
; OBJDUMP: Contents of section .rodata:
|
|
; OBJDUMP-NEXT: 0000 00000000 00000000 10010000 00000000 ................
|
|
; OBJDUMP-NEXT: 0010 00000000 00000000 00000000 00000000 ................
|
|
; OBJDUMP-NEXT: 0020 00000000 00000000 00000000 00000000 ................
|
|
; OBJDUMP-NOT: 0030 0000af00 94130000 1a000400 00000000 ................
|
|
; OBJDUMP-NEXT: 0030 8000af00 98130000 1e000400 00000000 ................
|
|
|
|
; ASM-LABEL: amdhsa_kernarg_preload_4_implicit_6:
|
|
; ASM: .amdhsa_user_sgpr_count 12
|
|
; ASM: .amdhsa_next_free_sgpr 12
|
|
; ASM: ; TotalNumSgprs: 18
|
|
; ASM: ; NumSGPRsForWavesPerEU: 18
|
|
|
|
; Test that we include preloaded SGPRs in the GRANULATED_WAVEFRONT_SGPR_COUNT
|
|
; feild that are not explicitly referenced in the kernel. This test has 6 implicit
|
|
; user SPGRs enabled, 4 preloaded kernarg SGPRs, plus 6 extra SGPRs allocated
|
|
; for flat scratch, ect. The total number of allocated SGPRs encoded in the
|
|
; kernel descriptor should be 16. That's a 1 in the KD field since the granule
|
|
; size is 8 and it's NumGranules - 1. The encoding for that looks like '40'.
|
|
|
|
define amdgpu_kernel void @amdhsa_kernarg_preload_4_implicit_6(i128 inreg) { ret void }
|
|
|
|
; OBJDUMP-NEXT: 0040 00000000 00000000 20010000 00000000 ........ .......
|
|
; OBJDUMP-NEXT: 0050 00000000 00000000 00000000 00000000 ................
|
|
; OBJDUMP-NEXT: 0060 00000000 00000000 00000000 00000000 ................
|
|
; OBJDUMP-NEXT: 0070 4000af00 94000000 08000800 00000000 @...............
|
|
|
|
; ASM-LABEL: amdhsa_kernarg_preload_8_implicit_2:
|
|
; ASM: .amdhsa_user_sgpr_count 10
|
|
; ASM: .amdhsa_next_free_sgpr 10
|
|
; ASM: ; TotalNumSgprs: 16
|
|
; ASM: ; NumSGPRsForWavesPerEU: 16
|
|
|
|
; Only the kernarg_ptr is enabled so we should have 8 preload kernarg SGPRs, 2
|
|
; implicit, and 6 extra.
|
|
|
|
define amdgpu_kernel void @amdhsa_kernarg_preload_8_implicit_2(i256 inreg) #0 { ret void }
|
|
|
|
; OBJDUMP-NEXT: 0080 00000000 00000000 08010000 00000000 ................
|
|
; OBJDUMP-NEXT: 0090 00000000 00000000 00000000 00000000 ................
|
|
; OBJDUMP-NEXT: 00a0 00000000 00000000 00000000 00000000 ................
|
|
; OBJDUMP-NEXT: 00b0 4000af00 86000000 08000100 00000000 @...............
|
|
|
|
; ASM-LABEL: amdhsa_kernarg_preload_1_implicit_2:
|
|
; ASM: .amdhsa_user_sgpr_count 3
|
|
; ASM: .amdhsa_next_free_sgpr 3
|
|
; ASM: ; TotalNumSgprs: 9
|
|
; ASM: ; NumSGPRsForWavesPerEU: 9
|
|
|
|
; 1 preload, 2 implicit, 6 extra. Rounds up to 16 SGPRs in the KD.
|
|
|
|
define amdgpu_kernel void @amdhsa_kernarg_preload_1_implicit_2(i32 inreg) #0 { ret void }
|
|
|
|
; OBJDUMP-NEXT: 00c0 00000000 00000000 08010000 00000000 ................
|
|
; OBJDUMP-NEXT: 00d0 00000000 00000000 00000000 00000000 ................
|
|
; OBJDUMP-NEXT: 00e0 00000000 00000000 00000000 00000000 ................
|
|
; OBJDUMP-NEXT: 00f0 0000af00 84000000 08000000 00000000 ................
|
|
|
|
; ASM-LABEL: amdhsa_kernarg_preload_0_implicit_2:
|
|
; ASM: .amdhsa_user_sgpr_count 2
|
|
; ASM: .amdhsa_next_free_sgpr 0
|
|
; ASM: ; TotalNumSgprs: 6
|
|
; ASM: ; NumSGPRsForWavesPerEU: 6
|
|
|
|
; 0 preload kernarg SGPRs, 2 implicit, 6 extra. Rounds up to 8 SGPRs in the KD.
|
|
; Encoded like '00'.
|
|
|
|
define amdgpu_kernel void @amdhsa_kernarg_preload_0_implicit_2(i32) #0 { ret void }
|
|
|
|
; GFX1250-OBJDUMP: 0100 00000000 00000000 90010000 00000000 ................
|
|
; GFX1250-OBJDUMP: 0110 00000000 00000000 00000000 00000000 ................
|
|
; GFX1250-OBJDUMP: 0120 00000000 00000000 00000000 10000000 ................
|
|
; GFX1250-OBJDUMP: 0130 00000fc0 c0130000 1e041800 00000000 ................
|
|
; GFX1250-ASM: .sgpr_count: 32
|
|
define amdgpu_kernel void @many__i32(
|
|
i32 inreg %a0, i32 inreg %a1, i32 inreg %a2, i32 inreg %a3,
|
|
i32 inreg %a4, i32 inreg %a5, i32 inreg %a6, i32 inreg %a7,
|
|
i32 inreg %a8, i32 inreg %a9, i32 inreg %a10, i32 inreg %a11,
|
|
i32 inreg %a12, i32 inreg %a13, i32 inreg %a14, i32 inreg %a15,
|
|
i32 inreg %a16, i32 inreg %a17, i32 inreg %a18, i32 inreg %a19,
|
|
i32 inreg %a20, i32 inreg %a21, i32 inreg %a22, i32 inreg %a23,
|
|
i32 inreg %a24, i32 inreg %a25, i32 inreg %a26, i32 inreg %a27,
|
|
i32 inreg %a28, i32 inreg %a29, i32 inreg %a30, i32 inreg %a31,
|
|
i32 inreg %a32, i32 inreg %a33, i32 inreg %a34, i32 inreg %a35) {
|
|
ret void
|
|
}
|
|
|
|
|
|
attributes #0 = { "amdgpu-agpr-alloc"="0" "amdgpu-no-completion-action" "amdgpu-no-default-queue" "amdgpu-no-dispatch-id" "amdgpu-no-dispatch-ptr" "amdgpu-no-heap-ptr" "amdgpu-no-hostcall-ptr" "amdgpu-no-lds-kernel-id" "amdgpu-no-multigrid-sync-arg" "amdgpu-no-queue-ptr" "amdgpu-no-workgroup-id-x" "amdgpu-no-cluster-id-x" "amdgpu-no-workgroup-id-y" "amdgpu-no-cluster-id-y" "amdgpu-no-workgroup-id-z" "amdgpu-no-cluster-id-z" "amdgpu-no-workitem-id-x" "amdgpu-no-workitem-id-y" "amdgpu-no-workitem-id-z" }
|