diff --git a/Test/baseLegalResults/hlsl.aliasOpaque.frag.out b/Test/baseLegalResults/hlsl.aliasOpaque.frag.out
index 7ce3058dceffbdf74a97678a5561ce8b75e7a94d..621fae5186c3231572ddfeca736637482cd6758e 100644
--- a/Test/baseLegalResults/hlsl.aliasOpaque.frag.out
+++ b/Test/baseLegalResults/hlsl.aliasOpaque.frag.out
@@ -1,4 +1,5 @@
 hlsl.aliasOpaque.frag
+WARNING: AST will form illegal SPIR-V; need to transform to legalize
 // Module Version 10000
 // Generated by (magic number): 80005
 // Id's are bound by 87
diff --git a/Test/baseLegalResults/hlsl.array.flatten.frag.out b/Test/baseLegalResults/hlsl.array.flatten.frag.out
deleted file mode 100644
index 62e05963d25da323ba4209c9d558f4f593eb446d..0000000000000000000000000000000000000000
--- a/Test/baseLegalResults/hlsl.array.flatten.frag.out
+++ /dev/null
@@ -1,59 +0,0 @@
-hlsl.array.flatten.frag
-// Module Version 10000
-// Generated by (magic number): 80005
-// Id's are bound by 180
-
-                              Capability Shader
-                              Capability Sampled1D
-               1:             ExtInstImport  "GLSL.std.450"
-                              MemoryModel Logical GLSL450
-                              EntryPoint Fragment 4  "main" 110
-                              ExecutionMode 4 OriginUpperLeft
-                              Source HLSL 500
-                              Name 4  "main"
-                              Name 42  "g_tex"
-                              Name 47  "g_samp"
-                              Name 110  "ps_output.color"
-                              Decorate 42(g_tex) DescriptorSet 0
-                              Decorate 47(g_samp) DescriptorSet 0
-                              Decorate 110(ps_output.color) Location 0
-               2:             TypeVoid
-               3:             TypeFunction 2
-               6:             TypeFloat 32
-               7:             TypeVector 6(float) 4
-              11:             TypeImage 6(float) 1D sampled format:Unknown
-              12:             TypeInt 32 0
-              13:     12(int) Constant 3
-              14:             TypeArray 11 13
-              16:             TypeSampler
-              17:             TypeArray 16 13
-              30:             TypeInt 32 1
-              35:     30(int) Constant 1
-              41:             TypePointer UniformConstant 14
-       42(g_tex):     41(ptr) Variable UniformConstant
-              43:             TypePointer UniformConstant 11
-              46:             TypePointer UniformConstant 17
-      47(g_samp):     46(ptr) Variable UniformConstant
-              48:             TypePointer UniformConstant 16
-              51:             TypeSampledImage 11
-              53:    6(float) Constant 1045220557
-             109:             TypePointer Output 7(fvec4)
-110(ps_output.color):    109(ptr) Variable Output
-         4(main):           2 Function None 3
-               5:             Label
-             139:     43(ptr) AccessChain 42(g_tex) 35
-             140:          11 Load 139
-             141:     48(ptr) AccessChain 47(g_samp) 35
-             142:          16 Load 141
-             143:          51 SampledImage 140 142
-             144:    7(fvec4) ImageSampleImplicitLod 143 53
-             133:          14 Load 42(g_tex)
-             173:          11 CompositeExtract 133 2
-             134:          17 Load 47(g_samp)
-             179:          16 CompositeExtract 134 2
-             150:          51 SampledImage 173 179
-             151:    7(fvec4) ImageSampleImplicitLod 150 53
-             136:    7(fvec4) FAdd 144 151
-                              Store 110(ps_output.color) 136
-                              Return
-                              FunctionEnd
diff --git a/Test/baseLegalResults/hlsl.flattenOpaque.frag.out b/Test/baseLegalResults/hlsl.flattenOpaque.frag.out
index 16f060dc0cb7c2f08516dd96a60d2e71a9e2d824..1e90a0869a6a55cb6cb26e5d526fedd6d62740cd 100644
--- a/Test/baseLegalResults/hlsl.flattenOpaque.frag.out
+++ b/Test/baseLegalResults/hlsl.flattenOpaque.frag.out
@@ -1,4 +1,5 @@
 hlsl.flattenOpaque.frag
+WARNING: AST will form illegal SPIR-V; need to transform to legalize
 // Module Version 10000
 // Generated by (magic number): 80005
 // Id's are bound by 185
