================
@@ -0,0 +1,157 @@
+// RUN: %clang_cc1 -triple dxil-pc-shadermodel6.6-library
-finclude-default-header \
+// RUN: -emit-llvm -disable-llvm-passes -o - %s | llvm-cxxfilt | FileCheck
%s -check-prefixes=CHECK
+
+// CHECK: @[[BufA:.*]] = private unnamed_addr constant [2 x i8] c"A\00", align
1
+// CHECK: @[[BufB:.*]] = private unnamed_addr constant [2 x i8] c"B\00", align
1
+
+// one-dimensional array
+RWBuffer<float> A[2] : register(u10, space1);
+
+// multi-dimensional array
+[[vk::binding(13)]]
+RWBuffer<float> B[2][2] : register(u13, space0);
+
+void useArray(RWBuffer<float> LocalArg[2]) {
+}
+
+void useMultiArray(RWBuffer<float> LocalArg[2][2]) {
+}
+
+// CHECK-LABEL: case1
+// CHECK: %LocalOne = alloca [2 x %"class.hlsl::RWBuffer"], align 4
+// CHECK: [[ArrayTmp:%.*]] = alloca [2 x %"class.hlsl::RWBuffer"], align 4
+
+// - Initialize all resources of the global array into a local temporary.
+// CHECK: [[ArrayPtr0:%.*]] = getelementptr [2 x %"class.hlsl::RWBuffer"], ptr
[[ArrayTmp]], i32 0, i32 0
+// CHECK-NEXT: call void
@hlsl::RWBuffer<float>::__createFromBinding({{.*}})(ptr {{.*}} [[ArrayPtr0]],
i32 noundef 10, i32 noundef 1, i32 noundef 2, i32 noundef 0, ptr noundef @A.str)
----------------
hekota wrote:
Good catch!
https://github.com/llvm/llvm-project/pull/198891
_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits