xref: /aosp_15_r20/external/skia/tests/sksl/shared/Ossfuzz63170.asm.frag (revision c8dee2aa9b3f27cf6c858bd81872bdeb2c07ed17)
1               OpCapability Shader
2          %1 = OpExtInstImport "GLSL.std.450"
3               OpMemoryModel Logical GLSL450
4               OpEntryPoint Fragment %_entrypoint_v "_entrypoint" %sk_FragColor
5               OpExecutionMode %_entrypoint_v OriginUpperLeft
6               OpName %sk_FragColor "sk_FragColor"
7               OpName %_UniformBuffer "_UniformBuffer"
8               OpMemberName %_UniformBuffer 0 "colorGreen"
9               OpMemberName %_UniformBuffer 1 "colorRed"
10               OpName %_entrypoint_v "_entrypoint_v"
11               OpName %out_param_func2_ih "out_param_func2_ih"
12               OpName %main "main"
13               OpName %testArray "testArray"
14               OpDecorate %sk_FragColor RelaxedPrecision
15               OpDecorate %sk_FragColor Location 0
16               OpDecorate %sk_FragColor Index 0
17               OpMemberDecorate %_UniformBuffer 0 Offset 0
18               OpMemberDecorate %_UniformBuffer 0 RelaxedPrecision
19               OpMemberDecorate %_UniformBuffer 1 Offset 16
20               OpMemberDecorate %_UniformBuffer 1 RelaxedPrecision
21               OpDecorate %_UniformBuffer Block
22               OpDecorate %8 Binding 0
23               OpDecorate %8 DescriptorSet 0
24               OpDecorate %29 RelaxedPrecision
25               OpDecorate %30 RelaxedPrecision
26               OpDecorate %testArray RelaxedPrecision
27               OpDecorate %_arr_float_int_2 ArrayStride 16
28               OpDecorate %41 RelaxedPrecision
29               OpDecorate %43 RelaxedPrecision
30               OpDecorate %45 RelaxedPrecision
31               OpDecorate %49 RelaxedPrecision
32               OpDecorate %55 RelaxedPrecision
33               OpDecorate %64 RelaxedPrecision
34               OpDecorate %66 RelaxedPrecision
35               OpDecorate %67 RelaxedPrecision
36      %float = OpTypeFloat 32
37    %v4float = OpTypeVector %float 4
38%_ptr_Output_v4float = OpTypePointer Output %v4float
39%sk_FragColor = OpVariable %_ptr_Output_v4float Output
40%_UniformBuffer = OpTypeStruct %v4float %v4float
41%_ptr_Uniform__UniformBuffer = OpTypePointer Uniform %_UniformBuffer
42          %8 = OpVariable %_ptr_Uniform__UniformBuffer Uniform
43       %void = OpTypeVoid
44         %13 = OpTypeFunction %void
45    %float_0 = OpConstant %float 0
46    %v2float = OpTypeVector %float 2
47         %17 = OpConstantComposite %v2float %float_0 %float_0
48%_ptr_Function_v2float = OpTypePointer Function %v2float
49        %int = OpTypeInt 32 1
50%_ptr_Function_float = OpTypePointer Function %float
51         %23 = OpTypeFunction %int %_ptr_Function_float
52%_ptr_Uniform_v4float = OpTypePointer Uniform %v4float
53      %int_1 = OpConstant %int 1
54         %32 = OpTypeFunction %v4float %_ptr_Function_v2float
55      %int_2 = OpConstant %int 2
56%_arr_float_int_2 = OpTypeArray %float %int_2
57%_ptr_Function__arr_float_int_2 = OpTypePointer Function %_arr_float_int_2
58      %int_0 = OpConstant %int 0
59       %bool = OpTypeBool
60      %false = OpConstantFalse %bool
61    %float_1 = OpConstant %float 1
62%_ptr_Function_v4float = OpTypePointer Function %v4float
63%_entrypoint_v = OpFunction %void None %13
64         %14 = OpLabel
65         %18 = OpVariable %_ptr_Function_v2float Function
66               OpStore %18 %17
67         %20 = OpFunctionCall %v4float %main %18
68               OpStore %sk_FragColor %20
69               OpReturn
70               OpFunctionEnd
71%out_param_func2_ih = OpFunction %int None %23
72         %24 = OpFunctionParameter %_ptr_Function_float
73         %25 = OpLabel
74         %26 = OpAccessChain %_ptr_Uniform_v4float %8 %int_1
75         %29 = OpLoad %v4float %26
76         %30 = OpCompositeExtract %float %29 0
77               OpStore %24 %30
78         %31 = OpConvertFToS %int %30
79               OpReturnValue %31
80               OpFunctionEnd
81       %main = OpFunction %v4float None %32
82         %33 = OpFunctionParameter %_ptr_Function_v2float
83         %34 = OpLabel
84  %testArray = OpVariable %_ptr_Function__arr_float_int_2 Function
85         %41 = OpVariable %_ptr_Function_float Function
86         %58 = OpVariable %_ptr_Function_v4float Function
87         %40 = OpAccessChain %_ptr_Function_float %testArray %int_0
88         %42 = OpFunctionCall %int %out_param_func2_ih %41
89         %43 = OpLoad %float %41
90               OpStore %40 %43
91         %44 = OpAccessChain %_ptr_Function_float %testArray %42
92         %45 = OpLoad %float %44
93         %48 = OpAccessChain %_ptr_Function_float %testArray %int_0
94         %49 = OpLoad %float %48
95         %51 = OpFOrdEqual %bool %49 %float_1
96               OpSelectionMerge %53 None
97               OpBranchConditional %51 %52 %53
98         %52 = OpLabel
99         %54 = OpAccessChain %_ptr_Function_float %testArray %int_1
100         %55 = OpLoad %float %54
101         %56 = OpFOrdEqual %bool %55 %float_1
102               OpBranch %53
103         %53 = OpLabel
104         %57 = OpPhi %bool %false %34 %56 %52
105               OpSelectionMerge %62 None
106               OpBranchConditional %57 %60 %61
107         %60 = OpLabel
108         %63 = OpAccessChain %_ptr_Uniform_v4float %8 %int_0
109         %64 = OpLoad %v4float %63
110               OpStore %58 %64
111               OpBranch %62
112         %61 = OpLabel
113         %65 = OpAccessChain %_ptr_Uniform_v4float %8 %int_1
114         %66 = OpLoad %v4float %65
115               OpStore %58 %66
116               OpBranch %62
117         %62 = OpLabel
118         %67 = OpLoad %v4float %58
119               OpReturnValue %67
120               OpFunctionEnd
121