Skip to content

Commit 6f40421

Browse files
committed
Return to signed types
Signed-off-by: Larsen, Steffen <[email protected]>
1 parent 40323e6 commit 6f40421

File tree

3 files changed

+6
-18
lines changed

3 files changed

+6
-18
lines changed

clang/lib/Sema/SPIRVBuiltins.td

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -910,7 +910,7 @@ foreach name = ["BitCount"] in {
910910
}
911911

912912
def : SPVBuiltin<"BitwiseFunctionINTEL",
913-
[AUIGenTypeN, AUIGenTypeN, AUIGenTypeN, AUIGenTypeN, Int]>;
913+
[AIGenTypeN, AIGenTypeN, AIGenTypeN, AIGenTypeN, Int]>;
914914

915915
// 3.32.20. Barrier Instructions
916916

sycl/include/sycl/ext/oneapi/experimental/ternary_bitwise.hpp

Lines changed: 5 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -555,15 +555,11 @@ sycl::detail::builtin_enable_integer_t<T> ternary_bitwise(T A, T B, T C) {
555555
#if defined(__SYCL_DEVICE_ONLY__) && !defined(__NVPTX__) && !defined(__AMDGCN__)
556556
// TODO: Implement __spirv_BitwiseFunctionINTEL for NVPTX and AMDGCN.
557557
using ret_type = sycl::detail::builtin_enable_integer_t<T>;
558-
using UnsignedT = sycl::detail::make_unsigned_t<T>;
559-
auto UnsignedA = sycl::bit_cast<UnsignedT>(A);
560-
auto UnsignedB = sycl::bit_cast<UnsignedT>(B);
561-
auto UnsignedC = sycl::bit_cast<UnsignedT>(C);
562-
return sycl::bit_cast<ret_type>(__spirv_BitwiseFunctionINTEL(
563-
sycl::detail::builtins::convert_arg(UnsignedA),
564-
sycl::detail::builtins::convert_arg(UnsignedB),
565-
sycl::detail::builtins::convert_arg(UnsignedC),
566-
static_cast<uint32_t>(LUTIndex)));
558+
return sycl::bit_cast<ret_type>(
559+
__spirv_BitwiseFunctionINTEL(sycl::detail::builtins::convert_arg(A),
560+
sycl::detail::builtins::convert_arg(B),
561+
sycl::detail::builtins::convert_arg(C),
562+
static_cast<uint32_t>(LUTIndex)));
567563
#else
568564
return sycl::detail::applyTernaryBitwise(
569565
LUTIndex, sycl::detail::simplify_if_swizzle_t<T>{A},

sycl/test-e2e/Experimental/ternary_bitwise.cpp

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -113,8 +113,6 @@ template <typename T> int checkResult(MemObj<T> &Mem, std::string_view TName) {
113113
int main() {
114114
sycl::queue Q;
115115

116-
auto *CharObj = createMem<char>(Q);
117-
auto *UCharObj = createMem<unsigned char>(Q);
118116
auto *ShortObj = createMem<short>(Q);
119117
auto *UIntObj = createMem<unsigned int>(Q);
120118
auto *LongObj = createMem<long>(Q);
@@ -127,8 +125,6 @@ int main() {
127125
#define APPLY(MEM_OBJ) \
128126
if ((WorkCounter++) == Idx[0]) \
129127
MEM_OBJ->Out = apply(MEM_OBJ->A, MEM_OBJ->B, MEM_OBJ->C, IdxSeq);
130-
APPLY(CharObj)
131-
APPLY(UCharObj)
132128
APPLY(ShortObj)
133129
APPLY(UIntObj)
134130
APPLY(LongObj)
@@ -138,16 +134,12 @@ int main() {
138134

139135
int Failed = 0;
140136

141-
Failed += checkResult(*CharObj, "char");
142-
Failed += checkResult(*UCharObj, "unsigned char");
143137
Failed += checkResult(*ShortObj, "short");
144138
Failed += checkResult(*UIntObj, "unsigned int");
145139
Failed += checkResult(*LongObj, "long");
146140
Failed += checkResult(*UShort8Obj, "sycl::vec<uint16_t, 8>");
147141
Failed += checkResult(*IntMarrayObj, "sycl::marray<int, 3>");
148142

149-
sycl::free(CharObj, Q);
150-
sycl::free(UCharObj, Q);
151143
sycl::free(ShortObj, Q);
152144
sycl::free(UIntObj, Q);
153145
sycl::free(LongObj, Q);

0 commit comments

Comments
 (0)