1; SPIR-V
2; Version: 1.3
3; Generator: Khronos Glslang Reference Front End; 6
4; Bound: 51
5; Schema: 0
6               OpCapability Shader
7               OpCapability SampleRateShading
8          %1 = OpExtInstImport "GLSL.std.450"
9               OpMemoryModel Logical GLSL450
10               OpEntryPoint Fragment %main "main" %FragColor %inp
11               OpExecutionMode %main OriginUpperLeft
12               OpSource GLSL 450
13               OpName %main "main"
14               OpName %FragColor "FragColor"
15               OpName %Input "Input"
16               OpMemberName %Input 0 "v0"
17               OpMemberName %Input 1 "v1"
18               OpMemberName %Input 2 "v2"
19               OpMemberName %Input 3 "v3"
20               OpMemberName %Input 4 "v4"
21               OpMemberName %Input 5 "v5"
22               OpMemberName %Input 6 "v6"
23               OpName %inp "inp"
24               OpDecorate %FragColor Location 0
25               OpDecorate %inp Location 0
26               OpMemberDecorate %Input 1 NoPerspective
27               OpMemberDecorate %Input 2 Centroid
28               OpMemberDecorate %Input 3 Centroid
29               OpMemberDecorate %Input 3 NoPerspective
30               OpMemberDecorate %Input 4 Sample
31               OpMemberDecorate %Input 5 Sample
32               OpMemberDecorate %Input 5 NoPerspective
33               OpMemberDecorate %Input 6 Flat
34       %void = OpTypeVoid
35          %3 = OpTypeFunction %void
36      %float = OpTypeFloat 32
37    %v4float = OpTypeVector %float 4
38%_ptr_Output_v4float = OpTypePointer Output %v4float
39  %FragColor = OpVariable %_ptr_Output_v4float Output
40    %v2float = OpTypeVector %float 2
41    %v3float = OpTypeVector %float 3
42      %Input = OpTypeStruct %v2float %v2float %v3float %v4float %float %float %float
43%_ptr_Input_Input = OpTypePointer Input %Input
44        %inp = OpVariable %_ptr_Input_Input Input
45        %int = OpTypeInt 32 1
46      %int_0 = OpConstant %int 0
47       %uint = OpTypeInt 32 0
48     %uint_0 = OpConstant %uint 0
49%_ptr_Input_float = OpTypePointer Input %float
50      %int_1 = OpConstant %int 1
51     %uint_1 = OpConstant %uint 1
52      %int_2 = OpConstant %int 2
53%_ptr_Input_v3float = OpTypePointer Input %v3float
54      %int_3 = OpConstant %int 3
55     %uint_3 = OpConstant %uint 3
56      %int_4 = OpConstant %int 4
57      %int_5 = OpConstant %int 5
58      %int_6 = OpConstant %int 6
59       %main = OpFunction %void None %3
60          %5 = OpLabel
61         %20 = OpAccessChain %_ptr_Input_float %inp %int_0 %uint_0
62         %21 = OpLoad %float %20
63         %24 = OpAccessChain %_ptr_Input_float %inp %int_1 %uint_1
64         %25 = OpLoad %float %24
65         %26 = OpFAdd %float %21 %25
66         %29 = OpAccessChain %_ptr_Input_v3float %inp %int_2
67         %30 = OpLoad %v3float %29
68         %31 = OpVectorShuffle %v2float %30 %30 0 1
69         %34 = OpAccessChain %_ptr_Input_float %inp %int_3 %uint_3
70         %35 = OpLoad %float %34
71         %37 = OpAccessChain %_ptr_Input_float %inp %int_4
72         %38 = OpLoad %float %37
73         %39 = OpFMul %float %35 %38
74         %41 = OpAccessChain %_ptr_Input_float %inp %int_5
75         %42 = OpLoad %float %41
76         %43 = OpFAdd %float %39 %42
77         %45 = OpAccessChain %_ptr_Input_float %inp %int_6
78         %46 = OpLoad %float %45
79         %47 = OpFSub %float %43 %46
80         %48 = OpCompositeExtract %float %31 0
81         %49 = OpCompositeExtract %float %31 1
82         %50 = OpCompositeConstruct %v4float %26 %48 %49 %47
83               OpStore %FragColor %50
84               OpReturn
85               OpFunctionEnd
86