1               OpCapability Shader
2          %1 = OpExtInstImport "GLSL.std.450"
3               OpMemoryModel Logical GLSL450
4               OpEntryPoint Fragment %main "main" %_GLF_color
5               OpExecutionMode %main OriginUpperLeft
6               OpSource ESSL 310
7               OpName %main "main"
8               OpName %m24 "m24"
9               OpName %buf0 "buf0"
10               OpMemberName %buf0 0 "_GLF_uniform_float_values"
11               OpName %_ ""
12               OpName %buf1 "buf1"
13               OpMemberName %buf1 0 "v1"
14               OpName %__0 ""
15               OpName %a "a"
16               OpName %v2 "v2"
17               OpName %v3 "v3"
18               OpName %_GLF_color "_GLF_color"
19               OpDecorate %_arr_float_uint_1 ArrayStride 16
20               OpMemberDecorate %buf0 0 Offset 0
21               OpDecorate %buf0 Block
22               OpDecorate %_ DescriptorSet 0
23               OpDecorate %_ Binding 0
24               OpMemberDecorate %buf1 0 Offset 0
25               OpDecorate %buf1 Block
26               OpDecorate %__0 DescriptorSet 0
27               OpDecorate %__0 Binding 1
28               OpDecorate %_GLF_color Location 0
29       %void = OpTypeVoid
30         %14 = OpTypeFunction %void
31      %float = OpTypeFloat 32
32    %v2float = OpTypeVector %float 2
33%mat2v2float = OpTypeMatrix %v2float 2
34%_ptr_Function_mat2v2float = OpTypePointer Function %mat2v2float
35       %uint = OpTypeInt 32 0
36     %uint_1 = OpConstant %uint 1
37%_arr_float_uint_1 = OpTypeArray %float %uint_1
38       %buf0 = OpTypeStruct %_arr_float_uint_1
39%_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
40          %_ = OpVariable %_ptr_Uniform_buf0 Uniform
41        %int = OpTypeInt 32 1
42      %int_0 = OpConstant %int 0
43%_ptr_Uniform_float = OpTypePointer Uniform %float
44       %buf1 = OpTypeStruct %v2float
45%_ptr_Uniform_buf1 = OpTypePointer Uniform %buf1
46        %__0 = OpVariable %_ptr_Uniform_buf1 Uniform
47     %uint_0 = OpConstant %uint 0
48    %float_1 = OpConstant %float 1
49    %float_0 = OpConstant %float 0
50%_ptr_Function_float = OpTypePointer Function %float
51%_ptr_Function_v2float = OpTypePointer Function %v2float
52%float_n0x1_8p_128 = OpConstant %float -0x1.8p+128
53         %32 = OpConstantComposite %v2float %float_n0x1_8p_128 %float_1
54    %v4float = OpTypeVector %float 4
55%_ptr_Output_v4float = OpTypePointer Output %v4float
56 %_GLF_color = OpVariable %_ptr_Output_v4float Output
57       %bool = OpTypeBool
58         %36 = OpConstantComposite %v2float %float_0 %float_0
59         %37 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_0
60       %main = OpFunction %void None %14
61         %38 = OpLabel
62        %m24 = OpVariable %_ptr_Function_mat2v2float Function
63          %a = OpVariable %_ptr_Function_float Function
64         %v2 = OpVariable %_ptr_Function_v2float Function
65         %v3 = OpVariable %_ptr_Function_v2float Function
66         %39 = OpAccessChain %_ptr_Uniform_float %_ %int_0 %int_0
67         %40 = OpLoad %float %39
68         %41 = OpAccessChain %_ptr_Uniform_float %_ %int_0 %int_0
69         %42 = OpLoad %float %41
70         %43 = OpAccessChain %_ptr_Uniform_float %__0 %int_0 %uint_0
71         %44 = OpLoad %float %43
72         %45 = OpFMul %float %44 %float_1
73         %46 = OpAccessChain %_ptr_Uniform_float %_ %int_0 %int_0
74         %47 = OpLoad %float %46
75         %48 = OpCompositeConstruct %v2float %40 %42
76         %49 = OpCompositeConstruct %v2float %45 %47
77         %50 = OpCompositeConstruct %mat2v2float %48 %49
78               OpStore %m24 %50
79         %51 = OpLoad %mat2v2float %m24
80         %52 = OpCompositeExtract %float %51 0 0
81               OpStore %a %52
82               OpStore %v2 %32
83         %53 = OpLoad %v2float %v2
84         %54 = OpLoad %float %a
85         %55 = OpCompositeConstruct %v2float %54 %float_1
86         %56 = OpExtInst %v2float %1 Reflect %53 %55
87               OpStore %v3 %56
88         %57 = OpAccessChain %_ptr_Uniform_float %_ %int_0 %int_0
89         %58 = OpLoad %float %57
90         %59 = OpLoad %v2float %v3
91         %60 = OpAccessChain %_ptr_Uniform_float %_ %int_0 %int_0
92         %61 = OpLoad %float %60
93         %62 = OpCompositeExtract %float %59 0
94         %63 = OpCompositeExtract %float %59 1
95         %64 = OpCompositeConstruct %v4float %58 %62 %63 %61
96               OpStore %_GLF_color %64
97         %65 = OpAccessChain %_ptr_Uniform_float %__0 %int_0 %uint_1
98         %66 = OpLoad %float %65
99         %67 = OpAccessChain %_ptr_Uniform_float %_ %int_0 %int_0
100         %68 = OpLoad %float %67
101         %69 = OpFOrdEqual %bool %66 %68
102               OpSelectionMerge %70 None
103               OpBranchConditional %69 %71 %72
104         %71 = OpLabel
105         %73 = OpLoad %v4float %_GLF_color
106         %74 = OpVectorShuffle %v4float %73 %36 0 4 5 3
107               OpStore %_GLF_color %74
108               OpBranch %70
109         %72 = OpLabel
110               OpStore %_GLF_color %37
111               OpBranch %70
112         %70 = OpLabel
113               OpReturn
114               OpFunctionEnd
115