; REQUIRES: spirv-as

; RUN: spirv-as %s --target-env spv1.2 -o %t.spv
; RUN: spirv-val %t.spv
; RUN: llvm-spirv -r -o %t.rev.bc %t.spv
; RUN: llvm-dis %t.rev.bc -o - | FileCheck %s

               OpCapability Addresses
               OpCapability Linkage
               OpCapability Kernel
               OpCapability SubgroupDispatch
               OpMemoryModel Physical64 OpenCL
               OpEntryPoint Kernel %fn "testSubgroupsPerWorkgroupId"
               OpExecutionModeId %fn SubgroupsPerWorkgroupId %uint_8
       %void = OpTypeVoid
       %uint = OpTypeInt 32 0
     %uint_4 = OpConstant %uint 4
     %uint_8 = OpSpecConstantOp %uint IAdd %uint_4 %uint_4
       %fnTy = OpTypeFunction %void

; CHECK: !spirv.ExecutionMode = !{![[MD:[0-9]+]]}
; CHECK: ![[MD]] = !{ptr @testSubgroupsPerWorkgroupId, i32 37, i32 8}

         %fn = OpFunction %void None %fnTy
      %entry = OpLabel
               OpReturn
               OpFunctionEnd
