llvm/llvm/test/CodeGen/SPIRV/transcoding/OpenCL/sub_group_mask.ll

; RUN: llc -O0 -mtriple=spirv32-unknown-unknown %s -o - | FileCheck %s --check-prefix=CHECK-SPIRV
; TODO: %if spirv-tools %{ llc -O0 -mtriple=spirv32-unknown-unknown %s -o - -filetype=obj | spirv-val %}

; CHECK-SPIRV: OpCapability GroupNonUniformBallot
; CHECK-SPIRV: OpDecorate %[[#]] BuiltIn SubgroupGtMask

;; kernel void test_mask(global uint4 *out)
;; {
;;   *out = get_sub_group_gt_mask();
;; }

define dso_local spir_kernel void @test_mask(<4 x i32> addrspace(1)* nocapture noundef writeonly %out) local_unnamed_addr {
entry:
  %call = tail call spir_func <4 x i32> @_Z21get_sub_group_gt_maskv()
  store <4 x i32> %call, <4 x i32> addrspace(1)* %out, align 16
  ret void
}

declare spir_func <4 x i32> @_Z21get_sub_group_gt_maskv() local_unnamed_addr