brintos

brintos / llvm-project-archived public Read only

0
0
Text · 2.1 KiB · 1de4db1 Raw
120 lines · plain
1// RUN: %clang_cc1 -std=hlsl2021 -finclude-default-header -x hlsl -triple dxil-pc-shadermodel6.3-library %s -fnative-half-type -fsyntax-only -verify -verify-ignore-unexpected=warning2 3struct S0 {4  half a;5  half b;6  half c;7  half d;8  half e;9  half f;10  half g;11  half h;12};13 14cbuffer CB0Pass {15  S0 s0p : packoffset(c0.x);16  float f0p : packoffset(c1.x);17}18 19cbuffer CB0Fail {20  S0 s0f : packoffset(c0.x);21  float f0f : packoffset(c0.w);22  // expected-error@-1 {{packoffset overlap between 'f0f', 's0f'}}23}24 25struct S1 {26  float a;27  double b;28  float c;29};30 31cbuffer CB1Pass {32  S1 s1p : packoffset(c0.x);33  float f1p : packoffset(c1.y);34}35 36cbuffer CB1Fail {37  S1 s1f : packoffset(c0.x);38  float f1f : packoffset(c1.x);39  // expected-error@-1 {{packoffset overlap between 'f1f', 's1f'}}40}41 42struct S2 {43  float3 a;44  float2 b;45};46 47cbuffer CB2Pass {48  S2 s2p : packoffset(c0.x);49  float f2p : packoffset(c1.z);50}51 52cbuffer CB2Fail {53  S2 s2f : packoffset(c0.x);54  float f2f : packoffset(c1.y);55  // expected-error@-1 {{packoffset overlap between 'f2f', 's2f'}}56}57 58struct S3 {59  float3 a;60  float b;61};62 63cbuffer CB3Pass {64  S3 s3p : packoffset(c0.x);65  float f3p : packoffset(c1.x);66}67 68cbuffer CB3Fail {69  S3 s3f : packoffset(c0.x);70  float f3f : packoffset(c0.w);71  // expected-error@-1 {{packoffset overlap between 'f3f', 's3f'}}72}73 74struct S4 {75  float2 a;76  float2 b;77};78 79cbuffer CB4Pass {80  S4 s4p : packoffset(c0.x);81  float f4p : packoffset(c1.x);82}83 84cbuffer CB4Fail {85  S4 s4f : packoffset(c0.x);86  float f4f : packoffset(c0.w);87  // expected-error@-1 {{packoffset overlap between 'f4f', 's4f'}}88}89 90struct S5 {91  float a[3];92};93 94cbuffer CB5Pass {95  S5 s5p : packoffset(c0.x);96  float f5p : packoffset(c2.y);97}98 99cbuffer CB5Fail {100  S5 s5f : packoffset(c0.x);101  float f5f : packoffset(c2.x);102  // expected-error@-1 {{packoffset overlap between 'f5f', 's5f'}}103}104 105struct S6 {106  float a;107  float2 b;108};109 110cbuffer CB6Pass {111  S6 s6p : packoffset(c0.x);112  float f6p : packoffset(c0.w);113}114 115cbuffer CB6Fail {116  S6 s6f : packoffset(c0.x);117  float f6f : packoffset(c0.y);118  // expected-error@-1 {{packoffset overlap between 'f6f', 's6f'}}119}120