SPV: Implement GLSL interpolation built-in functions.
diff --git a/Test/baseResults/spv.interpOps.frag.out b/Test/baseResults/spv.interpOps.frag.out
new file mode 100644
index 0000000..d23891b
--- /dev/null
+++ b/Test/baseResults/spv.interpOps.frag.out
@@ -0,0 +1,141 @@
+spv.interpOps.frag

+Warning, version 450 is not yet complete; most version-specific features are present, but some are missing.

+

+

+Linked fragment stage:

+

+

+// Module Version 10000

+// Generated by (magic number): 80001

+// Id's are bound by 101

+

+                              Capability Shader

+               1:             ExtInstImport  "GLSL.std.450"

+                              MemoryModel Logical GLSL450

+                              EntryPoint Fragment 4  "main" 13 24 33 41 99

+                              ExecutionMode 4 OriginLowerLeft

+                              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 73  "offset"

+                              Name 99  "fragColor"

+               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 UniformConstant 45(int)

+        47(samp):     46(ptr) Variable UniformConstant

+              72:             TypePointer UniformConstant 22(fvec2)

+      73(offset):     72(ptr) Variable UniformConstant

+              98:             TypePointer Output 7(fvec4)

+   99(fragColor):     98(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

+              74:   22(fvec2) Load 73(offset)

+              75:    6(float) ExtInst 1(GLSL.std.450) 78(InterpolateAtOffset) 13(if1) 74

+              76:     17(ptr) AccessChain 9(f4) 16

+              77:    6(float) Load 76

+              78:    6(float) FAdd 77 75

+              79:     17(ptr) AccessChain 9(f4) 16

+                              Store 79 78

+              80:   22(fvec2) Load 73(offset)

+              81:   22(fvec2) ExtInst 1(GLSL.std.450) 78(InterpolateAtOffset) 24(if2) 80

+              82:    7(fvec4) Load 9(f4)

+              83:   22(fvec2) VectorShuffle 82 82 0 1

+              84:   22(fvec2) FAdd 83 81

+              85:    7(fvec4) Load 9(f4)

+              86:    7(fvec4) VectorShuffle 85 84 4 5 2 3

+                              Store 9(f4) 86

+              87:   22(fvec2) Load 73(offset)

+              88:   31(fvec3) ExtInst 1(GLSL.std.450) 78(InterpolateAtOffset) 33(if3) 87

+              89:    7(fvec4) Load 9(f4)

+              90:   31(fvec3) VectorShuffle 89 89 0 1 2

+              91:   31(fvec3) FAdd 90 88

+              92:    7(fvec4) Load 9(f4)

+              93:    7(fvec4) VectorShuffle 92 91 4 5 6 3

+                              Store 9(f4) 93

+              94:   22(fvec2) Load 73(offset)

+              95:    7(fvec4) ExtInst 1(GLSL.std.450) 78(InterpolateAtOffset) 41(if4) 94

+              96:    7(fvec4) Load 9(f4)

+              97:    7(fvec4) FAdd 96 95

+                              Store 9(f4) 97

+             100:    7(fvec4) Load 9(f4)

+                              Store 99(fragColor) 100

+                              Return

+                              FunctionEnd