spv.fragmentShaderBarycentric2.frag
// Module Version 10000
// Generated by (magic number): 8000b
// Id's are bound by 62

                              Capability Shader
                              Capability FragmentBarycentricKHR
                              Extension  "SPV_NV_fragment_shader_barycentric"
               1:             ExtInstImport  "GLSL.std.450"
                              MemoryModel Logical GLSL450
                              EntryPoint Fragment 4  "main" 8 11 20 44
                              ExecutionMode 4 OriginUpperLeft
                              Source ESSL 320
                              SourceExtension  "GL_NV_fragment_shader_barycentric"
                              Name 4  "main"
                              Name 8  "value"
                              Name 11  "gl_BaryCoordNoPerspNV"
                              Name 20  "vertexIDs"
                              Name 44  "vertexIDs2"
                              Decorate 8(value) Location 1
                              Decorate 11(gl_BaryCoordNoPerspNV) BuiltIn BaryCoordNoPerspKHR
                              Decorate 20(vertexIDs) Location 0
                              Decorate 20(vertexIDs) PerVertexKHR
                              Decorate 44(vertexIDs2) Location 1
                              Decorate 44(vertexIDs2) PerVertexKHR
               2:             TypeVoid
               3:             TypeFunction 2
               6:             TypeFloat 32
               7:             TypePointer Output 6(float)
        8(value):      7(ptr) Variable Output
               9:             TypeVector 6(float) 3
              10:             TypePointer Input 9(fvec3)
11(gl_BaryCoordNoPerspNV):     10(ptr) Variable Input
              12:             TypeInt 32 0
              13:     12(int) Constant 0
              14:             TypePointer Input 6(float)
              17:     12(int) Constant 3
              18:             TypeArray 6(float) 17
              19:             TypePointer Input 18
   20(vertexIDs):     19(ptr) Variable Input
              21:             TypeInt 32 1
              22:     21(int) Constant 0
              26:     12(int) Constant 1
              29:     21(int) Constant 1
              34:     12(int) Constant 2
              37:     21(int) Constant 2
  44(vertexIDs2):     19(ptr) Variable Input
         4(main):           2 Function None 3
               5:             Label
              15:     14(ptr) AccessChain 11(gl_BaryCoordNoPerspNV) 13
              16:    6(float) Load 15
              23:     14(ptr) AccessChain 20(vertexIDs) 22
              24:    6(float) Load 23
              25:    6(float) FMul 16 24
              27:     14(ptr) AccessChain 11(gl_BaryCoordNoPerspNV) 26
              28:    6(float) Load 27
              30:     14(ptr) AccessChain 20(vertexIDs) 29
              31:    6(float) Load 30
              32:    6(float) FMul 28 31
              33:    6(float) FAdd 25 32
              35:     14(ptr) AccessChain 11(gl_BaryCoordNoPerspNV) 34
              36:    6(float) Load 35
              38:     14(ptr) AccessChain 20(vertexIDs) 37
              39:    6(float) Load 38
              40:    6(float) FMul 36 39
              41:    6(float) FAdd 33 40
                              Store 8(value) 41
              42:     14(ptr) AccessChain 11(gl_BaryCoordNoPerspNV) 13
              43:    6(float) Load 42
              45:     14(ptr) AccessChain 44(vertexIDs2) 22
              46:    6(float) Load 45
              47:    6(float) FMul 43 46
              48:     14(ptr) AccessChain 11(gl_BaryCoordNoPerspNV) 26
              49:    6(float) Load 48
              50:     14(ptr) AccessChain 44(vertexIDs2) 29
              51:    6(float) Load 50
              52:    6(float) FMul 49 51
              53:    6(float) FAdd 47 52
              54:     14(ptr) AccessChain 11(gl_BaryCoordNoPerspNV) 34
              55:    6(float) Load 54
              56:     14(ptr) AccessChain 44(vertexIDs2) 37
              57:    6(float) Load 56
              58:    6(float) FMul 55 57
              59:    6(float) FAdd 53 58
              60:    6(float) Load 8(value)
              61:    6(float) FAdd 60 59
                              Store 8(value) 61
                              Return
                              FunctionEnd
