@@ -553,12 +553,18 @@ sycl::detail::builtin_enable_integer_t<T> ternary_bitwise(T A, T B, T C) {
553553 } else {
554554#if defined(__SYCL_DEVICE_ONLY__) && !defined(__NVPTX__) && !defined(__AMDGCN__)
555555 // TODO: Implement __spirv_BitwiseFunctionINTEL for NVPTX and AMDGCN.
556- using AdjustedT = std::conditional_t <sycl::detail::is_vec_or_swizzle_v<T>,
557- sycl::detail::simplify_if_swizzle_t <T>,
558- std::make_unsigned<T>>;
559- return __spirv_BitwiseFunctionINTEL (
560- static_cast <AdjustedT>(A), static_cast <AdjustedT>(B),
561- static_cast <AdjustedT>(C), static_cast <uint32_t >(LUTIndex));
556+ if constexpr (sycl::detail::is_vec_or_swizzle_v<T>) {
557+ return __spirv_BitwiseFunctionINTEL (
558+ sycl::detail::simplify_if_swizzle_t <T>{A},
559+ sycl::detail::simplify_if_swizzle_t <T>{B},
560+ sycl::detail::simplify_if_swizzle_t <T>{C},
561+ static_cast <uint32_t >(LUTIndex));
562+ } else {
563+ using AdjustedT = std::make_unsigned_t <T>;
564+ return __spirv_BitwiseFunctionINTEL (AdjustedT{A}, AdjustedT{B},
565+ AdjustedT{C},
566+ static_cast <uint32_t >(LUTIndex));
567+ }
562568#else
563569 return sycl::detail::applyTernaryBitwise<LUTIndex>(
564570 sycl::detail::simplify_if_swizzle_t <T>{A},
0 commit comments