xref: /aosp_15_r20/external/skia/tests/sksl/intrinsics/Not.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 %main "main"
12               OpName %inputVal "inputVal"
13               OpName %expected "expected"
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 %7 Binding 0
23               OpDecorate %7 DescriptorSet 0
24               OpDecorate %31 RelaxedPrecision
25               OpDecorate %32 RelaxedPrecision
26               OpDecorate %34 RelaxedPrecision
27               OpDecorate %36 RelaxedPrecision
28               OpDecorate %38 RelaxedPrecision
29               OpDecorate %89 RelaxedPrecision
30               OpDecorate %92 RelaxedPrecision
31               OpDecorate %93 RelaxedPrecision
32      %float = OpTypeFloat 32
33    %v4float = OpTypeVector %float 4
34%_ptr_Output_v4float = OpTypePointer Output %v4float
35%sk_FragColor = OpVariable %_ptr_Output_v4float Output
36%_UniformBuffer = OpTypeStruct %v4float %v4float
37%_ptr_Uniform__UniformBuffer = OpTypePointer Uniform %_UniformBuffer
38          %7 = OpVariable %_ptr_Uniform__UniformBuffer Uniform
39       %void = OpTypeVoid
40         %12 = OpTypeFunction %void
41    %float_0 = OpConstant %float 0
42    %v2float = OpTypeVector %float 2
43         %16 = OpConstantComposite %v2float %float_0 %float_0
44%_ptr_Function_v2float = OpTypePointer Function %v2float
45         %20 = OpTypeFunction %v4float %_ptr_Function_v2float
46       %bool = OpTypeBool
47     %v4bool = OpTypeVector %bool 4
48%_ptr_Function_v4bool = OpTypePointer Function %v4bool
49%_ptr_Uniform_v4float = OpTypePointer Uniform %v4float
50        %int = OpTypeInt 32 1
51      %int_0 = OpConstant %int 0
52       %true = OpConstantTrue %bool
53      %false = OpConstantFalse %bool
54         %44 = OpConstantComposite %v4bool %true %false %true %false
55     %v2bool = OpTypeVector %bool 2
56     %v3bool = OpTypeVector %bool 3
57         %68 = OpConstantComposite %v2bool %true %false
58         %75 = OpConstantComposite %v3bool %true %false %true
59%_ptr_Function_v4float = OpTypePointer Function %v4float
60      %int_1 = OpConstant %int 1
61%_entrypoint_v = OpFunction %void None %12
62         %13 = OpLabel
63         %17 = OpVariable %_ptr_Function_v2float Function
64               OpStore %17 %16
65         %19 = OpFunctionCall %v4float %main %17
66               OpStore %sk_FragColor %19
67               OpReturn
68               OpFunctionEnd
69       %main = OpFunction %v4float None %20
70         %21 = OpFunctionParameter %_ptr_Function_v2float
71         %22 = OpLabel
72   %inputVal = OpVariable %_ptr_Function_v4bool Function
73   %expected = OpVariable %_ptr_Function_v4bool Function
74         %83 = OpVariable %_ptr_Function_v4float Function
75         %27 = OpAccessChain %_ptr_Uniform_v4float %7 %int_0
76         %31 = OpLoad %v4float %27
77         %32 = OpCompositeExtract %float %31 0
78         %33 = OpFUnordNotEqual %bool %32 %float_0
79         %34 = OpCompositeExtract %float %31 1
80         %35 = OpFUnordNotEqual %bool %34 %float_0
81         %36 = OpCompositeExtract %float %31 2
82         %37 = OpFUnordNotEqual %bool %36 %float_0
83         %38 = OpCompositeExtract %float %31 3
84         %39 = OpFUnordNotEqual %bool %38 %float_0
85         %40 = OpCompositeConstruct %v4bool %33 %35 %37 %39
86               OpStore %inputVal %40
87               OpStore %expected %44
88         %46 = OpVectorShuffle %v2bool %40 %40 0 1
89         %45 = OpLogicalNot %v2bool %46
90         %48 = OpVectorShuffle %v2bool %44 %44 0 1
91         %49 = OpLogicalEqual %v2bool %45 %48
92         %50 = OpAll %bool %49
93               OpSelectionMerge %52 None
94               OpBranchConditional %50 %51 %52
95         %51 = OpLabel
96         %54 = OpVectorShuffle %v3bool %40 %40 0 1 2
97         %53 = OpLogicalNot %v3bool %54
98         %56 = OpVectorShuffle %v3bool %44 %44 0 1 2
99         %57 = OpLogicalEqual %v3bool %53 %56
100         %58 = OpAll %bool %57
101               OpBranch %52
102         %52 = OpLabel
103         %59 = OpPhi %bool %false %22 %58 %51
104               OpSelectionMerge %61 None
105               OpBranchConditional %59 %60 %61
106         %60 = OpLabel
107         %62 = OpLogicalNot %v4bool %40
108         %63 = OpLogicalEqual %v4bool %62 %44
109         %64 = OpAll %bool %63
110               OpBranch %61
111         %61 = OpLabel
112         %65 = OpPhi %bool %false %52 %64 %60
113               OpSelectionMerge %67 None
114               OpBranchConditional %65 %66 %67
115         %66 = OpLabel
116         %69 = OpVectorShuffle %v2bool %44 %44 0 1
117         %70 = OpLogicalEqual %v2bool %68 %69
118         %71 = OpAll %bool %70
119               OpBranch %67
120         %67 = OpLabel
121         %72 = OpPhi %bool %false %61 %71 %66
122               OpSelectionMerge %74 None
123               OpBranchConditional %72 %73 %74
124         %73 = OpLabel
125         %76 = OpVectorShuffle %v3bool %44 %44 0 1 2
126         %77 = OpLogicalEqual %v3bool %75 %76
127         %78 = OpAll %bool %77
128               OpBranch %74
129         %74 = OpLabel
130         %79 = OpPhi %bool %false %67 %78 %73
131               OpSelectionMerge %81 None
132               OpBranchConditional %79 %80 %81
133         %80 = OpLabel
134               OpBranch %81
135         %81 = OpLabel
136         %82 = OpPhi %bool %false %74 %true %80
137               OpSelectionMerge %87 None
138               OpBranchConditional %82 %85 %86
139         %85 = OpLabel
140         %88 = OpAccessChain %_ptr_Uniform_v4float %7 %int_0
141         %89 = OpLoad %v4float %88
142               OpStore %83 %89
143               OpBranch %87
144         %86 = OpLabel
145         %90 = OpAccessChain %_ptr_Uniform_v4float %7 %int_1
146         %92 = OpLoad %v4float %90
147               OpStore %83 %92
148               OpBranch %87
149         %87 = OpLabel
150         %93 = OpLoad %v4float %83
151               OpReturnValue %93
152               OpFunctionEnd
153