blob: 8b55dbb97de63d81e8dcac97c48da56dc6977e5a [file]
; SPIR-V
; Version: 1.3
; Generator: Google Tint Compiler; 1
; Bound: 118
; Schema: 0
OpCapability Shader
OpCapability VulkanMemoryModel
OpCapability VulkanMemoryModelDeviceScope
OpCapability CooperativeMatrixKHR
OpCapability Int8
OpExtension "SPV_KHR_vulkan_memory_model"
OpExtension "SPV_KHR_cooperative_matrix"
%55 = OpExtInstImport "GLSL.std.450"
OpMemoryModel Logical Vulkan
OpEntryPoint GLCompute %main "main"
OpExecutionMode %main LocalSize 64 1 1
OpMemberName %ibuffer_block_tint_explicit_layout 0 "inner"
OpName %ibuffer_block_tint_explicit_layout "ibuffer_block_tint_explicit_layout"
OpMemberName %ubuffer_block_tint_explicit_layout 0 "inner"
OpName %ubuffer_block_tint_explicit_layout "ubuffer_block_tint_explicit_layout"
OpName %main "main"
OpDecorate %_runtimearr_int ArrayStride 4
OpMemberDecorate %ibuffer_block_tint_explicit_layout 0 Offset 0
OpDecorate %ibuffer_block_tint_explicit_layout Block
OpDecorate %1 DescriptorSet 0
OpDecorate %1 Binding 0
OpDecorate %_runtimearr_uint ArrayStride 4
OpMemberDecorate %ubuffer_block_tint_explicit_layout 0 Offset 0
OpDecorate %ubuffer_block_tint_explicit_layout Block
OpDecorate %6 DescriptorSet 0
OpDecorate %6 Binding 1
%int = OpTypeInt 32 1
%_runtimearr_int = OpTypeRuntimeArray %int
%ibuffer_block_tint_explicit_layout = OpTypeStruct %_runtimearr_int
%_ptr_StorageBuffer_ibuffer_block_tint_explicit_layout = OpTypePointer StorageBuffer %ibuffer_block_tint_explicit_layout
%1 = OpVariable %_ptr_StorageBuffer_ibuffer_block_tint_explicit_layout StorageBuffer
%uint = OpTypeInt 32 0
%_runtimearr_uint = OpTypeRuntimeArray %uint
%ubuffer_block_tint_explicit_layout = OpTypeStruct %_runtimearr_uint
%_ptr_StorageBuffer_ubuffer_block_tint_explicit_layout = OpTypePointer StorageBuffer %ubuffer_block_tint_explicit_layout
%6 = OpVariable %_ptr_StorageBuffer_ubuffer_block_tint_explicit_layout StorageBuffer
%void = OpTypeVoid
%13 = OpTypeFunction %void
%uint_3 = OpConstant %uint 3
%uint_8 = OpConstant %uint 8
%char = OpTypeInt 8 1
%uint_0 = OpConstant %uint 0
%16 = OpTypeCooperativeMatrixKHR %char %uint_3 %uint_8 %uint_8 %uint_0
%15 = OpConstantNull %16
%_ptr_StorageBuffer__runtimearr_int = OpTypePointer StorageBuffer %_runtimearr_int
%uint_4 = OpConstant %uint 4
%int_0 = OpConstant %int 0
%int_64 = OpConstant %int 64
%uint_7 = OpConstant %uint 7
%bool = OpTypeBool
%uchar = OpTypeInt 8 0
%uint_1 = OpConstant %uint 1
%39 = OpTypeCooperativeMatrixKHR %uchar %uint_3 %uint_8 %uint_8 %uint_1
%38 = OpConstantNull %39
%_ptr_StorageBuffer__runtimearr_uint = OpTypePointer StorageBuffer %_runtimearr_uint
%int_n42 = OpConstant %int -42
%int_n128 = OpConstant %int -128
%int_127 = OpConstant %int 127
%uint_42 = OpConstant %uint 42
%uint_255 = OpConstant %uint 255
%_ptr_StorageBuffer_int = OpTypePointer StorageBuffer %int
%_ptr_StorageBuffer_uint = OpTypePointer StorageBuffer %uint
%main = OpFunction %void None %13
%14 = OpLabel
%21 = OpAccessChain %_ptr_StorageBuffer__runtimearr_int %1 %uint_0
%23 = OpArrayLength %uint %1 0
%24 = OpIMul %uint %23 %uint_4
%26 = OpBitcast %uint %int_0
%28 = OpBitcast %uint %int_64
%30 = OpIMul %uint %28 %uint_7
%32 = OpIAdd %uint %26 %30
%33 = OpIAdd %uint %32 %uint_8
%34 = OpULessThanEqual %bool %33 %24
OpSelectionMerge %36 None
OpBranchConditional %34 %37 %36
%37 = OpLabel
%88 = OpAccessChain %_ptr_StorageBuffer__runtimearr_int %1 %uint_0
%89 = OpBitcast %uint %int_64
%90 = OpUDiv %uint %89 %uint_4
%91 = OpBitcast %uint %int_0
%92 = OpUDiv %uint %91 %uint_4
%93 = OpAccessChain %_ptr_StorageBuffer_int %88 %92
OpCooperativeMatrixStoreKHR %93 %15 %uint_0 %90 NonPrivatePointer
OpBranch %36
%36 = OpLabel
%42 = OpAccessChain %_ptr_StorageBuffer__runtimearr_uint %6 %uint_0
%44 = OpArrayLength %uint %6 0
%45 = OpIMul %uint %44 %uint_4
%46 = OpBitcast %uint %int_0
%47 = OpBitcast %uint %int_64
%48 = OpIMul %uint %47 %uint_7
%49 = OpIAdd %uint %46 %48
%50 = OpIAdd %uint %49 %uint_8
%51 = OpULessThanEqual %bool %50 %45
OpSelectionMerge %52 None
OpBranchConditional %51 %53 %52
%53 = OpLabel
%96 = OpAccessChain %_ptr_StorageBuffer__runtimearr_uint %6 %uint_0
%97 = OpBitcast %uint %int_64
%98 = OpUDiv %uint %97 %uint_4
%99 = OpBitcast %uint %int_0
%100 = OpUDiv %uint %99 %uint_4
%101 = OpAccessChain %_ptr_StorageBuffer_uint %96 %100
OpCooperativeMatrixStoreKHR %101 %38 %uint_0 %98 NonPrivatePointer
OpBranch %52
%52 = OpLabel
%54 = OpExtInst %int %55 SClamp %int_n42 %int_n128 %int_127
%59 = OpSConvert %char %54
%60 = OpCompositeConstruct %16 %59
%61 = OpAccessChain %_ptr_StorageBuffer__runtimearr_int %1 %uint_0
%62 = OpArrayLength %uint %1 0
%63 = OpIMul %uint %62 %uint_4
%64 = OpBitcast %uint %int_0
%65 = OpBitcast %uint %int_64
%66 = OpIMul %uint %65 %uint_7
%67 = OpIAdd %uint %64 %66
%68 = OpIAdd %uint %67 %uint_8
%69 = OpULessThanEqual %bool %68 %63
OpSelectionMerge %70 None
OpBranchConditional %69 %71 %70
%71 = OpLabel
%104 = OpAccessChain %_ptr_StorageBuffer__runtimearr_int %1 %uint_0
%105 = OpBitcast %uint %int_64
%106 = OpUDiv %uint %105 %uint_4
%107 = OpBitcast %uint %int_0
%108 = OpUDiv %uint %107 %uint_4
%109 = OpAccessChain %_ptr_StorageBuffer_int %104 %108
OpCooperativeMatrixStoreKHR %109 %60 %uint_0 %106 NonPrivatePointer
OpBranch %70
%70 = OpLabel
%72 = OpExtInst %uint %55 UClamp %uint_42 %uint_0 %uint_255
%75 = OpUConvert %uchar %72
%76 = OpCompositeConstruct %39 %75
%77 = OpAccessChain %_ptr_StorageBuffer__runtimearr_uint %6 %uint_0
%78 = OpArrayLength %uint %6 0
%79 = OpIMul %uint %78 %uint_4
%80 = OpBitcast %uint %int_0
%81 = OpBitcast %uint %int_64
%82 = OpIMul %uint %81 %uint_7
%83 = OpIAdd %uint %80 %82
%84 = OpIAdd %uint %83 %uint_8
%85 = OpULessThanEqual %bool %84 %79
OpSelectionMerge %86 None
OpBranchConditional %85 %87 %86
%87 = OpLabel
%111 = OpAccessChain %_ptr_StorageBuffer__runtimearr_uint %6 %uint_0
%112 = OpBitcast %uint %int_64
%113 = OpUDiv %uint %112 %uint_4
%114 = OpBitcast %uint %int_0
%115 = OpUDiv %uint %114 %uint_4
%116 = OpAccessChain %_ptr_StorageBuffer_uint %111 %115
OpCooperativeMatrixStoreKHR %116 %76 %uint_0 %113 NonPrivatePointer
OpBranch %86
%86 = OpLabel
OpReturn
OpFunctionEnd