[ESIMD] Fix is_esimd_arithmetic_type internal problem. #4826
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
In some cases 'computation_type_t' meta-function call lead to call to this
template struct is_esimd_arithmetic_type<
Ty, __esimd_void_t<std::enable_if_t<std::is_arithmetic_v>,
decltype(std::declval() + std::declval()),
...>>
meta-function with Ty being a simd type, which caused
decltype(std::declval() + std::declval()) to fail (it is not supposed to
be invoked with a simd type).
The fix is to enable SFINAE in is_esimd_arithmetic_type in the case when std::is_arithmetic_v is false, and therefore the second partial specialization of is_esimd_arithmetic_type won't participate in resolution.
Signed-off-by: Konstantin S Bobrovsky [email protected]