Revert "[HLSL] Update Frontend to support version 1.2 of root signature (#160…"

This reverts commit f2c8c42821a8c6de8984a1e7a932233cf221d5c1.
diff --git a/clang/include/clang/Basic/LangOptions.h b/clang/include/clang/Basic/LangOptions.h
index 41595ec..a8943df 100644
--- a/clang/include/clang/Basic/LangOptions.h
+++ b/clang/include/clang/Basic/LangOptions.h
@@ -549,7 +549,8 @@
   bool CheckNew = false;
 
   /// The HLSL root signature version for dxil.
-  llvm::dxbc::RootSignatureVersion HLSLRootSigVer;
+  llvm::dxbc::RootSignatureVersion HLSLRootSigVer =
+      llvm::dxbc::RootSignatureVersion::V1_1;
 
   /// The HLSL root signature that will be used to overide the root signature
   /// used for the shader entry point.
diff --git a/clang/include/clang/Driver/Options.td b/clang/include/clang/Driver/Options.td
index 2ef6098..2f865d8 100644
--- a/clang/include/clang/Driver/Options.td
+++ b/clang/include/clang/Driver/Options.td
@@ -9476,7 +9476,7 @@
          "lib_6_3, lib_6_4, lib_6_5, lib_6_6, lib_6_7, lib_6_x,"
          "ms_6_5, ms_6_6, ms_6_7,"
          "as_6_5, as_6_6, as_6_7,"
-         "rootsig_1_0, rootsig_1_1, rootsig_1_2">;
+         "rootsig_1_0, rootsig_1_1">;
 def emit_pristine_llvm : DXCFlag<"emit-pristine-llvm">,
   HelpText<"Emit pristine LLVM IR from the frontend by not running any LLVM passes at all."
            "Same as -S + -emit-llvm + -disable-llvm-passes.">;
@@ -9489,9 +9489,9 @@
   Group<dxc_Group>,
   Visibility<[ClangOption, CC1Option]>,
   HelpText<"Root Signature Version">,
-  Values<"rootsig_1_0,rootsig_1_1,rootsig_1_2">,
+  Values<"rootsig_1_0,rootsig_1_1">,
   NormalizedValuesScope<"llvm::dxbc::RootSignatureVersion">,
-  NormalizedValues<["V1_0", "V1_1", "V1_2"]>,
+  NormalizedValues<["V1_0", "V1_1"]>,
   MarshallingInfoEnum<LangOpts<"HLSLRootSigVer">, "V1_1">;
 def dxc_rootsig_ver :
   Separate<["/", "-"], "force-rootsig-ver">,
diff --git a/clang/include/clang/Lex/HLSLRootSignatureTokenKinds.def b/clang/include/clang/Lex/HLSLRootSignatureTokenKinds.def
index 1d7f7ad..a5cfeb3 100644
--- a/clang/include/clang/Lex/HLSLRootSignatureTokenKinds.def
+++ b/clang/include/clang/Lex/HLSLRootSignatureTokenKinds.def
@@ -65,9 +65,6 @@
 #ifndef STATIC_BORDER_COLOR_ENUM
 #define STATIC_BORDER_COLOR_ENUM(NAME, LIT) ENUM(NAME, LIT)
 #endif
-#ifndef STATIC_SAMPLER_FLAG_ENUM
-#define STATIC_SAMPLER_FLAG_ENUM(NAME, LIT) ENUM(NAME, LIT)
-#endif
 
 // General Tokens:
 TOK(invalid, "invalid identifier")
@@ -231,10 +228,6 @@
 STATIC_BORDER_COLOR_ENUM(OpaqueBlackUint, "STATIC_BORDER_COLOR_OPAQUE_BLACK_UINT")
 STATIC_BORDER_COLOR_ENUM(OpaqueWhiteUint, "STATIC_BORDER_COLOR_OPAQUE_WHITE_UINT")
 
-// Root Descriptor Flag Enums:
-STATIC_SAMPLER_FLAG_ENUM(UintBorderColor, "UINT_BORDER_COLOR")
-STATIC_SAMPLER_FLAG_ENUM(NonNormalizedCoordinates, "NON_NORMALIZED_COORDINATES")
-
 #undef STATIC_BORDER_COLOR_ENUM
 #undef COMPARISON_FUNC_ENUM
 #undef TEXTURE_ADDRESS_MODE_ENUM