diff --git a/Test/baseLegalResults/hlsl.flattenOpaqueInit.vert.out b/Test/baseLegalResults/hlsl.flattenOpaqueInit.vert.out
index c181243f2106ee5f8cab61cdc9786c56564bd64c..d5800557e1a109af89c9131ac826254c03300d9d 100644
--- a/Test/baseLegalResults/hlsl.flattenOpaqueInit.vert.out
+++ b/Test/baseLegalResults/hlsl.flattenOpaqueInit.vert.out
@@ -1,4 +1,5 @@
 hlsl.flattenOpaqueInit.vert
+WARNING: AST will form illegal SPIR-V; need to transform to legalize
 // Module Version 10000
 // Generated by (magic number): 80005
 // Id's are bound by 134
diff --git a/Test/baseLegalResults/hlsl.flattenOpaqueInitMix.vert.out b/Test/baseLegalResults/hlsl.flattenOpaqueInitMix.vert.out
index aca925fff6a27848ccb7488b11791dfead335fd7..054d4bda8ffaa5ad7e205b3526948f907c14fcb7 100644
--- a/Test/baseLegalResults/hlsl.flattenOpaqueInitMix.vert.out
+++ b/Test/baseLegalResults/hlsl.flattenOpaqueInitMix.vert.out
@@ -1,4 +1,5 @@
 hlsl.flattenOpaqueInitMix.vert
+WARNING: AST will form illegal SPIR-V; need to transform to legalize
 // Module Version 10000
 // Generated by (magic number): 80005
 // Id's are bound by 80
diff --git a/Test/baseLegalResults/hlsl.flattenSubset.frag.out b/Test/baseLegalResults/hlsl.flattenSubset.frag.out
index 01d6699f2354dd8f25b1958b1b21e3f534f391c6..bbffe8ae077da3944288c90d66beb740ea1c9ca0 100755
--- a/Test/baseLegalResults/hlsl.flattenSubset.frag.out
+++ b/Test/baseLegalResults/hlsl.flattenSubset.frag.out
@@ -1,4 +1,5 @@
 hlsl.flattenSubset.frag
+WARNING: AST will form illegal SPIR-V; need to transform to legalize
 // Module Version 10000
 // Generated by (magic number): 80005
 // Id's are bound by 66
diff --git a/Test/baseLegalResults/hlsl.flattenSubset2.frag.out b/Test/baseLegalResults/hlsl.flattenSubset2.frag.out
index bb1ec4b449b5bcad999afb5516e049e9a908dfb6..ea93e7a1e974aa621822f14d47d5dd9c1bb0e88b 100755
--- a/Test/baseLegalResults/hlsl.flattenSubset2.frag.out
+++ b/Test/baseLegalResults/hlsl.flattenSubset2.frag.out
@@ -1,4 +1,5 @@
 hlsl.flattenSubset2.frag
+WARNING: AST will form illegal SPIR-V; need to transform to legalize
 // Module Version 10000
 // Generated by (magic number): 80005
 // Id's are bound by 53
diff --git a/Test/baseLegalResults/hlsl.partialFlattenLocal.vert.out b/Test/baseLegalResults/hlsl.partialFlattenLocal.vert.out
index 104a729062c83895e34c4b67199c6d67143d61c6..0ec29fb05f85fa8f0cc3734c556b9ae167d48604 100755
--- a/Test/baseLegalResults/hlsl.partialFlattenLocal.vert.out
+++ b/Test/baseLegalResults/hlsl.partialFlattenLocal.vert.out
@@ -1,4 +1,5 @@
 hlsl.partialFlattenLocal.vert
+WARNING: AST will form illegal SPIR-V; need to transform to legalize
 // Module Version 10000
 // Generated by (magic number): 80005
 // Id's are bound by 169
diff --git a/Test/baseLegalResults/hlsl.partialFlattenMixed.vert.out b/Test/baseLegalResults/hlsl.partialFlattenMixed.vert.out
index 1bee2bd4f5d0454c701efc583deac6665948953e..8497977c271f677b719bf45c89e489d67826f5af 100755
--- a/Test/baseLegalResults/hlsl.partialFlattenMixed.vert.out
+++ b/Test/baseLegalResults/hlsl.partialFlattenMixed.vert.out
@@ -1,4 +1,5 @@
 hlsl.partialFlattenMixed.vert
+WARNING: AST will form illegal SPIR-V; need to transform to legalize
 // Module Version 10000
 // Generated by (magic number): 80005
 // Id's are bound by 36
