You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Now if we follow the definition of genfloat type trait and sub traits eventually we get that the subset of marray types contained within genfloat is defined by marray_float_list as:
i.e. this covers the set {n} : (from the sycl spec)
where {n} means 2,3,4,8,16
which does not match the set from the sycl spec which covers {N} defined above.
This means that we should increase marray_float_list to cover the complete set {N}, unless there is a good reason that only the limited {n} is supported by the sycl Math functions (In which case the SYCL spec should be updated)?
The text was updated successfully, but these errors were encountered:
This PR aims to fix issue: #5991
and provide efficient working marray math function implementations for
all backends.
marray math function support is currently switched on for {n} ({n}
defined in #5991) but the implementations are currently broken and
untested. There is also very limited test coverage for sycl::vec cases.
The SYCL 2020 specification states that the set {N} ({N} defined in
#5991) should be supported for marray math function cases.
All SYCL 2020 math, native math, and half_precision math functions now
have marray support when the function's arguments are of type `genfloat`
and have the same argument type for all arguments.
Tests: intel/llvm-test-suite#1002
Signed-off-by: jack.kirk <jack.kirk@codeplay.com>
Co-authored-by: JackAKirk <chezjakirk@gmail.com>
Co-authored-by: Jakub Chlanda <jakub@codeplay.com>
Table 161 of the SYCL 2020 spec revision 4 provides the following relevant descriptions:
where
The spec then defines math functions such as:
which are implemented in intel/llvm as (https://github.com/intel/llvm/blob/sycl/sycl/include/CL/sycl/builtins.hpp):
Now if we follow the definition of
genfloat
type trait and sub traits eventually we get that the subset of marray types contained withingenfloat
is defined bymarray_float_list
as:i.e. this covers the set {n} : (from the sycl spec)
where {n} means 2,3,4,8,16
which does not match the set from the sycl spec which covers
{N}
defined above.This means that we should increase
marray_float_list
to cover the complete set{N}
, unless there is a good reason that only the limited {n} is supported by the sycl Math functions (In which case the SYCL spec should be updated)?The text was updated successfully, but these errors were encountered: