75 lines · plain
1// RUN: %clang_cc1 -triple dxil-pc-shadermodel6.3-compute -x hlsl -hlsl-entry cs1 -o - %s -ast-dump -verify | FileCheck -DSHADERFN=cs1 -check-prefix=CHECK-ENV %s2// RUN: %clang_cc1 -triple dxil-pc-shadermodel6.3-compute -x hlsl -hlsl-entry cs2 -o - %s -ast-dump -verify | FileCheck -DSHADERFN=cs2 -check-prefix=CHECK-ENV %s3// RUN: %clang_cc1 -triple dxil-pc-shadermodel6.3-compute -x hlsl -hlsl-entry cs3 -o - %s -ast-dump -verify | FileCheck -DSHADERFN=cs3 -check-prefix=CHECK-ENV %s4// RUN: %clang_cc1 -triple dxil-pc-shadermodel6.3-library -x hlsl -o - %s -ast-dump -verify | FileCheck -check-prefix=CHECK-LIB %s5 6// expected-no-diagnostics7 8// CHECK-ENV: FunctionDecl [[PROTO:0x[0-9a-f]+]] {{.*}} [[SHADERFN]] 'void ()'9// CHECK-ENV: FunctionDecl 0x{{.*}} prev [[PROTO]] {{.*}} [[SHADERFN]] 'void ()'10// CHECK-ENV-NEXT: CompoundStmt 0x11// CHECK-ENV-NEXT: HLSLNumThreadsAttr 0x12// CHECK-ENV-NEXT: HLSLShaderAttr 0x{{.*}} Implicit Compute13void cs1();14[numthreads(1,1,1)] void cs1() {}15[numthreads(1,1,1)] void cs2();16void cs2() {}17[numthreads(1,1,1)] void cs3();18[numthreads(1,1,1)] void cs3() {}19 20// CHECK-LIB: FunctionDecl [[PROTO:0x[0-9a-f]+]] {{.*}} s1 'void ()'21// CHECK-LIB: FunctionDecl 0x{{.*}} prev [[PROTO]] {{.*}} s1 'void ()'22// CHECK-LIB-NEXT: CompoundStmt 0x23// CHECK-LIB-NEXT: HLSLShaderAttr 0x{{.*}} Compute24// CHECK-LIB-NEXT: HLSLNumThreadsAttr 0x25void s1();26[shader("compute"), numthreads(1,1,1)] void s1() {}27 28// CHECK-LIB: FunctionDecl [[PROTO:0x[0-9a-f]+]] {{.*}} s2 'void ()'29// CHECK-LIB: FunctionDecl 0x{{.*}} prev [[PROTO]] {{.*}} s2 'void ()'30// CHECK-LIB-NEXT: CompoundStmt 0x31// CHECK-LIB-NEXT: HLSLShaderAttr 0x{{.*}} Compute32// CHECK-LIB-NEXT: HLSLNumThreadsAttr 0x33[shader("compute")] void s2();34[shader("compute"), numthreads(1,1,1)] void s2() {}35 36// CHECK-LIB: FunctionDecl [[PROTO:0x[0-9a-f]+]] {{.*}} s3 'void ()'37// CHECK-LIB: FunctionDecl 0x{{.*}} prev [[PROTO]] {{.*}} s3 'void ()'38// CHECK-LIB-NEXT: CompoundStmt 0x39// CHECK-LIB-NEXT: HLSLShaderAttr 0x{{.*}} Compute40// CHECK-LIB-NEXT: HLSLNumThreadsAttr 0x41[numthreads(1,1,1)] void s3();42[shader("compute"), numthreads(1,1,1)] void s3() {}43 44// CHECK-LIB: FunctionDecl [[PROTO:0x[0-9a-f]+]] {{.*}} s4 'void ()'45// CHECK-LIB: FunctionDecl 0x{{.*}} prev [[PROTO]] {{.*}} s4 'void ()'46// CHECK-LIB-NEXT: CompoundStmt 0x47// CHECK-LIB-NEXT: HLSLShaderAttr 0x{{.*}} Compute48// CHECK-LIB-NEXT: HLSLNumThreadsAttr 0x49[shader("compute"), numthreads(1,1,1)] void s4();50[shader("compute")][numthreads(1,1,1)] void s4() {}51 52// CHECK-LIB: FunctionDecl [[PROTO:0x[0-9a-f]+]] {{.*}} s5 'void ()'53// CHECK-LIB: FunctionDecl 0x{{.*}} prev [[PROTO]] {{.*}} s5 'void ()'54// CHECK-LIB-NEXT: CompoundStmt 0x55// CHECK-LIB-NEXT: HLSLShaderAttr 0x{{.*}} Inherited Compute56// CHECK-LIB-NEXT: HLSLNumThreadsAttr 0x57[shader("compute"), numthreads(1,1,1)] void s5();58void s5() {}59 60// CHECK-LIB: FunctionDecl [[PROTO:0x[0-9a-f]+]] {{.*}} s6 'void ()'61// CHECK-LIB: FunctionDecl 0x{{.*}} prev [[PROTO]] {{.*}} s6 'void ()'62// CHECK-LIB-NEXT: CompoundStmt 0x63// CHECK-LIB-NEXT: HLSLNumThreadsAttr 0x64// CHECK-LIB-NEXT: HLSLShaderAttr 0x{{.*}} Compute65[shader("compute"), numthreads(1,1,1)] void s6();66[shader("compute")] void s6() {}67 68// CHECK-LIB: FunctionDecl [[PROTO:0x[0-9a-f]+]] {{.*}} s7 'void ()'69// CHECK-LIB: FunctionDecl 0x{{.*}} prev [[PROTO]] {{.*}} s7 'void ()'70// CHECK-LIB-NEXT: CompoundStmt 0x71// CHECK-LIB-NEXT: HLSLShaderAttr 0x{{.*}} Inherited Compute72// CHECK-LIB-NEXT: HLSLNumThreadsAttr 0x73[shader("compute"), numthreads(1,1,1)] void s7();74[numthreads(1,1,1)] void s7() {}75