| ; SPIR-V |
| ; Version: 1.3 |
| ; Generator: Google Tint Compiler; 1 |
| ; Bound: 147 |
| ; Schema: 0 |
| OpCapability Shader |
| OpMemoryModel Logical GLSL450 |
| OpEntryPoint GLCompute %main "main" |
| OpExecutionMode %main LocalSize 1 1 1 |
| OpMemberName %s_block 0 "inner" |
| OpName %s_block "s_block" |
| OpName %main "main" |
| OpName %x "x" |
| OpName %empty "empty" |
| OpName %nonempty "nonempty" |
| OpName %nonempty_with_expr "nonempty_with_expr" |
| OpName %nested_empty "nested_empty" |
| OpName %nested_nonempty "nested_nonempty" |
| OpName %nested_nonempty_with_expr "nested_nonempty_with_expr" |
| OpName %subexpr_empty "subexpr_empty" |
| OpName %subexpr_nonempty "subexpr_nonempty" |
| OpName %subexpr_nonempty_with_expr "subexpr_nonempty_with_expr" |
| OpName %empty "subexpr_nested_empty" |
| OpName %subexpr_nested_nonempty "subexpr_nested_nonempty" |
| OpName %subexpr_nested_nonempty_with_expr "subexpr_nested_nonempty_with_expr" |
| OpMemberDecorate %s_block 0 Offset 0 |
| OpDecorate %s_block Block |
| OpDecorate %1 DescriptorSet 0 |
| OpDecorate %1 Binding 0 |
| OpDecorate %1 Coherent |
| %int = OpTypeInt 32 1 |
| %s_block = OpTypeStruct %int |
| %_ptr_StorageBuffer_s_block = OpTypePointer StorageBuffer %s_block |
| %1 = OpVariable %_ptr_StorageBuffer_s_block StorageBuffer |
| %void = OpTypeVoid |
| %7 = OpTypeFunction %void |
| %x = OpConstant %int 42 |
| %uint = OpTypeInt 32 0 |
| %uint_4 = OpConstant %uint 4 |
| %_arr_int_uint_4 = OpTypeArray %int %uint_4 |
| %empty = OpConstantNull %_arr_int_uint_4 |
| %int_1 = OpConstant %int 1 |
| %int_2 = OpConstant %int 2 |
| %subexpr_nonempty = OpConstant %int 3 |
| %int_4 = OpConstant %int 4 |
| %nonempty = OpConstantComposite %_arr_int_uint_4 %int_1 %int_2 %subexpr_nonempty %int_4 |
| %uint_3 = OpConstant %uint 3 |
| %_arr__arr_int_uint_4_uint_3 = OpTypeArray %_arr_int_uint_4 %uint_3 |
| %uint_2 = OpConstant %uint 2 |
| %_arr__arr__arr_int_uint_4_uint_3_uint_2 = OpTypeArray %_arr__arr_int_uint_4_uint_3 %uint_2 |
| %nested_empty = OpConstantNull %_arr__arr__arr_int_uint_4_uint_3_uint_2 |
| %int_5 = OpConstant %int 5 |
| %int_6 = OpConstant %int 6 |
| %int_7 = OpConstant %int 7 |
| %int_8 = OpConstant %int 8 |
| %subexpr_nested_nonempty = OpConstantComposite %_arr_int_uint_4 %int_5 %int_6 %int_7 %int_8 |
| %int_9 = OpConstant %int 9 |
| %int_10 = OpConstant %int 10 |
| %int_11 = OpConstant %int 11 |
| %int_12 = OpConstant %int 12 |
| %37 = OpConstantComposite %_arr_int_uint_4 %int_9 %int_10 %int_11 %int_12 |
| %31 = OpConstantComposite %_arr__arr_int_uint_4_uint_3 %nonempty %subexpr_nested_nonempty %37 |
| %int_13 = OpConstant %int 13 |
| %int_14 = OpConstant %int 14 |
| %int_15 = OpConstant %int 15 |
| %int_16 = OpConstant %int 16 |
| %43 = OpConstantComposite %_arr_int_uint_4 %int_13 %int_14 %int_15 %int_16 |
| %int_17 = OpConstant %int 17 |
| %int_18 = OpConstant %int 18 |
| %int_19 = OpConstant %int 19 |
| %int_20 = OpConstant %int 20 |
| %48 = OpConstantComposite %_arr_int_uint_4 %int_17 %int_18 %int_19 %int_20 |
| %int_21 = OpConstant %int 21 |
| %int_22 = OpConstant %int 22 |
| %int_23 = OpConstant %int 23 |
| %int_24 = OpConstant %int 24 |
| %53 = OpConstantComposite %_arr_int_uint_4 %int_21 %int_22 %int_23 %int_24 |
| %42 = OpConstantComposite %_arr__arr_int_uint_4_uint_3 %43 %48 %53 |
| %nested_nonempty = OpConstantComposite %_arr__arr__arr_int_uint_4_uint_3_uint_2 %31 %42 |
| %subexpr_empty = OpConstant %int 0 |
| %_arr__arr_int_uint_4_uint_2 = OpTypeArray %_arr_int_uint_4 %uint_2 |
| %_ptr_StorageBuffer_int = OpTypePointer StorageBuffer %int |
| %uint_0 = OpConstant %uint 0 |
| %main = OpFunction %void None %7 |
| %8 = OpLabel |
| %19 = OpBitcast %uint %x |
| %20 = OpBitcast %uint %int_1 |
| %21 = OpIAdd %uint %19 %20 |
| %22 = OpBitcast %int %21 |
| %23 = OpCompositeExtract %int %nonempty 3 |
| %nonempty_with_expr = OpCompositeConstruct %_arr_int_uint_4 %int_1 %x %22 %23 |
| %58 = OpBitcast %uint %x |
| %59 = OpBitcast %uint %int_1 |
| %60 = OpIAdd %uint %58 %59 |
| %61 = OpBitcast %int %60 |
| %62 = OpCompositeConstruct %_arr_int_uint_4 %int_1 %int_2 %x %61 |
| %63 = OpCompositeExtract %int %nonempty 2 |
| %64 = OpCompositeExtract %int %nonempty 3 |
| %65 = OpBitcast %uint %64 |
| %66 = OpBitcast %uint %int_1 |
| %67 = OpIAdd %uint %65 %66 |
| %68 = OpBitcast %int %67 |
| %69 = OpCompositeConstruct %_arr_int_uint_4 %int_5 %int_6 %63 %68 |
| %70 = OpCompositeConstruct %_arr__arr_int_uint_4_uint_3 %62 %69 %nonempty |
| %71 = OpCompositeExtract %_arr__arr_int_uint_4_uint_3 %nested_nonempty 1 |
| %nested_nonempty_with_expr = OpCompositeConstruct %_arr__arr__arr_int_uint_4_uint_3_uint_2 %70 %71 |
| %74 = OpBitcast %uint %x |
| %75 = OpBitcast %uint %int_1 |
| %76 = OpIAdd %uint %74 %75 |
| %77 = OpBitcast %int %76 |
| %78 = OpCompositeExtract %int %nonempty 3 |
| %79 = OpCompositeConstruct %_arr_int_uint_4 %int_1 %x %77 %78 |
| %subexpr_nonempty_with_expr = OpCompositeExtract %int %79 2 |
| %81 = OpBitcast %uint %x |
| %82 = OpBitcast %uint %int_1 |
| %83 = OpIAdd %uint %81 %82 |
| %84 = OpBitcast %int %83 |
| %85 = OpCompositeExtract %int %nonempty 3 |
| %86 = OpCompositeConstruct %_arr_int_uint_4 %int_1 %x %84 %85 |
| %87 = OpCompositeExtract %_arr_int_uint_4 %nested_nonempty 1 2 |
| %89 = OpCompositeConstruct %_arr__arr_int_uint_4_uint_2 %86 %87 |
| %subexpr_nested_nonempty_with_expr = OpCompositeExtract %_arr_int_uint_4 %89 1 |
| %91 = OpCompositeExtract %int %empty 0 |
| %92 = OpCompositeExtract %int %nonempty 0 |
| %93 = OpBitcast %uint %91 |
| %94 = OpBitcast %uint %92 |
| %95 = OpIAdd %uint %93 %94 |
| %96 = OpBitcast %int %95 |
| %97 = OpCompositeExtract %int %nonempty_with_expr 0 |
| %98 = OpBitcast %uint %96 |
| %99 = OpBitcast %uint %97 |
| %100 = OpIAdd %uint %98 %99 |
| %101 = OpBitcast %int %100 |
| %102 = OpCompositeExtract %int %nested_empty 0 0 0 |
| %103 = OpBitcast %uint %101 |
| %104 = OpBitcast %uint %102 |
| %105 = OpIAdd %uint %103 %104 |
| %106 = OpBitcast %int %105 |
| %107 = OpCompositeExtract %int %nested_nonempty 0 0 0 |
| %108 = OpBitcast %uint %106 |
| %109 = OpBitcast %uint %107 |
| %110 = OpIAdd %uint %108 %109 |
| %111 = OpBitcast %int %110 |
| %112 = OpCompositeExtract %int %nested_nonempty_with_expr 0 0 0 |
| %113 = OpBitcast %uint %111 |
| %114 = OpBitcast %uint %112 |
| %115 = OpIAdd %uint %113 %114 |
| %116 = OpBitcast %int %115 |
| %117 = OpBitcast %uint %116 |
| %118 = OpBitcast %uint %subexpr_empty |
| %119 = OpIAdd %uint %117 %118 |
| %120 = OpBitcast %int %119 |
| %121 = OpBitcast %uint %120 |
| %122 = OpBitcast %uint %subexpr_nonempty |
| %123 = OpIAdd %uint %121 %122 |
| %124 = OpBitcast %int %123 |
| %125 = OpBitcast %uint %124 |
| %126 = OpBitcast %uint %subexpr_nonempty_with_expr |
| %127 = OpIAdd %uint %125 %126 |
| %128 = OpBitcast %int %127 |
| %129 = OpCompositeExtract %int %empty 0 |
| %130 = OpBitcast %uint %128 |
| %131 = OpBitcast %uint %129 |
| %132 = OpIAdd %uint %130 %131 |
| %133 = OpBitcast %int %132 |
| %134 = OpCompositeExtract %int %subexpr_nested_nonempty 0 |
| %135 = OpBitcast %uint %133 |
| %136 = OpBitcast %uint %134 |
| %137 = OpIAdd %uint %135 %136 |
| %138 = OpBitcast %int %137 |
| %139 = OpCompositeExtract %int %subexpr_nested_nonempty_with_expr 0 |
| %140 = OpBitcast %uint %138 |
| %141 = OpBitcast %uint %139 |
| %142 = OpIAdd %uint %140 %141 |
| %143 = OpBitcast %int %142 |
| %144 = OpAccessChain %_ptr_StorageBuffer_int %1 %uint_0 |
| OpStore %144 %143 None |
| OpReturn |
| OpFunctionEnd |