Skip to content

Commit 9b84dd8

Browse files
authored
[SYCL] Use uniform group instructions in headers (#5705)
1 parent c80b8fb commit 9b84dd8

File tree

5 files changed

+227
-225
lines changed

5 files changed

+227
-225
lines changed

clang/lib/Driver/ToolChains/Clang.cpp

+2-1
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_KHR_uniform_group_instructions";
91929193
TranslatorArgs.push_back(TCArgs.MakeArgString(ExtArg));
91939194
}
91949195
for (auto I : Inputs) {

clang/lib/Sema/SPIRVBuiltins.td

+3-3
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", "GroupIMulKHR", "GroupBitwiseOrKHR",
933+
"GroupBitwiseXorKHR", "GroupBitwiseAndKHR"] in {
934934
def : SPVBuiltin<name, [AIGenTypeN, UInt, UInt, AIGenTypeN], Attr.Convergent>;
935935
}
936936

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

clang/test/Driver/sycl-spirv-ext.c

+2-1
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,8 @@
4747
// CHECK-DEFAULT-SAME:,+SPV_INTEL_token_type
4848
// CHECK-DEFAULT-SAME:,+SPV_INTEL_bfloat16_conversion
4949
// CHECK-DEFAULT-SAME:,+SPV_INTEL_joint_matrix
50-
// CHECK-DEFAULT-SAME:,+SPV_INTEL_hw_thread_queries"
50+
// CHECK-DEFAULT-SAME:,+SPV_INTEL_hw_thread_queries
51+
// CHECK-DEFAULT-SAME:,+SPV_KHR_uniform_group_instructions"
5152
// CHECK-FPGA-HW: llvm-spirv{{.*}}"-spirv-ext=-all
5253
// CHECK-FPGA-HW-SAME:,+SPV_EXT_shader_atomic_float_add
5354
// CHECK-FPGA-HW-SAME:,+SPV_EXT_shader_atomic_float_min_max

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

+10-10
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, IMulKHR, sycl::multiplies<T>)
86+
__SYCL_CALC_OVERLOAD(GroupOpIUnsigned, IMulKHR, sycl::multiplies<T>)
87+
__SYCL_CALC_OVERLOAD(GroupOpFP, FMulKHR, sycl::multiplies<T>)
88+
89+
__SYCL_CALC_OVERLOAD(GroupOpISigned, BitwiseOrKHR, sycl::bit_or<T>)
90+
__SYCL_CALC_OVERLOAD(GroupOpIUnsigned, BitwiseOrKHR, sycl::bit_or<T>)
91+
__SYCL_CALC_OVERLOAD(GroupOpISigned, BitwiseXorKHR, sycl::bit_xor<T>)
92+
__SYCL_CALC_OVERLOAD(GroupOpIUnsigned, BitwiseXorKHR, sycl::bit_xor<T>)
93+
__SYCL_CALC_OVERLOAD(GroupOpISigned, BitwiseAndKHR, sycl::bit_and<T>)
94+
__SYCL_CALC_OVERLOAD(GroupOpIUnsigned, BitwiseAndKHR, sycl::bit_and<T>)
9595

9696
#undef __SYCL_CALC_OVERLOAD
9797

0 commit comments

Comments
 (0)