@@ -244,7 +237,6 @@
 #undef DESCRIPTOR_RANGE_FLAG_ENUM_OFF
 #undef DESCRIPTOR_RANGE_FLAG_ENUM_ON
 #undef ROOT_DESCRIPTOR_FLAG_ENUM
-#undef STATIC_SAMPLER_FLAG_ENUM
 #undef ROOT_FLAG_ENUM
 #undef DESCRIPTOR_RANGE_OFFSET_ENUM
 #undef UNBOUNDED_ENUM
diff --git a/clang/include/clang/Parse/ParseHLSLRootSignature.h b/clang/include/clang/Parse/ParseHLSLRootSignature.h
index 8f91d7c..b06846f 100644
--- a/clang/include/clang/Parse/ParseHLSLRootSignature.h
+++ b/clang/include/clang/Parse/ParseHLSLRootSignature.h
@@ -130,7 +130,6 @@
     std::optional<float> MaxLOD;
     std::optional<uint32_t> Space;
     std::optional<llvm::dxbc::ShaderVisibility> Visibility;
-    std::optional<llvm::dxbc::StaticSamplerFlags> Flags;
   };
   std::optional<ParsedStaticSamplerParams> parseStaticSamplerParams();
 
@@ -154,8 +153,6 @@
   parseRootDescriptorFlags(RootSignatureToken::Kind Context);
   std::optional<llvm::dxbc::DescriptorRangeFlags>
   parseDescriptorRangeFlags(RootSignatureToken::Kind Context);
-  std::optional<llvm::dxbc::StaticSamplerFlags>
-  parseStaticSamplerFlags(RootSignatureToken::Kind Context);
 
   /// Use NumericLiteralParser to convert CurToken.NumSpelling into a unsigned
   /// 32-bit integer
diff --git a/clang/lib/AST/TextNodeDumper.cpp b/clang/lib/AST/TextNodeDumper.cpp
index cf5e914..8f7fe3b 100644
--- a/clang/lib/AST/TextNodeDumper.cpp
+++ b/clang/lib/AST/TextNodeDumper.cpp
@@ -3095,9 +3095,6 @@
   case llvm::dxbc::RootSignatureVersion::V1_1:
     OS << "1.1";
     break;
-  case llvm::dxbc::RootSignatureVersion::V1_2:
-    OS << "1.2";
-    break;
   }
   OS << ", ";
   llvm::hlsl::rootsig::dumpRootElements(OS, D->getRootElements());
diff --git a/clang/lib/Driver/ToolChains/HLSL.cpp b/clang/lib/Driver/ToolChains/HLSL.cpp
index 2869549..f4858e4 100644
--- a/clang/lib/Driver/ToolChains/HLSL.cpp
+++ b/clang/lib/Driver/ToolChains/HLSL.cpp
@@ -64,7 +64,7 @@
   } break;
   case Triple::EnvironmentType::RootSignature:
     VersionTuple MinVer(1, 0);
-    VersionTuple MaxVer(1, 2);
+    VersionTuple MaxVer(1, 1);
     return MinVer <= Version && Version <= MaxVer;
   }
   return false;
diff --git a/clang/lib/Parse/ParseHLSLRootSignature.cpp b/clang/lib/Parse/ParseHLSLRootSignature.cpp
index 7be6eec..3b16efb 100644
--- a/clang/lib/Parse/ParseHLSLRootSignature.cpp
+++ b/clang/lib/Parse/ParseHLSLRootSignature.cpp
@@ -485,9 +485,6 @@
   if (Params->Visibility.has_value())
     Sampler.Visibility = Params->Visibility.value();
 
-  if (Params->Flags.has_value())
-    Sampler.Flags = Params->Flags.value();
-
   return Sampler;
 }
 
@@ -929,20 +926,6 @@
       if (!Visibility.has_value())
         return std::nullopt;
       Params.Visibility = Visibility;
