| ; RUN: llc -mtriple=amdgcn-amd-amdhsa -mcpu=gfx1100 --amdgpu-memcpy-loop-unroll=100000 < %s | FileCheck --check-prefixes=GCN,GFX11 %s |
| ; RUN: llc -mtriple=amdgcn-amd-amdhsa -mcpu=gfx1200 --amdgpu-memcpy-loop-unroll=100000 < %s | FileCheck --check-prefixes=GCN,GFX12 %s |
| |
| ; GCN-LABEL: .amdhsa_kernel large |
| ; GFX11: .amdhsa_inst_pref_size 3 |
| ; GFX11: codeLenInByte = 3{{[0-9][0-9]$}} |
| ; GFX12: .amdhsa_inst_pref_size 4 |
| ; GFX12: codeLenInByte = 4{{[0-9][0-9]$}} |
| define amdgpu_kernel void @large(ptr addrspace(1) %out, ptr addrspace(1) %in) { |
| bb: |
| call void @llvm.memcpy.p1.p3.i32(ptr addrspace(1) %out, ptr addrspace(1) %in, i32 256, i1 false) |
| ret void |
| } |
| |
| ; GCN-LABEL: .amdhsa_kernel small |
| ; GCN: .amdhsa_inst_pref_size 1 |
| ; GCN: codeLenInByte = {{[0-9]$}} |
| define amdgpu_kernel void @small() { |
| bb: |
| ret void |
| } |
| |
| ; Ignore inline asm in size calculation |
| |
| ; GCN-LABEL: .amdhsa_kernel inline_asm |
| ; GCN: .amdhsa_inst_pref_size 1 |
| ; GCN: codeLenInByte = {{[0-9]$}} |
| define amdgpu_kernel void @inline_asm() { |
| bb: |
| call void asm sideeffect ".fill 256, 4, 0", ""() |
| ret void |
| } |