spv.debugInfo.frag
// Module Version 10000
// Generated by (magic number): 80008
// Id's are bound by 124

                              Capability Shader
               2:             ExtInstImport  "GLSL.std.450"
                              MemoryModel Logical GLSL450
                              EntryPoint Fragment 5  "main" 24 52
                              ExecutionMode 5 OriginLowerLeft
               1:             String  "spv.debugInfo.frag"
                              Source GLSL 450 1  "// OpModuleProcessed no-storage-format
// OpModuleProcessed resource-set-binding 3
// OpModuleProcessed auto-map-bindings
// OpModuleProcessed auto-map-locations
// OpModuleProcessed client opengl100
// OpModuleProcessed target-env opengl
// OpModuleProcessed relaxed-errors
// OpModuleProcessed suppress-warnings
// OpModuleProcessed hlsl-offsets
// OpModuleProcessed entry-point main
#line 1
#version 450

struct S {
    int a;
};

uniform ubuf {
    S s;
};

uniform sampler2D s2d;

layout(location = 0) in vec4 inv;
layout(location = 0) out vec4 outv;

vec4 foo(S s)
{
    vec4 r = s.a * inv;
    ++r;
    if (r.x > 3.0)
        --r;
    else
        r *= 2;

    return r;
}

void main()
{
    outv = foo(s);
    outv += texture(s2d, vec2(0.5));

    switch (s.a) {
    case 10:
        ++outv;
        break;
    case 20:
        outv = 2 * outv;
        ++outv;
        break;
    default:
        --outv;
        break;
    }

    for (int i = 0; i < 10; ++i)
        outv *= 3.0;

    outv.x < 10.0 ?
        outv = sin(outv) :
        outv = cos(outv);
}"
                              Name 5  "main"
                              Name 8  "S"
                              MemberName 8(S) 0  "a"
                              Name 14  "foo(struct-S-i11;"
                              Name 13  "s"
                              Name 17  "r"
                              Name 24  "inv"
                              Name 52  "outv"
                              Name 53  "S"
                              MemberName 53(S) 0  "a"
                              Name 54  "ubuf"
                              MemberName 54(ubuf) 0  "s"
                              Name 56  ""
                              Name 57  "param"
                              Name 67  "s2d"
                              Name 97  "i"
                              Decorate 24(inv) Location 0
                              Decorate 52(outv) Location 0
                              MemberDecorate 53(S) 0 Offset 0
                              MemberDecorate 54(ubuf) 0 Offset 0
                              Decorate 54(ubuf) Block
                              Decorate 56 DescriptorSet 3
                              Decorate 56 Binding 0
                              Decorate 67(s2d) Location 0
                              Decorate 67(s2d) DescriptorSet 3
                              Decorate 67(s2d) Binding 1
               3:             TypeVoid
               4:             TypeFunction 3
               7:             TypeInt 32 1
            8(S):             TypeStruct 7(int)
               9:             TypePointer Function 8(S)
              10:             TypeFloat 32
              11:             TypeVector 10(float) 4
              12:             TypeFunction 11(fvec4) 9(ptr)
              16:             TypePointer Function 11(fvec4)
              18:      7(int) Constant 0
              19:             TypePointer Function 7(int)
              23:             TypePointer Input 11(fvec4)
         24(inv):     23(ptr) Variable Input
              28:   10(float) Constant 1065353216
              31:             TypeInt 32 0
              32:     31(int) Constant 0
              33:             TypePointer Function 10(float)
              36:   10(float) Constant 1077936128
              37:             TypeBool
              45:   10(float) Constant 1073741824
              51:             TypePointer Output 11(fvec4)
        52(outv):     51(ptr) Variable Output
           53(S):             TypeStruct 7(int)
        54(ubuf):             TypeStruct 53(S)
              55:             TypePointer Uniform 54(ubuf)
              56:     55(ptr) Variable Uniform
              58:             TypePointer Uniform 53(S)
              64:             TypeImage 10(float) 2D sampled format:Unknown
              65:             TypeSampledImage 64
              66:             TypePointer UniformConstant 65
         67(s2d):     66(ptr) Variable UniformConstant
              69:             TypeVector 10(float) 2
              70:   10(float) Constant 1056964608
              71:   69(fvec2) ConstantComposite 70 70
              75:             TypePointer Uniform 7(int)
             104:      7(int) Constant 10
             109:      7(int) Constant 1
             111:             TypePointer Output 10(float)
             114:   10(float) Constant 1092616192
         5(main):           3 Function None 4
               6:             Label
       57(param):      9(ptr) Variable Function
           97(i):     19(ptr) Variable Function
             116:     16(ptr) Variable Function
                              Line 1 30 0
              59:     58(ptr) AccessChain 56 18
              60:       53(S) Load 59
              61:      7(int) CompositeExtract 60 0
              62:     19(ptr) AccessChain 57(param) 18
                              Store 62 61
              63:   11(fvec4) FunctionCall 14(foo(struct-S-i11;) 57(param)
                              Store 52(outv) 63
                              Line 1 31 0
              68:          65 Load 67(s2d)
              72:   11(fvec4) ImageSampleImplicitLod 68 71
              73:   11(fvec4) Load 52(outv)
              74:   11(fvec4) FAdd 73 72
                              Store 52(outv) 74
                              Line 1 33 0
              76:     75(ptr) AccessChain 56 18 18
              77:      7(int) Load 76
                              SelectionMerge 81 None
                              Switch 77 80 
                                     case 10: 78
                                     case 20: 79
              80:               Label
                                Line 1 42 0
              92:   11(fvec4)   Load 52(outv)
              93:   11(fvec4)   CompositeConstruct 28 28 28 28
              94:   11(fvec4)   FSub 92 93
                                Store 52(outv) 94
                                Line 1 43 0
                                Branch 81
              78:               Label
                                Line 1 35 0
              82:   11(fvec4)   Load 52(outv)
              83:   11(fvec4)   CompositeConstruct 28 28 28 28
              84:   11(fvec4)   FAdd 82 83
                                Store 52(outv) 84
                                Line 1 36 0
                                Branch 81
              79:               Label
                                Line 1 38 0
              86:   11(fvec4)   Load 52(outv)
              87:   11(fvec4)   VectorTimesScalar 86 45
                                Store 52(outv) 87
                                Line 1 39 0
              88:   11(fvec4)   Load 52(outv)
              89:   11(fvec4)   CompositeConstruct 28 28 28 28
              90:   11(fvec4)   FAdd 88 89
                                Store 52(outv) 90
                                Line 1 40 0
                                Branch 81
              81:             Label
                              Line 1 46 0
                              Store 97(i) 18
                              Branch 98
              98:             Label
                              LoopMerge 100 101 None
                              Branch 102
             102:             Label
             103:      7(int) Load 97(i)
             105:    37(bool) SLessThan 103 104
                              BranchConditional 105 99 100
              99:               Label
                                Line 1 47 0
             106:   11(fvec4)   Load 52(outv)
             107:   11(fvec4)   VectorTimesScalar 106 36
                                Store 52(outv) 107
                                Branch 101
             101:               Label
                                Line 1 46 0
             108:      7(int)   Load 97(i)
             110:      7(int)   IAdd 108 109
                                Store 97(i) 110
                                Branch 98
             100:             Label
                              Line 1 49 0
             112:    111(ptr) AccessChain 52(outv) 32
             113:   10(float) Load 112
             115:    37(bool) FOrdLessThan 113 114
                              SelectionMerge 118 None
                              BranchConditional 115 117 121
             117:               Label
                                Line 1 50 0
             119:   11(fvec4)   Load 52(outv)
             120:   11(fvec4)   ExtInst 2(GLSL.std.450) 13(Sin) 119
                                Store 52(outv) 120
                                Store 116 120
                                Branch 118
             121:               Label
                                Line 1 51 0
             122:   11(fvec4)   Load 52(outv)
             123:   11(fvec4)   ExtInst 2(GLSL.std.450) 14(Cos) 122
                                Store 52(outv) 123
                                Store 116 123
                                Branch 118
             118:             Label
                              Return
                              FunctionEnd
14(foo(struct-S-i11;):   11(fvec4) Function None 12
           13(s):      9(ptr) FunctionParameter
              15:             Label
           17(r):     16(ptr) Variable Function
                              Line 1 18 0
              20:     19(ptr) AccessChain 13(s) 18
              21:      7(int) Load 20
              22:   10(float) ConvertSToF 21
              25:   11(fvec4) Load 24(inv)
              26:   11(fvec4) VectorTimesScalar 25 22
                              Store 17(r) 26
                              Line 1 19 0
              27:   11(fvec4) Load 17(r)
              29:   11(fvec4) CompositeConstruct 28 28 28 28
              30:   11(fvec4) FAdd 27 29
                              Store 17(r) 30
                              Line 1 20 0
              34:     33(ptr) AccessChain 17(r) 32
              35:   10(float) Load 34
              38:    37(bool) FOrdGreaterThan 35 36
                              SelectionMerge 40 None
                              BranchConditional 38 39 44
              39:               Label
                                Line 1 21 0
              41:   11(fvec4)   Load 17(r)
              42:   11(fvec4)   CompositeConstruct 28 28 28 28
              43:   11(fvec4)   FSub 41 42
                                Store 17(r) 43
                                Branch 40
              44:               Label
                                Line 1 23 0
              46:   11(fvec4)   Load 17(r)
              47:   11(fvec4)   VectorTimesScalar 46 45
                                Store 17(r) 47
                                Branch 40
              40:             Label
                              Line 1 25 0
              48:   11(fvec4) Load 17(r)
                              ReturnValue 48
                              FunctionEnd
