1; SPIR-V
2; Version: 1.0
3; Generator: Khronos Glslang Reference Front End; 8
4; Bound: 33
5; Schema: 0
6               OpCapability Shader
7          %1 = OpExtInstImport "GLSL.std.450"
8               OpMemoryModel Logical GLSL450
9               OpEntryPoint Vertex %main "main" %gl_Position %ps %gl_VertexIndex %gl_PointSize %gl_InstanceIndex
10               OpSource ESSL 310
11               OpName %main "main"
12               OpName %gl_Position "gl_Position"
13               OpName %ps "ps"
14               OpName %gl_VertexIndex "gl_VertexIndex"
15               OpName %gl_PointSize "gl_PointSize"
16               OpName %gl_InstanceIndex "gl_InstanceIndex"
17               OpDecorate %gl_Position Invariant
18               OpDecorate %gl_Position BuiltIn Position
19               OpDecorate %ps RelaxedPrecision
20               OpDecorate %ps Location 0
21               OpDecorate %12 RelaxedPrecision
22               OpDecorate %gl_VertexIndex BuiltIn VertexIndex
23               OpDecorate %gl_PointSize BuiltIn PointSize
24               OpDecorate %25 RelaxedPrecision
25               OpDecorate %gl_InstanceIndex BuiltIn InstanceIndex
26       %void = OpTypeVoid
27          %3 = OpTypeFunction %void
28      %float = OpTypeFloat 32
29    %v4float = OpTypeVector %float 4
30%_ptr_Output_v4float = OpTypePointer Output %v4float
31%gl_Position = OpVariable %_ptr_Output_v4float Output
32%_ptr_Input_float = OpTypePointer Input %float
33         %ps = OpVariable %_ptr_Input_float Input
34        %int = OpTypeInt 32 1
35      %int_4 = OpConstant %int 4
36%_ptr_Input_int = OpTypePointer Input %int
37%gl_VertexIndex = OpVariable %_ptr_Input_int Input
38%_ptr_Output_float = OpTypePointer Output %float
39%gl_PointSize = OpVariable %_ptr_Output_float Output
40      %int_5 = OpConstant %int 5
41%gl_InstanceIndex = OpVariable %_ptr_Input_int Input
42       %main = OpFunction %void None %3
43          %5 = OpLabel
44         %12 = OpLoad %float %ps
45         %13 = OpCompositeConstruct %v4float %12 %12 %12 %12
46               OpStore %gl_Position %13
47         %18 = OpLoad %int %gl_VertexIndex
48         %19 = OpISub %int %int_4 %18
49         %20 = OpConvertSToF %float %19
50         %21 = OpLoad %v4float %gl_Position
51         %22 = OpVectorTimesScalar %v4float %21 %20
52               OpStore %gl_Position %22
53         %25 = OpLoad %float %ps
54               OpStore %gl_PointSize %25
55         %28 = OpLoad %int %gl_InstanceIndex
56         %29 = OpISub %int %int_5 %28
57         %30 = OpConvertSToF %float %29
58         %31 = OpLoad %float %gl_PointSize
59         %32 = OpFMul %float %31 %30
60               OpStore %gl_PointSize %32
61               OpReturn
62               OpFunctionEnd
63