xref: /aosp_15_r20/external/skia/tests/sksl/compute/ModuleStructInExpression.asm.comp (revision c8dee2aa9b3f27cf6c858bd81872bdeb2c07ed17)
1*c8dee2aaSAndroid Build Coastguard Worker               OpCapability Shader
2*c8dee2aaSAndroid Build Coastguard Worker          %1 = OpExtInstImport "GLSL.std.450"
3*c8dee2aaSAndroid Build Coastguard Worker               OpMemoryModel Logical GLSL450
4*c8dee2aaSAndroid Build Coastguard Worker               OpEntryPoint GLCompute %main "main"
5*c8dee2aaSAndroid Build Coastguard Worker               OpExecutionMode %main LocalSize 16 16 1
6*c8dee2aaSAndroid Build Coastguard Worker               OpName %outX "outX"
7*c8dee2aaSAndroid Build Coastguard Worker               OpName %outY "outY"
8*c8dee2aaSAndroid Build Coastguard Worker               OpName %outZ "outZ"
9*c8dee2aaSAndroid Build Coastguard Worker               OpName %one_i "one_i"
10*c8dee2aaSAndroid Build Coastguard Worker               OpName %two_i "two_i"
11*c8dee2aaSAndroid Build Coastguard Worker               OpName %three_i "three_i"
12*c8dee2aaSAndroid Build Coastguard Worker               OpName %main "main"
13*c8dee2aaSAndroid Build Coastguard Worker               OpName %IndirectDispatchArgs "IndirectDispatchArgs"
14*c8dee2aaSAndroid Build Coastguard Worker               OpMemberName %IndirectDispatchArgs 0 "x"
15*c8dee2aaSAndroid Build Coastguard Worker               OpMemberName %IndirectDispatchArgs 1 "y"
16*c8dee2aaSAndroid Build Coastguard Worker               OpMemberName %IndirectDispatchArgs 2 "z"
17*c8dee2aaSAndroid Build Coastguard Worker               OpMemberDecorate %IndirectDispatchArgs 0 Offset 0
18*c8dee2aaSAndroid Build Coastguard Worker               OpMemberDecorate %IndirectDispatchArgs 1 Offset 4
19*c8dee2aaSAndroid Build Coastguard Worker               OpMemberDecorate %IndirectDispatchArgs 2 Offset 8
20*c8dee2aaSAndroid Build Coastguard Worker        %int = OpTypeInt 32 1
21*c8dee2aaSAndroid Build Coastguard Worker%_ptr_Workgroup_int = OpTypePointer Workgroup %int
22*c8dee2aaSAndroid Build Coastguard Worker       %outX = OpVariable %_ptr_Workgroup_int Workgroup
23*c8dee2aaSAndroid Build Coastguard Worker       %outY = OpVariable %_ptr_Workgroup_int Workgroup
24*c8dee2aaSAndroid Build Coastguard Worker       %outZ = OpVariable %_ptr_Workgroup_int Workgroup
25*c8dee2aaSAndroid Build Coastguard Worker         %11 = OpTypeFunction %int
26*c8dee2aaSAndroid Build Coastguard Worker      %int_1 = OpConstant %int 1
27*c8dee2aaSAndroid Build Coastguard Worker      %int_2 = OpConstant %int 2
28*c8dee2aaSAndroid Build Coastguard Worker      %int_3 = OpConstant %int 3
29*c8dee2aaSAndroid Build Coastguard Worker       %void = OpTypeVoid
30*c8dee2aaSAndroid Build Coastguard Worker         %19 = OpTypeFunction %void
31*c8dee2aaSAndroid Build Coastguard Worker%IndirectDispatchArgs = OpTypeStruct %int %int %int
32*c8dee2aaSAndroid Build Coastguard Worker%_ptr_Function_IndirectDispatchArgs = OpTypePointer Function %IndirectDispatchArgs
33*c8dee2aaSAndroid Build Coastguard Worker      %int_0 = OpConstant %int 0
34*c8dee2aaSAndroid Build Coastguard Worker%_ptr_Function_int = OpTypePointer Function %int
35*c8dee2aaSAndroid Build Coastguard Worker      %one_i = OpFunction %int None %11
36*c8dee2aaSAndroid Build Coastguard Worker         %12 = OpLabel
37*c8dee2aaSAndroid Build Coastguard Worker               OpReturnValue %int_1
38*c8dee2aaSAndroid Build Coastguard Worker               OpFunctionEnd
39*c8dee2aaSAndroid Build Coastguard Worker      %two_i = OpFunction %int None %11
40*c8dee2aaSAndroid Build Coastguard Worker         %14 = OpLabel
41*c8dee2aaSAndroid Build Coastguard Worker               OpReturnValue %int_2
42*c8dee2aaSAndroid Build Coastguard Worker               OpFunctionEnd
43*c8dee2aaSAndroid Build Coastguard Worker    %three_i = OpFunction %int None %11
44*c8dee2aaSAndroid Build Coastguard Worker         %16 = OpLabel
45*c8dee2aaSAndroid Build Coastguard Worker               OpReturnValue %int_3
46*c8dee2aaSAndroid Build Coastguard Worker               OpFunctionEnd
47*c8dee2aaSAndroid Build Coastguard Worker       %main = OpFunction %void None %19
48*c8dee2aaSAndroid Build Coastguard Worker         %20 = OpLabel
49*c8dee2aaSAndroid Build Coastguard Worker         %21 = OpVariable %_ptr_Function_IndirectDispatchArgs Function
50*c8dee2aaSAndroid Build Coastguard Worker         %32 = OpVariable %_ptr_Function_IndirectDispatchArgs Function
51*c8dee2aaSAndroid Build Coastguard Worker         %39 = OpVariable %_ptr_Function_IndirectDispatchArgs Function
52*c8dee2aaSAndroid Build Coastguard Worker         %24 = OpFunctionCall %int %one_i
53*c8dee2aaSAndroid Build Coastguard Worker         %25 = OpFunctionCall %int %two_i
54*c8dee2aaSAndroid Build Coastguard Worker         %26 = OpFunctionCall %int %three_i
55*c8dee2aaSAndroid Build Coastguard Worker         %27 = OpCompositeConstruct %IndirectDispatchArgs %24 %25 %26
56*c8dee2aaSAndroid Build Coastguard Worker               OpStore %21 %27
57*c8dee2aaSAndroid Build Coastguard Worker         %29 = OpAccessChain %_ptr_Function_int %21 %int_0
58*c8dee2aaSAndroid Build Coastguard Worker         %31 = OpLoad %int %29
59*c8dee2aaSAndroid Build Coastguard Worker               OpStore %outX %31
60*c8dee2aaSAndroid Build Coastguard Worker         %33 = OpFunctionCall %int %one_i
61*c8dee2aaSAndroid Build Coastguard Worker         %34 = OpFunctionCall %int %two_i
62*c8dee2aaSAndroid Build Coastguard Worker         %35 = OpFunctionCall %int %three_i
63*c8dee2aaSAndroid Build Coastguard Worker         %36 = OpCompositeConstruct %IndirectDispatchArgs %33 %34 %35
64*c8dee2aaSAndroid Build Coastguard Worker               OpStore %32 %36
65*c8dee2aaSAndroid Build Coastguard Worker         %37 = OpAccessChain %_ptr_Function_int %32 %int_1
66*c8dee2aaSAndroid Build Coastguard Worker         %38 = OpLoad %int %37
67*c8dee2aaSAndroid Build Coastguard Worker               OpStore %outY %38
68*c8dee2aaSAndroid Build Coastguard Worker         %40 = OpFunctionCall %int %one_i
69*c8dee2aaSAndroid Build Coastguard Worker         %41 = OpFunctionCall %int %two_i
70*c8dee2aaSAndroid Build Coastguard Worker         %42 = OpFunctionCall %int %three_i
71*c8dee2aaSAndroid Build Coastguard Worker         %43 = OpCompositeConstruct %IndirectDispatchArgs %40 %41 %42
72*c8dee2aaSAndroid Build Coastguard Worker               OpStore %39 %43
73*c8dee2aaSAndroid Build Coastguard Worker         %44 = OpAccessChain %_ptr_Function_int %39 %int_2
74*c8dee2aaSAndroid Build Coastguard Worker         %45 = OpLoad %int %44
75*c8dee2aaSAndroid Build Coastguard Worker               OpStore %outZ %45
76*c8dee2aaSAndroid Build Coastguard Worker               OpReturn
77*c8dee2aaSAndroid Build Coastguard Worker               OpFunctionEnd
78