1
1
// RUN: %clang_cc1 -triple spir64-unknown-unknown-sycldevice -disable-llvm-passes -fsycl-is-device -emit-llvm %s -o - | FileCheck %s
2
2
3
- // CHECK: br label %for.cond, !llvm.loop ![[MD_A:[0-9]+]]
4
- // CHECK: br label %for.cond, !llvm.loop ![[MD_B:[0-9]+]]
5
- // CHECK: br label %for.cond, !llvm.loop ![[MD_C:[0-9]+]]
6
- // CHECK: br label %for.cond2, !llvm.loop ![[MD_D:[0-9]+]]
7
- // CHECK: br label %for.cond, !llvm.loop ![[MD_E:[0-9]+]]
8
- // CHECK: br label %for.cond2, !llvm.loop ![[MD_F:[0-9]+]]
3
+ // CHECK: br label %for.cond, !llvm.loop ![[MD_II:[0-9]+]]
4
+ // CHECK: br label %for.cond2, !llvm.loop ![[MD_II_2:[0-9]+]]
5
+ // CHECK: br label %for.cond, !llvm.loop ![[MD_MC:[0-9]+]]
6
+ // CHECK: br label %for.cond2, !llvm.loop ![[MD_MC_2:[0-9]+]]
9
7
10
- // CHECK: ![[MD_A]] = distinct !{![[MD_A]], ![[MD_ii:[0-9]+]]}
11
- // CHECK-NEXT: ![[MD_ii]] = !{!"llvm.loop.ii.count", i32 2}
12
- void goo () {
13
- int a[10 ];
14
- [[intelfpga::ii (2 )]]
15
- for (int i = 0 ; i != 10 ; ++i)
16
- a[i] = 0 ;
17
- }
18
-
19
- // CHECK: ![[MD_B]] = distinct !{![[MD_B]], ![[MD_max_concurrency:[0-9]+]]}
20
- // CHECK-NEXT: ![[MD_max_concurrency]] = !{!"llvm.loop.max_concurrency.count", i32 2}
21
- void zoo () {
22
- int a[10 ];
23
- [[intelfpga::max_concurrency (2 )]]
24
- for (int i = 0 ; i != 10 ; ++i)
25
- a[i] = 0 ;
26
- }
27
-
28
- // CHECK: ![[MD_C]] = distinct !{![[MD_C]], ![[MD_ii_2:[0-9]+]]}
29
- // CHECK-NEXT: ![[MD_ii_2]] = !{!"llvm.loop.ii.count", i32 4}
30
8
template <int A>
31
- void boo () {
9
+ void ii () {
32
10
int a[10 ];
11
+ // CHECK: ![[MD_II]] = distinct !{![[MD_II]], ![[MD_ii_count:[0-9]+]]}
12
+ // CHECK-NEXT: ![[MD_ii_count]] = !{!"llvm.loop.ii.count", i32 4}
33
13
[[intelfpga::ii (A)]]
34
14
for (int i = 0 ; i != 10 ; ++i)
35
15
a[i] = 0 ;
36
- // CHECK: ![[MD_D ]] = distinct !{![[MD_D ]], ![[MD_ii_3 :[0-9]+]]}
37
- // CHECK-NEXT: ![[MD_ii_3 ]] = !{!"llvm.loop.ii.count", i32 8}
16
+ // CHECK: ![[MD_II_2 ]] = distinct !{![[MD_II_2 ]], ![[MD_ii_count_2 :[0-9]+]]}
17
+ // CHECK-NEXT: ![[MD_ii_count_2 ]] = !{!"llvm.loop.ii.count", i32 8}
38
18
[[intelfpga::ii (8 )]]
39
19
for (int i = 0 ; i != 10 ; ++i)
40
20
a[i] = 0 ;
41
21
}
42
22
43
- // CHECK: ![[MD_E]] = distinct !{![[MD_E]], ![[MD_max_concurrency_2:[0-9]+]]}
44
- // CHECK-NEXT: ![[MD_max_concurrency_2]] = !{!"llvm.loop.max_concurrency.count", i32 0}
45
- template <int B>
46
- void foo () {
23
+ template <int A>
24
+ void max_concurrency () {
47
25
int a[10 ];
48
- [[intelfpga::max_concurrency (B)]]
26
+ // CHECK: ![[MD_MC]] = distinct !{![[MD_MC]], ![[MD_max_concurrency:[0-9]+]]}
27
+ // CHECK-NEXT: ![[MD_max_concurrency]] = !{!"llvm.loop.max_concurrency.count", i32 0}
28
+ [[intelfpga::max_concurrency (A)]]
49
29
for (int i = 0 ; i != 10 ; ++i)
50
30
a[i] = 0 ;
51
- // CHECK: ![[MD_F ]] = distinct !{![[MD_F ]], ![[MD_max_concurrency_3 :[0-9]+]]}
52
- // CHECK-NEXT: ![[MD_max_concurrency_3 ]] = !{!"llvm.loop.max_concurrency.count", i32 4}
31
+ // CHECK: ![[MD_MC_2 ]] = distinct !{![[MD_MC_2 ]], ![[MD_max_concurrency_2 :[0-9]+]]}
32
+ // CHECK-NEXT: ![[MD_max_concurrency_2 ]] = !{!"llvm.loop.max_concurrency.count", i32 4}
53
33
[[intelfpga::max_concurrency (4 )]]
54
34
for (int i = 0 ; i != 10 ; ++i)
55
35
a[i] = 0 ;
@@ -62,10 +42,8 @@ __attribute__((sycl_kernel)) void kernel_single_task(Func kernelFunc) {
62
42
63
43
int main () {
64
44
kernel_single_task<class kernel_function >([]() {
65
- goo ();
66
- zoo ();
67
- boo<4 >();
68
- foo<0 >();
45
+ ii<4 >();
46
+ max_concurrency<0 >();
69
47
});
70
48
return 0 ;
71
49
}
0 commit comments