KhronosGroup / KhronosGroup/OpenCL-CTS

Remove extension pragmas on extended subgroups

Open
#1,223 0 comments 0 reactions 0 assignees View on GitHub
Dominant language
C++
Stars
232
Forks
235
Avg merge
8d 7h
Merged PRs (30d)
18

Description

The extended subgroup spec has never listed the extension pragmas and we haven't supported it in clang.
https://www.khronos.org/registry/OpenCL/specs/3.0-unified/html/OpenCL_Ext.html#_extended_subgroup_functions

However, CTS still contains the pragmas for those extensions
https://github.com/KhronosGroup/OpenCL-CTS/blob/master/test_conformance/compiler/test_compiler_defines_for_extensions.cpp

```
"cl_khr_subgroup_extended_types",
"cl_khr_subgroup_non_uniform_vote",
"cl_khr_subgroup_ballot",
"cl_khr_subgroup_non_uniform_arithmetic",
"cl_khr_subgroup_shuffle",
"cl_khr_subgroup_shuffle_relative",
"cl_khr_subgroup_clustered_reduce",
```

Perhaps they need to be refactored to have 3 lists:
- one for kernel language with pragmas
- one for kernel language without pragmas
- one for API

Contributor guide

No contributing guide indexed for this repository

Research direction

Start with test_conformance/compiler/test_compiler_defines_for_extensions.cpp and compare its extension-pragmas list with the extended subgroup specification linked in the issue. Determine which listed extensions should no longer have pragmas, then check the relevant compiler-defines test to confirm the updated categorization and expected results.

Written by the indexing model from the issue text.

Assessment

Tech stack
cpp
Domain
compilers, testing-qa
Issue type
Bug
Difficulty
3/5
Estimated time
1-2 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
45/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.