-    } else if (tryConsumeExpectedToken(TokenKind::kw_flags)) {
-      // `flags` `=` STATIC_SAMPLE_FLAGS
-      if (Params.Flags.has_value()) {
-        reportDiag(diag::err_hlsl_rootsig_repeat_param) << CurToken.TokKind;
-        return std::nullopt;
-      }
-
-      if (consumeExpectedToken(TokenKind::pu_equal))
-        return std::nullopt;
-
-      auto Flags = parseStaticSamplerFlags(TokenKind::kw_flags);
-      if (!Flags.has_value())
-        return std::nullopt;
-      Params.Flags = Flags;
     } else {
       consumeNextToken(); // let diagnostic be at the start of invalid token
       reportDiag(diag::err_hlsl_invalid_token)
@@ -1272,50 +1255,6 @@
   return Flags;
 }
 
-std::optional<llvm::dxbc::StaticSamplerFlags>
-RootSignatureParser::parseStaticSamplerFlags(TokenKind Context) {
-  assert(CurToken.TokKind == TokenKind::pu_equal &&
-         "Expects to only be invoked starting at given keyword");
-
-  // Handle the edge-case of '0' to specify no flags set
-  if (tryConsumeExpectedToken(TokenKind::int_literal)) {
-    if (!verifyZeroFlag()) {
-      reportDiag(diag::err_hlsl_rootsig_non_zero_flag);
-      return std::nullopt;
-    }
-    return llvm::dxbc::StaticSamplerFlags::None;
-  }
-
-  TokenKind Expected[] = {
-#define STATIC_SAMPLER_FLAG_ENUM(NAME, LIT) TokenKind::en_##NAME,
-#include "clang/Lex/HLSLRootSignatureTokenKinds.def"
-  };
-
-  std::optional<llvm::dxbc::StaticSamplerFlags> Flags;
-
-  do {
-    if (tryConsumeExpectedToken(Expected)) {
-      switch (CurToken.TokKind) {
-#define STATIC_SAMPLER_FLAG_ENUM(NAME, LIT)                                    \
-  case TokenKind::en_##NAME:                                                   \
-    Flags = maybeOrFlag<llvm::dxbc::StaticSamplerFlags>(                       \
-        Flags, llvm::dxbc::StaticSamplerFlags::NAME);                          \
-    break;
-#include "clang/Lex/HLSLRootSignatureTokenKinds.def"
-      default:
-        llvm_unreachable("Switch for consumed enum token was not provided");
-      }
-    } else {
-      consumeNextToken(); // consume token to point at invalid token
-      reportDiag(diag::err_hlsl_invalid_token)
-          << /*value=*/1 << /*value of*/ Context;
-      return std::nullopt;
-    }
-  } while (tryConsumeExpectedToken(TokenKind::pu_or));
-
-  return Flags;
-}
-
 std::optional<uint32_t> RootSignatureParser::handleUIntLiteral() {
   // Parse the numeric value and do semantic checks on its specification
   clang::NumericLiteralParser Literal(
diff --git a/clang/test/AST/HLSL/RootSignature-Target-AST.hlsl b/clang/test/AST/HLSL/RootSignature-Target-AST.hlsl
index 129ab70..91441e3 100644
--- a/clang/test/AST/HLSL/RootSignature-Target-AST.hlsl
+++ b/clang/test/AST/HLSL/RootSignature-Target-AST.hlsl
@@ -1,15 +1,9 @@
 // RUN: %clang_cc1 -triple dxil-pc-shadermodel6.0-rootsignature -ast-dump \
-// RUN:  -fdx-rootsignature-version=rootsig_1_0 \
-// RUN:  -hlsl-entry EntryRootSig -disable-llvm-passes -o - %s | FileCheck %s --check-prefixes=CHECK,CHECK-V1_0
-
-// RUN: %clang_cc1 -triple dxil-pc-shadermodel6.0-rootsignature -ast-dump \
-// RUN:  -fdx-rootsignature-version=rootsig_1_1 \
 // RUN:  -hlsl-entry EntryRootSig -disable-llvm-passes -o - %s | FileCheck %s --check-prefixes=CHECK,CHECK-V1_1
 
 // RUN: %clang_cc1 -triple dxil-pc-shadermodel6.0-rootsignature -ast-dump \
-// RUN:  -fdx-rootsignature-version=rootsig_1_2 \
-// RUN:  -hlsl-entry EntryRootSig -disable-llvm-passes -o - %s | FileCheck %s --check-prefixes=CHECK,CHECK-V1_2
-
+// RUN:  -fdx-rootsignature-version=rootsig_1_0 \
+// RUN:  -hlsl-entry EntryRootSig -disable-llvm-passes -o - %s | FileCheck %s --check-prefixes=CHECK,CHECK-V1_0
 
 // RUN: %clang_cc1 -triple dxil-pc-shadermodel6.0-rootsignature -ast-dump \
 // RUN:  -D CmdRS='"UAV(u0)"'\
@@ -18,13 +12,11 @@
 // CHECK: -HLSLRootSignatureDecl 0x{{.*}} {{.*}} implicit [[ENTRY_RS_DECL:__hlsl_rootsig_decl_\d*]]
 // CHECK-V1_0-SAME: version: 1.0,
 // CHECK-V1_1-SAME: version: 1.1,
-// CHECK-V1_2-SAME: version: 1.2,
 // CHECK-SAME: RootElements{
 // CHECK-SAME: RootCBV(b0,
 // CHECK-SAME:   space = 0, visibility = All,
 // CHECK-V1_0-SAME: flags = DataVolatile
 // CHECK-V1_1-SAME: flags = DataStaticWhileSetAtExecute
-// CHECK-V1_2-SAME: flags = DataStaticWhileSetAtExecute
 // CHECK-SAME: )
 // CHECK-SAME: }
 #define EntryRootSig "CBV(b0)"
diff --git a/clang/test/AST/HLSL/RootSignatures-AST.hlsl b/clang/test/AST/HLSL/RootSignatures-AST.hlsl
index 0f0f3a5..32da1f1 100644
--- a/clang/test/AST/HLSL/RootSignatures-AST.hlsl
+++ b/clang/test/AST/HLSL/RootSignatures-AST.hlsl
@@ -6,9 +6,6 @@
 // RUN: %clang_cc1 -triple dxil-pc-shadermodel6.0-library -ast-dump \
 // RUN:  -fdx-rootsignature-version=rootsig_1_1 \
 // RUN:  -disable-llvm-passes -o - %s | FileCheck %s --check-prefixes=CHECK,CHECK-V1_1
-// RUN: %clang_cc1 -triple dxil-pc-shadermodel6.0-library -ast-dump \
-// RUN:  -fdx-rootsignature-version=rootsig_1_2 \
-// RUN:  -disable-llvm-passes -o - %s | FileCheck %s --check-prefixes=CHECK,CHECK-V1_2
 
 // This test ensures that the sample root signature is parsed without error and
 // the Attr AST Node is created succesfully. If an invalid root signature was
@@ -34,7 +31,6 @@
 // CHECK: -HLSLRootSignatureDecl 0x{{.*}} {{.*}} implicit [[SAMPLE_RS_DECL:__hlsl_rootsig_decl_\d*]]
 // CHECK-V1_0: version: 1.0,
 // CHECK-V1_1: version: 1.1,
-// CHECK-V1_2: version: 1.2,
 // CHECK-SAME: RootElements{
 // CHECK-SAME: RootFlags(AllowInputAssemblerInputLayout | DenyVertexShaderRootAccess),
 // CHECK-SAME: RootCBV(b0,
@@ -66,7 +62,6 @@
 // CHECK-SAME:   s0, numDescriptors = 4, space = 1, offset = DescriptorTableOffsetAppend,
 // CHECK-V1_0-SAME:  flags = DescriptorsVolatile
 // CHECK-V1_1-SAME:  flags = None
-// CHECK-V1_2-SAME:  flags = None
 // CHECK-SAME: ),
 // CHECK-SAME: DescriptorTable(
 // CHECK-SAME:   numClauses = 1, visibility = All
@@ -78,7 +73,6 @@
 // CHECK-SAME:   s1, filter = Anisotropic, addressU = Wrap, addressV = Wrap, addressW = Wrap,
 // CHECK-SAME:   mipLODBias = 0.000000e+00, maxAnisotropy = 16, comparisonFunc = LessEqual,
 // CHECK-SAME:   borderColor = OpaqueWhite, minLOD = 0.000000e+00, maxLOD = 3.402823e+38, space = 0, visibility = All
-// CHECK-SAME:  flags = None
 // CHECK-SAME: )}
 
 // CHECK: -RootSignatureAttr 0x{{.*}} {{.*}} [[SAMPLE_RS_DECL]]
@@ -137,24 +131,3 @@
 // CHECK: -RootSignatureAttr 0x{{.*}} {{.*}} [[DIFF_RS_DECL]]
 [RootSignature(SampleDifferentRS)]
 void different_rs_string_main() {}
-
-#define SampleStaticSamplerRS \
-  "StaticSampler(s0, flags = NON_NORMALIZED_COORDINATES)"
-
-// Ensure that static samplers flags are correctly parsed in different versions
-
-// CHECK: -HLSLRootSignatureDecl 0x{{.*}} {{.*}} implicit [[DIFF_RS_DECL:__hlsl_rootsig_decl_\d*]]
-// CHECK-V1_0: version: 1.0,
-// CHECK-V1_1: version: 1.1,
-// CHECK-V1_2: version: 1.2,
-// CHECK-SAME: RootElements{
-// CHECK-SAME:  StaticSampler(
-// CHECK-SAME:   s0, filter = Anisotropic, addressU = Wrap, addressV = Wrap, addressW = Wrap,
-// CHECK-SAME:   mipLODBias = 0.000000e+00, maxAnisotropy = 16, comparisonFunc = LessEqual,
-// CHECK-SAME:   borderColor = OpaqueWhite, minLOD = 0.000000e+00, maxLOD = 3.402823e+38, space = 0, visibility = All
-// CHECK-SAME:   flags = NonNormalizedCoordinates
-// CHECK-SAME: )}
-
-// CHECK: -RootSignatureAttr 0x{{.*}} {{.*}} [[DIFF_RS_DECL]]
-[RootSignature(SampleStaticSamplerRS)]
-void statoc_sampler_v12_main() {}
diff --git a/clang/test/CodeGenHLSL/RootSignature.hlsl b/clang/test/CodeGenHLSL/RootSignature.hlsl
index eaff3a9..bbab6a7 100644
--- a/clang/test/CodeGenHLSL/RootSignature.hlsl
+++ b/clang/test/CodeGenHLSL/RootSignature.hlsl
@@ -82,8 +82,8 @@
 // checking minLOD, maxLOD
 // CHECK-SAME: float -1.280000e+02, float 1.280000e+02,
 
-// checking register, space, visibility and flag
-// CHECK-SAME: i32 42, i32 0, i32 0, i32 1}
+// checking register, space, visibility and flags
+// CHECK-SAME: i32 42, i32 0, i32 0, i32 0}
 
 #define SampleStaticSampler \
   "StaticSampler(s42, " \
@@ -96,7 +96,6 @@
   " borderColor = STATIC_BORDER_COLOR_OPAQUE_WHITE, " \
   " minLOD = -128.f, maxLOD = 128.f, " \
   " space = 0, visibility = SHADER_VISIBILITY_ALL, " \
-  " flags = UINT_BORDER_COLOR" \
   ")"
 [shader("compute"), RootSignature(SampleStaticSampler)]
 [numthreads(1,1,1)]
diff --git a/clang/test/SemaHLSL/RootSignature-err.hlsl b/clang/test/SemaHLSL/RootSignature-err.hlsl
index debeafe..89c684c 100644
--- a/clang/test/SemaHLSL/RootSignature-err.hlsl
+++ b/clang/test/SemaHLSL/RootSignature-err.hlsl
@@ -191,10 +191,6 @@
 [RootSignature("StaticSampler(s0, mipLODBias = 15.990001)")]
 void basic_validation_6() {}
 
-// expected-error@+1 {{invalid value of flags}}
-[RootSignature("StaticSampler(s0, flags = FLAG_TYPO)")]
-void basic_validation_7() {}
-
 // expected-error@+1 {{sampler and non-sampler resource mixed in descriptor table}}
 [RootSignature("DescriptorTable(Sampler(s0), CBV(b0))")]
 void mixed_resource_table() {}
diff --git a/clang/test/SemaHLSL/RootSignature-flags-err.hlsl b/clang/test/SemaHLSL/RootSignature-flags-err.hlsl
index c79e692..9449d33 100644
--- a/clang/test/SemaHLSL/RootSignature-flags-err.hlsl
+++ b/clang/test/SemaHLSL/RootSignature-flags-err.hlsl
@@ -2,8 +2,7 @@
 // RUN:   -fdx-rootsignature-version=rootsig_1_0 %s -verify=v10
 // RUN: %clang_cc1 -triple dxil-pc-shadermodel6.3-library -x hlsl -fsyntax-only \
 // RUN:   -fdx-rootsignature-version=rootsig_1_1 %s -verify=v11
-// RUN: %clang_cc1 -triple dxil-pc-shadermodel6.3-library -x hlsl -fsyntax-only \
-// RUN:   -fdx-rootsignature-version=rootsig_1_2 %s -verify=v12
+
 // Root Descriptor Flags:
 
 // v10-error@+1 {{invalid flags for version 1.0}}
@@ -14,9 +13,8 @@
 [RootSignature("CBV(b0, flags = DATA_STATIC_WHILE_SET_AT_EXECUTE)")]
 void bad_root_descriptor_flags_1() {}
 
-// v10-error@+3 {{invalid flags for version 1.0}}
-// v11-error@+2 {{invalid flags for version 1.1}}
-// v12-error@+1 {{invalid flags for version 1.2}}
+// v10-error@+2 {{invalid flags for version 1.0}}
+// v11-error@+1 {{invalid flags for version 1.1}}
 [RootSignature("CBV(b0, flags = DATA_STATIC | DATA_VOLATILE)")]
 void bad_root_descriptor_flags_2() {}
 
@@ -42,20 +40,18 @@
 [RootSignature("DescriptorTable(CBV(b0, flags = DESCRIPTORS_STATIC_KEEPING_BUFFER_BOUNDS_CHECKS))")]
 void bad_descriptor_range_flags_4() {}
 
-// v10-error@+3 {{invalid flags for version 1.0}}
-// v11-error@+2 {{invalid flags for version 1.1}}
-// v12-error@+1 {{invalid flags for version 1.2}}
+// v10-error@+2 {{invalid flags for version 1.0}}
+// v11-error@+1 {{invalid flags for version 1.1}}
 [RootSignature("DescriptorTable(CBV(b0, flags = DATA_STATIC | DATA_STATIC_WHILE_SET_AT_EXECUTE))")]
 void bad_descriptor_range_flags_5() {}
 
-// v10-error@+3 {{invalid flags for version 1.0}}
-// v11-error@+2 {{invalid flags for version 1.1}}
-// v12-error@+1 {{invalid flags for version 1.2}}
+// v10-error@+2 {{invalid flags for version 1.0}}
+// v11-error@+1 {{invalid flags for version 1.1}}
 [RootSignature("DescriptorTable(CBV(b0, flags = DESCRIPTORS_VOLATILE | DESCRIPTORS_STATIC_KEEPING_BUFFER_BOUNDS_CHECKS))")]
 void bad_descriptor_range_flags_6() {}
 
-// v10-error@+3 {{invalid flags for version 1.0}}
-// v11-error@+2 {{invalid flags for version 1.1}}
-// v12-error@+1 {{invalid flags for version 1.2}}
+// v10-error@+2 {{invalid flags for version 1.0}}
+// v11-error@+1 {{invalid flags for version 1.1}}
 [RootSignature("DescriptorTable(CBV(b0, flags = DESCRIPTORS_VOLATILE | DATA_STATIC))")]
 void bad_descriptor_range_flags_7() {}
+
diff --git a/clang/unittests/Lex/LexHLSLRootSignatureTest.cpp b/clang/unittests/Lex/LexHLSLRootSignatureTest.cpp
index 82f1968..01f8d4f 100644
--- a/clang/unittests/Lex/LexHLSLRootSignatureTest.cpp
+++ b/clang/unittests/Lex/LexHLSLRootSignatureTest.cpp
@@ -226,9 +226,6 @@
     STATIC_BORDER_COLOR_OPAQUE_WHITE
     STATIC_BORDER_COLOR_OPAQUE_BLACK_UINT
     STATIC_BORDER_COLOR_OPAQUE_WHITE_UINT
-
-    UINT_BORDER_COLOR
-    NON_NORMALIZED_COORDINATES
   )cc";
   hlsl::RootSignatureLexer Lexer(Source);
 
diff --git a/clang/unittests/Parse/ParseHLSLRootSignatureTest.cpp b/clang/unittests/Parse/ParseHLSLRootSignatureTest.cpp
index f7e9d2d..9b9f5dd 100644
--- a/clang/unittests/Parse/ParseHLSLRootSignatureTest.cpp
+++ b/clang/unittests/Parse/ParseHLSLRootSignatureTest.cpp
@@ -263,8 +263,7 @@
       filter = FILTER_MAXIMUM_MIN_POINT_MAG_LINEAR_MIP_POINT,
       maxLOD = 9000, addressU = TEXTURE_ADDRESS_MIRROR,
       comparisonFunc = COMPARISON_NOT_EQUAL,
-      borderColor = STATIC_BORDER_COLOR_OPAQUE_BLACK_UINT,
-      flags = 0
+      borderColor = STATIC_BORDER_COLOR_OPAQUE_BLACK_UINT
     )
   )cc";
 
