This PR adds `StructuredBuffer` to `HLSLExternalSemaSource.cpp`, by copying the logic from RWBuffer but just replacing the name with StructuredBuffer. The change now allows StructuredBuffers to be defined in HLSL, though they function the same as RWBuffers. Further work to apply the appropriate attributes that distinguish StructuredBuffers from other Buffer types will be deferred. This improves our position on https://github.com/llvm/llvm-project/issues/106189
13 lines
548 B
HLSL
13 lines
548 B
HLSL
// RUN: %clang_cc1 -triple spirv-vulkan-library -x hlsl -emit-llvm -disable-llvm-passes -o - %s | FileCheck %s --check-prefix=CHECK-SPIRV
|
|
|
|
StructuredBuffer<float> Buf;
|
|
|
|
// CHECK: define linkonce_odr noundef ptr @"??0?$StructuredBuffer@M@hlsl@@QAA@XZ"
|
|
// CHECK-NEXT: entry:
|
|
|
|
// CHECK: %[[HandleRes:[0-9]+]] = call ptr @llvm.dx.create.handle(i8 1)
|
|
// CHECK: store ptr %[[HandleRes]], ptr %h, align 4
|
|
|
|
// CHECK-SPIRV: %[[HandleRes:[0-9]+]] = call ptr @llvm.spv.create.handle(i8 1)
|
|
// CHECK-SPIRV: store ptr %[[HandleRes]], ptr %h, align 8
|