Skip to content

Commit 9ed3ef2

Browse files
committed
[SYCL] Use uniform group instructions in headers
1 parent 9aefea0 commit 9ed3ef2

File tree

4 files changed

+225
-224
lines changed

4 files changed

+225
-224
lines changed

clang/lib/Driver/ToolChains/Clang.cpp

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9188,7 +9188,8 @@ void SPIRVTranslator::ConstructJob(Compilation &C, const JobAction &JA,
91889188
ExtArg += ",+SPV_INTEL_token_type"
91899189
",+SPV_INTEL_bfloat16_conversion"
91909190
",+SPV_INTEL_joint_matrix"
9191-
",+SPV_INTEL_hw_thread_queries";
9191+
",+SPV_INTEL_hw_thread_queries"
9192+
",+SPV_INTEL_uniform_group_instructions";
91929193
TranslatorArgs.push_back(TCArgs.MakeArgString(ExtArg));
91939194
}
91949195
for (auto I : Inputs) {

clang/lib/Sema/SPIRVBuiltins.td

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -929,13 +929,13 @@ foreach name = ["GroupBroadcast"] in {
929929
}
930930
}
931931

932-
foreach name = ["GroupIAdd", "GroupNonUniformIMul", "GroupNonUniformBitwiseOr",
933-
"GroupNonUniformBitwiseXor", "GroupNonUniformBitwiseAnd"] in {
932+
foreach name = ["GroupIAdd", "GroupIMulINTEL", "GroupBitwiseOrINTEL",
933+
"GroupBitwiseXorINTEL", "GroupBitwiseAndINTEL"] in {
934934
def : SPVBuiltin<name, [AIGenTypeN, UInt, UInt, AIGenTypeN], Attr.Convergent>;
935935
}
936936

937937
foreach name = ["GroupFAdd", "GroupFMin", "GroupFMax",
938-
"GroupNonUniformFMul"] in {
938+
"GroupFMulINTEL"] in {
939939
def : SPVBuiltin<name, [FGenTypeN, UInt, UInt, FGenTypeN], Attr.Convergent>;
940940
}
941941

sycl/include/sycl/ext/oneapi/functional.hpp

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -82,16 +82,16 @@ __SYCL_CALC_OVERLOAD(GroupOpISigned, IAdd, sycl::plus<T>)
8282
__SYCL_CALC_OVERLOAD(GroupOpIUnsigned, IAdd, sycl::plus<T>)
8383
__SYCL_CALC_OVERLOAD(GroupOpFP, FAdd, sycl::plus<T>)
8484

85-
__SYCL_CALC_OVERLOAD(GroupOpISigned, NonUniformIMul, sycl::multiplies<T>)
86-
__SYCL_CALC_OVERLOAD(GroupOpIUnsigned, NonUniformIMul, sycl::multiplies<T>)
87-
__SYCL_CALC_OVERLOAD(GroupOpFP, NonUniformFMul, sycl::multiplies<T>)
88-
89-
__SYCL_CALC_OVERLOAD(GroupOpISigned, NonUniformBitwiseOr, sycl::bit_or<T>)
90-
__SYCL_CALC_OVERLOAD(GroupOpIUnsigned, NonUniformBitwiseOr, sycl::bit_or<T>)
91-
__SYCL_CALC_OVERLOAD(GroupOpISigned, NonUniformBitwiseXor, sycl::bit_xor<T>)
92-
__SYCL_CALC_OVERLOAD(GroupOpIUnsigned, NonUniformBitwiseXor, sycl::bit_xor<T>)
93-
__SYCL_CALC_OVERLOAD(GroupOpISigned, NonUniformBitwiseAnd, sycl::bit_and<T>)
94-
__SYCL_CALC_OVERLOAD(GroupOpIUnsigned, NonUniformBitwiseAnd, sycl::bit_and<T>)
85+
__SYCL_CALC_OVERLOAD(GroupOpISigned, IMulINTEL, sycl::multiplies<T>)
86+
__SYCL_CALC_OVERLOAD(GroupOpIUnsigned, IMulINTEL, sycl::multiplies<T>)
87+
__SYCL_CALC_OVERLOAD(GroupOpFP, FMulINTEL, sycl::multiplies<T>)
88+
89+
__SYCL_CALC_OVERLOAD(GroupOpISigned, BitwiseOrINTEL, sycl::bit_or<T>)
90+
__SYCL_CALC_OVERLOAD(GroupOpIUnsigned, BitwiseOrINTEL, sycl::bit_or<T>)
91+
__SYCL_CALC_OVERLOAD(GroupOpISigned, BitwiseXorINTEL, sycl::bit_xor<T>)
92+
__SYCL_CALC_OVERLOAD(GroupOpIUnsigned, BitwiseXorINTEL, sycl::bit_xor<T>)
93+
__SYCL_CALC_OVERLOAD(GroupOpISigned, BitwiseAndINTEL, sycl::bit_and<T>)
94+
__SYCL_CALC_OVERLOAD(GroupOpIUnsigned, BitwiseAndINTEL, sycl::bit_and<T>)
9595

9696
#undef __SYCL_CALC_OVERLOAD
9797

0 commit comments

Comments
 (0)