1; SPIR-V 2; Version: 1.0 3; Generator: Khronos Glslang Reference Front End; 7 4; Bound: 97 5; Schema: 0 6 OpCapability Shader 7 %1 = OpExtInstImport "GLSL.std.450" 8 OpMemoryModel Logical GLSL450 9 OpEntryPoint GLCompute %main "main" 10 OpExecutionMode %main LocalSize 1 1 1 11 OpSource HLSL 500 12 OpName %main "main" 13 OpName %_main_ "@main(" 14 OpName %a "a" 15 OpName %byteAddrTemp "byteAddrTemp" 16 OpName %MyFirstBuffer "MyFirstBuffer" 17 OpMemberName %MyFirstBuffer 0 "@data" 18 OpName %MyFirstBuffer_0 "MyFirstBuffer" 19 OpName %b "b" 20 OpName %byteAddrTemp_0 "byteAddrTemp" 21 OpName %MySecondBuffer "MySecondBuffer" 22 OpName %byteAddrTemp_1 "byteAddrTemp" 23 OpName %MyThirdBuffer "MyThirdBuffer" 24 OpDecorate %_runtimearr_uint ArrayStride 4 25 OpMemberDecorate %MyFirstBuffer 0 Offset 0 26 OpDecorate %MyFirstBuffer BufferBlock 27 OpDecorate %MyFirstBuffer_0 DescriptorSet 0 28 OpDecorate %MyFirstBuffer_0 Binding 0 29 OpDecorate %MySecondBuffer DescriptorSet 0 30 OpDecorate %MySecondBuffer Binding 0 31 OpDecorate %MyThirdBuffer DescriptorSet 0 32 OpDecorate %MyThirdBuffer Binding 0 33 %void = OpTypeVoid 34 %3 = OpTypeFunction %void 35 %uint = OpTypeInt 32 0 36 %v4uint = OpTypeVector %uint 4 37%_ptr_Function_v4uint = OpTypePointer Function %v4uint 38 %int = OpTypeInt 32 1 39%_ptr_Function_int = OpTypePointer Function %int 40 %int_0 = OpConstant %int 0 41 %int_2 = OpConstant %int 2 42%_runtimearr_uint = OpTypeRuntimeArray %uint 43%MyFirstBuffer = OpTypeStruct %_runtimearr_uint 44%_ptr_Uniform_MyFirstBuffer = OpTypePointer Uniform %MyFirstBuffer 45%MyFirstBuffer_0 = OpVariable %_ptr_Uniform_MyFirstBuffer Uniform 46%_ptr_Uniform_uint = OpTypePointer Uniform %uint 47 %int_1 = OpConstant %int 1 48 %int_3 = OpConstant %int 3 49 %int_4 = OpConstant %int 4 50%MySecondBuffer = OpVariable %_ptr_Uniform_MyFirstBuffer Uniform 51%MyThirdBuffer = OpVariable %_ptr_Uniform_MyFirstBuffer Uniform 52 %uint_0 = OpConstant %uint 0 53 %uint_1 = OpConstant %uint 1 54 %uint_2 = OpConstant %uint 2 55 %uint_3 = OpConstant %uint 3 56 %main = OpFunction %void None %3 57 %5 = OpLabel 58 %96 = OpFunctionCall %void %_main_ 59 OpReturn 60 OpFunctionEnd 61 %_main_ = OpFunction %void None %3 62 %7 = OpLabel 63 %a = OpVariable %_ptr_Function_v4uint Function 64%byteAddrTemp = OpVariable %_ptr_Function_int Function 65 %b = OpVariable %_ptr_Function_v4uint Function 66%byteAddrTemp_0 = OpVariable %_ptr_Function_int Function 67%byteAddrTemp_1 = OpVariable %_ptr_Function_int Function 68 %17 = OpShiftRightArithmetic %int %int_0 %int_2 69 OpStore %byteAddrTemp %17 70 %22 = OpLoad %int %byteAddrTemp 71 %24 = OpAccessChain %_ptr_Uniform_uint %MyFirstBuffer_0 %int_0 %22 72 %25 = OpLoad %uint %24 73 %26 = OpLoad %int %byteAddrTemp 74 %28 = OpIAdd %int %26 %int_1 75 %29 = OpAccessChain %_ptr_Uniform_uint %MyFirstBuffer_0 %int_0 %28 76 %30 = OpLoad %uint %29 77 %31 = OpLoad %int %byteAddrTemp 78 %32 = OpIAdd %int %31 %int_2 79 %33 = OpAccessChain %_ptr_Uniform_uint %MyFirstBuffer_0 %int_0 %32 80 %34 = OpLoad %uint %33 81 %35 = OpLoad %int %byteAddrTemp 82 %37 = OpIAdd %int %35 %int_3 83 %38 = OpAccessChain %_ptr_Uniform_uint %MyFirstBuffer_0 %int_0 %37 84 %39 = OpLoad %uint %38 85 %40 = OpCompositeConstruct %v4uint %25 %30 %34 %39 86 OpStore %a %40 87 %44 = OpShiftRightArithmetic %int %int_4 %int_2 88 OpStore %byteAddrTemp_0 %44 89 %46 = OpLoad %int %byteAddrTemp_0 90 %47 = OpAccessChain %_ptr_Uniform_uint %MySecondBuffer %int_0 %46 91 %48 = OpLoad %uint %47 92 %49 = OpLoad %int %byteAddrTemp_0 93 %50 = OpIAdd %int %49 %int_1 94 %51 = OpAccessChain %_ptr_Uniform_uint %MySecondBuffer %int_0 %50 95 %52 = OpLoad %uint %51 96 %53 = OpLoad %int %byteAddrTemp_0 97 %54 = OpIAdd %int %53 %int_2 98 %55 = OpAccessChain %_ptr_Uniform_uint %MySecondBuffer %int_0 %54 99 %56 = OpLoad %uint %55 100 %57 = OpLoad %int %byteAddrTemp_0 101 %58 = OpIAdd %int %57 %int_3 102 %59 = OpAccessChain %_ptr_Uniform_uint %MySecondBuffer %int_0 %58 103 %60 = OpLoad %uint %59 104 %61 = OpCompositeConstruct %v4uint %48 %52 %56 %60 105 OpStore %b %61 106 %63 = OpShiftRightArithmetic %int %int_0 %int_2 107 OpStore %byteAddrTemp_1 %63 108 %65 = OpLoad %int %byteAddrTemp_1 109 %66 = OpLoad %v4uint %a 110 %67 = OpLoad %v4uint %b 111 %68 = OpIAdd %v4uint %66 %67 112 %70 = OpCompositeExtract %uint %68 0 113 %71 = OpAccessChain %_ptr_Uniform_uint %MyThirdBuffer %int_0 %65 114 OpStore %71 %70 115 %72 = OpLoad %int %byteAddrTemp_1 116 %73 = OpIAdd %int %72 %int_1 117 %74 = OpLoad %v4uint %a 118 %75 = OpLoad %v4uint %b 119 %76 = OpIAdd %v4uint %74 %75 120 %78 = OpCompositeExtract %uint %76 1 121 %79 = OpAccessChain %_ptr_Uniform_uint %MyThirdBuffer %int_0 %73 122 OpStore %79 %78 123 %80 = OpLoad %int %byteAddrTemp_1 124 %81 = OpIAdd %int %80 %int_2 125 %82 = OpLoad %v4uint %a 126 %83 = OpLoad %v4uint %b 127 %84 = OpIAdd %v4uint %82 %83 128 %86 = OpCompositeExtract %uint %84 2 129 %87 = OpAccessChain %_ptr_Uniform_uint %MyThirdBuffer %int_0 %81 130 OpStore %87 %86 131 %88 = OpLoad %int %byteAddrTemp_1 132 %89 = OpIAdd %int %88 %int_3 133 %90 = OpLoad %v4uint %a 134 %91 = OpLoad %v4uint %b 135 %92 = OpIAdd %v4uint %90 %91 136 %94 = OpCompositeExtract %uint %92 3 137 %95 = OpAccessChain %_ptr_Uniform_uint %MyThirdBuffer %int_0 %89 138 OpStore %95 %94 139 OpReturn 140 OpFunctionEnd 141