spv.bufferhandle11.frag
WARNING: 0:6: '' : all default precisions are highp; use precision statements to quiet warning, e.g.:
         "precision mediump int; precision highp float;" 

// Module Version 10000
// Generated by (magic number): 80008
// Id's are bound by 61

                              Capability Shader
                              Capability StorageBuffer8BitAccess
                              Capability PhysicalStorageBufferAddressesEXT
                              Extension  "SPV_EXT_physical_storage_buffer"
                              Extension  "SPV_KHR_8bit_storage"
                              Extension  "SPV_KHR_storage_buffer_storage_class"
               1:             ExtInstImport  "GLSL.std.450"
                              MemoryModel PhysicalStorageBuffer64EXT GLSL450
                              EntryPoint Fragment 4  "main"
                              ExecutionMode 4 OriginUpperLeft
                              Source GLSL 450
                              SourceExtension  "GL_EXT_buffer_reference"
                              SourceExtension  "GL_EXT_shader_16bit_storage"
                              SourceExtension  "GL_EXT_shader_8bit_storage"
                              Name 4  "main"
                              Name 12  "compare_uint8_t(u1;u1;"
                              Name 10  "a"
                              Name 11  "b"
                              Name 20  "allOk"
                              Name 26  "PC"
                              MemberName 26(PC) 0  "block"
                              Name 28  "Block"
                              MemberName 28(Block) 0  "var"
                              Name 30  ""
                              Name 41  "param"
                              Name 42  "param"
                              Name 48  "AcBlock"
                              MemberName 48(AcBlock) 0  "ac_numPassed"
                              Name 50  ""
                              MemberDecorate 26(PC) 0 Offset 0
                              Decorate 26(PC) Block
                              MemberDecorate 28(Block) 0 Offset 0
                              Decorate 28(Block) Block
                              MemberDecorate 48(AcBlock) 0 Offset 0
                              Decorate 48(AcBlock) Block
                              Decorate 50 DescriptorSet 0
                              Decorate 50 Binding 0
               2:             TypeVoid
               3:             TypeFunction 2
               6:             TypeInt 32 0
               7:             TypePointer Function 6(int)
               8:             TypeBool
               9:             TypeFunction 8(bool) 7(ptr) 7(ptr)
              19:             TypePointer Function 8(bool)
              21:     8(bool) ConstantTrue
                              TypeForwardPointer 25 PhysicalStorageBufferEXT
          26(PC):             TypeStruct 25
              27:             TypeInt 8 0
       28(Block):             TypeStruct 27(int8_t)
              25:             TypePointer PhysicalStorageBufferEXT 28(Block)
              29:             TypePointer PushConstant 26(PC)
              30:     29(ptr) Variable PushConstant
              31:             TypeInt 32 1
              32:     31(int) Constant 0
              33:             TypePointer PushConstant 25(ptr)
              36:             TypePointer PhysicalStorageBufferEXT 27(int8_t)
              40:      6(int) Constant 7
     48(AcBlock):             TypeStruct 6(int)
              49:             TypePointer StorageBuffer 48(AcBlock)
              50:     49(ptr) Variable StorageBuffer
              51:             TypePointer StorageBuffer 6(int)
              54:     31(int) Constant 1
              58:      6(int) Constant 9
         4(main):           2 Function None 3
               5:             Label
       20(allOk):     19(ptr) Variable Function
       41(param):      7(ptr) Variable Function
       42(param):      7(ptr) Variable Function
                              Store 20(allOk) 21
              22:     8(bool) Load 20(allOk)
                              SelectionMerge 24 None
                              BranchConditional 22 23 24
              23:               Label
              34:     33(ptr)   AccessChain 30 32
              35:     25(ptr)   Load 34
              37:     36(ptr)   AccessChain 35 32
              38:  27(int8_t)   Load 37 Aligned 16
              39:      6(int)   UConvert 38
                                Store 41(param) 39
                                Store 42(param) 40
              43:     8(bool)   FunctionCall 12(compare_uint8_t(u1;u1;) 41(param) 42(param)
                                Branch 24
              24:             Label
              44:     8(bool) Phi 22 5 43 23
                              Store 20(allOk) 44
              45:     8(bool) Load 20(allOk)
                              SelectionMerge 47 None
                              BranchConditional 45 46 47
              46:               Label
              52:     51(ptr)   AccessChain 50 32
              53:      6(int)   Load 52
              55:      6(int)   IAdd 53 54
                                Store 52 55
                                Branch 47
              47:             Label
              56:     33(ptr) AccessChain 30 32
              57:     25(ptr) Load 56
              59:  27(int8_t) UConvert 58
              60:     36(ptr) AccessChain 57 32
                              Store 60 59 Aligned 16
                              Return
                              FunctionEnd
12(compare_uint8_t(u1;u1;):     8(bool) Function None 9
           10(a):      7(ptr) FunctionParameter
           11(b):      7(ptr) FunctionParameter
              13:             Label
              14:      6(int) Load 10(a)
              15:      6(int) Load 11(b)
              16:     8(bool) IEqual 14 15
                              ReturnValue 16
                              FunctionEnd
