[clang] Implement lifetime analysis for lifetime_capture_by(X) (#115921)
[llvm-project.git] / clang / test / SemaHLSL / WaveSize-invalid-param.hlsl
blobe10be5a94df517c8fc3b6f86adaad8b4c667bebb
1 // RUN: %clang_cc1 -triple dxil-pc-shadermodel6.8-library -x hlsl %s -verify
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)]
7 void e0() {
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)]
14 void e1() {
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)]
21 void e2() {
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)]
28 void e3() {
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)]
35 void e4() {
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)]
42 void e5() {
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)]
49 void e6() {
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)]
57 void e7() {
61 [shader("compute")]
62 [numthreads(1,1,1)]
63 // expected-error@+1 {{'WaveSize' attribute minimum and maximum arguments are equal}}
64 [WaveSize(16, 16)]
65 void e8() {
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)]
72 void e9() {
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)]
79 void e10() {
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)]
86 void e11() {
89 [shader("compute")]
90 [numthreads(1,1,1)]
91 // expected-error@+1 {{'WaveSize' attribute takes at least 1 argument}}
92 [WaveSize()]
93 void e12() {
96 [shader("compute")]
97 [numthreads(1,1,1)]
98 // expected-error@+1 {{'WaveSize' attribute takes at least 1 argument}}
99 [WaveSize]
100 void e13() {
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)]
110 void e14() {