• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1; SPIR-V
2; Version: 1.0
3; Generator: Khronos SPIR-V Tools Assembler; 0
4; Bound: 38
5; Schema: 0
6               OpCapability Addresses
7               OpCapability Linkage
8               OpCapability Kernel
9               OpCapability Int64
10               OpMemoryModel Physical64 OpenCL
11               OpEntryPoint Kernel %1 "phi_3"
12               OpName %res "res"
13               OpName %lhs "lhs"
14               OpName %rhs "rhs"
15               OpDecorate %5 FuncParamAttr NoCapture
16          %5 = OpDecorationGroup
17               OpDecorate %gl_GlobalInvocationID BuiltIn GlobalInvocationId
18               OpDecorate %gl_GlobalInvocationID Constant
19               OpDecorate %gl_GlobalInvocationID LinkageAttributes "__spirv_GlobalInvocationId" Import
20               OpGroupDecorate %5 %res %lhs %rhs
21      %ulong = OpTypeInt 64 0
22    %v3ulong = OpTypeVector %ulong 3
23   %ulong_32 = OpConstant %ulong 32
24%_ptr_UniformConstant_v3ulong = OpTypePointer UniformConstant %v3ulong
25       %bool = OpTypeBool
26       %void = OpTypeVoid
27       %uint = OpTypeInt 32 0
28     %uint_0 = OpConstant %uint 0
29%_ptr_CrossWorkgroup_uint = OpTypePointer CrossWorkgroup %uint
30         %16 = OpTypeFunction %void %_ptr_CrossWorkgroup_uint %_ptr_CrossWorkgroup_uint %_ptr_CrossWorkgroup_uint
31%gl_GlobalInvocationID = OpVariable %_ptr_UniformConstant_v3ulong UniformConstant
32          %1 = OpFunction %void None %16
33        %res = OpFunctionParameter %_ptr_CrossWorkgroup_uint
34        %lhs = OpFunctionParameter %_ptr_CrossWorkgroup_uint
35        %rhs = OpFunctionParameter %_ptr_CrossWorkgroup_uint
36         %17 = OpLabel
37         %18 = OpLoad %v3ulong %gl_GlobalInvocationID Aligned 0
38         %19 = OpCompositeExtract %ulong %18 0
39         %20 = OpShiftLeftLogical %ulong %19 %ulong_32
40         %21 = OpShiftRightArithmetic %ulong %20 %ulong_32
41         %22 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_uint %lhs %21
42         %23 = OpLoad %uint %22 Aligned 4
43         %24 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_uint %rhs %21
44         %25 = OpLoad %uint %24 Aligned 4
45         %26 = OpSLessThan %bool %23 %25
46               OpBranchConditional %26 %27 %28
47         %27 = OpLabel
48         %29 = OpSLessThan %bool %23 %uint_0
49               OpBranchConditional %29 %30 %31
50         %30 = OpLabel
51         %32 = OpISub %uint %uint_0 %23
52               OpBranch %33
53         %31 = OpLabel
54         %34 = OpISub %uint %23 %uint_0
55               OpBranch %33
56         %28 = OpLabel
57         %35 = OpISub %uint %23 %25
58               OpBranch %33
59         %33 = OpLabel
60         %36 = OpPhi %uint %32 %30 %34 %31 %35 %28
61         %37 = OpInBoundsPtrAccessChain %_ptr_CrossWorkgroup_uint %res %21
62               OpStore %37 %36 Aligned 4
63               OpReturn
64               OpFunctionEnd
65