1// RUN: %clang_cc1 -finclude-default-header -triple dxil-pc-shadermodel6.3-library %s \ 2// RUN: -emit-llvm -disable-llvm-passes -o - | FileCheck %s 3 4// RUN: %clang_cc1 -finclude-default-header -triple spirv-pc-vulkan-library %s \ 5// RUN: -emit-llvm -disable-llvm-passes -o - | FileCheck %s 6 7// CHECK: @a = external addrspace(2) externally_initialized global float, align 4 8// CHECK: @b = external addrspace(2) externally_initialized global double, align 8 9// CHECK: @c = external addrspace(2) externally_initialized global float, align 4 10// CHECK: @d = external addrspace(2) externally_initialized global double, align 8 11 12// CHECK: @[[CB:.+]] = external constant { float, double } 13cbuffer A : register(b0, space2) { 14 float a; 15 double b; 16} 17 18// CHECK: @[[TB:.+]] = external constant { float, double } 19tbuffer A : register(t2, space1) { 20 float c; 21 double d; 22} 23 24float foo() { 25// CHECK: load float, ptr addrspace(2) @a, align 4 26// CHECK: load double, ptr addrspace(2) @b, align 8 27// CHECK: load float, ptr addrspace(2) @c, align 4 28// CHECK: load double, ptr addrspace(2) @d, align 8 29 return a + b + c*d; 30} 31 32// CHECK: !hlsl.cbufs = !{![[CBMD:[0-9]+]]} 33// CHECK: ![[CBMD]] = !{ptr @[[CB]], i32 13, i32 0, i1 false, i32 0, i32 2} 34