1; SPIR-V
2; Version: 1.0
3; Generator: Khronos Glslang Reference Front End; 3
4; Bound: 60
5; Schema: 0
6               OpCapability Shader
7          %1 = OpExtInstImport "GLSL.std.450"
8               OpMemoryModel Logical GLSL450
9               OpEntryPoint Fragment %main "main" %v0 %FragColor
10               OpExecutionMode %main OriginUpperLeft
11               OpSource GLSL 450
12               OpName %main "main"
13               OpName %phi "phi"
14               OpName %i "i"
15               OpName %v0 "v0"
16               OpName %FragColor "FragColor"
17               OpName %uImage "uImage"
18               OpDecorate %v0 Location 0
19               OpDecorate %FragColor Location 0
20               OpDecorate %uImage DescriptorSet 0
21               OpDecorate %uImage Binding 0
22       %void = OpTypeVoid
23          %3 = OpTypeFunction %void
24      %float = OpTypeFloat 32
25%_ptr_Function_float = OpTypePointer Function %float
26    %float_1 = OpConstant %float 1
27        %int = OpTypeInt 32 1
28%_ptr_Function_int = OpTypePointer Function %int
29      %int_0 = OpConstant %int 0
30      %int_4 = OpConstant %int 4
31       %bool = OpTypeBool
32    %v4float = OpTypeVector %float 4
33%_ptr_Input_v4float = OpTypePointer Input %v4float
34         %v0 = OpVariable %_ptr_Input_v4float Input
35%_ptr_Input_float = OpTypePointer Input %float
36    %float_0 = OpConstant %float 0
37%_ptr_Output_v4float = OpTypePointer Output %v4float
38  %FragColor = OpVariable %_ptr_Output_v4float Output
39         %36 = OpTypeImage %float 2D 0 0 0 1 Unknown
40         %37 = OpTypeSampledImage %36
41%_ptr_UniformConstant_37 = OpTypePointer UniformConstant %37
42     %uImage = OpVariable %_ptr_UniformConstant_37 UniformConstant
43    %v2float = OpTypeVector %float 2
44       %uint = OpTypeInt 32 0
45     %uint_0 = OpConstant %uint 0
46    %float_2 = OpConstant %float 2
47      %int_1 = OpConstant %int 1
48	  %float_1_vec = OpConstantComposite %v4float %float_1 %float_2 %float_1 %float_2
49       %main = OpFunction %void None %3
50          %5 = OpLabel
51          %i = OpVariable %_ptr_Function_int Function
52               OpStore %i %int_0
53               OpBranch %loop_header
54         %loop_header = OpLabel
55        %phi = OpPhi %float %float_1 %5 %phi_plus_2 %continue_block
56		%tex_phi = OpPhi %v4float %float_1_vec %5 %texture_load_result %continue_block
57               OpLoopMerge %merge_block %continue_block None
58               OpBranch %loop_body
59         %loop_body = OpLabel
60               OpStore %FragColor %tex_phi
61         %19 = OpLoad %int %i
62         %22 = OpSLessThan %bool %19 %int_4
63               OpBranchConditional %22 %15 %merge_block
64         %15 = OpLabel
65         %26 = OpLoad %int %i
66         %28 = OpAccessChain %_ptr_Input_float %v0 %26
67         %29 = OpLoad %float %28
68         %31 = OpFOrdGreaterThan %bool %29 %float_0
69               OpBranchConditional %31 %continue_block %merge_block
70         %continue_block = OpLabel
71         %40 = OpLoad %37 %uImage
72         %43 = OpCompositeConstruct %v2float %phi %phi
73         %texture_load_result = OpImageSampleExplicitLod %v4float %40 %43 Lod %float_0
74         %phi_plus_2 = OpFAdd %float %phi %float_2
75         %54 = OpLoad %int %i
76         %56 = OpIAdd %int %54 %int_1
77               OpStore %i %56
78               OpBranch %loop_header
79         %merge_block = OpLabel
80               OpReturn
81               OpFunctionEnd
82