Support for pragmas in icpx
- Dominant language
- LLVM
- Stars
- 1.5k
- Forks
- 854
- Avg merge
- 3d 17h
- Merged PRs (30d)
- 137
Description
**Describe the bug**
It appears that not all pragmas listed at https://www.intel.com/content/www/us/en/develop/documentation/oneapi-dpcpp-cpp-compiler-dev-guide-and-reference/top/compiler-reference/pragmas.html are properly supported.
**To Reproduce**
Compiling
```
#include
#include
int main(int, char**) {
cl::sycl::default_selector device_selector;
cl::sycl::queue queue(device_selector);
queue.submit([&] (cl::sycl::handler& cgh) {
cgh.single_task([=] () {
#pragma unroll
#pragma ivdep
#pragma vector always
#pragma loop_count(128)
#pragma simd
for (int j = 0; j < 1024; j++);
});
});
queue.wait();
return 0;
}
```
via `icpx -fsycl -Wall -Werror dummy.cpp` gives
```
dummy.cpp:11:9: error: unknown pragma ignored [-Werror,-Wunknown-pragmas]
#pragma ivdep
^
dummy.cpp:12:9: error: unknown pragma ignored [-Werror,-Wunknown-pragmas]
#pragma vector always
^
dummy.cpp:13:9: error: unknown pragma ignored [-Werror,-Wunknown-pragmas]
#pragma loop_count(128)
^
dummy.cpp:14:9: error: unknown pragma ignored [-Werror,-Wunknown-pragmas]
#pragma simd
^
4 errors generated.
```
`unroll`, `ivdep`, `vector` and `loop_count` are all listed at https://www.intel.com/content/www/us/en/develop/documentation/oneapi-dpcpp-cpp-compiler-dev-guide-and-reference/top/compiler-reference/pragmas/intel-specific-pragma-reference.html.
https://github.com/kokkos/kokkos/commit/d3b5600132 is related.
**Environment (please complete the following information):**
- OS: Linux
- Target device and vendor: Intel GPU
- DPC++ version: nightly build from 2021/10/25
- Dependencies version: Level Zero
Contributor guide
Assessment
This issue has not been assessed yet.