Alastair Donaldson | f7e73d4 | 2021-07-23 13:10:12 +0000 | [diff] [blame] | 1 | OpCapability Shader |
| 2 | %1 = OpExtInstImport "GLSL.std.450" |
| 3 | OpMemoryModel Logical GLSL450 |
| 4 | OpEntryPoint Fragment %main "main" %gl_FragCoord %_GLF_color |
| 5 | OpExecutionMode %main OriginUpperLeft |
| 6 | OpSource ESSL 320 |
| 7 | OpName %main "main" |
| 8 | OpName %gl_FragCoord "gl_FragCoord" |
| 9 | OpName %buf0 "buf0" |
| 10 | OpMemberName %buf0 0 "resolution" |
| 11 | OpName %_ "" |
| 12 | OpName %_GLF_color "_GLF_color" |
| 13 | OpName %indexable "indexable" |
| 14 | OpDecorate %gl_FragCoord BuiltIn FragCoord |
| 15 | OpMemberDecorate %buf0 0 Offset 0 |
| 16 | OpDecorate %buf0 Block |
| 17 | OpDecorate %_ DescriptorSet 0 |
| 18 | OpDecorate %_ Binding 0 |
| 19 | OpDecorate %_GLF_color Location 0 |
| 20 | %void = OpTypeVoid |
| 21 | %9 = OpTypeFunction %void |
| 22 | %int = OpTypeInt 32 1 |
| 23 | %v2int = OpTypeVector %int 2 |
| 24 | %uint = OpTypeInt 32 0 |
| 25 | %int_0 = OpConstant %int 0 |
| 26 | %bool = OpTypeBool |
| 27 | %int_1 = OpConstant %int 1 |
| 28 | %int_2 = OpConstant %int 2 |
| 29 | %float = OpTypeFloat 32 |
| 30 | %v2float = OpTypeVector %float 2 |
| 31 | %v4float = OpTypeVector %float 4 |
| 32 | %_ptr_Input_v4float = OpTypePointer Input %v4float |
| 33 | %gl_FragCoord = OpVariable %_ptr_Input_v4float Input |
| 34 | %buf0 = OpTypeStruct %v2float |
| 35 | %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0 |
| 36 | %_ = OpVariable %_ptr_Uniform_buf0 Uniform |
| 37 | %_ptr_Uniform_v2float = OpTypePointer Uniform %v2float |
| 38 | %float_8 = OpConstant %float 8 |
| 39 | %int_5 = OpConstant %int 5 |
| 40 | %int_10 = OpConstant %int 10 |
| 41 | %int_8 = OpConstant %int 8 |
| 42 | %int_100 = OpConstant %int 100 |
| 43 | %int_15 = OpConstant %int 15 |
| 44 | %int_16 = OpConstant %int 16 |
| 45 | %_ptr_Output_v4float = OpTypePointer Output %v4float |
| 46 | %_GLF_color = OpVariable %_ptr_Output_v4float Output |
| 47 | %uint_16 = OpConstant %uint 16 |
| 48 | %_arr_v4float_uint_16 = OpTypeArray %v4float %uint_16 |
| 49 | %float_0 = OpConstant %float 0 |
| 50 | %float_1 = OpConstant %float 1 |
| 51 | %35 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_1 |
| 52 | %float_0_5 = OpConstant %float 0.5 |
| 53 | %37 = OpConstantComposite %v4float %float_0_5 %float_0 %float_0 %float_1 |
| 54 | %38 = OpConstantComposite %v4float %float_0 %float_0_5 %float_0 %float_1 |
| 55 | %39 = OpConstantComposite %v4float %float_0_5 %float_0_5 %float_0 %float_1 |
| 56 | %40 = OpConstantComposite %v4float %float_0 %float_0 %float_0_5 %float_1 |
| 57 | %41 = OpConstantComposite %v4float %float_0_5 %float_0 %float_0_5 %float_1 |
| 58 | %42 = OpConstantComposite %v4float %float_0 %float_0_5 %float_0_5 %float_1 |
| 59 | %43 = OpConstantComposite %v4float %float_0_5 %float_0_5 %float_0_5 %float_1 |
| 60 | %44 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1 |
| 61 | %45 = OpConstantComposite %v4float %float_0 %float_1 %float_0 %float_1 |
| 62 | %46 = OpConstantComposite %v4float %float_1 %float_1 %float_0 %float_1 |
| 63 | %47 = OpConstantComposite %v4float %float_0 %float_0 %float_1 %float_1 |
| 64 | %48 = OpConstantComposite %v4float %float_1 %float_0 %float_1 %float_1 |
| 65 | %49 = OpConstantComposite %v4float %float_0 %float_1 %float_1 %float_1 |
| 66 | %50 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1 |
| 67 | %51 = OpConstantComposite %_arr_v4float_uint_16 %35 %37 %38 %39 %40 %41 %42 %43 %35 %44 %45 %46 %47 %48 %49 %50 |
| 68 | %_ptr_Function__arr_v4float_uint_16 = OpTypePointer Function %_arr_v4float_uint_16 |
| 69 | %_ptr_Function_v4float = OpTypePointer Function %v4float |
| 70 | %main = OpFunction %void None %9 |
| 71 | %54 = OpLabel |
| 72 | %indexable = OpVariable %_ptr_Function__arr_v4float_uint_16 Function |
| 73 | %55 = OpLoad %v4float %gl_FragCoord |
| 74 | %56 = OpVectorShuffle %v2float %55 %55 0 1 |
| 75 | %57 = OpAccessChain %_ptr_Uniform_v2float %_ %int_0 |
| 76 | %58 = OpLoad %v2float %57 |
| 77 | %59 = OpFDiv %v2float %56 %58 |
| 78 | %60 = OpCompositeExtract %float %59 0 |
| 79 | %61 = OpFMul %float %60 %float_8 |
| 80 | %62 = OpConvertFToS %int %61 |
| 81 | %63 = OpCompositeExtract %float %59 1 |
| 82 | %64 = OpFMul %float %63 %float_8 |
| 83 | %65 = OpConvertFToS %int %64 |
| 84 | %66 = OpBitwiseAnd %int %62 %int_5 |
| 85 | %67 = OpBitwiseAnd %int %65 %int_10 |
| 86 | %68 = OpBitwiseOr %int %66 %67 |
| 87 | %69 = OpBitwiseAnd %int %65 %int_5 |
| 88 | %70 = OpBitwiseAnd %int %62 %int_10 |
| 89 | %71 = OpBitwiseOr %int %69 %70 |
| 90 | %72 = OpIMul %int %68 %int_8 |
| 91 | %73 = OpIAdd %int %72 %71 |
| 92 | %74 = OpCompositeConstruct %v2int %73 %int_0 |
| 93 | OpBranch %75 |
| 94 | %75 = OpLabel |
| 95 | %76 = OpPhi %v2int %74 %54 %77 %78 |
| 96 | %79 = OpPhi %int %int_0 %54 %80 %78 |
| 97 | %81 = OpSLessThan %bool %79 %int_100 |
| 98 | OpLoopMerge %82 %78 None |
| 99 | OpBranchConditional %81 %83 %82 |
| 100 | %83 = OpLabel |
| 101 | %84 = OpCompositeExtract %int %76 0 |
| 102 | %85 = OpSGreaterThan %bool %84 %int_0 |
| 103 | OpSelectionMerge %86 None |
| 104 | OpBranchConditional %85 %87 %86 |
| 105 | %87 = OpLabel |
| 106 | %88 = OpCompositeExtract %int %76 1 |
| 107 | %89 = OpISub %int %88 %int_1 |
| 108 | %90 = OpCompositeInsert %v2int %89 %76 1 |
| 109 | OpBranch %86 |
| 110 | %86 = OpLabel |
| 111 | %91 = OpPhi %v2int %76 %83 %90 %87 |
| 112 | %92 = OpCompositeExtract %int %91 0 |
| 113 | %93 = OpSLessThan %bool %92 %int_0 |
| 114 | OpSelectionMerge %94 None |
| 115 | OpBranchConditional %93 %95 %94 |
| 116 | %95 = OpLabel |
| 117 | %96 = OpCompositeExtract %int %91 1 |
| 118 | %97 = OpIAdd %int %96 %int_1 |
| 119 | %98 = OpCompositeInsert %v2int %97 %91 1 |
| 120 | OpBranch %94 |
| 121 | %94 = OpLabel |
| 122 | %99 = OpPhi %v2int %91 %86 %98 %95 |
| 123 | %100 = OpCompositeExtract %int %99 1 |
| 124 | %101 = OpSDiv %int %100 %int_2 |
| 125 | %102 = OpCompositeExtract %int %99 0 |
| 126 | %103 = OpIAdd %int %102 %101 |
| 127 | %77 = OpCompositeInsert %v2int %103 %99 0 |
| 128 | OpBranch %78 |
| 129 | %78 = OpLabel |
| 130 | %80 = OpIAdd %int %79 %int_1 |
| 131 | OpBranch %75 |
| 132 | %82 = OpLabel |
| 133 | %104 = OpCompositeExtract %int %76 0 |
| 134 | %105 = OpSLessThan %bool %104 %int_0 |
| 135 | OpSelectionMerge %106 None |
| 136 | OpBranchConditional %105 %107 %106 |
| 137 | %107 = OpLabel |
| 138 | %108 = OpSNegate %int %104 |
| 139 | %109 = OpCompositeInsert %v2int %108 %76 0 |
| 140 | OpBranch %106 |
| 141 | %106 = OpLabel |
| 142 | %110 = OpPhi %v2int %76 %82 %109 %107 |
| 143 | OpBranch %111 |
| 144 | %111 = OpLabel |
| 145 | %112 = OpPhi %v2int %110 %106 %113 %114 |
| 146 | %115 = OpCompositeExtract %int %112 0 |
| 147 | %116 = OpSGreaterThan %bool %115 %int_15 |
| 148 | OpLoopMerge %117 %114 None |
| 149 | OpBranchConditional %116 %114 %117 |
| 150 | %114 = OpLabel |
| 151 | %118 = OpISub %int %115 %int_16 |
| 152 | %113 = OpCompositeInsert %v2int %118 %112 0 |
| 153 | OpBranch %111 |
| 154 | %117 = OpLabel |
| 155 | OpStore %indexable %51 |
| 156 | %119 = OpAccessChain %_ptr_Function_v4float %indexable %115 |
| 157 | %120 = OpLoad %v4float %119 |
| 158 | OpStore %_GLF_color %120 |
| 159 | OpReturn |
| 160 | OpFunctionEnd |