spv.8bitstorage-int.frag
// Module Version 10000
// Generated by (magic number): 80008
// Id's are bound by 171

                              Capability Shader
                              Capability UniformAndStorageBuffer8BitAccess
                              Extension  "SPV_KHR_8bit_storage"
               1:             ExtInstImport  "GLSL.std.450"
                              MemoryModel Logical GLSL450
                              EntryPoint Fragment 4  "main"
                              ExecutionMode 4 OriginUpperLeft
                              Source GLSL 450
                              SourceExtension  "GL_EXT_shader_8bit_storage"
                              Name 4  "main"
                              Name 12  "S"
                              MemberName 12(S) 0  "x"
                              MemberName 12(S) 1  "y"
                              MemberName 12(S) 2  "z"
                              Name 17  "B2"
                              MemberName 17(B2) 0  "o"
                              MemberName 17(B2) 1  "p"
                              MemberName 17(B2) 2  "q"
                              MemberName 17(B2) 3  "r"
                              MemberName 17(B2) 4  "u"
                              MemberName 17(B2) 5  "v"
                              MemberName 17(B2) 6  "x"
                              MemberName 17(B2) 7  "w"
                              Name 19  "b2"
                              Name 23  "S"
                              MemberName 23(S) 0  "x"
                              MemberName 23(S) 1  "y"
                              MemberName 23(S) 2  "z"
                              Name 25  "B1"
                              MemberName 25(B1) 0  "a"
                              MemberName 25(B1) 1  "b"
                              MemberName 25(B1) 2  "c"
                              MemberName 25(B1) 3  "d"
                              MemberName 25(B1) 4  "g"
                              MemberName 25(B1) 5  "h"
                              MemberName 25(B1) 6  "j"
                              Name 27  "b1"
                              Name 45  "S"
                              MemberName 45(S) 0  "x"
                              MemberName 45(S) 1  "y"
                              MemberName 45(S) 2  "z"
                              Name 49  "B5"
                              MemberName 49(B5) 0  "o"
                              MemberName 49(B5) 1  "p"
                              MemberName 49(B5) 2  "q"
                              MemberName 49(B5) 3  "r"
                              MemberName 49(B5) 4  "u"
                              MemberName 49(B5) 5  "v"
                              MemberName 49(B5) 6  "x"
                              MemberName 49(B5) 7  "w"
                              Name 51  "b5"
                              Name 69  "x0"
                              Name 75  "x1"
                              Name 88  "S2"
                              MemberName 88(S2) 0  "x"
                              MemberName 88(S2) 1  "y"
                              MemberName 88(S2) 2  "z"
                              Name 89  "S3"
                              MemberName 89(S3) 0  "x"
                              Name 90  "B4"
                              MemberName 90(B4) 0  "x"
                              MemberName 90(B4) 1  "y"
                              Name 92  "b4"
                              Name 93  "S2"
                              MemberName 93(S2) 0  "x"
                              MemberName 93(S2) 1  "y"
                              MemberName 93(S2) 2  "z"
                              Name 94  "B3"
                              MemberName 94(B3) 0  "x"
                              Name 96  "b3"
                              Name 113  "v3"
                              Name 135  "u3"
                              Decorate 11 ArrayStride 1
                              MemberDecorate 12(S) 0 Offset 0
                              MemberDecorate 12(S) 1 Offset 2
                              MemberDecorate 12(S) 2 Offset 4
                              Decorate 13 ArrayStride 8
                              Decorate 15 ArrayStride 2
                              Decorate 16 ArrayStride 1
                              MemberDecorate 17(B2) 0 Offset 0
                              MemberDecorate 17(B2) 1 Offset 2
                              MemberDecorate 17(B2) 2 Offset 4
                              MemberDecorate 17(B2) 3 Offset 7
                              MemberDecorate 17(B2) 4 Offset 12
                              MemberDecorate 17(B2) 5 Offset 20
                              MemberDecorate 17(B2) 6 Offset 36
                              MemberDecorate 17(B2) 7 Offset 236
                              Decorate 17(B2) BufferBlock
                              Decorate 19(b2) DescriptorSet 0
                              Decorate 19(b2) Binding 0
                              Decorate 22 ArrayStride 16
                              MemberDecorate 23(S) 0 Offset 0
                              MemberDecorate 23(S) 1 Offset 2
                              MemberDecorate 23(S) 2 Offset 4
                              Decorate 24 ArrayStride 16
                              MemberDecorate 25(B1) 0 Offset 0
                              MemberDecorate 25(B1) 1 Offset 2
                              MemberDecorate 25(B1) 2 Offset 4
                              MemberDecorate 25(B1) 3 Offset 16
                              MemberDecorate 25(B1) 4 Offset 48
                              MemberDecorate 25(B1) 5 Offset 64
                              MemberDecorate 25(B1) 6 Offset 96
                              Decorate 25(B1) Block
                              Decorate 27(b1) DescriptorSet 0
                              Decorate 27(b1) Binding 0
                              Decorate 44 ArrayStride 16
                              MemberDecorate 45(S) 0 Offset 0
                              MemberDecorate 45(S) 1 Offset 2
                              MemberDecorate 45(S) 2 Offset 4
                              Decorate 46 ArrayStride 16
                              Decorate 47 ArrayStride 16
                              Decorate 48 ArrayStride 16
                              MemberDecorate 49(B5) 0 Offset 0
                              MemberDecorate 49(B5) 1 Offset 2
                              MemberDecorate 49(B5) 2 Offset 4
                              MemberDecorate 49(B5) 3 Offset 16
                              MemberDecorate 49(B5) 4 Offset 48
                              MemberDecorate 49(B5) 5 Offset 64
                              MemberDecorate 49(B5) 6 Offset 96
                              MemberDecorate 49(B5) 7 Offset 1696
                              Decorate 49(B5) Block
                              Decorate 51(b5) DescriptorSet 0
                              Decorate 51(b5) Binding 0
                              MemberDecorate 88(S2) 0 ColMajor
                              MemberDecorate 88(S2) 0 Offset 0
                              MemberDecorate 88(S2) 0 MatrixStride 16
                              MemberDecorate 88(S2) 1 Offset 64
                              MemberDecorate 88(S2) 2 Offset 68
                              MemberDecorate 89(S3) 0 Offset 0
                              MemberDecorate 90(B4) 0 Offset 0
                              MemberDecorate 90(B4) 1 Offset 80
                              Decorate 90(B4) BufferBlock
                              Decorate 92(b4) DescriptorSet 0
                              Decorate 92(b4) Binding 0
                              MemberDecorate 93(S2) 0 RowMajor
                              MemberDecorate 93(S2) 0 Offset 0
                              MemberDecorate 93(S2) 0 MatrixStride 16
                              MemberDecorate 93(S2) 1 Offset 64
                              MemberDecorate 93(S2) 2 Offset 68
                              MemberDecorate 94(B3) 0 Offset 0
                              Decorate 94(B3) BufferBlock
                              Decorate 96(b3) DescriptorSet 0
                              Decorate 96(b3) Binding 0
               2:             TypeVoid
               3:             TypeFunction 2
               6:             TypeInt 8 1
               7:             TypeVector 6(int8_t) 2
               8:             TypeVector 6(int8_t) 3
               9:             TypeInt 32 0
              10:      9(int) Constant 2
              11:             TypeArray 6(int8_t) 10
           12(S):             TypeStruct 6(int8_t) 7(i8vec2) 8(i8vec3)
              13:             TypeArray 12(S) 10
              14:      9(int) Constant 100
              15:             TypeArray 7(i8vec2) 14
              16:             TypeRuntimeArray 6(int8_t)
          17(B2):             TypeStruct 6(int8_t) 7(i8vec2) 8(i8vec3) 11 12(S) 13 15 16
              18:             TypePointer Uniform 17(B2)
          19(b2):     18(ptr) Variable Uniform
              20:             TypeInt 32 1
              21:     20(int) Constant 0
              22:             TypeArray 6(int8_t) 10
           23(S):             TypeStruct 6(int8_t) 7(i8vec2) 8(i8vec3)
              24:             TypeArray 23(S) 10
          25(B1):             TypeStruct 6(int8_t) 7(i8vec2) 8(i8vec3) 22 23(S) 24 20(int)
              26:             TypePointer Uniform 25(B1)
          27(b1):     26(ptr) Variable Uniform
              28:             TypePointer Uniform 6(int8_t)
              32:     20(int) Constant 1
              33:     20(int) Constant 2
              34:             TypePointer Uniform 8(i8vec3)
              37:             TypeVector 20(int) 3
              39:             TypeVector 20(int) 2
              42:             TypePointer Uniform 7(i8vec2)
              44:             TypeArray 6(int8_t) 10
           45(S):             TypeStruct 6(int8_t) 7(i8vec2) 8(i8vec3)
              46:             TypeArray 45(S) 10
              47:             TypeArray 7(i8vec2) 14
              48:             TypeArray 6(int8_t) 14
          49(B5):             TypeStruct 6(int8_t) 7(i8vec2) 8(i8vec3) 44 45(S) 46 47 48
              50:             TypePointer Uniform 49(B5)
          51(b5):     50(ptr) Variable Uniform
              58:     20(int) Constant 3
              68:             TypePointer Function 20(int)
              73:             TypeVector 20(int) 4
              74:             TypePointer Function 73(ivec4)
              85:             TypeFloat 32
              86:             TypeVector 85(float) 4
              87:             TypeMatrix 86(fvec4) 4
          88(S2):             TypeStruct 87 6(int8_t) 20(int)
          89(S3):             TypeStruct 88(S2)
          90(B4):             TypeStruct 88(S2) 89(S3)
              91:             TypePointer Uniform 90(B4)
          92(b4):     91(ptr) Variable Uniform
          93(S2):             TypeStruct 87 6(int8_t) 20(int)
          94(B3):             TypeStruct 93(S2)
              95:             TypePointer Uniform 94(B3)
          96(b3):     95(ptr) Variable Uniform
              97:             TypePointer Uniform 87
             104:      9(int) Constant 0
             108:     20(int) Constant 5
             112:             TypePointer Function 37(ivec3)
             114:     20(int) Constant 7
             115:     20(int) Constant 6
             116:             TypePointer Uniform 20(int)
             166:   39(ivec2) ConstantComposite 32 33
         4(main):           2 Function None 3
               5:             Label
          69(x0):     68(ptr) Variable Function
          75(x1):     74(ptr) Variable Function
         113(v3):    112(ptr) Variable Function
         135(u3):    112(ptr) Variable Function
              29:     28(ptr) AccessChain 27(b1) 21
              30:   6(int8_t) Load 29
              31:     28(ptr) AccessChain 19(b2) 21
                              Store 31 30
              35:     34(ptr) AccessChain 19(b2) 33
              36:   8(i8vec3) Load 35
              38:   37(ivec3) SConvert 36
              40:   39(ivec2) VectorShuffle 38 38 0 1
              41:   7(i8vec2) SConvert 40
              43:     42(ptr) AccessChain 19(b2) 32
                              Store 43 41
              52:     34(ptr) AccessChain 51(b5) 33
              53:   8(i8vec3) Load 52
              54:   37(ivec3) SConvert 53
              55:   39(ivec2) VectorShuffle 54 54 0 1
              56:   7(i8vec2) SConvert 55
              57:     42(ptr) AccessChain 19(b2) 32
                              Store 57 56
              59:     28(ptr) AccessChain 19(b2) 58 21
              60:   6(int8_t) Load 59
              61:     28(ptr) AccessChain 19(b2) 58 21
                              Store 61 60
              62:     28(ptr) AccessChain 51(b5) 58 32
              63:   6(int8_t) Load 62
              64:     28(ptr) AccessChain 19(b2) 58 32
                              Store 64 63
              65:     42(ptr) AccessChain 19(b2) 32
              66:   7(i8vec2) Load 65
              67:     42(ptr) AccessChain 19(b2) 32
                              Store 67 66
              70:     28(ptr) AccessChain 27(b1) 21
              71:   6(int8_t) Load 70
              72:     20(int) SConvert 71
                              Store 69(x0) 72
              76:     28(ptr) AccessChain 27(b1) 21
              77:   6(int8_t) Load 76
              78:     20(int) SConvert 77
              79:     42(ptr) AccessChain 19(b2) 32
              80:   7(i8vec2) Load 79
              81:   39(ivec2) SConvert 80
              82:     20(int) CompositeExtract 81 0
              83:     20(int) CompositeExtract 81 1
              84:   73(ivec4) CompositeConstruct 78 82 83 32
                              Store 75(x1) 84
              98:     97(ptr) AccessChain 96(b3) 21 21
              99:          87 Load 98
             100:     97(ptr) AccessChain 92(b4) 21 21
                              Store 100 99
             101:     42(ptr) AccessChain 19(b2) 32
             102:   7(i8vec2) Load 101
             103:   39(ivec2) SConvert 102
             105:     20(int) CompositeExtract 103 0
             106:   6(int8_t) SConvert 105
             107:     28(ptr) AccessChain 19(b2) 21
                              Store 107 106
             109:     42(ptr) AccessChain 19(b2) 108 32 32
             110:   7(i8vec2) Load 109
             111:     42(ptr) AccessChain 19(b2) 32
                              Store 111 110
             117:    116(ptr) AccessChain 27(b1) 115
             118:     20(int) Load 117
             119:     28(ptr) AccessChain 19(b2) 114 118
             120:   6(int8_t) Load 119
             121:     20(int) SConvert 120
             122:    116(ptr) AccessChain 27(b1) 115
             123:     20(int) Load 122
             124:     20(int) IAdd 123 32
             125:     28(ptr) AccessChain 19(b2) 114 124
             126:   6(int8_t) Load 125
             127:     20(int) SConvert 126
             128:    116(ptr) AccessChain 27(b1) 115
             129:     20(int) Load 128
             130:     20(int) IAdd 129 33
             131:     28(ptr) AccessChain 19(b2) 114 130
             132:   6(int8_t) Load 131
             133:     20(int) SConvert 132
             134:   37(ivec3) CompositeConstruct 121 127 133
                              Store 113(v3) 134
             136:    116(ptr) AccessChain 27(b1) 115
             137:     20(int) Load 136
             138:     28(ptr) AccessChain 51(b5) 114 137
             139:   6(int8_t) Load 138
             140:     20(int) SConvert 139
             141:    116(ptr) AccessChain 27(b1) 115
             142:     20(int) Load 141
             143:     20(int) IAdd 142 32
             144:     28(ptr) AccessChain 51(b5) 114 143
             145:   6(int8_t) Load 144
             146:     20(int) SConvert 145
             147:    116(ptr) AccessChain 27(b1) 115
             148:     20(int) Load 147
             149:     20(int) IAdd 148 33
             150:     28(ptr) AccessChain 51(b5) 114 149
             151:   6(int8_t) Load 150
             152:     20(int) SConvert 151
             153:   37(ivec3) CompositeConstruct 140 146 152
                              Store 135(u3) 153
             154:     42(ptr) AccessChain 19(b2) 115 21
             155:   7(i8vec2) Load 154
             156:     42(ptr) AccessChain 19(b2) 115 21
                              Store 156 155
             157:     42(ptr) AccessChain 51(b5) 115 32
             158:   7(i8vec2) Load 157
             159:     42(ptr) AccessChain 19(b2) 115 32
                              Store 159 158
             160:     28(ptr) AccessChain 27(b1) 21
             161:   6(int8_t) Load 160
             162:     28(ptr) AccessChain 19(b2) 32 104
                              Store 162 161
             163:     28(ptr) AccessChain 19(b2) 32 104
             164:   6(int8_t) Load 163
             165:     28(ptr) AccessChain 19(b2) 21
                              Store 165 164
             167:   7(i8vec2) SConvert 166
             168:     42(ptr) AccessChain 19(b2) 32
                              Store 168 167
             169:   6(int8_t) SConvert 58
             170:     28(ptr) AccessChain 19(b2) 21
                              Store 170 169
                              Return
                              FunctionEnd
