brintos

brintos / llvm-project-archived public Read only

0
0
Text · 3.3 KiB · 05b9272 Raw
103 lines · plain
1// RUN: %clang_cc1 -triple dxil-unknown-shadermodel6.3-library -S -finclude-default-header -fnative-half-type -fnative-int16-type -ast-dump  -x hlsl %s | FileCheck %s2 3 4// CHECK: HLSLBufferDecl {{.*}} cbuffer A5cbuffer A6{7    // CHECK-NEXT:-HLSLResourceClassAttr {{.*}} Implicit CBuffer8    // CHECK-NEXT: HLSLResourceBindingAttr {{.*}} Implicit "" "0"9    // CHECK-NEXT: VarDecl {{.*}} A1 'hlsl_constant float4'10    // CHECK-NEXT: HLSLPackOffsetAttr {{.*}} 0 011    float4 A1 : packoffset(c);12    // CHECK-NEXT: VarDecl {{.*}} col:11 A2 'hlsl_constant float'13    // CHECK-NEXT: HLSLPackOffsetAttr {{.*}} 1 014    float A2 : packoffset(c1);15    // CHECK-NEXT: VarDecl {{.*}} col:11 A3 'hlsl_constant float'16    // CHECK-NEXT: HLSLPackOffsetAttr {{.*}} 1 117    float A3 : packoffset(c1.y);18}19 20// CHECK: HLSLBufferDecl {{.*}} cbuffer B21cbuffer B22{23    // CHECK: VarDecl {{.*}} B0 'hlsl_constant float'24    // CHECK-NEXT: HLSLPackOffsetAttr {{.*}} 0 125    float B0 : packoffset(c0.g);26    // CHECK-NEXT: VarDecl {{.*}} B1 'hlsl_constant double'27    // CHECK-NEXT: HLSLPackOffsetAttr {{.*}} 0 228	double B1 : packoffset(c0.b);29    // CHECK-NEXT: VarDecl {{.*}} B2 'hlsl_constant half'30    // CHECK-NEXT: HLSLPackOffsetAttr {{.*}} 0 031	half B2 : packoffset(c0.r);32}33 34// CHECK: HLSLBufferDecl {{.*}} cbuffer C35cbuffer C36{37    // CHECK: VarDecl {{.*}} C0 'hlsl_constant float'38    // CHECK-NEXT: HLSLPackOffsetAttr {{.*}} 139    float C0 : packoffset(c0.y);40    // CHECK-NEXT: VarDecl {{.*}} C1 'hlsl_constant float2'41    // CHECK-NEXT: HLSLPackOffsetAttr {{.*}} 242	float2 C1 : packoffset(c0.z);43    // CHECK-NEXT: VarDecl {{.*}} C2 'hlsl_constant half'44    // CHECK-NEXT: HLSLPackOffsetAttr {{.*}} 045	half C2 : packoffset(c0.x);46}47 48 49// CHECK: HLSLBufferDecl {{.*}} cbuffer D50cbuffer D51{52    // CHECK: VarDecl {{.*}} D0 'hlsl_constant float'53    // CHECK-NEXT: HLSLPackOffsetAttr {{.*}} 0 154    float D0 : packoffset(c0.y);55    // CHECK-NEXT: VarDecl {{.*}} D1 'hlsl_constant float[2]'56    // CHECK-NEXT: HLSLPackOffsetAttr {{.*}} 1 057	float D1[2] : packoffset(c1.x);58    // CHECK-NEXT: VarDecl {{.*}} D2 'hlsl_constant half3'59    // CHECK-NEXT: HLSLPackOffsetAttr {{.*}} 2 160	half3 D2 : packoffset(c2.y);61    // CHECK-NEXT: VarDecl {{.*}} D3 'hlsl_constant double'62    // CHECK-NEXT: HLSLPackOffsetAttr {{.*}} 0 263	double D3 : packoffset(c0.z);64}65 66struct ST {67  float a;68  float2 b;69  half c;70};71 72// CHECK: HLSLBufferDecl {{.*}} cbuffer S73cbuffer S {74    // CHECK: VarDecl {{.*}} S0 'hlsl_constant float'75    // CHECK-NEXT: HLSLPackOffsetAttr {{.*}} 0 176  float S0 : packoffset(c0.y);77    // CHECK: VarDecl {{.*}} S1 'hlsl_constant ST'78    // CHECK: HLSLPackOffsetAttr {{.*}} 1 079  ST S1 : packoffset(c1);80    // CHECK: VarDecl {{.*}} S2 'hlsl_constant double2'81    // CHECK-NEXT: HLSLPackOffsetAttr {{.*}} 2 082  double2 S2 : packoffset(c2);83}84 85struct ST2 {86  float s0;87  ST s1;88  half s2;89};90 91// CHECK: HLSLBufferDecl {{.*}} cbuffer S292cbuffer S2 {93    // CHECK: VarDecl {{.*}} S20 'hlsl_constant float'94    // CHECK-NEXT: HLSLPackOffsetAttr {{.*}} 0 395  float S20 : packoffset(c0.a);96    // CHECK: VarDecl {{.*}} S21 'hlsl_constant ST2'97    // CHECK: HLSLPackOffsetAttr {{.*}} 1 098  ST2 S21 : packoffset(c1);99    // CHECK: VarDecl {{.*}} S22 'hlsl_constant half'100    // CHECK-NEXT: HLSLPackOffsetAttr {{.*}} 3 1101  half S22 : packoffset(c3.y);102}103