diff options
| author | Matt Arsenault <Matthew.Arsenault@amd.com> | 2018-06-25 14:29:04 +0000 | 
|---|---|---|
| committer | Matt Arsenault <Matthew.Arsenault@amd.com> | 2018-06-25 14:29:04 +0000 | 
| commit | 73eeb42e50cdc81c0c148b399da0ef0aaf6e8731 (patch) | |
| tree | 3570ddb25838a8a3afed824bae77fe8a3f1c1646 /llvm/test/CodeGen/AMDGPU | |
| parent | 1286c535bc865d201d9b870a0fe1e7f7323bca15 (diff) | |
| download | bcm5719-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.ll | 115 | 
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  | 