diff --git a/Test/baseLegalResults/hlsl.samplecmp.dualmode.frag.out b/Test/baseLegalResults/hlsl.samplecmp.dualmode.frag.out
deleted file mode 100644
index 8577f73a085eab004c21eb6666b386192d8d65ca..0000000000000000000000000000000000000000
--- a/Test/baseLegalResults/hlsl.samplecmp.dualmode.frag.out
+++ /dev/null
@@ -1,28 +0,0 @@
-hlsl.samplecmp.dualmode.frag
-// Module Version 10000
-// Generated by (magic number): 80005
-// Id's are bound by 42
-
-                              Capability Shader
-                              Capability Sampled1D
-               1:             ExtInstImport  "GLSL.std.450"
-                              MemoryModel Logical GLSL450
-                              EntryPoint Fragment 4  "main" 41
-                              ExecutionMode 4 OriginUpperLeft
-                              Source HLSL 500
-                              Name 4  "main"
-                              Name 41  "@entryPointOutput"
-                              Decorate 41(@entryPointOutput) Location 0
-               2:             TypeVoid
-               3:             TypeFunction 2
-               6:             TypeFloat 32
-               7:             TypeVector 6(float) 4
-              36:    6(float) Constant 0
-              37:    7(fvec4) ConstantComposite 36 36 36 36
-              40:             TypePointer Output 7(fvec4)
-41(@entryPointOutput):     40(ptr) Variable Output
-         4(main):           2 Function None 3
-               5:             Label
-                              Store 41(@entryPointOutput) 37
-                              Return
-                              FunctionEnd
diff --git a/Test/baseResults/hlsl.aliasOpaque.frag.out b/Test/baseResults/hlsl.aliasOpaque.frag.out
index 0e1841c5a62f3f68a6a57d753074e59633d8852e..f729efac9d39a0a98f282761523854cc1072b5db 100755
--- a/Test/baseResults/hlsl.aliasOpaque.frag.out
+++ b/Test/baseResults/hlsl.aliasOpaque.frag.out
@@ -1,4 +1,5 @@
 hlsl.aliasOpaque.frag
+WARNING: AST will form illegal SPIR-V; need to transform to legalize
 Shader version: 500
 gl_FragCoord origin is upper left
 0:? Sequence
diff --git a/Test/baseResults/hlsl.flattenOpaque.frag.out b/Test/baseResults/hlsl.flattenOpaque.frag.out
index d6abea32392c150f3db660a321e8a9cf09b70c37..699acc068afad869e7db0199fb8d7a51c4d6ca35 100755
--- a/Test/baseResults/hlsl.flattenOpaque.frag.out
+++ b/Test/baseResults/hlsl.flattenOpaque.frag.out
@@ -1,4 +1,5 @@
 hlsl.flattenOpaque.frag
+WARNING: AST will form illegal SPIR-V; need to transform to legalize
 Shader version: 500
 gl_FragCoord origin is upper left
 0:? Sequence
diff --git a/Test/baseResults/hlsl.flattenOpaqueInit.vert.out b/Test/baseResults/hlsl.flattenOpaqueInit.vert.out
index 916d63888738973c7d3f5426a1332bdad59799ec..df5a1c62f51dc52cc3a7ab63d1c825c1eaf3d72b 100755
--- a/Test/baseResults/hlsl.flattenOpaqueInit.vert.out
+++ b/Test/baseResults/hlsl.flattenOpaqueInit.vert.out
@@ -1,4 +1,5 @@
 hlsl.flattenOpaqueInit.vert
