| 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 |