spv.bfloat16.comp // Module Version 10300 // Generated by (magic number): 8000b // Id's are bound by 325 Capability Shader Capability Float16 Capability Float64 Capability Int64 Capability Int16 Capability Int8 Capability BFloat16TypeKHR Capability BFloat16DotProductKHR Capability BFloat16CooperativeMatrixKHR Capability VulkanMemoryModelKHR Capability CooperativeMatrixKHR Extension "SPV_KHR_bfloat16" Extension "SPV_KHR_cooperative_matrix" Extension "SPV_KHR_vulkan_memory_model" 1: ExtInstImport "GLSL.std.450" MemoryModel Logical VulkanKHR EntryPoint GLCompute 4 "main" ExecutionMode 4 LocalSize 1 1 1 Source GLSL 450 SourceExtension "GL_EXT_bfloat16" SourceExtension "GL_EXT_scalar_block_layout" SourceExtension "GL_EXT_shader_explicit_arithmetic_types" SourceExtension "GL_KHR_cooperative_matrix" SourceExtension "GL_KHR_memory_scope_semantics" Name 4 "main" Name 10 "funcbf16(bf161;" Name 9 "x" Name 16 "funcf32(f1;" Name 15 "x" Name 22 "funcf64(d1;" Name 21 "x" Name 34 "func2(vbf164[2];i1;" Name 32 "v" Name 33 "i" Name 47 "f" Name 49 "b" Name 55 "b2" Name 61 "u8" Name 65 "u16" Name 68 "u32" Name 72 "u64" Name 76 "i8" Name 80 "i16" Name 82 "i32" Name 86 "i64" Name 88 "bf16" Name 92 "f16" Name 94 "f32" Name 96 "f64" Name 149 "B" MemberName 149(B) 0 "b3" MemberName 149(B) 1 "b2" MemberName 149(B) 2 "b1" Name 151 "buf" Name 161 "b3" Name 174 "cmA" Name 179 "cmAf" Name 182 "param" Name 187 "param" Name 191 "param" Name 193 "i16_1" Name 198 "i16_2" Name 203 "i16_3" Name 212 "i16_4" Name 220 "u16_1" Name 225 "u16_2" Name 230 "u16_3" Name 239 "u16_4" Name 247 "b16_1" Name 250 "b16_2" Name 253 "b16_3" Name 257 "b16_4" Name 268 "b" Name 289 "S" MemberName 289(S) 0 "b" Name 291 "s" Name 317 "bsc10" Name 324 "bfs" Decorate 149(B) Block MemberDecorate 149(B) 0 Offset 0 MemberDecorate 149(B) 1 Offset 6 MemberDecorate 149(B) 2 Offset 10 Decorate 151(buf) Binding 0 Decorate 151(buf) DescriptorSet 0 Decorate 313 BuiltIn WorkgroupSize Decorate 317(bsc10) SpecId 1 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 16 0 7: TypePointer Function 6(bfloat16_t) 8: TypeFunction 6(bfloat16_t) 7(ptr) 12: TypeFloat 32 13: TypePointer Function 12(float) 14: TypeFunction 6(bfloat16_t) 13(ptr) 18: TypeFloat 64 19: TypePointer Function 18(float64_t) 20: TypeFunction 6(bfloat16_t) 19(ptr) 24: TypeVector 6(bfloat16_t) 4 25: TypeInt 32 0 26: 25(int) Constant 2 27: TypeArray 24(bf16vec4) 26 28: TypePointer Function 27 29: TypeInt 32 1 30: TypePointer Function 29(int) 31: TypeFunction 6(bfloat16_t) 28(ptr) 30(ptr) 48: 12(float) Constant 1073741824 50:6(bfloat16_t) Constant 16256 53: TypeVector 6(bfloat16_t) 2 54: TypePointer Function 53(bf16vec2) 59: TypeInt 8 0 60: TypePointer Function 59(int8_t) 62: 59(int8_t) Constant 5 63: TypeInt 16 0 64: TypePointer Function 63(int16_t) 66: 63(int16_t) Constant 5 67: TypePointer Function 25(int) 69: 25(int) Constant 5 70: TypeInt 64 0 71: TypePointer Function 70(int64_t) 73: 70(int64_t) Constant 5 0 74: TypeInt 8 1 75: TypePointer Function 74(int8_t) 77: 74(int8_t) Constant 6 78: TypeInt 16 1 79: TypePointer Function 78(int16_t) 81: 78(int16_t) Constant 6 83: 29(int) Constant 6 84: TypeInt 64 1 85: TypePointer Function 84(int64_t) 87: 84(int64_t) Constant 6 0 89:6(bfloat16_t) Constant 16608 90: TypeFloat 16 91: TypePointer Function 90(float16_t) 93:90(float16_t) Constant 18176 95: 12(float) Constant 1088421888 97:18(float64_t) Constant 0 1075576832 148: TypeVector 6(bfloat16_t) 3 149(B): TypeStruct 148(bf16vec3) 53(bf16vec2) 6(bfloat16_t) 150: TypePointer StorageBuffer 149(B) 151(buf): 150(ptr) Variable StorageBuffer 152: 29(int) Constant 2 153: TypePointer StorageBuffer 6(bfloat16_t) 156: 29(int) Constant 1 157: TypePointer StorageBuffer 53(bf16vec2) 160: TypePointer Function 148(bf16vec3) 162: 29(int) Constant 0 163: TypePointer StorageBuffer 148(bf16vec3) 169: 25(int) Constant 3 170: 25(int) Constant 16 171: 25(int) Constant 0 172: TypeCooperativeMatrixKHR 6(bfloat16_t) 169 170 170 171 173: TypePointer Function 172 175:6(bfloat16_t) Constant 16448 176: 172 ConstantComposite 175 177: TypeCooperativeMatrixKHR 12(float) 169 170 170 171 178: TypePointer Function 177 196: TypeVector 78(int16_t) 2 197: TypePointer Function 196(i16vec2) 201: TypeVector 78(int16_t) 3 202: TypePointer Function 201(i16vec3) 210: TypeVector 78(int16_t) 4 211: TypePointer Function 210(i16vec4) 223: TypeVector 63(int16_t) 2 224: TypePointer Function 223(i16vec2) 228: TypeVector 63(int16_t) 3 229: TypePointer Function 228(i16vec3) 237: TypeVector 63(int16_t) 4 238: TypePointer Function 237(i16vec4) 256: TypePointer Function 24(bf16vec4) 281: 25(int) Constant 1 289(S): TypeStruct 6(bfloat16_t) 290: TypePointer Function 289(S) 295: TypeBool 298:6(bfloat16_t) Constant 16384 312: TypeVector 25(int) 3 313: 312(ivec3) ConstantComposite 281 281 281 314:6(bfloat16_t) Constant 16672 315:6(bfloat16_t) Constant 16800 316:53(bf16vec2) ConstantComposite 315 315 317(bsc10):6(bfloat16_t) SpecConstant 16672 318: 289(S) ConstantComposite 314 319: TypeArray 6(bfloat16_t) 26 320: 319 ConstantComposite 314 314 321: 25(int) Constant 10 322: TypeArray 6(bfloat16_t) 321 323: TypePointer Workgroup 322 324(bfs): 323(ptr) Variable Workgroup 4(main): 2 Function None 3 5: Label 47(f): 13(ptr) Variable Function 49(b): 7(ptr) Variable Function 55(b2): 54(ptr) Variable Function 61(u8): 60(ptr) Variable Function 65(u16): 64(ptr) Variable Function 68(u32): 67(ptr) Variable Function 72(u64): 71(ptr) Variable Function 76(i8): 75(ptr) Variable Function 80(i16): 79(ptr) Variable Function 82(i32): 30(ptr) Variable Function 86(i64): 85(ptr) Variable Function 88(bf16): 7(ptr) Variable Function 92(f16): 91(ptr) Variable Function 94(f32): 13(ptr) Variable Function 96(f64): 19(ptr) Variable Function 161(b3): 160(ptr) Variable Function 174(cmA): 173(ptr) Variable Function 179(cmAf): 178(ptr) Variable Function 182(param): 7(ptr) Variable Function 187(param): 13(ptr) Variable Function 191(param): 19(ptr) Variable Function 193(i16_1): 79(ptr) Variable Function 198(i16_2): 197(ptr) Variable Function 203(i16_3): 202(ptr) Variable Function 212(i16_4): 211(ptr) Variable Function 220(u16_1): 64(ptr) Variable Function 225(u16_2): 224(ptr) Variable Function 230(u16_3): 229(ptr) Variable Function 239(u16_4): 238(ptr) Variable Function 247(b16_1): 7(ptr) Variable Function 250(b16_2): 54(ptr) Variable Function 253(b16_3): 160(ptr) Variable Function 257(b16_4): 256(ptr) Variable Function Store 47(f) 48 Store 49(b) 50 51: 12(float) Load 47(f) 52:6(bfloat16_t) FConvert 51 56: 12(float) Load 47(f) 57:6(bfloat16_t) FConvert 56 58:53(bf16vec2) CompositeConstruct 57 57 Store 55(b2) 58 Store 61(u8) 62 Store 65(u16) 66 Store 68(u32) 69 Store 72(u64) 73 Store 76(i8) 77 Store 80(i16) 81 Store 82(i32) 83 Store 86(i64) 87 Store 88(bf16) 89 Store 92(f16) 93 Store 94(f32) 95 Store 96(f64) 97 98: 59(int8_t) Load 61(u8) 99:6(bfloat16_t) ConvertUToF 98 Store 49(b) 99 100: 63(int16_t) Load 65(u16) 101:6(bfloat16_t) ConvertUToF 100 Store 49(b) 101 102: 25(int) Load 68(u32) 103:6(bfloat16_t) ConvertUToF 102 Store 49(b) 103 104: 70(int64_t) Load 72(u64) 105:6(bfloat16_t) ConvertUToF 104 Store 49(b) 105 106: 74(int8_t) Load 76(i8) 107:6(bfloat16_t) ConvertSToF 106 Store 49(b) 107 108: 78(int16_t) Load 80(i16) 109:6(bfloat16_t) ConvertSToF 108 Store 49(b) 109 110: 29(int) Load 82(i32) 111:6(bfloat16_t) ConvertSToF 110 Store 49(b) 111 112: 84(int64_t) Load 86(i64) 113:6(bfloat16_t) ConvertSToF 112 Store 49(b) 113 114:6(bfloat16_t) Load 88(bf16) Store 49(b) 114 115:90(float16_t) Load 92(f16) 116:6(bfloat16_t) FConvert 115 Store 49(b) 116 117: 12(float) Load 94(f32) 118:6(bfloat16_t) FConvert 117 Store 49(b) 118 119:18(float64_t) Load 96(f64) 120:6(bfloat16_t) FConvert 119 Store 49(b) 120 121:6(bfloat16_t) Load 49(b) 122: 59(int8_t) ConvertFToU 121 Store 61(u8) 122 123:6(bfloat16_t) Load 49(b) 124: 63(int16_t) ConvertFToU 123 Store 65(u16) 124 125:6(bfloat16_t) Load 49(b) 126: 25(int) ConvertFToU 125 Store 68(u32) 126 127:6(bfloat16_t) Load 49(b) 128: 70(int64_t) ConvertFToU 127 Store 72(u64) 128 129:6(bfloat16_t) Load 49(b) 130: 74(int8_t) ConvertFToS 129 Store 76(i8) 130 131:6(bfloat16_t) Load 49(b) 132: 78(int16_t) ConvertFToS 131 Store 80(i16) 132 133:6(bfloat16_t) Load 49(b) 134: 29(int) ConvertFToS 133 Store 82(i32) 134 135:6(bfloat16_t) Load 49(b) 136: 84(int64_t) ConvertFToS 135 Store 86(i64) 136 137:6(bfloat16_t) Load 49(b) Store 88(bf16) 137 138:6(bfloat16_t) Load 49(b) 139:90(float16_t) FConvert 138 Store 92(f16) 139 140:6(bfloat16_t) Load 49(b) 141: 12(float) FConvert 140 Store 94(f32) 141 142:6(bfloat16_t) Load 49(b) 143:18(float64_t) FConvert 142 Store 96(f64) 143 144:6(bfloat16_t) Load 49(b) 145: 12(float) FConvert 144 Store 94(f32) 145 146:6(bfloat16_t) Load 49(b) 147:18(float64_t) FConvert 146 Store 96(f64) 147 154: 153(ptr) AccessChain 151(buf) 152 155:6(bfloat16_t) Load 154 Store 49(b) 155 158: 157(ptr) AccessChain 151(buf) 156 159:53(bf16vec2) Load 158 Store 55(b2) 159 164: 163(ptr) AccessChain 151(buf) 162 165:148(bf16vec3) Load 164 Store 161(b3) 165 166:53(bf16vec2) Load 55(b2) 167:53(bf16vec2) Load 55(b2) 168:6(bfloat16_t) Dot 166 167 Store 174(cmA) 176 180: 172 Load 174(cmA) 181: 177 FConvert 180 Store 179(cmAf) 181 183:6(bfloat16_t) Load 49(b) Store 182(param) 183 184:6(bfloat16_t) FunctionCall 10(funcbf16(bf161;) 182(param) 185:6(bfloat16_t) Load 49(b) 186: 12(float) FConvert 185 Store 187(param) 186 188:6(bfloat16_t) FunctionCall 16(funcf32(f1;) 187(param) 189:6(bfloat16_t) Load 49(b) 190:18(float64_t) FConvert 189 Store 191(param) 190 192:6(bfloat16_t) FunctionCall 22(funcf64(d1;) 191(param) 194:6(bfloat16_t) Load 49(b) 195: 78(int16_t) Bitcast 194 Store 193(i16_1) 195 199:53(bf16vec2) Load 55(b2) 200:196(i16vec2) Bitcast 199 Store 198(i16_2) 200 204:53(bf16vec2) Load 55(b2) 205:6(bfloat16_t) Load 49(b) 206:6(bfloat16_t) CompositeExtract 204 0 207:6(bfloat16_t) CompositeExtract 204 1 208:148(bf16vec3) CompositeConstruct 206 207 205 209:201(i16vec3) Bitcast 208 Store 203(i16_3) 209 213:53(bf16vec2) Load 55(b2) 214:6(bfloat16_t) CompositeExtract 213 0 215:6(bfloat16_t) CompositeExtract 213 1 216:6(bfloat16_t) CompositeExtract 213 0 217:6(bfloat16_t) CompositeExtract 213 1 218:24(bf16vec4) CompositeConstruct 214 215 216 217 219:210(i16vec4) Bitcast 218 Store 212(i16_4) 219 221:6(bfloat16_t) Load 49(b) 222: 63(int16_t) Bitcast 221 Store 220(u16_1) 222 226:53(bf16vec2) Load 55(b2) 227:223(i16vec2) Bitcast 226 Store 225(u16_2) 227 231:53(bf16vec2) Load 55(b2) 232:6(bfloat16_t) Load 49(b) 233:6(bfloat16_t) CompositeExtract 231 0 234:6(bfloat16_t) CompositeExtract 231 1 235:148(bf16vec3) CompositeConstruct 233 234 232 236:228(i16vec3) Bitcast 235 Store 230(u16_3) 236 240:53(bf16vec2) Load 55(b2) 241:6(bfloat16_t) CompositeExtract 240 0 242:6(bfloat16_t) CompositeExtract 240 1 243:6(bfloat16_t) CompositeExtract 240 0 244:6(bfloat16_t) CompositeExtract 240 1 245:24(bf16vec4) CompositeConstruct 241 242 243 244 246:237(i16vec4) Bitcast 245 Store 239(u16_4) 246 248: 78(int16_t) Load 193(i16_1) 249:6(bfloat16_t) Bitcast 248 Store 247(b16_1) 249 251:196(i16vec2) Load 198(i16_2) 252:53(bf16vec2) Bitcast 251 Store 250(b16_2) 252 254:201(i16vec3) Load 203(i16_3) 255:148(bf16vec3) Bitcast 254 Store 253(b16_3) 255 258:210(i16vec4) Load 212(i16_4) 259:24(bf16vec4) Bitcast 258 Store 257(b16_4) 259 260: 63(int16_t) Load 220(u16_1) 261:6(bfloat16_t) Bitcast 260 Store 247(b16_1) 261 262:223(i16vec2) Load 225(u16_2) 263:53(bf16vec2) Bitcast 262 Store 250(b16_2) 263 264:228(i16vec3) Load 230(u16_3) 265:148(bf16vec3) Bitcast 264 Store 253(b16_3) 265 266:237(i16vec4) Load 239(u16_4) 267:24(bf16vec4) Bitcast 266 Store 257(b16_4) 267 Return FunctionEnd 10(funcbf16(bf161;):6(bfloat16_t) Function None 8 9(x): 7(ptr) FunctionParameter 11: Label 36:6(bfloat16_t) Load 9(x) ReturnValue 36 FunctionEnd 16(funcf32(f1;):6(bfloat16_t) Function None 14 15(x): 13(ptr) FunctionParameter 17: Label 39: 12(float) Load 15(x) 40:6(bfloat16_t) FConvert 39 ReturnValue 40 FunctionEnd 22(funcf64(d1;):6(bfloat16_t) Function None 20 21(x): 19(ptr) FunctionParameter 23: Label 43:18(float64_t) Load 21(x) 44:6(bfloat16_t) FConvert 43 ReturnValue 44 FunctionEnd 34(func2(vbf164[2];i1;):6(bfloat16_t) Function None 31 32(v): 28(ptr) FunctionParameter 33(i): 30(ptr) FunctionParameter 35: Label 268(b): 7(ptr) Variable Function 291(s): 290(ptr) Variable Function 269: 256(ptr) AccessChain 32(v) 162 270:24(bf16vec4) Load 269 271:6(bfloat16_t) CompositeExtract 270 0 272:6(bfloat16_t) CompositeExtract 270 1 273:53(bf16vec2) CompositeConstruct 271 272 274: 29(int) Load 33(i) 275:6(bfloat16_t) VectorExtractDynamic 273 274 Store 268(b) 275 276: 256(ptr) AccessChain 32(v) 156 277:24(bf16vec4) Load 276 278:6(bfloat16_t) CompositeExtract 277 0 279:6(bfloat16_t) CompositeExtract 277 1 280:53(bf16vec2) CompositeConstruct 278 279 282:6(bfloat16_t) CompositeExtract 280 1 Store 268(b) 282 283: 29(int) Load 33(i) 284: 29(int) Load 33(i) 285: 29(int) Load 33(i) 286: 7(ptr) AccessChain 32(v) 284 285 287:6(bfloat16_t) Load 286 288: 7(ptr) AccessChain 32(v) 283 26 Store 288 287 292:6(bfloat16_t) Load 268(b) 293: 7(ptr) AccessChain 291(s) 162 Store 293 292 294: 29(int) Load 33(i) 296: 295(bool) INotEqual 294 162 297:6(bfloat16_t) Load 268(b) 299:6(bfloat16_t) Select 296 297 298 Store 268(b) 299 300: 29(int) Load 33(i) 301: 295(bool) IEqual 300 152 SelectionMerge 303 None BranchConditional 301 302 306 302: Label 304: 7(ptr) AccessChain 32(v) 162 171 305:6(bfloat16_t) Load 304 Store 268(b) 305 Branch 303 306: Label 307: 7(ptr) AccessChain 32(v) 156 281 308:6(bfloat16_t) Load 307 Store 268(b) 308 Branch 303 303: Label 309:6(bfloat16_t) Load 268(b) ReturnValue 309 FunctionEnd