112 lines · plain
1// RUN: %clang_cc1 -triple dxil-pc-shadermodel6.8-library -x hlsl %s -verify2 3[shader("compute")]4[numthreads(1,1,1)]5// expected-error@+1 {{'WaveSize' attribute requires an integer argument which is a constant power of two between 4 and 128 inclusive; provided argument was 1}}6[WaveSize(1)]7void e0() {8}9 10[shader("compute")]11[numthreads(1,1,1)]12// expected-error@+1 {{'WaveSize' attribute requires an integer argument which is a constant power of two between 4 and 128 inclusive; provided argument was 2}}13[WaveSize(4, 2)]14void e1() {15}16 17[shader("compute")]18[numthreads(1,1,1)]19// expected-error@+1 {{'WaveSize' attribute requires an integer argument which is a constant power of two between 4 and 128 inclusive; provided argument was 7}}20[WaveSize(4, 8, 7)]21void e2() {22}23 24[shader("compute")]25[numthreads(1,1,1)]26// expected-error@+1 {{'WaveSize' attribute argument is invalid: min must not be greater than max}}27[WaveSize(16, 8)]28void e3() {29}30 31[shader("compute")]32[numthreads(1,1,1)]33// expected-error@+1 {{'WaveSize' attribute requires an integer argument which is a constant power of two between 16 and 128 inclusive; provided argument was 8}}34[WaveSize(16, 128, 8)]35void e4() {36}37 38[shader("compute")]39[numthreads(1,1,1)]40// expected-error@+1 {{'WaveSize' attribute requires an integer argument which is a constant power of two between 8 and 16 inclusive; provided argument was 32}}41[WaveSize(8, 16, 32)]42void e5() {43}44 45[shader("compute")]46[numthreads(1,1,1)]47// expected-error@+1 {{'WaveSize' attribute requires an integer argument which is a constant power of two between 4 and 128 inclusive; provided argument was 0}}48[WaveSize(4, 0)]49void e6() {50}51 52 53[shader("compute")]54[numthreads(1,1,1)]55// expected-error@+1 {{'WaveSize' attribute requires an integer argument which is a constant power of two between 4 and 128 inclusive; provided argument was 0}}56[WaveSize(4, 4, 0)]57void e7() {58}59 60 61[shader("compute")]62[numthreads(1,1,1)]63// expected-error@+1 {{'WaveSize' attribute minimum and maximum arguments are equal}}64[WaveSize(16, 16)]65void e8() {66}67 68[shader("compute")]69[numthreads(1,1,1)]70// expected-error@+1 {{'WaveSize' attribute requires an integer argument which is a constant power of two between 4 and 128 inclusive; provided argument was 0}}71[WaveSize(0)]72void e9() {73}74 75[shader("compute")]76[numthreads(1,1,1)]77// expected-error@+1 {{'WaveSize' attribute requires an integer argument which is a constant power of two between 4 and 128 inclusive; provided argument was 4294967292}}78[WaveSize(-4)]79void e10() {80}81 82[shader("compute")]83[numthreads(1,1,1)]84// expected-error@+1 {{'WaveSize' attribute takes no more than 3 arguments}}85[WaveSize(16, 128, 64, 64)]86void e11() {87}88 89[shader("compute")]90[numthreads(1,1,1)]91// expected-error@+1 {{'WaveSize' attribute takes at least 1 argument}}92[WaveSize()]93void e12() {94}95 96[shader("compute")]97[numthreads(1,1,1)]98// expected-error@+1 {{'WaveSize' attribute takes at least 1 argument}}99[WaveSize]100void e13() {101}102 103 104[shader("compute")]105[numthreads(1,1,1)]106// expected-error@+1 {{'WaveSize' attribute parameters do not match the previous declaration}}107[WaveSize(8)]108// expected-note@+1 {{conflicting attribute is here}}109[WaveSize(16)]110void e14() {111}112