@@ -337,37 +336,6 @@
   ASSERT_TRUE(Consumer->isSatisfied());
 }
 
-TEST_F(ParseHLSLRootSignatureTest, ValidStaticSamplerFlagsTest) {
-  const llvm::StringLiteral Source = R"cc(
-    StaticSampler(s0, flags = UINT_BORDER_COLOR | NON_NORMALIZED_COORDINATES)
-  )cc";
-
-  auto Ctx = createMinimalASTContext();
-  StringLiteral *Signature = wrapSource(Ctx, Source);
-
-  TrivialModuleLoader ModLoader;
-  auto PP = createPP(Source, ModLoader);
-
-  hlsl::RootSignatureParser Parser(RootSignatureVersion::V1_1, Signature, *PP);
-
-  // Test no diagnostics produced
-  Consumer->setNoDiag();
-
-  ASSERT_FALSE(Parser.parse());
-
-  auto Elements = Parser.getElements();
-  ASSERT_EQ(Elements.size(), 1u);
-
-  RootElement Elem = Elements[0].getElement();
-  ASSERT_TRUE(std::holds_alternative<StaticSampler>(Elem));
-  auto ValidStaticSamplerFlags =
-      llvm::dxbc::StaticSamplerFlags::NonNormalizedCoordinates |
-      llvm::dxbc::StaticSamplerFlags::UintBorderColor;
-  ASSERT_EQ(std::get<StaticSampler>(Elem).Flags, ValidStaticSamplerFlags);
-
-  ASSERT_TRUE(Consumer->isSatisfied());
-}
-
 TEST_F(ParseHLSLRootSignatureTest, ValidParseFloatsTest) {
   const llvm::StringLiteral Source = R"cc(
     StaticSampler(s0, mipLODBias = 0),
diff --git a/llvm/include/llvm/BinaryFormat/DXContainer.h b/llvm/include/llvm/BinaryFormat/DXContainer.h
index 8944e73..08a7ddb 100644
--- a/llvm/include/llvm/BinaryFormat/DXContainer.h
+++ b/llvm/include/llvm/BinaryFormat/DXContainer.h
@@ -844,7 +844,6 @@
 enum class RootSignatureVersion {
   V1_0 = 0x1,
   V1_1 = 0x2,
-  V1_2 = 0x3,
 };
 
 } // namespace dxbc