+WARNING: AST will form illegal SPIR-V; need to transform to legalize
 Shader version: 500
 0:? Sequence
 0:5  Function Definition: lookUp(struct-FxaaTex-p1-t211; ( temp 4-component vector of float)
diff --git a/Test/baseResults/hlsl.flattenOpaqueInitMix.vert.out b/Test/baseResults/hlsl.flattenOpaqueInitMix.vert.out
index b0cc8de4cf20e004b5c0e4c350fb5b4b3ef07bea..c973b7568dccef1ccf98a5ba1fafd5ca2afd251c 100755
--- a/Test/baseResults/hlsl.flattenOpaqueInitMix.vert.out
+++ b/Test/baseResults/hlsl.flattenOpaqueInitMix.vert.out
@@ -1,4 +1,5 @@
 hlsl.flattenOpaqueInitMix.vert
+WARNING: AST will form illegal SPIR-V; need to transform to legalize
 Shader version: 500
 0:? Sequence
 0:5  Function Definition: lookUp(struct-FxaaTex-p1-t21-f11; ( temp 4-component vector of float)
diff --git a/Test/baseResults/hlsl.flattenSubset.frag.out b/Test/baseResults/hlsl.flattenSubset.frag.out
index 4e104d8fb0abead6083e9c173957fec95abc867a..2a7d21c454dec16c33de9bdb441c1ae37fbe3738 100755
--- a/Test/baseResults/hlsl.flattenSubset.frag.out
+++ b/Test/baseResults/hlsl.flattenSubset.frag.out
@@ -1,4 +1,5 @@
 hlsl.flattenSubset.frag
+WARNING: AST will form illegal SPIR-V; need to transform to legalize
 Shader version: 500
 gl_FragCoord origin is upper left
 0:? Sequence
diff --git a/Test/baseResults/hlsl.flattenSubset2.frag.out b/Test/baseResults/hlsl.flattenSubset2.frag.out
index fb5001561d26d4bc9bb88e8d08a2a86480d80e75..4454e433aa6d7a63c555e80f59c10a922c5ce044 100755
--- a/Test/baseResults/hlsl.flattenSubset2.frag.out
+++ b/Test/baseResults/hlsl.flattenSubset2.frag.out
@@ -1,4 +1,5 @@
 hlsl.flattenSubset2.frag
+WARNING: AST will form illegal SPIR-V; need to transform to legalize
 Shader version: 500
 gl_FragCoord origin is upper left
 0:? Sequence
diff --git a/Test/baseResults/hlsl.partialFlattenLocal.vert.out b/Test/baseResults/hlsl.partialFlattenLocal.vert.out
index 5f44aa99d7614db1aa584a7d73977f3e62eecb32..a8303e04fa0f1fe7452639105a5b55b86d57cac5 100755
--- a/Test/baseResults/hlsl.partialFlattenLocal.vert.out
+++ b/Test/baseResults/hlsl.partialFlattenLocal.vert.out
@@ -1,4 +1,5 @@
 hlsl.partialFlattenLocal.vert
+WARNING: AST will form illegal SPIR-V; need to transform to legalize
 Shader version: 500
 0:? Sequence
 0:12  Function Definition: @main(vf4; ( temp 4-component vector of float)
diff --git a/Test/baseResults/hlsl.samplecmp.dualmode.frag.out b/Test/baseResults/hlsl.samplecmp.dualmode.frag.out
index beecd01c29b57519119e38defad57504494ed78f..191e918f9ec103032440c204604f866c7e74b7f0 100644
--- a/Test/baseResults/hlsl.samplecmp.dualmode.frag.out
+++ b/Test/baseResults/hlsl.samplecmp.dualmode.frag.out
@@ -1,4 +1,5 @@
 hlsl.samplecmp.dualmode.frag
+WARNING: AST will form illegal SPIR-V; need to transform to legalize
 Shader version: 500
 gl_FragCoord origin is upper left
 0:? Sequence
diff --git a/gtests/Hlsl.FromFile.cpp b/gtests/Hlsl.FromFile.cpp
index 2bf2e53f2c0c0f68ad6fc36d6a15337810712a03..2c92bdb7fb9d0edfec15aa8a49fe12ac9361e8ae 100644
--- a/gtests/Hlsl.FromFile.cpp
+++ b/gtests/Hlsl.FromFile.cpp
@@ -92,6 +92,7 @@ INSTANTIATE_TEST_CASE_P(
     ToSpirv, HlslCompileTest,
     ::testing::ValuesIn(std::vector<FileNameEntryPointPair>{
         {"hlsl.amend.frag", "f1"},
+        {"hlsl.aliasOpaque.frag", "main"},
         {"hlsl.array.frag", "PixelShaderFunction"},
         {"hlsl.array.implicit-size.frag", "PixelShaderFunction"},
         {"hlsl.array.multidim.frag", "main"},
@@ -152,6 +153,11 @@ INSTANTIATE_TEST_CASE_P(
         {"hlsl.float1.frag", "PixelShaderFunction"},
         {"hlsl.float4.frag", "PixelShaderFunction"},
         {"hlsl.flatten.return.frag", "main"},
+        {"hlsl.flattenOpaque.frag", "main"},
+        {"hlsl.flattenOpaqueInit.vert", "main"},
+        {"hlsl.flattenOpaqueInitMix.vert", "main"},
+        {"hlsl.flattenSubset.frag", "main"},
+        {"hlsl.flattenSubset2.frag", "main"},
         {"hlsl.forLoop.frag", "PixelShaderFunction"},
         {"hlsl.gather.array.dx10.frag", "main"},
         {"hlsl.gather.basic.dx10.frag", "main"},
@@ -248,6 +254,7 @@ INSTANTIATE_TEST_CASE_P(
         {"hlsl.params.default.frag", "main"},
         {"hlsl.params.default.negative.frag", "main"},
         {"hlsl.partialInit.frag", "PixelShaderFunction"},
+        {"hlsl.partialFlattenLocal.vert", "main"},
         {"hlsl.PointSize.geom", "main"},
         {"hlsl.PointSize.vert", "main"},
         {"hlsl.pp.vert", "main"},
@@ -273,6 +280,7 @@ INSTANTIATE_TEST_CASE_P(
         {"hlsl.samplebias.offsetarray.dx10.frag", "main"},
         {"hlsl.samplecmp.array.dx10.frag", "main"},
         {"hlsl.samplecmp.basic.dx10.frag", "main"},
+        {"hlsl.samplecmp.dualmode.frag", "main"},
         {"hlsl.samplecmp.offset.dx10.frag", "main"},
         {"hlsl.samplecmp.offsetarray.dx10.frag", "main"},
         {"hlsl.samplecmp.negative.frag", "main"},
@@ -361,32 +369,22 @@ INSTANTIATE_TEST_CASE_P(
         {"hlsl.typeGraphCopy.vert", "main"},
         {"hlsl.typedef.frag", "PixelShaderFunction"},
         {"hlsl.whileLoop.frag", "PixelShaderFunction"},
-        {"hlsl.void.frag", "PixelShaderFunction"},
-        {"hlsl.aliasOpaque.frag", "main"},
-        {"hlsl.flattenOpaque.frag", "main"},
-        {"hlsl.flattenOpaqueInit.vert", "main"},
-        {"hlsl.flattenOpaqueInitMix.vert", "main"},
-        {"hlsl.flattenSubset.frag", "main"},
-        {"hlsl.flattenSubset2.frag", "main"},
-        {"hlsl.partialFlattenLocal.vert", "main"},
-        {"hlsl.samplecmp.dualmode.frag", "main"},
+        {"hlsl.void.frag", "PixelShaderFunction"}
     }),
     FileNameAsCustomTestSuffix
 );
 // clang-format on
 
-#ifndef ENABLE_OPT
 // clang-format off
 INSTANTIATE_TEST_CASE_P(
     ToSpirv, HlslCompileAndFlattenTest,
     ::testing::ValuesIn(std::vector<FileNameEntryPointPair>{
         {"hlsl.array.flatten.frag", "main"},
-        {"hlsl.partialFlattenMixed.vert", "main"}
+        {"hlsl.partialFlattenMixed.vert", "main"},
     }),
     FileNameAsCustomTestSuffix
 );
 // clang-format on
-#endif
 
 #ifdef ENABLE_OPT
 // clang-format off
@@ -400,9 +398,7 @@ INSTANTIATE_TEST_CASE_P(
         {"hlsl.flattenSubset.frag", "main"},
         {"hlsl.flattenSubset2.frag", "main"},
         {"hlsl.partialFlattenLocal.vert", "main"},
-        {"hlsl.array.flatten.frag", "main"},
-        {"hlsl.partialFlattenMixed.vert", "main"},
-        {"hlsl.samplecmp.dualmode.frag", "main"}
+        {"hlsl.partialFlattenMixed.vert", "main"}
     }),
     FileNameAsCustomTestSuffix
 );
diff --git a/hlsl/hlslParseHelper.cpp b/hlsl/hlslParseHelper.cpp
index 969619cfa77474018d3152400f23d69c3ea6ec69..2395dafe940ca749eb18243fb7b227f82fefc191 100755
--- a/hlsl/hlslParseHelper.cpp
+++ b/hlsl/hlslParseHelper.cpp
@@ -9885,12 +9885,10 @@ void HlslParseContext::finish()
     addPatchConstantInvocation();
     fixTextureShadowModes();
 
-#ifndef ENABLE_OPT
     // Communicate out (esp. for command line) that we formed AST that will make
     // illegal AST SPIR-V and it needs transforms to legalize it.
     if (intermediate.needsLegalization())
         infoSink.info << "WARNING: AST will form illegal SPIR-V; need to transform to legalize";
-#endif
 
     TParseContextBase::finish();
 }