Skip to content
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

Add vec explicit conversion #669

Open
wants to merge 1 commit into
base: main
Choose a base branch
from

Conversation

gmlueck
Copy link
Contributor

@gmlueck gmlueck commented Dec 3, 2024

This is change 2 of 9 that fix problems with the specification of the vec class. An implementation that follows the existing specification would not accept common code patterns and would not pass the CTS. None of the existing implementations actually follow the existing specification.

This change adds an explicit conversion when the vec has one element, allowing a conversion to T whenever DataT can be explicitly converted to T.

This enables code like the following, where the element type DataT is itself a class:

sycl::vec<sycl::half, 1> h1;
int i = static_cast<int>(h1);
if (h1) {}

These changes correspond to slides 8 - 9 of the presentation that was discussed in the WG meetings.

This is change 2 of 9 that fix problems with the specification of the
`vec` class.  An implementation that follows the existing specification
would not accept common code patterns and would not pass the CTS.  None
of the existing implementations actually follow the existing
specification.

This change adds an explicit conversion when the `vec` has one element,
allowing a conversion to `T` whenever `DataT` can be explicitly
converted to `T`.

This enables code like the following, where the element type `DataT` is
itself a class:

```
sycl::vec<sycl::half, 1> h1;
int i = static_cast<int>(h1);
if (h1) {}
```

These changes correspond to slides 8 - 9 of the presentation that was
discussed in the WG meetings.
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.

1 participant