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

                              Capability Shader
                              Capability CapabilityUniformAndStorageBuffer8BitAccess
                              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 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 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
                              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
                              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
               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
