https://github.com/wenju-he created https://github.com/llvm/llvm-project/pull/200747
Per OpenCL spec, sub_group_non_uniform_reduce_* functions requires support for the cl_khr_subgroup_non_uniform_arithmetic extension. >From c1e53ff5ce76351534599ac571444fc0559622a9 Mon Sep 17 00:00:00 2001 From: Wenju He <[email protected]> Date: Mon, 1 Jun 2026 09:50:53 +0200 Subject: [PATCH] [AMDGPU][libclc] Enable cl_khr_subgroup_non_uniform_arithmetic and use in libclc Per OpenCL spec, sub_group_non_uniform_reduce_* functions requires support for the cl_khr_subgroup_non_uniform_arithmetic extension. --- clang/lib/Basic/Targets/AMDGPU.h | 1 + clang/test/Misc/amdgcn.languageOptsOpenCL.cl | 4 ++++ .../lib/generic/subgroup/sub_group_non_uniform_reduce.cl | 4 ++++ 3 files changed, 9 insertions(+) diff --git a/clang/lib/Basic/Targets/AMDGPU.h b/clang/lib/Basic/Targets/AMDGPU.h index f1bfca4c42417..29327067dbbff 100644 --- a/clang/lib/Basic/Targets/AMDGPU.h +++ b/clang/lib/Basic/Targets/AMDGPU.h @@ -324,6 +324,7 @@ class LLVM_LIBRARY_VISIBILITY AMDGPUTargetInfo final : public TargetInfo { Opts["cl_khr_mipmap_image"] = true; Opts["cl_khr_mipmap_image_writes"] = true; Opts["cl_khr_subgroups"] = true; + Opts["cl_khr_subgroup_non_uniform_arithmetic"] = true; Opts["cl_amd_media_ops"] = true; Opts["cl_amd_media_ops2"] = true; diff --git a/clang/test/Misc/amdgcn.languageOptsOpenCL.cl b/clang/test/Misc/amdgcn.languageOptsOpenCL.cl index 5e611329b518d..3971bb99b113d 100644 --- a/clang/test/Misc/amdgcn.languageOptsOpenCL.cl +++ b/clang/test/Misc/amdgcn.languageOptsOpenCL.cl @@ -158,6 +158,10 @@ #endif #pragma OPENCL EXTENSION cl_khr_subgroups: enable +#ifndef cl_khr_subgroup_non_uniform_arithmetic +#error "Missing cl_khr_subgroup_non_uniform_arithmetic define" +#endif + #ifndef cl_amd_media_ops #error "Missing cl_amd_media_ops define" #endif diff --git a/libclc/opencl/lib/generic/subgroup/sub_group_non_uniform_reduce.cl b/libclc/opencl/lib/generic/subgroup/sub_group_non_uniform_reduce.cl index e00717b979ea1..d46afb88afa59 100644 --- a/libclc/opencl/lib/generic/subgroup/sub_group_non_uniform_reduce.cl +++ b/libclc/opencl/lib/generic/subgroup/sub_group_non_uniform_reduce.cl @@ -8,6 +8,8 @@ #include "clc/subgroup/clc_sub_group_non_uniform_reduce.h" +#ifdef cl_khr_subgroup_non_uniform_arithmetic + #define __CLC_BODY "sub_group_non_uniform_reduce.inc" #include "clc/integer/gentype.inc" @@ -28,3 +30,5 @@ _CLC_DEF _CLC_OVERLOAD int sub_group_non_uniform_reduce_logical_xor(int predicate) { return __clc_sub_group_non_uniform_reduce_logical_xor(predicate); } + +#endif // cl_khr_subgroup_non_uniform_arithmetic _______________________________________________ cfe-commits mailing list [email protected] https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
