blob: 87559726869bf3465f4c51e298b0f2ac6bcdacdb [file] [log] [blame]
Konstantin Zhuravlyov5b48d722016-09-26 01:02:57 +00001// RUN: %clang_cc1 -fsyntax-only -verify %s
2
3#include "Inputs/cuda.h"
4
5
6// expected-error@+2 {{'amdgpu_flat_work_group_size' attribute only applies to kernel functions}}
7__attribute__((amdgpu_flat_work_group_size(32, 64)))
8__global__ void flat_work_group_size_32_64() {}
9
10// expected-error@+2 {{'amdgpu_waves_per_eu' attribute only applies to kernel functions}}
11__attribute__((amdgpu_waves_per_eu(2)))
12__global__ void waves_per_eu_2() {}
13
14// expected-error@+2 {{'amdgpu_waves_per_eu' attribute only applies to kernel functions}}
15__attribute__((amdgpu_waves_per_eu(2, 4)))
16__global__ void waves_per_eu_2_4() {}
17
18// expected-error@+2 {{'amdgpu_num_sgpr' attribute only applies to kernel functions}}
19__attribute__((amdgpu_num_sgpr(32)))
20__global__ void num_sgpr_32() {}
21
22// expected-error@+2 {{'amdgpu_num_vgpr' attribute only applies to kernel functions}}
23__attribute__((amdgpu_num_vgpr(64)))
24__global__ void num_vgpr_64() {}
25
26
27// expected-error@+3 {{'amdgpu_flat_work_group_size' attribute only applies to kernel functions}}
28// fixme-expected-error@+2 {{'amdgpu_waves_per_eu' attribute only applies to kernel functions}}
29__attribute__((amdgpu_flat_work_group_size(32, 64), amdgpu_waves_per_eu(2)))
30__global__ void flat_work_group_size_32_64_waves_per_eu_2() {}
31
32// expected-error@+3 {{'amdgpu_flat_work_group_size' attribute only applies to kernel functions}}
33// fixme-expected-error@+2 {{'amdgpu_waves_per_eu' attribute only applies to kernel functions}}
34__attribute__((amdgpu_flat_work_group_size(32, 64), amdgpu_waves_per_eu(2, 4)))
35__global__ void flat_work_group_size_32_64_waves_per_eu_2_4() {}
36
37// expected-error@+3 {{'amdgpu_flat_work_group_size' attribute only applies to kernel functions}}
38// fixme-expected-error@+2 {{'amdgpu_num_sgpr' attribute only applies to kernel functions}}
39__attribute__((amdgpu_flat_work_group_size(32, 64), amdgpu_num_sgpr(32)))
40__global__ void flat_work_group_size_32_64_num_sgpr_32() {}
41
42// expected-error@+3 {{'amdgpu_flat_work_group_size' attribute only applies to kernel functions}}
43// fixme-expected-error@+2 {{'amdgpu_num_vgpr' attribute only applies to kernel functions}}
44__attribute__((amdgpu_flat_work_group_size(32, 64), amdgpu_num_vgpr(64)))
45__global__ void flat_work_group_size_32_64_num_vgpr_64() {}
46
47// expected-error@+3 {{'amdgpu_waves_per_eu' attribute only applies to kernel functions}}
48// fixme-expected-error@+2 {{'amdgpu_num_sgpr' attribute only applies to kernel functions}}
49__attribute__((amdgpu_waves_per_eu(2), amdgpu_num_sgpr(32)))
50__global__ void waves_per_eu_2_num_sgpr_32() {}
51
52// expected-error@+3 {{'amdgpu_waves_per_eu' attribute only applies to kernel functions}}
53// fixme-expected-error@+2 {{'amdgpu_num_vgpr' attribute only applies to kernel functions}}
54__attribute__((amdgpu_waves_per_eu(2), amdgpu_num_vgpr(64)))
55__global__ void waves_per_eu_2_num_vgpr_64() {}
56
57// expected-error@+3 {{'amdgpu_waves_per_eu' attribute only applies to kernel functions}}
58// fixme-expected-error@+2 {{'amdgpu_num_sgpr' attribute only applies to kernel functions}}
59__attribute__((amdgpu_waves_per_eu(2, 4), amdgpu_num_sgpr(32)))
60__global__ void waves_per_eu_2_4_num_sgpr_32() {}
61
62// expected-error@+3 {{'amdgpu_waves_per_eu' attribute only applies to kernel functions}}
63// fixme-expected-error@+2 {{'amdgpu_num_vgpr' attribute only applies to kernel functions}}
64__attribute__((amdgpu_waves_per_eu(2, 4), amdgpu_num_vgpr(64)))
65__global__ void waves_per_eu_2_4_num_vgpr_64() {}
66
67// expected-error@+3 {{'amdgpu_num_sgpr' attribute only applies to kernel functions}}
68// fixme-expected-error@+2 {{'amdgpu_num_vgpr' attribute only applies to kernel functions}}
69__attribute__((amdgpu_num_sgpr(32), amdgpu_num_vgpr(64)))
70__global__ void num_sgpr_32_num_vgpr_64() {}
71
72
73// expected-error@+4 {{'amdgpu_flat_work_group_size' attribute only applies to kernel functions}}
74// fixme-expected-error@+3 {{'amdgpu_waves_per_eu' attribute only applies to kernel functions}}
75// fixme-expected-error@+2 {{'amdgpu_num_sgpr' attribute only applies to kernel functions}}
76__attribute__((amdgpu_flat_work_group_size(32, 64), amdgpu_waves_per_eu(2), amdgpu_num_sgpr(32)))
77__global__ void flat_work_group_size_32_64_waves_per_eu_2_num_sgpr_32() {}
78
79// expected-error@+4 {{'amdgpu_flat_work_group_size' attribute only applies to kernel functions}}
80// fixme-expected-error@+3 {{'amdgpu_waves_per_eu' attribute only applies to kernel functions}}
81// fixme-expected-error@+2 {{'amdgpu_num_vgpr' attribute only applies to kernel functions}}
82__attribute__((amdgpu_flat_work_group_size(32, 64), amdgpu_waves_per_eu(2), amdgpu_num_vgpr(64)))
83__global__ void flat_work_group_size_32_64_waves_per_eu_2_num_vgpr_64() {}
84
85// expected-error@+4 {{'amdgpu_flat_work_group_size' attribute only applies to kernel functions}}
86// fixme-expected-error@+3 {{'amdgpu_waves_per_eu' attribute only applies to kernel functions}}
87// fixme-expected-error@+2 {{'amdgpu_num_sgpr' attribute only applies to kernel functions}}
88__attribute__((amdgpu_flat_work_group_size(32, 64), amdgpu_waves_per_eu(2, 4), amdgpu_num_sgpr(32)))
89__global__ void flat_work_group_size_32_64_waves_per_eu_2_4_num_sgpr_32() {}
90
91// expected-error@+4 {{'amdgpu_flat_work_group_size' attribute only applies to kernel functions}}
92// fixme-expected-error@+3 {{'amdgpu_waves_per_eu' attribute only applies to kernel functions}}
93// fixme-expected-error@+2 {{'amdgpu_num_vgpr' attribute only applies to kernel functions}}
94__attribute__((amdgpu_flat_work_group_size(32, 64), amdgpu_waves_per_eu(2, 4), amdgpu_num_vgpr(64)))
95__global__ void flat_work_group_size_32_64_waves_per_eu_2_4_num_vgpr_64() {}
96
97
98// expected-error@+5 {{'amdgpu_flat_work_group_size' attribute only applies to kernel functions}}
99// fixme-expected-error@+4 {{'amdgpu_waves_per_eu' attribute only applies to kernel functions}}
100// fixme-expected-error@+3 {{'amdgpu_num_sgpr' attribute only applies to kernel functions}}
101// fixme-expected-error@+2 {{'amdgpu_num_vgpr' attribute only applies to kernel functions}}
102__attribute__((amdgpu_flat_work_group_size(32, 64), amdgpu_waves_per_eu(2), amdgpu_num_sgpr(32), amdgpu_num_vgpr(64)))
103__global__ void flat_work_group_size_32_64_waves_per_eu_2_num_sgpr_32_num_vgpr_64() {}
104
105// expected-error@+5 {{'amdgpu_flat_work_group_size' attribute only applies to kernel functions}}
106// fixme-expected-error@+4 {{'amdgpu_waves_per_eu' attribute only applies to kernel functions}}
107// fixme-expected-error@+3 {{'amdgpu_num_sgpr' attribute only applies to kernel functions}}
108// fixme-expected-error@+2 {{'amdgpu_num_vgpr' attribute only applies to kernel functions}}
109__attribute__((amdgpu_flat_work_group_size(32, 64), amdgpu_waves_per_eu(2, 4), amdgpu_num_sgpr(32), amdgpu_num_vgpr(64)))
110__global__ void flat_work_group_size_32_64_waves_per_eu_2_4_num_sgpr_32_num_vgpr_64() {}