summaryrefslogtreecommitdiffstats
path: root/llvm/test/CodeGen/AMDGPU
diff options
context:
space:
mode:
authorMatt Arsenault <Matthew.Arsenault@amd.com>2018-06-25 14:29:04 +0000
committerMatt Arsenault <Matthew.Arsenault@amd.com>2018-06-25 14:29:04 +0000
commit73eeb42e50cdc81c0c148b399da0ef0aaf6e8731 (patch)
tree3570ddb25838a8a3afed824bae77fe8a3f1c1646 /llvm/test/CodeGen/AMDGPU
parent1286c535bc865d201d9b870a0fe1e7f7323bca15 (diff)
downloadbcm5719-llvm-73eeb42e50cdc81c0c148b399da0ef0aaf6e8731.tar.gz
bcm5719-llvm-73eeb42e50cdc81c0c148b399da0ef0aaf6e8731.zip
AMDGPU: Respect align argument parameter
This should avoid relying on the pointee type to get the alignment, particularly since pointee types are supposed to be removed at some point. Also fixes not getting the alignment for unsized types. llvm-svn: 335478
Diffstat (limited to 'llvm/test/CodeGen/AMDGPU')
-rw-r--r--llvm/test/CodeGen/AMDGPU/hsa-metadata-from-llvm-ir-full.ll115
1 files changed, 114 insertions, 1 deletions
diff --git a/llvm/test/CodeGen/AMDGPU/hsa-metadata-from-llvm-ir-full.ll b/llvm/test/CodeGen/AMDGPU/hsa-metadata-from-llvm-ir-full.ll
index e9c26744afc..0619d3f30ad 100644
--- a/llvm/test/CodeGen/AMDGPU/hsa-metadata-from-llvm-ir-full.ll
+++ b/llvm/test/CodeGen/AMDGPU/hsa-metadata-from-llvm-ir-full.ll
@@ -1248,6 +1248,13 @@ define amdgpu_kernel void @test_arg_unknown_builtin_type(
; CHECK-NEXT: PointeeAlign: 16
; CHECK-NEXT: AddrSpaceQual: Local
; CHECK-NEXT: AccQual: Default
+; CHECK-NEXT: - Name: h
+; CHECK-NEXT: Size: 4
+; CHECK-NEXT: Align: 4
+; CHECK-NEXT: ValueKind: DynamicSharedPointer
+; CHECK-NEXT: ValueType: Struct
+; CHECK-NEXT: PointeeAlign: 1
+; CHECK-NEXT: AddrSpaceQual: Local
; CHECK-NEXT: - Size: 8
; CHECK-NEXT: Align: 8
; CHECK-NEXT: ValueKind: HiddenGlobalOffsetX
@@ -1271,12 +1278,118 @@ define amdgpu_kernel void @test_pointee_align(i64 addrspace(1)* %a,
<3 x i8> addrspace(3)* %d,
<4 x i8> addrspace(3)* %e,
<8 x i8> addrspace(3)* %f,
- <16 x i8> addrspace(3)* %g)
+ <16 x i8> addrspace(3)* %g,
+ {} addrspace(3)* %h)
!kernel_arg_addr_space !91 !kernel_arg_access_qual !92 !kernel_arg_type !93
!kernel_arg_base_type !93 !kernel_arg_type_qual !94 {
ret void
}
+; CHECK: - Name: test_pointee_align_attribute
+; CHECK-NEXT: SymbolName: 'test_pointee_align_attribute@kd'
+; CHECK-NEXT: Language: OpenCL C
+; CHECK-NEXT: LanguageVersion: [ 2, 0 ]
+; CHECK-NEXT: Args:
+; CHECK-NEXT: - Name: a
+; CHECK-NEXT: TypeName: 'long addrspace(5)*'
+; CHECK-NEXT: Size: 8
+; CHECK-NEXT: Align: 8
+; CHECK-NEXT: ValueKind: GlobalBuffer
+; CHECK-NEXT: ValueType: I64
+; CHECK-NEXT: AddrSpaceQual: Global
+; CHECK-NEXT: AccQual: Default
+; CHECK-NEXT: - Name: b
+; CHECK-NEXT: TypeName: 'char addrspace(5)*'
+; CHECK-NEXT: Size: 4
+; CHECK-NEXT: Align: 4
+; CHECK-NEXT: ValueKind: DynamicSharedPointer
+; CHECK-NEXT: ValueType: I8
+; CHECK-NEXT: PointeeAlign: 8
+; CHECK-NEXT: AddrSpaceQual: Local
+; CHECK-NEXT: AccQual: Default
+; CHECK-NEXT: - Name: c
+; CHECK-NEXT: TypeName: 'char2 addrspace(5)*'
+; CHECK-NEXT: Size: 4
+; CHECK-NEXT: Align: 4
+; CHECK-NEXT: ValueKind: DynamicSharedPointer
+; CHECK-NEXT: ValueType: I8
+; CHECK-NEXT: PointeeAlign: 32
+; CHECK-NEXT: AddrSpaceQual: Local
+; CHECK-NEXT: AccQual: Default
+; CHECK-NEXT: - Name: d
+; CHECK-NEXT: TypeName: 'char3 addrspace(5)*'
+; CHECK-NEXT: Size: 4
+; CHECK-NEXT: Align: 4
+; CHECK-NEXT: ValueKind: DynamicSharedPointer
+; CHECK-NEXT: ValueType: I8
+; CHECK-NEXT: PointeeAlign: 64
+; CHECK-NEXT: AddrSpaceQual: Local
+; CHECK-NEXT: AccQual: Default
+; CHECK-NEXT: - Name: e
+; CHECK-NEXT: TypeName: 'char4 addrspace(5)*'
+; CHECK-NEXT: Size: 4
+; CHECK-NEXT: Align: 4
+; CHECK-NEXT: ValueKind: DynamicSharedPointer
+; CHECK-NEXT: ValueType: I8
+; CHECK-NEXT: PointeeAlign: 256
+; CHECK-NEXT: AddrSpaceQual: Local
+; CHECK-NEXT: AccQual: Default
+; CHECK-NEXT: - Name: f
+; CHECK-NEXT: TypeName: 'char8 addrspace(5)*'
+; CHECK-NEXT: Size: 4
+; CHECK-NEXT: Align: 4
+; CHECK-NEXT: ValueKind: DynamicSharedPointer
+; CHECK-NEXT: ValueType: I8
+; CHECK-NEXT: PointeeAlign: 128
+; CHECK-NEXT: AddrSpaceQual: Local
+; CHECK-NEXT: AccQual: Default
+; CHECK-NEXT: - Name: g
+; CHECK-NEXT: TypeName: 'char16 addrspace(5)*'
+; CHECK-NEXT: Size: 4
+; CHECK-NEXT: Align: 4
+; CHECK-NEXT: ValueKind: DynamicSharedPointer
+; CHECK-NEXT: ValueType: I8
+; CHECK-NEXT: PointeeAlign: 1024
+; CHECK-NEXT: AddrSpaceQual: Local
+; CHECK-NEXT: AccQual: Default
+; CHECK-NEXT: - Name: h
+; CHECK-NEXT: Size: 4
+; CHECK-NEXT: Align: 4
+; CHECK-NEXT: ValueKind: DynamicSharedPointer
+; CHECK-NEXT: ValueType: Struct
+; CHECK-NEXT: PointeeAlign: 16
+; CHECK-NEXT: AddrSpaceQual: Local
+; CHECK-NEXT: - Size: 8
+; CHECK-NEXT: Align: 8
+; CHECK-NEXT: ValueKind: HiddenGlobalOffsetX
+; CHECK-NEXT: ValueType: I64
+; CHECK-NEXT: - Size: 8
+; CHECK-NEXT: Align: 8
+; CHECK-NEXT: ValueKind: HiddenGlobalOffsetY
+; CHECK-NEXT: ValueType: I64
+; CHECK-NEXT: - Size: 8
+; CHECK-NEXT: Align: 8
+; CHECK-NEXT: ValueKind: HiddenGlobalOffsetZ
+; CHECK-NEXT: ValueType: I64
+; CHECK-NEXT: - Size: 8
+; CHECK-NEXT: Align: 8
+; CHECK-NEXT: ValueKind: HiddenPrintfBuffer
+; CHECK-NEXT: ValueType: I8
+; CHECK-NEXT: AddrSpaceQual: Global
+define amdgpu_kernel void @test_pointee_align_attribute(i64 addrspace(1)* align 16 %a,
+ i8 addrspace(3)* align 8 %b,
+ <2 x i8> addrspace(3)* align 32 %c,
+ <3 x i8> addrspace(3)* align 64 %d,
+ <4 x i8> addrspace(3)* align 256 %e,
+ <8 x i8> addrspace(3)* align 128 %f,
+ <16 x i8> addrspace(3)* align 1024 %g,
+ {} addrspace(3)* align 16 %h)
+ !kernel_arg_addr_space !91 !kernel_arg_access_qual !92 !kernel_arg_type !93
+ !kernel_arg_base_type !93 !kernel_arg_type_qual !94 {
+ ret void
+}
+
+
; CHECK: - Name: __test_block_invoke_kernel
; CHECK-NEXT: SymbolName: '__test_block_invoke_kernel@kd'
; CHECK-NEXT: Language: OpenCL C
OpenPOWER on IntegriCloud