intel / intel/llvm

Support for pragmas in icpx

Open
#5,207 4 comments 0 reactions 1 assignee Assigned to @smanna12 View on GitHub
bug confirmed
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

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.