Skip to content

Emit select for out-of-range builtin var indices #3023

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 2 commits into from
Mar 3, 2025

Conversation

svenvh
Copy link
Member

@svenvh svenvh commented Feb 19, 2025

The behaviour for out-of-range dimension arguments to work-item functions is well defined in OpenCL C. For example, get_global_size must return 1 if its argument is larger than get_work_dim() - 1.

Ensure the generated extractelement index never exceeds the vector size and return the correct out-of-range value (which is either 0 or 1 depending on the builtin).

Fixes #2638 .

Copy link
Contributor

@MrSidims MrSidims left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

just test nits, other then that the patch is LGTM

The behaviour for out-of-range dimension arguments to work-item
functions is well defined in OpenCL C.  For example, `get_global_size`
must return 1 if its argument is larger than `get_work_dim() - 1`.

Ensure the generated `extractelement` index never exceeds the
vector size and return the correct out-of-range value (which is either
0 or 1 depending on the builtin).

Fixes KhronosGroup#2638
@svenvh svenvh force-pushed the builtin-out-of-range branch from bed1a60 to b95d5d2 Compare February 27, 2025 14:49
@svenvh svenvh merged commit 07a3da9 into KhronosGroup:main Mar 3, 2025
9 checks passed
@svenvh svenvh deleted the builtin-out-of-range branch March 3, 2025 08:33
haonanya1 pushed a commit to haonanya1/SPIRV-LLVM-Translator that referenced this pull request Mar 6, 2025
The behaviour for out-of-range dimension arguments to work-item
functions is well defined in OpenCL C. For example, `get_global_size`
must return 1 if its argument is larger than `get_work_dim() - 1`.

Ensure the generated `extractelement` index never exceeds the vector
size and return the correct out-of-range value (which is either 0 or 1
depending on the builtin).

Fixes KhronosGroup#2638
.
haonanya1 pushed a commit to haonanya1/SPIRV-LLVM-Translator that referenced this pull request Mar 6, 2025
The behaviour for out-of-range dimension arguments to work-item
functions is well defined in OpenCL C. For example, `get_global_size`
must return 1 if its argument is larger than `get_work_dim() - 1`.

Ensure the generated `extractelement` index never exceeds the vector
size and return the correct out-of-range value (which is either 0 or 1
depending on the builtin).

Fixes KhronosGroup#2638
.
haonanya1 pushed a commit to haonanya1/SPIRV-LLVM-Translator that referenced this pull request Mar 6, 2025
The behaviour for out-of-range dimension arguments to work-item
functions is well defined in OpenCL C. For example, `get_global_size`
must return 1 if its argument is larger than `get_work_dim() - 1`.

Ensure the generated `extractelement` index never exceeds the vector
size and return the correct out-of-range value (which is either 0 or 1
depending on the builtin).

Fixes KhronosGroup#2638
.
haonanya1 pushed a commit to haonanya1/SPIRV-LLVM-Translator that referenced this pull request Mar 6, 2025
The behaviour for out-of-range dimension arguments to work-item
functions is well defined in OpenCL C. For example, `get_global_size`
must return 1 if its argument is larger than `get_work_dim() - 1`.

Ensure the generated `extractelement` index never exceeds the vector
size and return the correct out-of-range value (which is either 0 or 1
depending on the builtin).

Fixes KhronosGroup#2638
.
haonanya1 pushed a commit to haonanya1/SPIRV-LLVM-Translator that referenced this pull request Mar 6, 2025
The behaviour for out-of-range dimension arguments to work-item
functions is well defined in OpenCL C. For example, `get_global_size`
must return 1 if its argument is larger than `get_work_dim() - 1`.

Ensure the generated `extractelement` index never exceeds the vector
size and return the correct out-of-range value (which is either 0 or 1
depending on the builtin).

Fixes KhronosGroup#2638
.
haonanya1 pushed a commit to haonanya1/SPIRV-LLVM-Translator that referenced this pull request Mar 6, 2025
The behaviour for out-of-range dimension arguments to work-item
functions is well defined in OpenCL C. For example, `get_global_size`
must return 1 if its argument is larger than `get_work_dim() - 1`.

