diff --git a/Test/baseResults/hlsl.basic.comp.out b/Test/baseResults/hlsl.basic.comp.out
new file mode 100755
index 0000000..1948ec3
--- /dev/null
+++ b/Test/baseResults/hlsl.basic.comp.out
@@ -0,0 +1,59 @@
+hlsl.basic.comp
+Shader version: 450
+local_size = (1, 1, 1)
+0:? Sequence
+0:4  Function Definition: main( (temp void)
+0:4    Function Parameters: 
+0:?     Sequence
+0:5      dti: direct index for structure (layout(offset=0 ) uniform int LocalInvocationID)
+0:5        'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int LocalInvocationID dti})
+0:5        Constant:
+0:5          0 (const uint)
+0:?   Linker Objects
+0:?     'anon@0' (uniform block{layout(offset=0 ) uniform int LocalInvocationID dti})
+
+
+Linked compute stage:
+
+
+Shader version: 450
+local_size = (1, 1, 1)
+0:? Sequence
+0:4  Function Definition: main( (temp void)
+0:4    Function Parameters: 
+0:?     Sequence
+0:5      dti: direct index for structure (layout(offset=0 ) uniform int LocalInvocationID)
+0:5        'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int LocalInvocationID dti})
+0:5        Constant:
+0:5          0 (const uint)
+0:?   Linker Objects
+0:?     'anon@0' (uniform block{layout(offset=0 ) uniform int LocalInvocationID dti})
+
+// Module Version 10000
+// Generated by (magic number): 80001
+// Id's are bound by 11
+
+                              Capability Shader
+               1:             ExtInstImport  "GLSL.std.450"
+                              MemoryModel Logical GLSL450
+                              EntryPoint GLCompute 4  "main"
+                              ExecutionMode 4 LocalSize 1 1 1
+                              Name 4  "main"
+                              Name 7  "$Global"
+                              MemberName 7($Global) 0  "dti"
+                              Name 9  ""
+                              MemberDecorate 7($Global) 0 Offset 0
+                              MemberDecorate 7($Global) 0 BuiltIn LocalInvocationId
+                              Decorate 7($Global) Block
+                              Decorate 9 DescriptorSet 0
+               2:             TypeVoid
+               3:             TypeFunction 2
+               6:             TypeInt 32 1
+      7($Global):             TypeStruct 6(int)
+               8:             TypePointer Uniform 7($Global)
+               9:      8(ptr) Variable Uniform
+              10:      6(int) Constant 0
+         4(main):           2 Function None 3
+               5:             Label
+                              Return
+                              FunctionEnd
diff --git a/Test/baseResults/hlsl.inoutquals.frag.out b/Test/baseResults/hlsl.inoutquals.frag.out
index 83fe24b..b2716a4 100644
--- a/Test/baseResults/hlsl.inoutquals.frag.out
+++ b/Test/baseResults/hlsl.inoutquals.frag.out
@@ -18,9 +18,10 @@
 0:11        'x' (in float)
 0:11        Constant:
 0:11          -1.000000
-0:15  Function Definition: main(vf4; (temp structure{temp 4-component vector of float Color, temp float Depth})
+0:15  Function Definition: main(vf4;i1; (temp structure{temp 4-component vector of float Color, temp float Depth})
 0:15    Function Parameters: 
 0:15      'inpos' (noperspective in 4-component vector of float FragCoord)
+0:15      'sampleMask' (out int SampleMaskIn)
 0:?     Sequence
 0:18      Sequence
 0:18        move second child to first child (temp float)
@@ -74,6 +75,7 @@
 0:?     'Color' (layout(location=0 ) out 4-component vector of float)
 0:?     'Depth' (out float FragDepth)
 0:?     'inpos' (noperspective in 4-component vector of float FragCoord)
+0:?     'sampleMask' (out int SampleMaskIn)
 
 
 Linked fragment stage:
@@ -98,9 +100,10 @@
 0:11        'x' (in float)
 0:11        Constant:
 0:11          -1.000000
-0:15  Function Definition: main(vf4; (temp structure{temp 4-component vector of float Color, temp float Depth})
+0:15  Function Definition: main(vf4;i1; (temp structure{temp 4-component vector of float Color, temp float Depth})
 0:15    Function Parameters: 
 0:15      'inpos' (noperspective in 4-component vector of float FragCoord)
+0:15      'sampleMask' (out int SampleMaskIn)
 0:?     Sequence
 0:18      Sequence
 0:18        move second child to first child (temp float)
@@ -154,15 +157,17 @@
 0:?     'Color' (layout(location=0 ) out 4-component vector of float)
 0:?     'Depth' (out float FragDepth)
 0:?     'inpos' (noperspective in 4-component vector of float FragCoord)
+0:?     'sampleMask' (out int SampleMaskIn)
 
 // Module Version 10000
 // Generated by (magic number): 80001
-// Id's are bound by 61
+// Id's are bound by 63
 
                               Capability Shader
+                              Capability SampleRateShading
                1:             ExtInstImport  "GLSL.std.450"
                               MemoryModel Logical GLSL450
-                              EntryPoint Fragment 4  "main" 45 53 57
+                              EntryPoint Fragment 4  "main" 45 53 57 62
                               ExecutionMode 4 OriginUpperLeft
                               Name 4  "main"
                               Name 12  "MyFunc(f1;f1;f1;"
@@ -182,10 +187,12 @@
                               Name 45  "inpos"
                               Name 53  "Color"
                               Name 57  "Depth"
+                              Name 62  "sampleMask"
                               Decorate 45(inpos) NoPerspective
                               Decorate 45(inpos) BuiltIn FragCoord
                               Decorate 53(Color) Location 0
                               Decorate 57(Depth) BuiltIn FragDepth
+                              Decorate 62(sampleMask) BuiltIn SampleMask
                2:             TypeVoid
                3:             TypeFunction 2
                6:             TypeFloat 32
@@ -211,6 +218,8 @@
        53(Color):     52(ptr) Variable Output
               56:             TypePointer Output 6(float)
        57(Depth):     56(ptr) Variable Output
+              61:             TypePointer Output 34(int)
+  62(sampleMask):     61(ptr) Variable Output
          4(main):           2 Function None 3
                5:             Label
            17(x):      7(ptr) Variable Function
diff --git a/Test/hlsl.basic.comp b/Test/hlsl.basic.comp
new file mode 100644
index 0000000..5e43510
--- /dev/null
+++ b/Test/hlsl.basic.comp
@@ -0,0 +1,6 @@
+int dti : SV_DispatchThreadID;
+
+void main()
+{
+    dti;
+}
diff --git a/Test/hlsl.inoutquals.frag b/Test/hlsl.inoutquals.frag
index 91798d5..3234688 100644
--- a/Test/hlsl.inoutquals.frag
+++ b/Test/hlsl.inoutquals.frag
@@ -11,7 +11,7 @@
     x = -1; // no effect since x = in param
 }
 
-PS_OUTPUT main(noperspective in float4 inpos : SV_Position)
+PS_OUTPUT main(noperspective in float4 inpos : SV_Position, out int sampleMask : SV_Coverage)
 {
    PS_OUTPUT psout;
 
diff --git a/glslang/Include/revision.h b/glslang/Include/revision.h
index 3cdfdb0..882a2d0 100644
--- a/glslang/Include/revision.h
+++ b/glslang/Include/revision.h
@@ -2,5 +2,5 @@
 // For the version, it uses the latest git tag followed by the number of commits.
 // For the date, it uses the current date (when then script is run).
 
-#define GLSLANG_REVISION "Overload400-PrecQual.1601"
+#define GLSLANG_REVISION "Overload400-PrecQual.1602"
 #define GLSLANG_DATE "16-Oct-2016"
diff --git a/gtests/Hlsl.FromFile.cpp b/gtests/Hlsl.FromFile.cpp
index f50c749..b50816a 100644
--- a/gtests/Hlsl.FromFile.cpp
+++ b/gtests/Hlsl.FromFile.cpp
@@ -86,6 +86,7 @@
         {"hlsl.array.multidim.frag", "main"},
         {"hlsl.assoc.frag", "PixelShaderFunction"},
         {"hlsl.attribute.frag", "PixelShaderFunction"},
+        {"hlsl.basic.comp", "main"},
         {"hlsl.buffer.frag", "PixelShaderFunction"},
         {"hlsl.calculatelod.dx10.frag", "main"},
         {"hlsl.calculatelodunclamped.dx10.frag", "main"},
diff --git a/hlsl/hlslParseHelper.cpp b/hlsl/hlslParseHelper.cpp
index 78f18b6..b4c417d 100755
--- a/hlsl/hlslParseHelper.cpp
+++ b/hlsl/hlslParseHelper.cpp
@@ -2935,6 +2935,8 @@
         qualifier.builtIn = EbvTessLevelInner;
     else if (semanticUpperCase == "SV_GSINSTANCEID")
         qualifier.builtIn = EbvInvocationId;
+    else if (semanticUpperCase == "SV_DISPATCHTHREADID")
+        qualifier.builtIn = EbvLocalInvocationId;
     else if (semanticUpperCase == "SV_GROUPTHREADID")
         qualifier.builtIn = EbvLocalInvocationId;
     else if (semanticUpperCase == "SV_GROUPID")
@@ -2943,6 +2945,8 @@
         qualifier.builtIn = EbvTessCoord;
     else if (semanticUpperCase == "SV_DEPTH")
         qualifier.builtIn = EbvFragDepth;
+    else if( semanticUpperCase == "SV_COVERAGE")
+        qualifier.builtIn = EbvSampleMask;
 
     //TODO, these need to get refined to be more specific 
     else if( semanticUpperCase == "SV_DEPTHGREATEREQUAL")
@@ -2950,9 +2954,9 @@
     else if( semanticUpperCase == "SV_DEPTHLESSEQUAL")
         qualifier.builtIn = EbvFragDepthLesser;
     else if( semanticUpperCase == "SV_STENCILREF")
-        error(loc, "unimplemented", "SV_STENCILREF", "");
-    else if( semanticUpperCase == "SV_COVERAGE")
-        error(loc, "unimplemented", "SV_COVERAGE", "");
+        error(loc, "unimplemented; need ARB_shader_stencil_export", "SV_STENCILREF", "");
+    else if( semanticUpperCase == "SV_GROUPINDEX")
+        error(loc, "unimplemented", "SV_GROUPINDEX", "");
 }
 
 //
