; SPIR-V
; Version: 1.0
; Generator: Khronos Glslang Reference Front End; 7
; Bound: 35
; Schema: 0
               OpCapability Shader
          %1 = OpExtInstImport "GLSL.std.450"
               OpMemoryModel Logical GLSL450
               OpEntryPoint GLCompute %main "main"
               OpExecutionMode %main LocalSize 1 1 1
               OpSource GLSL 450
               OpName %main "main"
               OpName %SSBO "SSBO"
               OpMemberName %SSBO 0 "u"
               OpMemberName %SSBO 1 "i"
               OpMemberDecorate %SSBO 0 Offset 0
               OpMemberDecorate %SSBO 1 Offset 16
               OpDecorate %SSBO BufferBlock
               OpDecorate %_ DescriptorSet 0
               OpDecorate %_ Binding 0
       %void = OpTypeVoid
          %3 = OpTypeFunction %void
        %int = OpTypeInt 32 1
      %ivec4 = OpTypeVector %int 4
       %uint = OpTypeInt 32 0
      %uvec4 = OpTypeVector %uint 4
       %SSBO = OpTypeStruct %uvec4 %ivec4
%_ptr_Uniform_SSBO = OpTypePointer Uniform %SSBO
          %_ = OpVariable %_ptr_Uniform_SSBO Uniform
      %int_0 = OpConstant %int 0
%_ptr_Uniform_uvec4 = OpTypePointer Uniform %uvec4
      %int_1 = OpConstant %int 1
%_ptr_Uniform_ivec4 = OpTypePointer Uniform %ivec4
       %main = OpFunction %void None %3
          %5 = OpLabel
         %uptr = OpAccessChain %_ptr_Uniform_uvec4 %_ %int_0
         %iptr = OpAccessChain %_ptr_Uniform_ivec4 %_ %int_1
         %uvalue = OpLoad %uvec4 %uptr
         %ivalue = OpLoad %ivec4 %iptr

         %lsb_uint_to_uint = OpExtInst %uvec4 %1 FindILsb %uvalue
         %lsb_uint_to_int = OpExtInst %ivec4 %1 FindILsb %uvalue
         %lsb_int_to_uint = OpExtInst %uvec4 %1 FindILsb %ivalue
         %lsb_int_to_int = OpExtInst %ivec4 %1 FindILsb %ivalue

         %umsb_uint_to_uint = OpExtInst %uvec4 %1 FindUMsb %uvalue
         %umsb_uint_to_int = OpExtInst %ivec4 %1 FindUMsb %uvalue
         %umsb_int_to_uint = OpExtInst %uvec4 %1 FindUMsb %ivalue
         %umsb_int_to_int = OpExtInst %ivec4 %1 FindUMsb %ivalue

         %smsb_uint_to_uint = OpExtInst %uvec4 %1 FindSMsb %uvalue
         %smsb_uint_to_int = OpExtInst %ivec4 %1 FindSMsb %uvalue
         %smsb_int_to_uint = OpExtInst %uvec4 %1 FindSMsb %ivalue
         %smsb_int_to_int = OpExtInst %ivec4 %1 FindSMsb %ivalue

	OpStore %uptr %lsb_uint_to_uint
	OpStore %iptr %lsb_uint_to_int
	OpStore %uptr %lsb_int_to_uint
	OpStore %iptr %lsb_int_to_int

	OpStore %uptr %umsb_uint_to_uint
	OpStore %iptr %umsb_uint_to_int
	OpStore %uptr %umsb_int_to_uint
	OpStore %iptr %umsb_int_to_int

	OpStore %uptr %smsb_uint_to_uint
	OpStore %iptr %smsb_uint_to_int
	OpStore %uptr %smsb_int_to_uint
	OpStore %iptr %smsb_int_to_int

               OpReturn
               OpFunctionEnd
