Home | History | Annotate | Download | only in test_data
      1 ; SPIR-V
      2 ; Version: 1.0
      3 ; Generator: Khronos Glslang Reference Front End; 1
      4 ; Bound: 67
      5 ; Schema: 0
      6                OpCapability Shader
      7           %1 = OpExtInstImport "GLSL.std.450"
      8                OpMemoryModel Logical GLSL450
      9                OpEntryPoint GLCompute %main "main" %gl_GlobalInvocationID
     10                OpExecutionMode %main LocalSize 2 1 1
     11                OpSource GLSL 450
     12                OpSourceExtension "GL_ARB_shading_language_420pack"
     13                OpSourceExtension "GL_GOOGLE_cpp_style_line_directive"
     14                OpSourceExtension "GL_GOOGLE_include_directive"
     15                OpName %main "main"
     16                OpName %xy "xy"
     17                OpName %gl_GlobalInvocationID "gl_GlobalInvocationID"
     18                OpName %inputPixel "inputPixel"
     19                OpName %inputTexture "inputTexture"
     20                OpName %res "res"
     21                OpName %globalBuffer "globalBuffer"
     22                OpMemberName %globalBuffer 0 "coeff"
     23                OpMemberName %globalBuffer 1 "width"
     24                OpMemberName %globalBuffer 2 "height"
     25                OpName %globalBlock "globalBlock"
     26                OpName %x "x"
     27                OpName %y "y"
     28                OpName %outputBufferS "outputBufferS"
     29                OpMemberName %outputBufferS 0 "buf"
     30                OpName %outputBuffer "outputBuffer"
     31                OpDecorate %gl_GlobalInvocationID BuiltIn GlobalInvocationId
     32                OpDecorate %inputTexture DescriptorSet 0
     33                OpDecorate %inputTexture Binding 0
     34                OpMemberDecorate %globalBuffer 0 Offset 0
     35                OpMemberDecorate %globalBuffer 1 Offset 16
     36                OpMemberDecorate %globalBuffer 2 Offset 20
     37                OpDecorate %globalBuffer BufferBlock
     38                OpDecorate %globalBlock DescriptorSet 0
     39                OpDecorate %globalBlock Binding 2
     40                OpDecorate %_runtimearr_v4float ArrayStride 16
     41                OpMemberDecorate %outputBufferS 0 Offset 0
     42                OpDecorate %outputBufferS BufferBlock
     43                OpDecorate %outputBuffer DescriptorSet 0
     44                OpDecorate %outputBuffer Binding 1
     45                OpDecorate %gl_WorkGroupSize BuiltIn WorkgroupSize
     46        %void = OpTypeVoid
     47           %3 = OpTypeFunction %void
     48         %int = OpTypeInt 32 1
     49       %v2int = OpTypeVector %int 2
     50 %_ptr_Function_v2int = OpTypePointer Function %v2int
     51        %uint = OpTypeInt 32 0
     52      %v3uint = OpTypeVector %uint 3
     53 %_ptr_Input_v3uint = OpTypePointer Input %v3uint
     54 %gl_GlobalInvocationID = OpVariable %_ptr_Input_v3uint Input
     55      %v2uint = OpTypeVector %uint 2
     56       %float = OpTypeFloat 32
     57     %v4float = OpTypeVector %float 4
     58 %_ptr_Function_v4float = OpTypePointer Function %v4float
     59          %22 = OpTypeImage %float 2D 0 0 0 1 Unknown
     60          %23 = OpTypeSampledImage %22
     61 %_ptr_UniformConstant_23 = OpTypePointer UniformConstant %23
     62 %inputTexture = OpVariable %_ptr_UniformConstant_23 UniformConstant
     63          %28 = OpConstant %int 0
     64 %globalBuffer = OpTypeStruct %v4float %int %int
     65 %_ptr_Uniform_globalBuffer = OpTypePointer Uniform %globalBuffer
     66 %globalBlock = OpVariable %_ptr_Uniform_globalBuffer Uniform
     67 %_ptr_Uniform_v4float = OpTypePointer Uniform %v4float
     68 %_ptr_Function_uint = OpTypePointer Function %uint
     69          %42 = OpConstant %uint 0
     70 %_ptr_Input_uint = OpTypePointer Input %uint
     71          %47 = OpConstant %uint 1
     72 %_runtimearr_v4float = OpTypeRuntimeArray %v4float
     73 %outputBufferS = OpTypeStruct %_runtimearr_v4float
     74 %_ptr_Uniform_outputBufferS = OpTypePointer Uniform %outputBufferS
     75 %outputBuffer = OpVariable %_ptr_Uniform_outputBufferS Uniform
     76          %55 = OpConstant %int 1
     77 %_ptr_Uniform_int = OpTypePointer Uniform %int
     78          %65 = OpConstant %uint 2
     79 %gl_WorkGroupSize = OpConstantComposite %v3uint %65 %47 %47
     80        %main = OpFunction %void None %3
     81           %5 = OpLabel
     82          %xy = OpVariable %_ptr_Function_v2int Function
     83  %inputPixel = OpVariable %_ptr_Function_v4float Function
     84         %res = OpVariable %_ptr_Function_v4float Function
     85           %x = OpVariable %_ptr_Function_uint Function
     86           %y = OpVariable %_ptr_Function_uint Function
     87          %15 = OpLoad %v3uint %gl_GlobalInvocationID
     88          %16 = OpVectorShuffle %v2uint %15 %15 0 1
     89          %17 = OpBitcast %v2int %16
     90                OpStore %xy %17
     91          %26 = OpLoad %23 %inputTexture
     92          %27 = OpLoad %v2int %xy
     93          %29 = OpImageFetch %v4float %26 %27 Lod %28
     94                OpStore %inputPixel %29
     95          %31 = OpLoad %v4float %inputPixel
     96          %36 = OpAccessChain %_ptr_Uniform_v4float %globalBlock %28
     97          %37 = OpLoad %v4float %36
     98          %38 = OpDot %float %31 %37
     99          %39 = OpCompositeConstruct %v4float %38 %38 %38 %38
    100                OpStore %res %39
    101          %44 = OpAccessChain %_ptr_Input_uint %gl_GlobalInvocationID %42
    102          %45 = OpLoad %uint %44
    103                OpStore %x %45
    104          %48 = OpAccessChain %_ptr_Input_uint %gl_GlobalInvocationID %47
    105          %49 = OpLoad %uint %48
    106                OpStore %y %49
    107          %54 = OpLoad %uint %y
    108          %57 = OpAccessChain %_ptr_Uniform_int %globalBlock %55
    109          %58 = OpLoad %int %57
    110          %59 = OpBitcast %uint %58
    111          %60 = OpIMul %uint %54 %59
    112          %61 = OpLoad %uint %x
    113          %62 = OpIAdd %uint %60 %61
    114          %63 = OpLoad %v4float %res
    115          %64 = OpAccessChain %_ptr_Uniform_v4float %outputBuffer %28 %62
    116                OpStore %64 %63
    117                OpReturn
    118                OpFunctionEnd
    119