================
@@ -77,6 +77,8 @@ let TargetPrefix = "spv" in {
Intrinsic<[llvm_i32_ty], [], [NoUndef<RetIndex>,
IntrNoMem, IntrWillReturn]>;
def int_spv_subgroup_max_size :
ClangBuiltin<"__builtin_spirv_subgroup_max_size">,
Intrinsic<[llvm_i32_ty], [], [NoUndef<RetIndex>,
IntrNoMem, IntrWillReturn]>;
+ def int_spv_subgroup_ballot :
ClangBuiltin<"__builtin_spirv_subgroup_ballot">,
+ DefaultAttrsIntrinsic<[llvm_v4i32_ty], [llvm_i1_ty], [IntrConvergent,
IntrNoMem]>;
----------------
jhuber6 wrote:
>From the documentation
> Result Type must be a vector of four components of [integer
> type](https://registry.khronos.org/SPIR-V/specs/unified1/SPIRV.html#Integer)
> scalar, whose Width operand is 32 and whose Signedness operand is 0.
>
> Result is a set of bitfields where the first invocation is represented in the
> lowest bit of the first vector component and the last (up to the size of the
> [scope](https://registry.khronos.org/SPIR-V/specs/unified1/SPIRV.html#Scope))
> is the higher bit number of the last bitmask needed to represent all bits of
> the invocations in the scope restricted tangle.
https://github.com/llvm/llvm-project/pull/174862
_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits