xref: /llvm-project/llvm/test/CodeGen/SPIRV/transcoding/OpenCL/sub_group_mask.ll (revision 0a443f13b49b3f392461a0bb60b0146cfc4607c7)
1; RUN: llc -O0 -mtriple=spirv32-unknown-unknown %s -o - | FileCheck %s --check-prefix=CHECK-SPIRV
2; TODO: %if spirv-tools %{ llc -O0 -mtriple=spirv32-unknown-unknown %s -o - -filetype=obj | spirv-val %}
3
4; CHECK-SPIRV: OpCapability GroupNonUniformBallot
5; CHECK-SPIRV: OpDecorate %[[#]] BuiltIn SubgroupGtMask
6
7;; kernel void test_mask(global uint4 *out)
8;; {
9;;   *out = get_sub_group_gt_mask();
10;; }
11
12define dso_local spir_kernel void @test_mask(<4 x i32> addrspace(1)* nocapture noundef writeonly %out) local_unnamed_addr {
13entry:
14  %call = tail call spir_func <4 x i32> @_Z21get_sub_group_gt_maskv()
15  store <4 x i32> %call, <4 x i32> addrspace(1)* %out, align 16
16  ret void
17}
18
19declare spir_func <4 x i32> @_Z21get_sub_group_gt_maskv() local_unnamed_addr
20