xref: /aosp_15_r20/external/skia/tests/sksl/shared/NormalizationVert.asm.vert (revision c8dee2aa9b3f27cf6c858bd81872bdeb2c07ed17)
1               OpCapability Shader
2          %1 = OpExtInstImport "GLSL.std.450"
3               OpMemoryModel Logical GLSL450
4               OpEntryPoint Vertex %main "main" %3
5               OpName %sk_PerVertex "sk_PerVertex"
6               OpMemberName %sk_PerVertex 0 "sk_Position"
7               OpMemberName %sk_PerVertex 1 "sk_PointSize"
8               OpName %_UniformBuffer "_UniformBuffer"
9               OpMemberName %_UniformBuffer 0 "sk_RTAdjust"
10               OpName %main "main"
11               OpMemberDecorate %sk_PerVertex 0 BuiltIn Position
12               OpMemberDecorate %sk_PerVertex 1 BuiltIn PointSize
13               OpDecorate %sk_PerVertex Block
14               OpMemberDecorate %_UniformBuffer 0 Offset 0
15               OpDecorate %_UniformBuffer Block
16               OpDecorate %8 Binding 0
17               OpDecorate %8 DescriptorSet 0
18      %float = OpTypeFloat 32
19    %v4float = OpTypeVector %float 4
20%sk_PerVertex = OpTypeStruct %v4float %float
21%_ptr_Output_sk_PerVertex = OpTypePointer Output %sk_PerVertex
22          %3 = OpVariable %_ptr_Output_sk_PerVertex Output
23%_UniformBuffer = OpTypeStruct %v4float
24%_ptr_Uniform__UniformBuffer = OpTypePointer Uniform %_UniformBuffer
25          %8 = OpVariable %_ptr_Uniform__UniformBuffer Uniform
26       %void = OpTypeVoid
27         %12 = OpTypeFunction %void
28    %float_1 = OpConstant %float 1
29         %15 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
30        %int = OpTypeInt 32 1
31      %int_0 = OpConstant %int 0
32%_ptr_Output_v4float = OpTypePointer Output %v4float
33    %v2float = OpTypeVector %float 2
34%_ptr_Uniform_v4float = OpTypePointer Uniform %v4float
35    %float_0 = OpConstant %float 0
36       %main = OpFunction %void None %12
37         %13 = OpLabel
38         %18 = OpAccessChain %_ptr_Output_v4float %3 %int_0
39               OpStore %18 %15
40         %20 = OpAccessChain %_ptr_Output_v4float %3 %int_0
41         %21 = OpLoad %v4float %20
42         %22 = OpVectorShuffle %v2float %21 %21 0 1
43         %24 = OpAccessChain %_ptr_Uniform_v4float %8 %int_0
44         %26 = OpLoad %v4float %24
45         %27 = OpVectorShuffle %v2float %26 %26 0 2
46         %28 = OpFMul %v2float %22 %27
47         %29 = OpAccessChain %_ptr_Output_v4float %3 %int_0
48         %30 = OpLoad %v4float %29
49         %31 = OpVectorShuffle %v2float %30 %30 3 3
50         %32 = OpAccessChain %_ptr_Uniform_v4float %8 %int_0
51         %33 = OpLoad %v4float %32
52         %34 = OpVectorShuffle %v2float %33 %33 1 3
53         %35 = OpFMul %v2float %31 %34
54         %36 = OpFAdd %v2float %28 %35
55         %37 = OpCompositeExtract %float %36 0
56         %38 = OpCompositeExtract %float %36 1
57         %40 = OpAccessChain %_ptr_Output_v4float %3 %int_0
58         %41 = OpLoad %v4float %40
59         %42 = OpCompositeExtract %float %41 3
60         %43 = OpCompositeConstruct %v4float %37 %38 %float_0 %42
61         %44 = OpAccessChain %_ptr_Output_v4float %3 %int_0
62               OpStore %44 %43
63               OpReturn
64               OpFunctionEnd
65