2020// CHECK: br label %for.cond2, !llvm.loop ![[MD_LCA_1:[0-9]+]]
2121// CHECK: br label %for.cond13, !llvm.loop ![[MD_LCA_2:[0-9]+]]
2222// CHECK: br label %for.cond24, !llvm.loop ![[MD_LCA_3:[0-9]+]]
23- // CHECK: br label %for.cond, !llvm.loop ![[MD_FP:[0-9]+]]
24- // CHECK: br label %for.cond2, !llvm.loop ![[MD_FP_1:[0-9]+]]
25- // CHECK: br label %for.cond13, !llvm.loop ![[MD_FP_2:[0-9]+]]
26- // CHECK: br label %for.cond24, !llvm.loop ![[MD_FP_3:[0-9]+]]
27- // CHECK: br label %while.cond, !llvm.loop ![[MD_FP_4:[0-9]+]]
28- // CHECK: br i1 %cmp38, label %do.body, label %do.end, !llvm.loop ![[MD_FP_5:[0-9]+]]
29- // CHECK: br label %for.cond40, !llvm.loop ![[MD_FP_6:[0-9]+]]
30- // CHECK: br label %while.cond47, !llvm.loop ![[MD_FP_7:[0-9]+]]
3123
3224void disable_loop_pipelining () {
3325 int a[10 ];
@@ -134,7 +126,7 @@ void speculated_iterations() {
134126 a[i] = 0 ;
135127}
136128
137- // Add CodeGen tests for FPGA loop attribute: [[intel::fpga_pipeline()]] .
129+ // Add CodeGen tests for FPGA loop_count attributes .
138130template <int A>
139131void loop_count_control () {
140132 int a[10 ];
@@ -159,48 +151,6 @@ void loop_count_control() {
159151 a[i] = 0 ;
160152}
161153
162- // Add CodeGen tests for Loop attribute: [[intel::fpga_pipeline()]].
163- template <int A>
164- void fpga_pipeline () {
165- int a[10 ];
166- // CHECK: ![[MD_FP]] = distinct !{![[MD_FP]], ![[MP]], ![[MD_fpga_pipeline:[0-9]+]]}
167- // CHECK-NEXT: ![[MD_fpga_pipeline]] = !{!"llvm.loop.intel.pipelining.enable", i32 1}
168- [[intel::fpga_pipeline (A)]] for (int i = 0 ; i != 10 ; ++i)
169- a[i] = 0 ;
170-
171- // CHECK: ![[MD_FP_1]] = distinct !{![[MD_FP_1]], ![[MP]], ![[MD_fpga_pipeline]]}
172- [[intel::fpga_pipeline (1 )]] for (int i = 0 ; i != 10 ; ++i)
173- a[i] = 0 ;
174-
175- // CHECK: ![[MD_FP_2]] = distinct !{![[MD_FP_2]], ![[MP]], ![[MD_fpga_pipeline]]}
176- [[intel::fpga_pipeline]] for (int i = 0 ; i != 10 ; ++i)
177- a[i] = 0 ;
178-
179- // CHECK: ![[MD_FP_3]] = distinct !{![[MD_FP_3]], ![[MP]], ![[MD_dlp]]}
180- [[intel::fpga_pipeline (0 )]] for (int i = 0 ; i != 10 ; ++i)
181- a[i] = 0 ;
182-
183- // CHECK: ![[MD_FP_4]] = distinct !{![[MD_FP_4]], ![[MP]], ![[MD_fpga_pipeline]]}
184- int j = 0 ;
185- [[intel::fpga_pipeline]] while (j < 10 ) {
186- a[j] += 3 ;
187- }
188-
189- // CHECK: ![[MD_FP_5]] = distinct !{![[MD_FP_5]], ![[MP]], ![[MD_fpga_pipeline]]}
190- int b = 10 ;
191- [[intel::fpga_pipeline (1 )]] do {
192- b = b + 1 ;
193- } while (b < 20 );
194-
195- // CHECK: ![[MD_FP_6]] = distinct !{![[MD_FP_6]], ![[MD_fpga_pipeline]]}
196- int c[] = {0 , 1 , 2 , 3 , 4 , 5 };
197- [[intel::fpga_pipeline (A)]] for (int n : c) { n *= 2 ; }
198-
199- // CHECK: ![[MD_FP_7]] = distinct !{![[MD_FP_7]], ![[MP]], ![[MD_fpga_pipeline]]}
200- int k = 0 ;
201- [[intel::fpga_pipeline (-1 )]] while (k < 20 ) { a[k] += 2 ; }
202- }
203-
204154template <typename name, typename Func>
205155__attribute__ ((sycl_kernel)) void kernel_single_task(const Func &kernelFunc) {
206156 kernelFunc ();
@@ -216,7 +166,6 @@ int main() {
216166 max_interleaving<3 , 0 >();
217167 speculated_iterations<4 , 0 >();
218168 loop_count_control<12 >();
219- fpga_pipeline<1 >();
220169 });
221170 return 0 ;
222171}
0 commit comments