Ensure the generated `extractelement` index never exceeds the vector
size and return the correct out-of-range value (which is either 0 or 1
depending on the builtin).

Fixes KhronosGroup#2638
.
haonanya1 pushed a commit to haonanya1/SPIRV-LLVM-Translator that referenced this pull request Mar 6, 2025
The behaviour for out-of-range dimension arguments to work-item
functions is well defined in OpenCL C. For example, `get_global_size`
must return 1 if its argument is larger than `get_work_dim() - 1`.

Ensure the generated `extractelement` index never exceeds the vector
size and return the correct out-of-range value (which is either 0 or 1
depending on the builtin).

Fixes KhronosGroup#2638
.
haonanya1 pushed a commit to haonanya1/SPIRV-LLVM-Translator that referenced this pull request Mar 6, 2025
The behaviour for out-of-range dimension arguments to work-item
functions is well defined in OpenCL C. For example, `get_global_size`
must return 1 if its argument is larger than `get_work_dim() - 1`.

Ensure the generated `extractelement` index never exceeds the vector
size and return the correct out-of-range value (which is either 0 or 1
depending on the builtin).

Fixes KhronosGroup#2638
.
haonanya1 pushed a commit to haonanya1/SPIRV-LLVM-Translator that referenced this pull request Mar 6, 2025
The behaviour for out-of-range dimension arguments to work-item
functions is well defined in OpenCL C. For example, `get_global_size`
must return 1 if its argument is larger than `get_work_dim() - 1`.

Ensure the generated `extractelement` index never exceeds the vector
size and return the correct out-of-range value (which is either 0 or 1
depending on the builtin).

Fixes KhronosGroup#2638
.
svenvh added a commit that referenced this pull request Mar 6, 2025
The behaviour for out-of-range dimension arguments to work-item
functions is well defined in OpenCL C. For example, `get_global_size`
must return 1 if its argument is larger than `get_work_dim() - 1`.

Ensure the generated `extractelement` index never exceeds the vector
size and return the correct out-of-range value (which is either 0 or 1
depending on the builtin).

Fixes #2638
.
svenvh added a commit that referenced this pull request Mar 6, 2025
The behaviour for out-of-range dimension arguments to work-item
functions is well defined in OpenCL C. For example, `get_global_size`
must return 1 if its argument is larger than `get_work_dim() - 1`.

Ensure the generated `extractelement` index never exceeds the vector
size and return the correct out-of-range value (which is either 0 or 1
depending on the builtin).

Fixes #2638
.
MrSidims pushed a commit that referenced this pull request Mar 6, 2025
The behaviour for out-of-range dimension arguments to work-item
functions is well defined in OpenCL C. For example, `get_global_size`
must return 1 if its argument is larger than `get_work_dim() - 1`.

Ensure the generated `extractelement` index never exceeds the vector
size and return the correct out-of-range value (which is either 0 or 1
depending on the builtin).

Fixes #2638
.
MrSidims pushed a commit that referenced this pull request Mar 6, 2025
The behaviour for out-of-range dimension arguments to work-item
functions is well defined in OpenCL C. For example, `get_global_size`
must return 1 if its argument is larger than `get_work_dim() - 1`.

Ensure the generated `extractelement` index never exceeds the vector
size and return the correct out-of-range value (which is either 0 or 1
depending on the builtin).

Fixes #2638
.
MrSidims pushed a commit that referenced this pull request Mar 6, 2025
The behaviour for out-of-range dimension arguments to work-item
functions is well defined in OpenCL C. For example, `get_global_size`
must return 1 if its argument is larger than `get_work_dim() - 1`.

Ensure the generated `extractelement` index never exceeds the vector
size and return the correct out-of-range value (which is either 0 or 1
depending on the builtin).

Fixes #2638
.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Missing dimidx checks when translating get_global_offset
2 participants