spv.interpOps.frag
// Module Version 10000
// Generated by (magic number): 8000a
// Id's are bound by 100

                              Capability Shader
                              Capability InterpolationFunction
               1:             ExtInstImport  "GLSL.std.450"
                              MemoryModel Logical GLSL450
                              EntryPoint Fragment 4  "main" 13 24 33 41 47 72 98
                              ExecutionMode 4 OriginUpperLeft
                              Source GLSL 450
                              Name 4  "main"
                              Name 9  "f4"
                              Name 13  "if1"
                              Name 24  "if2"
                              Name 33  "if3"
                              Name 41  "if4"
                              Name 47  "samp"
                              Name 72  "offset"
                              Name 98  "fragColor"
                              Decorate 13(if1) Location 0
                              Decorate 24(if2) Location 1
                              Decorate 33(if3) Location 2
                              Decorate 41(if4) Location 3
                              Decorate 47(samp) Flat
                              Decorate 47(samp) Location 4
                              Decorate 72(offset) Flat
                              Decorate 72(offset) Location 5
                              Decorate 98(fragColor) Location 0
               2:             TypeVoid
               3:             TypeFunction 2
               6:             TypeFloat 32
               7:             TypeVector 6(float) 4
               8:             TypePointer Function 7(fvec4)
              10:    6(float) Constant 0
              11:    7(fvec4) ConstantComposite 10 10 10 10
              12:             TypePointer Input 6(float)
         13(if1):     12(ptr) Variable Input
              15:             TypeInt 32 0
              16:     15(int) Constant 0
              17:             TypePointer Function 6(float)
              22:             TypeVector 6(float) 2
              23:             TypePointer Input 22(fvec2)
         24(if2):     23(ptr) Variable Input
              31:             TypeVector 6(float) 3
              32:             TypePointer Input 31(fvec3)
         33(if3):     32(ptr) Variable Input
              40:             TypePointer Input 7(fvec4)
         41(if4):     40(ptr) Variable Input
              45:             TypeInt 32 1
              46:             TypePointer Input 45(int)
        47(samp):     46(ptr) Variable Input
      72(offset):     23(ptr) Variable Input
              97:             TypePointer Output 7(fvec4)
   98(fragColor):     97(ptr) Variable Output
         4(main):           2 Function None 3
               5:             Label
           9(f4):      8(ptr) Variable Function
                              Store 9(f4) 11
              14:    6(float) ExtInst 1(GLSL.std.450) 76(InterpolateAtCentroid) 13(if1)
              18:     17(ptr) AccessChain 9(f4) 16
              19:    6(float) Load 18
              20:    6(float) FAdd 19 14
              21:     17(ptr) AccessChain 9(f4) 16
                              Store 21 20
              25:   22(fvec2) ExtInst 1(GLSL.std.450) 76(InterpolateAtCentroid) 24(if2)
              26:    7(fvec4) Load 9(f4)
              27:   22(fvec2) VectorShuffle 26 26 0 1
              28:   22(fvec2) FAdd 27 25
              29:    7(fvec4) Load 9(f4)
              30:    7(fvec4) VectorShuffle 29 28 4 5 2 3
                              Store 9(f4) 30
              34:   31(fvec3) ExtInst 1(GLSL.std.450) 76(InterpolateAtCentroid) 33(if3)
              35:    7(fvec4) Load 9(f4)
              36:   31(fvec3) VectorShuffle 35 35 0 1 2
              37:   31(fvec3) FAdd 36 34
              38:    7(fvec4) Load 9(f4)
              39:    7(fvec4) VectorShuffle 38 37 4 5 6 3
                              Store 9(f4) 39
              42:    7(fvec4) ExtInst 1(GLSL.std.450) 76(InterpolateAtCentroid) 41(if4)
              43:    7(fvec4) Load 9(f4)
              44:    7(fvec4) FAdd 43 42
                              Store 9(f4) 44
              48:     45(int) Load 47(samp)
              49:    6(float) ExtInst 1(GLSL.std.450) 77(InterpolateAtSample) 13(if1) 48
              50:     17(ptr) AccessChain 9(f4) 16
              51:    6(float) Load 50
              52:    6(float) FAdd 51 49
              53:     17(ptr) AccessChain 9(f4) 16
                              Store 53 52
              54:     45(int) Load 47(samp)
              55:   22(fvec2) ExtInst 1(GLSL.std.450) 77(InterpolateAtSample) 24(if2) 54
              56:    7(fvec4) Load 9(f4)
              57:   22(fvec2) VectorShuffle 56 56 0 1
              58:   22(fvec2) FAdd 57 55
              59:    7(fvec4) Load 9(f4)
              60:    7(fvec4) VectorShuffle 59 58 4 5 2 3
                              Store 9(f4) 60
              61:     45(int) Load 47(samp)
              62:   31(fvec3) ExtInst 1(GLSL.std.450) 77(InterpolateAtSample) 33(if3) 61
              63:    7(fvec4) Load 9(f4)
              64:   31(fvec3) VectorShuffle 63 63 0 1 2
              65:   31(fvec3) FAdd 64 62
              66:    7(fvec4) Load 9(f4)
              67:    7(fvec4) VectorShuffle 66 65 4 5 6 3
                              Store 9(f4) 67
              68:     45(int) Load 47(samp)
              69:    7(fvec4) ExtInst 1(GLSL.std.450) 77(InterpolateAtSample) 41(if4) 68
              70:    7(fvec4) Load 9(f4)
              71:    7(fvec4) FAdd 70 69
                              Store 9(f4) 71
              73:   22(fvec2) Load 72(offset)
              74:    6(float) ExtInst 1(GLSL.std.450) 78(InterpolateAtOffset) 13(if1) 73
              75:     17(ptr) AccessChain 9(f4) 16
              76:    6(float) Load 75
              77:    6(float) FAdd 76 74
              78:     17(ptr) AccessChain 9(f4) 16
                              Store 78 77
              79:   22(fvec2) Load 72(offset)
              80:   22(fvec2) ExtInst 1(GLSL.std.450) 78(InterpolateAtOffset) 24(if2) 79
              81:    7(fvec4) Load 9(f4)
              82:   22(fvec2) VectorShuffle 81 81 0 1
              83:   22(fvec2) FAdd 82 80
              84:    7(fvec4) Load 9(f4)
              85:    7(fvec4) VectorShuffle 84 83 4 5 2 3
                              Store 9(f4) 85
              86:   22(fvec2) Load 72(offset)
              87:   31(fvec3) ExtInst 1(GLSL.std.450) 78(InterpolateAtOffset) 33(if3) 86
              88:    7(fvec4) Load 9(f4)
              89:   31(fvec3) VectorShuffle 88 88 0 1 2
              90:   31(fvec3) FAdd 89 87
              91:    7(fvec4) Load 9(f4)
              92:    7(fvec4) VectorShuffle 91 90 4 5 6 3
                              Store 9(f4) 92
              93:   22(fvec2) Load 72(offset)
              94:    7(fvec4) ExtInst 1(GLSL.std.450) 78(InterpolateAtOffset) 41(if4) 93
              95:    7(fvec4) Load 9(f4)
              96:    7(fvec4) FAdd 95 94
                              Store 9(f4) 96
              99:    7(fvec4) Load 9(f4)
                              Store 98(fragColor) 99
                              Return
                              FunctionEnd