diff --git a/llvm/include/llvm/Frontend/HLSL/HLSLRootSignature.h b/llvm/include/llvm/Frontend/HLSL/HLSLRootSignature.h
index edee6a7..37224d8 100644
--- a/llvm/include/llvm/Frontend/HLSL/HLSLRootSignature.h
+++ b/llvm/include/llvm/Frontend/HLSL/HLSLRootSignature.h
@@ -56,8 +56,7 @@
       return;
     }
 
-    assert((Version == llvm::dxbc::RootSignatureVersion::V1_1 ||
-            Version == llvm::dxbc::RootSignatureVersion::V1_2) &&
+    assert(Version == llvm::dxbc::RootSignatureVersion::V1_1 &&
            "Specified an invalid root signature version");
     switch (Type) {
     case dxil::ResourceClass::CBuffer:
@@ -101,8 +100,7 @@
       return;
     }
 
-    assert((Version == dxbc::RootSignatureVersion::V1_1 ||
-            Version == dxbc::RootSignatureVersion::V1_2) &&
+    assert(Version == dxbc::RootSignatureVersion::V1_1 &&
            "Specified an invalid root signature version");
     switch (Type) {
     case dxil::ResourceClass::CBuffer:
diff --git a/llvm/lib/Frontend/HLSL/HLSLRootSignature.cpp b/llvm/lib/Frontend/HLSL/HLSLRootSignature.cpp
index 2b33e56..92c62b8 100644
--- a/llvm/lib/Frontend/HLSL/HLSLRootSignature.cpp
+++ b/llvm/lib/Frontend/HLSL/HLSLRootSignature.cpp
@@ -113,13 +113,6 @@
   return OS;
 }
 
-static raw_ostream &operator<<(raw_ostream &OS,
-                               const llvm::dxbc::StaticSamplerFlags &Flags) {
-  printFlags(OS, Flags, dxbc::getStaticSamplerFlags());
-
-  return OS;
-}
-
 raw_ostream &operator<<(raw_ostream &OS, const dxbc::RootFlags &Flags) {
   OS << "RootFlags(";
   printFlags(OS, Flags, dxbc::getRootFlags());
@@ -179,7 +172,7 @@
      << ", borderColor = " << Sampler.BorderColor
      << ", minLOD = " << Sampler.MinLOD << ", maxLOD = " << Sampler.MaxLOD
      << ", space = " << Sampler.Space << ", visibility = " << Sampler.Visibility
-     << ", flags = " << Sampler.Flags << ")";
+     << ")";
   return OS;
 }
 
diff --git a/llvm/lib/Frontend/HLSL/RootSignatureValidations.cpp b/llvm/lib/Frontend/HLSL/RootSignatureValidations.cpp
index 8a2b03d..2c78d62 100644
--- a/llvm/lib/Frontend/HLSL/RootSignatureValidations.cpp
+++ b/llvm/lib/Frontend/HLSL/RootSignatureValidations.cpp
@@ -40,7 +40,7 @@
   if (Version == 1)
     return Flags == FlagT::DataVolatile;
 
-  assert((Version <= 3) && "Provided invalid root signature version");
+  assert(Version == 2 && "Provided invalid root signature version");
 
   // The data-specific flags are mutually exclusive.
   FlagT DataFlags = FlagT::DataVolatile | FlagT::DataStatic |
diff --git a/llvm/lib/ObjectYAML/DXContainerYAML.cpp b/llvm/lib/ObjectYAML/DXContainerYAML.cpp
index 5dff9ba..3c09ae4 100644
--- a/llvm/lib/ObjectYAML/DXContainerYAML.cpp
+++ b/llvm/lib/ObjectYAML/DXContainerYAML.cpp
@@ -154,7 +154,7 @@
         if (Error E = readDescriptorRanges<dxbc::RTS0::v1::DescriptorRange>(
                 Header, RootSigDesc, DTV))
           return std::move(E);
-      } else if (Version == 2 || Version == 3) {
+      } else if (Version == 2) {
         if (Error E = readDescriptorRanges<dxbc::RTS0::v2::DescriptorRange>(
                 Header, RootSigDesc, DTV))
           return std::move(E);
diff --git a/llvm/unittests/Frontend/HLSLRootSignatureDumpTest.cpp b/llvm/unittests/Frontend/HLSLRootSignatureDumpTest.cpp
index 451c376..1eb03f1 100644
--- a/llvm/unittests/Frontend/HLSLRootSignatureDumpTest.cpp
+++ b/llvm/unittests/Frontend/HLSLRootSignatureDumpTest.cpp
@@ -266,8 +266,7 @@
                          "minLOD = 0.000000e+00, "
                          "maxLOD = 3.402823e+38, "
                          "space = 0, "
-                         "visibility = All, "
-                         "flags = None"
+                         "visibility = All"
                          ")";
   EXPECT_EQ(Out, Expected);
 }
@@ -288,7 +287,6 @@
   Sampler.MaxLOD = 32.0f;
   Sampler.Space = 7;
   Sampler.Visibility = llvm::dxbc::ShaderVisibility::Domain;
-  Sampler.Flags = llvm::dxbc::StaticSamplerFlags::NonNormalizedCoordinates;
 
   std::string Out;
   llvm::raw_string_ostream OS(Out);
@@ -307,8 +305,7 @@
                          "minLOD = 1.000000e+00, "
                          "maxLOD = 3.200000e+01, "
                          "space = 7, "
-                         "visibility = Domain, "
-                         "flags = NonNormalizedCoordinates"
+                         "visibility = Domain"
                          ")";
   EXPECT_EQ(Out, Expected);
 }