spv.bufferhandle12.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 183

                              Capability Shader
                              Capability StorageUniformBufferBlock16
                              Capability PhysicalStorageBufferAddressesEXT
                              Extension  "SPV_EXT_physical_storage_buffer"
                              Extension  "SPV_KHR_16bit_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_float(f1;f1;"
                              Name 10  "a"
                              Name 11  "b"
                              Name 19  "compare_vec3(vf3;vf3;"
                              Name 17  "a"
                              Name 18  "b"
                              Name 26  "compare_mat2x3(mf23;mf23;"
                              Name 24  "a"
                              Name 25  "b"
                              Name 34  "compare_ivec2(vi2;vi2;"
                              Name 32  "a"
                              Name 33  "b"
                              Name 42  "compare_uvec3(vu3;vu3;"
                              Name 40  "a"
                              Name 41  "b"
                              Name 46  "compare_float16_t(f1;f1;"
                              Name 44  "a"
                              Name 45  "b"
                              Name 56  "param"
                              Name 60  "param"
                              Name 66  "param"
                              Name 70  "param"
                              Name 77  "param"
                              Name 81  "param"
                              Name 89  "param"
                              Name 92  "param"
                              Name 99  "param"
                              Name 102  "param"
                              Name 131  "allOk"
                              Name 139  "PC"
                              MemberName 139(PC) 0  "blockB"
                              MemberName 139(PC) 1  "blockC"
                              MemberName 139(PC) 2  "blockD"
                              Name 141  "BlockB"
                              MemberName 141(BlockB) 0  "a"
                              MemberName 141(BlockB) 1  "b"
                              Name 142  "BlockC"
                              MemberName 142(BlockC) 0  "c"
                              Name 143  "BlockD"
                              MemberName 143(BlockD) 0  "d"
                              Name 145  ""
                              Name 157  "param"
                              Name 161  "param"
                              Name 167  "AcBlock"
                              MemberName 167(AcBlock) 0  "ac_numPassed"
                              Name 169  ""
                              MemberDecorate 139(PC) 0 Offset 0
                              MemberDecorate 139(PC) 1 Offset 8
                              MemberDecorate 139(PC) 2 Offset 16
                              Decorate 139(PC) Block
                              MemberDecorate 141(BlockB) 0 Offset 0
                              MemberDecorate 141(BlockB) 1 Offset 8
                              Decorate 141(BlockB) Block
                              MemberDecorate 142(BlockC) 0 ColMajor
                              MemberDecorate 142(BlockC) 0 RelaxedPrecision
                              MemberDecorate 142(BlockC) 0 Offset 0
                              MemberDecorate 142(BlockC) 0 MatrixStride 16
                              Decorate 142(BlockC) Block
                              MemberDecorate 143(BlockD) 0 RelaxedPrecision
                              MemberDecorate 143(BlockD) 0 Offset 0
                              Decorate 143(BlockD) Block
                              Decorate 160 RelaxedPrecision
                              MemberDecorate 167(AcBlock) 0 Offset 0
                              Decorate 167(AcBlock) Block
                              Decorate 169 DescriptorSet 0
                              Decorate 169 Binding 0
               2:             TypeVoid
               3:             TypeFunction 2
               6:             TypeFloat 32
               7:             TypePointer Function 6(float)
               8:             TypeBool
               9:             TypeFunction 8(bool) 7(ptr) 7(ptr)
              14:             TypeVector 6(float) 3
              15:             TypePointer Function 14(fvec3)
              16:             TypeFunction 8(bool) 15(ptr) 15(ptr)
              21:             TypeMatrix 14(fvec3) 2
              22:             TypePointer Function 21
              23:             TypeFunction 8(bool) 22(ptr) 22(ptr)
              28:             TypeInt 32 1
              29:             TypeVector 28(int) 2
              30:             TypePointer Function 29(ivec2)
              31:             TypeFunction 8(bool) 30(ptr) 30(ptr)
              36:             TypeInt 32 0
              37:             TypeVector 36(int) 3
              38:             TypePointer Function 37(ivec3)
              39:             TypeFunction 8(bool) 38(ptr) 38(ptr)
              52:    6(float) Constant 1028443341
              57:     36(int) Constant 0
              67:     36(int) Constant 1
              78:     36(int) Constant 2
              88:     28(int) Constant 0
              98:     28(int) Constant 1
             111:             TypeVector 8(bool) 2
             118:             TypeVector 8(bool) 3
             130:             TypePointer Function 8(bool)
             132:     8(bool) ConstantTrue
                              TypeForwardPointer 136 PhysicalStorageBufferEXT
                              TypeForwardPointer 137 PhysicalStorageBufferEXT
                              TypeForwardPointer 138 PhysicalStorageBufferEXT
         139(PC):             TypeStruct 136 137 138
             140:             TypeFloat 16
     141(BlockB):             TypeStruct 140(float16_t) 29(ivec2)
             136:             TypePointer PhysicalStorageBufferEXT 141(BlockB)
     142(BlockC):             TypeStruct 21
             137:             TypePointer PhysicalStorageBufferEXT 142(BlockC)
     143(BlockD):             TypeStruct 37(ivec3)
             138:             TypePointer PhysicalStorageBufferEXT 143(BlockD)
             144:             TypePointer PushConstant 139(PC)
             145:    144(ptr) Variable PushConstant
             146:             TypePointer PushConstant 137(ptr)
             149:    6(float) Constant 3231711232
             150:    6(float) Constant 1065353216
             151:    6(float) Constant 3235905536
             152:   14(fvec3) ConstantComposite 149 150 151
             153:    6(float) Constant 1073741824
             154:    6(float) Constant 1090519040
             155:   14(fvec3) ConstantComposite 150 153 154
             156:          21 ConstantComposite 152 155
             158:             TypePointer PhysicalStorageBufferEXT 21
    167(AcBlock):             TypeStruct 36(int)
             168:             TypePointer StorageBuffer 167(AcBlock)
             169:    168(ptr) Variable StorageBuffer
             170:             TypePointer StorageBuffer 36(int)
             174:     28(int) Constant 2
             175:             TypePointer PushConstant 138(ptr)
             178:     36(int) Constant 8
             179:     36(int) Constant 5
             180:   37(ivec3) ConstantComposite 178 67 179
             181:             TypePointer PhysicalStorageBufferEXT 37(ivec3)
         4(main):           2 Function None 3
               5:             Label
      131(allOk):    130(ptr) Variable Function
      157(param):     22(ptr) Variable Function
      161(param):     22(ptr) Variable Function
                              Store 131(allOk) 132
             133:     8(bool) Load 131(allOk)
                              SelectionMerge 135 None
                              BranchConditional 133 134 135
             134:               Label
             147:    146(ptr)   AccessChain 145 98
             148:    137(ptr)   Load 147
             159:    158(ptr)   AccessChain 148 88
             160:          21   Load 159 Aligned 16
                                Store 157(param) 160
                                Store 161(param) 156
             162:     8(bool)   FunctionCall 26(compare_mat2x3(mf23;mf23;) 157(param) 161(param)
                                Branch 135
             135:             Label
             163:     8(bool) Phi 133 5 162 134
                              Store 131(allOk) 163
             164:     8(bool) Load 131(allOk)
                              SelectionMerge 166 None
                              BranchConditional 164 165 166
             165:               Label
             171:    170(ptr)   AccessChain 169 88
             172:     36(int)   Load 171
             173:     36(int)   IAdd 172 98
                                Store 171 173
                                Branch 166
             166:             Label
             176:    175(ptr) AccessChain 145 174
             177:    138(ptr) Load 176
             182:    181(ptr) AccessChain 177 88
                              Store 182 180 Aligned 16
                              Return
                              FunctionEnd
12(compare_float(f1;f1;):     8(bool) Function None 9
           10(a):      7(ptr) FunctionParameter
           11(b):      7(ptr) FunctionParameter
              13:             Label
              48:    6(float) Load 10(a)
              49:    6(float) Load 11(b)
              50:    6(float) FSub 48 49
              51:    6(float) ExtInst 1(GLSL.std.450) 4(FAbs) 50
              53:     8(bool) FOrdLessThan 51 52
                              ReturnValue 53
                              FunctionEnd
19(compare_vec3(vf3;vf3;):     8(bool) Function None 16
           17(a):     15(ptr) FunctionParameter
           18(b):     15(ptr) FunctionParameter
              20:             Label
       56(param):      7(ptr) Variable Function
       60(param):      7(ptr) Variable Function
       66(param):      7(ptr) Variable Function
       70(param):      7(ptr) Variable Function
       77(param):      7(ptr) Variable Function
       81(param):      7(ptr) Variable Function
              58:      7(ptr) AccessChain 17(a) 57
              59:    6(float) Load 58
                              Store 56(param) 59
              61:      7(ptr) AccessChain 18(b) 57
              62:    6(float) Load 61
                              Store 60(param) 62
              63:     8(bool) FunctionCall 12(compare_float(f1;f1;) 56(param) 60(param)
                              SelectionMerge 65 None
                              BranchConditional 63 64 65
              64:               Label
              68:      7(ptr)   AccessChain 17(a) 67
              69:    6(float)   Load 68
                                Store 66(param) 69
              71:      7(ptr)   AccessChain 18(b) 67
              72:    6(float)   Load 71
                                Store 70(param) 72
              73:     8(bool)   FunctionCall 12(compare_float(f1;f1;) 66(param) 70(param)
                                Branch 65
              65:             Label
              74:     8(bool) Phi 63 20 73 64
                              SelectionMerge 76 None
                              BranchConditional 74 75 76
              75:               Label
              79:      7(ptr)   AccessChain 17(a) 78
              80:    6(float)   Load 79
                                Store 77(param) 80
              82:      7(ptr)   AccessChain 18(b) 78
              83:    6(float)   Load 82
                                Store 81(param) 83
              84:     8(bool)   FunctionCall 12(compare_float(f1;f1;) 77(param) 81(param)
                                Branch 76
              76:             Label
              85:     8(bool) Phi 74 65 84 75
                              ReturnValue 85
                              FunctionEnd
26(compare_mat2x3(mf23;mf23;):     8(bool) Function None 23
           24(a):     22(ptr) FunctionParameter
           25(b):     22(ptr) FunctionParameter
              27:             Label
       89(param):     15(ptr) Variable Function
       92(param):     15(ptr) Variable Function
       99(param):     15(ptr) Variable Function
      102(param):     15(ptr) Variable Function
              90:     15(ptr) AccessChain 24(a) 88
              91:   14(fvec3) Load 90
                              Store 89(param) 91
              93:     15(ptr) AccessChain 25(b) 88
              94:   14(fvec3) Load 93
                              Store 92(param) 94
              95:     8(bool) FunctionCall 19(compare_vec3(vf3;vf3;) 89(param) 92(param)
                              SelectionMerge 97 None
                              BranchConditional 95 96 97
              96:               Label
             100:     15(ptr)   AccessChain 24(a) 98
             101:   14(fvec3)   Load 100
                                Store 99(param) 101
             103:     15(ptr)   AccessChain 25(b) 98
             104:   14(fvec3)   Load 103
                                Store 102(param) 104
             105:     8(bool)   FunctionCall 19(compare_vec3(vf3;vf3;) 99(param) 102(param)
                                Branch 97
              97:             Label
             106:     8(bool) Phi 95 27 105 96
                              ReturnValue 106
                              FunctionEnd
34(compare_ivec2(vi2;vi2;):     8(bool) Function None 31
           32(a):     30(ptr) FunctionParameter
           33(b):     30(ptr) FunctionParameter
              35:             Label
             109:   29(ivec2) Load 32(a)
             110:   29(ivec2) Load 33(b)
             112:  111(bvec2) IEqual 109 110
             113:     8(bool) All 112
                              ReturnValue 113
                              FunctionEnd
42(compare_uvec3(vu3;vu3;):     8(bool) Function None 39
           40(a):     38(ptr) FunctionParameter
           41(b):     38(ptr) FunctionParameter
              43:             Label
             116:   37(ivec3) Load 40(a)
             117:   37(ivec3) Load 41(b)
             119:  118(bvec3) IEqual 116 117
             120:     8(bool) All 119
                              ReturnValue 120
                              FunctionEnd
46(compare_float16_t(f1;f1;):     8(bool) Function None 9
           44(a):      7(ptr) FunctionParameter
           45(b):      7(ptr) FunctionParameter
              47:             Label
             123:    6(float) Load 44(a)
             124:    6(float) Load 45(b)
             125:    6(float) FSub 123 124
             126:    6(float) ExtInst 1(GLSL.std.450) 4(FAbs) 125
             127:     8(bool) FOrdLessThan 126 52
                              ReturnValue 127
                              FunctionEnd
