================
@@ -1,109 +1,28 @@
 // RUN: %clang_cc1 -triple dxil-pc-shadermodel6.6-library 
-finclude-default-header -fnative-half-type -verify %s
 // expected-no-diagnostics
 
-struct oneInt {
-    int i;
-};
-
-struct twoInt {
-   int aa;
-   int ab;
-};
-
-struct threeInts {
-  oneInt o;
-  twoInt t;
-};
-
-struct oneFloat {
-    float f;
-};
-struct depthDiff {
-  int i;
-  oneInt o;
-  oneFloat f;
-};
-
-struct notHomogenous{     
-  int i;
-  float f;
-};
-
-struct EightElements {
-  twoInt x[2];
-  twoInt y[2];
-};
-
-struct EightHalves {
-half x[8]; 
-};
-
-struct intVec {
-  int2 i;
-};
-
-struct oneIntWithVec {
-  int i;
-  oneInt i2;
-  int2 i3;
-};
-
-struct weirdStruct {
-  int i;
-  intVec iv;
-};
 
 _Static_assert(__builtin_hlsl_is_typed_resource_element_compatible(int), "");
 _Static_assert(__builtin_hlsl_is_typed_resource_element_compatible(float), "");
 _Static_assert(__builtin_hlsl_is_typed_resource_element_compatible(float4), 
"");
 _Static_assert(__builtin_hlsl_is_typed_resource_element_compatible(double2), 
"");
-_Static_assert(__builtin_hlsl_is_typed_resource_element_compatible(oneInt), 
"");
-_Static_assert(__builtin_hlsl_is_typed_resource_element_compatible(oneFloat), 
"");
-_Static_assert(__builtin_hlsl_is_typed_resource_element_compatible(twoInt), 
"");
-_Static_assert(__builtin_hlsl_is_typed_resource_element_compatible(threeInts), 
"");
-_Static_assert(!__builtin_hlsl_is_typed_resource_element_compatible(notHomogenous),
 "");
-_Static_assert(!__builtin_hlsl_is_typed_resource_element_compatible(depthDiff),
 "");
-_Static_assert(!__builtin_hlsl_is_typed_resource_element_compatible(EightElements),
 "");
-_Static_assert(!__builtin_hlsl_is_typed_resource_element_compatible(EightHalves),
 "");
-_Static_assert(__builtin_hlsl_is_typed_resource_element_compatible(oneIntWithVec),
 "");
-_Static_assert(__builtin_hlsl_is_typed_resource_element_compatible(weirdStruct),
 "");
-_Static_assert(!__builtin_hlsl_is_typed_resource_element_compatible(RWBuffer<int>),
 "");
-
-
-// arrays not allowed
-_Static_assert(!__builtin_hlsl_is_typed_resource_element_compatible(half[4]), 
"");
-
-template<typename T> struct TemplatedBuffer {
-    T a;
-    __hlsl_resource_t h;
-};
-_Static_assert(!__builtin_hlsl_is_typed_resource_element_compatible(TemplatedBuffer<int>),
 "");
-
-struct MyStruct1 : TemplatedBuffer<float> {
-    float x;
-};
-_Static_assert(!__builtin_hlsl_is_typed_resource_element_compatible(MyStruct1),
 "");
 
-struct MyStruct2 {
-    const TemplatedBuffer<float> TB[10];
-};
-_Static_assert(!__builtin_hlsl_is_typed_resource_element_compatible(MyStruct2),
 "");
+_Static_assert(!__builtin_hlsl_is_typed_resource_element_compatible(RWBuffer<int>),
 "");
 
-template<typename T> struct SimpleTemplate {
-    T a;
+struct s {
+    int x;
 };
 
-// though the element type is incomplete, the type trait should still 
technically return true
-_Static_assert(__builtin_hlsl_is_typed_resource_element_compatible(SimpleTemplate<__hlsl_resource_t>),
 "");
-
-_Static_assert(__builtin_hlsl_is_typed_resource_element_compatible(SimpleTemplate<float>),
 "");
+// structs not allowed
+_Static_assert(!__builtin_hlsl_is_typed_resource_element_compatible(s), "");
 
+// arrays not allowed
+_Static_assert(!__builtin_hlsl_is_typed_resource_element_compatible(half[4]), 
"");
 
-typedef int myInt;
+typedef vector<int, 8> int8;
+// too many elements
+_Static_assert(!__builtin_hlsl_is_typed_resource_element_compatible(int8), "");
 
-struct TypeDefTest {
-    int x;
-    myInt y;
-};
+// size exceeds 16 bytes, and exceeds element count limit after splitting 64 
bit types into 32 bit types
+_Static_assert(!__builtin_hlsl_is_typed_resource_element_compatible(double3), 
"");
 
-_Static_assert(__builtin_hlsl_is_typed_resource_element_compatible(TypeDefTest),
 "");
----------------
bob80905 wrote:

They could be left in and switched to false, but it doesn't seem valuable. All 
structs are disallowed, so I think just one struct test would suffice.

https://github.com/llvm/llvm-project/pull/115045
_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to