diff --git a/third_party/subzero/src/IceAssemblerX8632.h b/third_party/subzero/src/IceAssemblerX8632.h
index 6f3f819..27daf2e 100644
--- a/third_party/subzero/src/IceAssemblerX8632.h
+++ b/third_party/subzero/src/IceAssemblerX8632.h
@@ -23,9 +23,7 @@
 #ifndef SUBZERO_SRC_ICEASSEMBLERX8632_H
 #define SUBZERO_SRC_ICEASSEMBLERX8632_H
 
-#define X86NAMESPACE X8632
-#include "IceAssemblerX86Base.h"
-#undef X86NAMESPACE
+#include "IceAssemblerX8632Base.h"
 #include "IceTargetLoweringX8632Traits.h"
 
 namespace Ice {
diff --git a/third_party/subzero/src/IceAssemblerX86Base.h b/third_party/subzero/src/IceAssemblerX8632Base.h
similarity index 98%
rename from third_party/subzero/src/IceAssemblerX86Base.h
rename to third_party/subzero/src/IceAssemblerX8632Base.h
index c6dda23..91e18b8 100644
--- a/third_party/subzero/src/IceAssemblerX86Base.h
+++ b/third_party/subzero/src/IceAssemblerX8632Base.h
@@ -1,4 +1,5 @@
-//===- subzero/src/IceAssemblerX86Base.h - base x86 assembler -*- C++ -*---===//
+//===- subzero/src/IceAssemblerX8632Base.h - base x86 assembler -*- C++
+//-*---===//
 //
 // Copyright (c) 2013, the Dart project authors.  Please see the AUTHORS file
 // for details. All rights reserved. Use of this source code is governed by a
@@ -21,8 +22,8 @@
 //
 //===----------------------------------------------------------------------===//
 
-#ifndef SUBZERO_SRC_ICEASSEMBLERX86BASE_H
-#define SUBZERO_SRC_ICEASSEMBLERX86BASE_H
+#ifndef SUBZERO_SRC_ICEASSEMBLERX8632BASE_H
+#define SUBZERO_SRC_ICEASSEMBLERX8632BASE_H
 
 #include "IceAssembler.h"
 #include "IceDefs.h"
@@ -31,12 +32,7 @@
 #include "IceUtils.h"
 
 namespace Ice {
-
-#ifndef X86NAMESPACE
-#error "You must define the X86 Target namespace."
-#endif
-
-namespace X86NAMESPACE {
+namespace X8632 {
 
 template <typename TraitsType>
 class AssemblerX86Base : public ::Ice::Assembler {
@@ -926,10 +922,9 @@
   emitUint8(0x66);
 }
 
-} // end of namespace X86NAMESPACE
-
+} // end of namespace X8632
 } // end of namespace Ice
 
-#include "IceAssemblerX86BaseImpl.h"
+#include "IceAssemblerX8632BaseImpl.h"
 
-#endif // SUBZERO_SRC_ICEASSEMBLERX86BASE_H
+#endif // SUBZERO_SRC_ICEASSEMBLERX8632BASE_H
diff --git a/third_party/subzero/src/IceAssemblerX86BaseImpl.h b/third_party/subzero/src/IceAssemblerX8632BaseImpl.h
similarity index 99%
copy from third_party/subzero/src/IceAssemblerX86BaseImpl.h
copy to third_party/subzero/src/IceAssemblerX8632BaseImpl.h
index 1774409..d323623 100644
--- a/third_party/subzero/src/IceAssemblerX86BaseImpl.h
+++ b/third_party/subzero/src/IceAssemblerX8632BaseImpl.h
@@ -15,19 +15,19 @@
 //===----------------------------------------------------------------------===//
 //
 /// \file
-/// \brief Implements the AssemblerX86Base template class, which is the base
-/// Assembler class for X86 assemblers.
+/// \brief Implements the AssemblerX8632Base template class, which is the base
+/// Assembler class for X8632 assemblers.
 //
 //===----------------------------------------------------------------------===//
 
-#include "IceAssemblerX86Base.h"
+#include "IceAssemblerX8632Base.h"
 
 #include "IceCfg.h"
 #include "IceCfgNode.h"
 #include "IceOperand.h"
 
 namespace Ice {
-namespace X86NAMESPACE {
+namespace X8632 {
 
 template <typename TraitsType>
 AssemblerX86Base<TraitsType>::~AssemblerX86Base() {
@@ -3913,5 +3913,5 @@
   emitOperand(rm, operand);
 }
 
-} // end of namespace X86NAMESPACE
+} // namespace X8632
 } // end of namespace Ice
diff --git a/third_party/subzero/src/IceAssemblerX8664.h b/third_party/subzero/src/IceAssemblerX8664.h
index 18215cd..3a49840 100644
--- a/third_party/subzero/src/IceAssemblerX8664.h
+++ b/third_party/subzero/src/IceAssemblerX8664.h
@@ -23,9 +23,7 @@
 #ifndef SUBZERO_SRC_ICEASSEMBLERX8664_H
 #define SUBZERO_SRC_ICEASSEMBLERX8664_H
 
-#define X86NAMESPACE X8664
-#include "IceAssemblerX86Base.h"
-#undef X86NAMESPACE
+#include "IceAssemblerX8664Base.h"
 #include "IceTargetLoweringX8664Traits.h"
 
 namespace Ice {
diff --git a/third_party/subzero/src/IceAssemblerX86Base.h b/third_party/subzero/src/IceAssemblerX8664Base.h
similarity index 98%
copy from third_party/subzero/src/IceAssemblerX86Base.h
copy to third_party/subzero/src/IceAssemblerX8664Base.h
index c6dda23..8262615 100644
--- a/third_party/subzero/src/IceAssemblerX86Base.h
+++ b/third_party/subzero/src/IceAssemblerX8664Base.h
@@ -1,4 +1,5 @@
-//===- subzero/src/IceAssemblerX86Base.h - base x86 assembler -*- C++ -*---===//
+//===- subzero/src/IceAssemblerX8664Base.h - base x86 assembler -*- C++
+//-*---===//
 //
 // Copyright (c) 2013, the Dart project authors.  Please see the AUTHORS file
 // for details. All rights reserved. Use of this source code is governed by a
@@ -16,13 +17,13 @@
 //===----------------------------------------------------------------------===//
 //
 /// \file
-/// \brief Defines the AssemblerX86 template class for x86, the base of all X86
-/// assemblers.
+/// \brief Defines the AssemblerX8664 template class for x86, the base of all
+/// X8664 assemblers.
 //
 //===----------------------------------------------------------------------===//
 
-#ifndef SUBZERO_SRC_ICEASSEMBLERX86BASE_H
-#define SUBZERO_SRC_ICEASSEMBLERX86BASE_H
+#ifndef SUBZERO_SRC_ICEASSEMBLERX8664BASE_H
+#define SUBZERO_SRC_ICEASSEMBLERX8664BASE_H
 
 #include "IceAssembler.h"
 #include "IceDefs.h"
@@ -31,12 +32,7 @@
 #include "IceUtils.h"
 
 namespace Ice {
-
-#ifndef X86NAMESPACE
-#error "You must define the X86 Target namespace."
-#endif
-
-namespace X86NAMESPACE {
+namespace X8664 {
 
 template <typename TraitsType>
 class AssemblerX86Base : public ::Ice::Assembler {
@@ -926,10 +922,9 @@
   emitUint8(0x66);
 }
 
-} // end of namespace X86NAMESPACE
-
+} // end of namespace X8664
 } // end of namespace Ice
 
-#include "IceAssemblerX86BaseImpl.h"
+#include "IceAssemblerX8664BaseImpl.h"
 
-#endif // SUBZERO_SRC_ICEASSEMBLERX86BASE_H
+#endif // SUBZERO_SRC_ICEASSEMBLERX8664BASE_H
diff --git a/third_party/subzero/src/IceAssemblerX86BaseImpl.h b/third_party/subzero/src/IceAssemblerX8664BaseImpl.h
similarity index 99%
rename from third_party/subzero/src/IceAssemblerX86BaseImpl.h
rename to third_party/subzero/src/IceAssemblerX8664BaseImpl.h
index 1774409..1dcddec 100644
--- a/third_party/subzero/src/IceAssemblerX86BaseImpl.h
+++ b/third_party/subzero/src/IceAssemblerX8664BaseImpl.h
@@ -20,14 +20,14 @@
 //
 //===----------------------------------------------------------------------===//
 
-#include "IceAssemblerX86Base.h"
+#include "IceAssemblerX8664Base.h"
 
 #include "IceCfg.h"
 #include "IceCfgNode.h"
 #include "IceOperand.h"
 
 namespace Ice {
-namespace X86NAMESPACE {
+namespace X8664 {
 
 template <typename TraitsType>
 AssemblerX86Base<TraitsType>::~AssemblerX86Base() {
@@ -3913,5 +3913,5 @@
   emitOperand(rm, operand);
 }
 
-} // end of namespace X86NAMESPACE
+} // end of namespace X8664
 } // end of namespace Ice
diff --git a/third_party/subzero/src/IceInstX8632.h b/third_party/subzero/src/IceInstX8632.h
index af6faef..98cf27f 100644
--- a/third_party/subzero/src/IceInstX8632.h
+++ b/third_party/subzero/src/IceInstX8632.h
@@ -28,12 +28,10 @@
 
 #include "IceDefs.h"
 #include "IceInst.h"
-#define X86NAMESPACE X8632
-#include "IceInstX86Base.h"
-#undef X86NAMESPACE
+#include "IceInstX8632Base.h"
 #include "IceOperand.h"
 #include "IceTargetLoweringX8632Traits.h"
 
-X86INSTS_DEFINE_STATIC_DATA(X8632, X8632::Traits)
+X86INSTS_DEFINE_STATIC_DATA(X8632::Traits)
 
 #endif // SUBZERO_SRC_ICEINSTX8632_H
diff --git a/third_party/subzero/src/IceInstX86Base.h b/third_party/subzero/src/IceInstX8632Base.h
similarity index 99%
rename from third_party/subzero/src/IceInstX86Base.h
rename to third_party/subzero/src/IceInstX8632Base.h
index c20f394..1f6f84d 100644
--- a/third_party/subzero/src/IceInstX86Base.h
+++ b/third_party/subzero/src/IceInstX8632Base.h
@@ -1,4 +1,5 @@
-//===- subzero/src/IceInstX86Base.h - Generic x86 instructions -*- C++ -*--===//
+//===- subzero/src/IceInstX8632Base.h - Generic x86 instructions -*- C++
+//-*--===//
 //
 //                        The Subzero Code Generator
 //
@@ -16,20 +17,15 @@
 ///
 //===----------------------------------------------------------------------===//
 
-#ifndef SUBZERO_SRC_ICEINSTX86BASE_H
-#define SUBZERO_SRC_ICEINSTX86BASE_H
+#ifndef SUBZERO_SRC_ICEINSTX8632BASE_H
+#define SUBZERO_SRC_ICEINSTX8632BASE_H
 
 #include "IceDefs.h"
 #include "IceInst.h"
 #include "IceOperand.h"
 
 namespace Ice {
-
-#ifndef X86NAMESPACE
-#error "You must define the X86 Target namespace."
-#endif
-
-namespace X86NAMESPACE {
+namespace X8632 {
 
 template <typename TraitsType> struct InstImpl {
   using Traits = TraitsType;
@@ -3166,7 +3162,7 @@
 /// struct Insts is a template that can be used to instantiate all the X86
 /// instructions for a target with a simple
 ///
-/// using Insts = ::Ice::X86NAMESPACE::Insts<TraitsType>;
+/// using Insts = ::Ice::X8632::Insts<TraitsType>;
 template <typename TraitsType> struct Insts {
   using FakeRMW = typename InstImpl<TraitsType>::InstX86FakeRMW;
   using Label = typename InstImpl<TraitsType>::InstX86Label;
@@ -3305,9 +3301,9 @@
 /// emitters). Each X86 target needs to declare and define all of these, so the
 /// macros below are provided so that, if something changes, all X86
 /// targets will be updated automatically.
-#define X86INSTS_DEFINE_STATIC_DATA(X86NAMESPACE, TraitsType)                  \
+#define X86INSTS_DEFINE_STATIC_DATA(TraitsType)                                \
   namespace Ice {                                                              \
-  namespace X86NAMESPACE {                                                     \
+  namespace X8632 {                                                            \
   /* In-place ops */                                                           \
   template <>                                                                  \
   template <>                                                                  \
@@ -4101,9 +4097,9 @@
   }                                                                            \
   }
 
-} // end of namespace X86NAMESPACE
+} // namespace X8632
 } // end of namespace Ice
 
-#include "IceInstX86BaseImpl.h"
+#include "IceInstX8632BaseImpl.h"
 
-#endif // SUBZERO_SRC_ICEINSTX86BASE_H
+#endif // SUBZERO_SRC_ICEINSTX8632BASE_H
diff --git a/third_party/subzero/src/IceInstX86BaseImpl.h b/third_party/subzero/src/IceInstX8632BaseImpl.h
similarity index 99%
rename from third_party/subzero/src/IceInstX86BaseImpl.h
rename to third_party/subzero/src/IceInstX8632BaseImpl.h
index 99e5993..a77a6e0 100644
--- a/third_party/subzero/src/IceInstX86BaseImpl.h
+++ b/third_party/subzero/src/IceInstX8632BaseImpl.h
@@ -1,4 +1,5 @@
-//===- subzero/src/IceInstX86BaseImpl.h - Generic X86 instructions -*- C++ -*=//
+//===- subzero/src/IceInstX8632BaseImpl.h - Generic X86 instructions -*- C++
+//-*=//
 //
 //                        The Subzero Code Generator
 //
@@ -12,23 +13,22 @@
 ///
 //===----------------------------------------------------------------------===//
 
-#ifndef SUBZERO_SRC_ICEINSTX86BASEIMPL_H
-#define SUBZERO_SRC_ICEINSTX86BASEIMPL_H
+#ifndef SUBZERO_SRC_ICEINSTX8632BASEIMPL_H
+#define SUBZERO_SRC_ICEINSTX8632BASEIMPL_H
 
-#include "IceInstX86Base.h"
+#include "IceInstX8632Base.h"
 
-#include "IceAssemblerX86Base.h"
+#include "IceAssemblerX8632Base.h"
 #include "IceCfg.h"
 #include "IceCfgNode.h"
 #include "IceDefs.h"
 #include "IceInst.h"
 #include "IceOperand.h"
 #include "IceTargetLowering.h"
-#include "IceTargetLoweringX86Base.h"
+#include "IceTargetLoweringX8632Base.h"
 
 namespace Ice {
-
-namespace X86NAMESPACE {
+namespace X8632 {
 
 template <typename TraitsType>
 const char *InstImpl<TraitsType>::InstX86Base::getWidthString(Type Ty) {
@@ -3112,8 +3112,7 @@
   Str << "IACA_END";
 }
 
-} // end of namespace X86NAMESPACE
-
+} // end of namespace X8632
 } // end of namespace Ice
 
-#endif // SUBZERO_SRC_ICEINSTX86BASEIMPL_H
+#endif // SUBZERO_SRC_ICEINSTX8632BASEIMPL_H
diff --git a/third_party/subzero/src/IceInstX8664.h b/third_party/subzero/src/IceInstX8664.h
index 070c272..1ed80d7 100644
--- a/third_party/subzero/src/IceInstX8664.h
+++ b/third_party/subzero/src/IceInstX8664.h
@@ -26,12 +26,10 @@
 
 #include "IceDefs.h"
 #include "IceInst.h"
-#define X86NAMESPACE X8664
-#include "IceInstX86Base.h"
-#undef X86NAMESPACE
+#include "IceInstX8664Base.h"
 #include "IceOperand.h"
 #include "IceTargetLoweringX8664Traits.h"
 
-X86INSTS_DEFINE_STATIC_DATA(X8664, X8664::Traits)
+X86INSTS_DEFINE_STATIC_DATA(X8664::Traits)
 
 #endif // SUBZERO_SRC_ICEINSTX8664_H
diff --git a/third_party/subzero/src/IceInstX86Base.h b/third_party/subzero/src/IceInstX8664Base.h
similarity index 99%
copy from third_party/subzero/src/IceInstX86Base.h
copy to third_party/subzero/src/IceInstX8664Base.h
index c20f394..e2d1560 100644
--- a/third_party/subzero/src/IceInstX86Base.h
+++ b/third_party/subzero/src/IceInstX8664Base.h
@@ -1,4 +1,5 @@
-//===- subzero/src/IceInstX86Base.h - Generic x86 instructions -*- C++ -*--===//
+//===- subzero/src/IceInstX8664Base.h - Generic x86 instructions -*- C++
+//-*--===//
 //
 //                        The Subzero Code Generator
 //
@@ -16,20 +17,15 @@
 ///
 //===----------------------------------------------------------------------===//
 
-#ifndef SUBZERO_SRC_ICEINSTX86BASE_H
-#define SUBZERO_SRC_ICEINSTX86BASE_H
+#ifndef SUBZERO_SRC_ICEINSTX8664BASE_H
+#define SUBZERO_SRC_ICEINSTX8664BASE_H
 
 #include "IceDefs.h"
 #include "IceInst.h"
 #include "IceOperand.h"
 
 namespace Ice {
-
-#ifndef X86NAMESPACE
-#error "You must define the X86 Target namespace."
-#endif
-
-namespace X86NAMESPACE {
+namespace X8664 {
 
 template <typename TraitsType> struct InstImpl {
   using Traits = TraitsType;
@@ -3166,7 +3162,7 @@
 /// struct Insts is a template that can be used to instantiate all the X86
 /// instructions for a target with a simple
 ///
-/// using Insts = ::Ice::X86NAMESPACE::Insts<TraitsType>;
+/// using Insts = ::Ice::X8664::Insts<TraitsType>;
 template <typename TraitsType> struct Insts {
   using FakeRMW = typename InstImpl<TraitsType>::InstX86FakeRMW;
   using Label = typename InstImpl<TraitsType>::InstX86Label;
@@ -3305,9 +3301,9 @@
 /// emitters). Each X86 target needs to declare and define all of these, so the
 /// macros below are provided so that, if something changes, all X86
 /// targets will be updated automatically.
-#define X86INSTS_DEFINE_STATIC_DATA(X86NAMESPACE, TraitsType)                  \
+#define X86INSTS_DEFINE_STATIC_DATA(TraitsType)                                \
   namespace Ice {                                                              \
-  namespace X86NAMESPACE {                                                     \
+  namespace X8664 {                                                            \
   /* In-place ops */                                                           \
   template <>                                                                  \
   template <>                                                                  \
@@ -4101,9 +4097,9 @@
   }                                                                            \
   }
 
-} // end of namespace X86NAMESPACE
+} // namespace X8664
 } // end of namespace Ice
 
-#include "IceInstX86BaseImpl.h"
+#include "IceInstX8664BaseImpl.h"
 
-#endif // SUBZERO_SRC_ICEINSTX86BASE_H
+#endif // SUBZERO_SRC_ICEINSTX8664BASE_H
diff --git a/third_party/subzero/src/IceInstX86BaseImpl.h b/third_party/subzero/src/IceInstX8664BaseImpl.h
similarity index 99%
copy from third_party/subzero/src/IceInstX86BaseImpl.h
copy to third_party/subzero/src/IceInstX8664BaseImpl.h
index 99e5993..0dcd88b 100644
--- a/third_party/subzero/src/IceInstX86BaseImpl.h
+++ b/third_party/subzero/src/IceInstX8664BaseImpl.h
@@ -1,4 +1,5 @@
-//===- subzero/src/IceInstX86BaseImpl.h - Generic X86 instructions -*- C++ -*=//
+//===- subzero/src/IceInstX8664BaseImpl.h - Generic X86 instructions -*- C++
+//-*=//
 //
 //                        The Subzero Code Generator
 //
@@ -12,23 +13,22 @@
 ///
 //===----------------------------------------------------------------------===//
 
-#ifndef SUBZERO_SRC_ICEINSTX86BASEIMPL_H
-#define SUBZERO_SRC_ICEINSTX86BASEIMPL_H
+#ifndef SUBZERO_SRC_ICEINSTX8664BASEIMPL_H
+#define SUBZERO_SRC_ICEINSTX8664BASEIMPL_H
 
-#include "IceInstX86Base.h"
+#include "IceInstX8664Base.h"
 
-#include "IceAssemblerX86Base.h"
+#include "IceAssemblerX8664Base.h"
 #include "IceCfg.h"
 #include "IceCfgNode.h"
 #include "IceDefs.h"
 #include "IceInst.h"
 #include "IceOperand.h"
 #include "IceTargetLowering.h"
-#include "IceTargetLoweringX86Base.h"
+#include "IceTargetLoweringX8664Base.h"
 
 namespace Ice {
-
-namespace X86NAMESPACE {
+namespace X8664 {
 
 template <typename TraitsType>
 const char *InstImpl<TraitsType>::InstX86Base::getWidthString(Type Ty) {
@@ -3112,8 +3112,7 @@
   Str << "IACA_END";
 }
 
-} // end of namespace X86NAMESPACE
-
+} // end of namespace X8664
 } // end of namespace Ice
 
-#endif // SUBZERO_SRC_ICEINSTX86BASEIMPL_H
+#endif // SUBZERO_SRC_ICEINSTX8664BASEIMPL_H
diff --git a/third_party/subzero/src/IceTargetLoweringX8632.h b/third_party/subzero/src/IceTargetLoweringX8632.h
index c057647..b4bffd3 100644
--- a/third_party/subzero/src/IceTargetLoweringX8632.h
+++ b/third_party/subzero/src/IceTargetLoweringX8632.h
@@ -21,9 +21,7 @@
 #include "IceInstX8632.h"
 #include "IceRegistersX8632.h"
 #include "IceTargetLowering.h"
-#define X86NAMESPACE X8632
-#include "IceTargetLoweringX86Base.h"
-#undef X86NAMESPACE
+#include "IceTargetLoweringX8632Base.h"
 #include "IceTargetLoweringX8632Traits.h"
 
 namespace Ice {
diff --git a/third_party/subzero/src/IceTargetLoweringX86Base.h b/third_party/subzero/src/IceTargetLoweringX8632Base.h
similarity index 98%
rename from third_party/subzero/src/IceTargetLoweringX86Base.h
rename to third_party/subzero/src/IceTargetLoweringX8632Base.h
index 805465b..e619712 100644
--- a/third_party/subzero/src/IceTargetLoweringX86Base.h
+++ b/third_party/subzero/src/IceTargetLoweringX8632Base.h
@@ -1,4 +1,5 @@
-//===- subzero/src/IceTargetLoweringX86Base.h - x86 lowering ----*- C++ -*-===//
+//===- subzero/src/IceTargetLoweringX8632Base.h - x86 lowering ----*- C++
+//-*-===//
 //
 //                        The Subzero Code Generator
 //
@@ -13,8 +14,8 @@
 ///
 //===----------------------------------------------------------------------===//
 
-#ifndef SUBZERO_SRC_ICETARGETLOWERINGX86BASE_H
-#define SUBZERO_SRC_ICETARGETLOWERINGX86BASE_H
+#ifndef SUBZERO_SRC_ICETARGETLOWERINGX8632BASE_H
+#define SUBZERO_SRC_ICETARGETLOWERINGX8632BASE_H
 
 #include "IceDefs.h"
 #include "IceInst.h"
@@ -27,12 +28,8 @@
 #include <type_traits>
 #include <utility>
 
-#ifndef X86NAMESPACE
-#error "You must define the X86 Target namespace."
-#endif
-
 namespace Ice {
-namespace X86NAMESPACE {
+namespace X8632 {
 
 using namespace ::Ice::X86;
 
@@ -1051,9 +1048,9 @@
   explicit TargetHeaderX86(GlobalContext *Ctx) : TargetHeaderLowering(Ctx) {}
 };
 
-} // end of namespace X86NAMESPACE
+} // end of namespace X8632
 } // end of namespace Ice
 
-#include "IceTargetLoweringX86BaseImpl.h"
+#include "IceTargetLoweringX8632BaseImpl.h"
 
-#endif // SUBZERO_SRC_ICETARGETLOWERINGX86BASE_H
+#endif // SUBZERO_SRC_ICETARGETLOWERINGX8632BASE_H
diff --git a/third_party/subzero/src/IceTargetLoweringX86BaseImpl.h b/third_party/subzero/src/IceTargetLoweringX8632BaseImpl.h
similarity index 99%
rename from third_party/subzero/src/IceTargetLoweringX86BaseImpl.h
rename to third_party/subzero/src/IceTargetLoweringX8632BaseImpl.h
index 5711cb9..ae776e1 100644
--- a/third_party/subzero/src/IceTargetLoweringX86BaseImpl.h
+++ b/third_party/subzero/src/IceTargetLoweringX8632BaseImpl.h
@@ -1,4 +1,5 @@
-//===- subzero/src/IceTargetLoweringX86BaseImpl.h - x86 lowering -*- C++ -*-==//
+//===- subzero/src/IceTargetLoweringX8632BaseImpl.h - x86 lowering -*- C++
+//-*-==//
 //
 //                        The Subzero Code Generator
 //
@@ -13,8 +14,8 @@
 ///
 //===----------------------------------------------------------------------===//
 
-#ifndef SUBZERO_SRC_ICETARGETLOWERINGX86BASEIMPL_H
-#define SUBZERO_SRC_ICETARGETLOWERINGX86BASEIMPL_H
+#ifndef SUBZERO_SRC_ICETARGETLOWERINGX8632BASEIMPL_H
+#define SUBZERO_SRC_ICETARGETLOWERINGX8632BASEIMPL_H
 
 #include "IceCfg.h"
 #include "IceCfgNode.h"
@@ -23,7 +24,7 @@
 #include "IceELFObjectWriter.h"
 #include "IceGlobalInits.h"
 #include "IceInstVarIter.h"
-#include "IceInstX86Base.h"
+#include "IceInstX8632Base.h"
 #include "IceLiveness.h"
 #include "IceOperand.h"
 #include "IcePhiLoweringImpl.h"
@@ -36,7 +37,7 @@
 #include <stack>
 
 namespace Ice {
-namespace X86NAMESPACE {
+namespace X8632 {
 
 // The Microsoft x64 ABI requires the caller to allocate a 32 byte
 // "shadow store" (aka "home space") so that the callee may copy the 4
@@ -4038,7 +4039,7 @@
     return;
   case Intrinsics::AtomicFenceAll:
     // NOTE: FenceAll should prevent and load/store from being moved across the
-    // fence (both atomic and non-atomic). The InstX8632Mfence instruction is
+    // fence (both atomic and non-atomic). The InstX86Mfence instruction is
     // currently marked coarsely as "HasSideEffects".
     _mfence();
     return;
@@ -8175,7 +8176,7 @@
   } break;
   }
 }
-} // end of namespace X86NAMESPACE
+} // namespace X8632
 } // end of namespace Ice
 
-#endif // SUBZERO_SRC_ICETARGETLOWERINGX86BASEIMPL_H
+#endif // SUBZERO_SRC_ICETARGETLOWERINGX8632BASEIMPL_H
diff --git a/third_party/subzero/src/IceTargetLoweringX8664.h b/third_party/subzero/src/IceTargetLoweringX8664.h
index a392934..bac931b 100644
--- a/third_party/subzero/src/IceTargetLoweringX8664.h
+++ b/third_party/subzero/src/IceTargetLoweringX8664.h
@@ -21,9 +21,7 @@
 #include "IceGlobalContext.h"
 #include "IceInstX8664.h"
 #include "IceTargetLowering.h"
-#define X86NAMESPACE X8664
-#include "IceTargetLoweringX86Base.h"
-#undef X86NAMESPACE
+#include "IceTargetLoweringX8664Base.h"
 #include "IceTargetLoweringX8664Traits.h"
 
 namespace Ice {
diff --git a/third_party/subzero/src/IceTargetLoweringX86Base.h b/third_party/subzero/src/IceTargetLoweringX8664Base.h
similarity index 98%
copy from third_party/subzero/src/IceTargetLoweringX86Base.h
copy to third_party/subzero/src/IceTargetLoweringX8664Base.h
index 805465b..d033b3f 100644
--- a/third_party/subzero/src/IceTargetLoweringX86Base.h
+++ b/third_party/subzero/src/IceTargetLoweringX8664Base.h
@@ -1,4 +1,5 @@
-//===- subzero/src/IceTargetLoweringX86Base.h - x86 lowering ----*- C++ -*-===//
+//===- subzero/src/IceTargetLoweringX8664Base.h - x86 lowering ----*- C++
+//-*-===//
 //
 //                        The Subzero Code Generator
 //
@@ -13,8 +14,8 @@
 ///
 //===----------------------------------------------------------------------===//
 
-#ifndef SUBZERO_SRC_ICETARGETLOWERINGX86BASE_H
-#define SUBZERO_SRC_ICETARGETLOWERINGX86BASE_H
+#ifndef SUBZERO_SRC_ICETARGETLOWERINGX8664BASE_H
+#define SUBZERO_SRC_ICETARGETLOWERINGX8664BASE_H
 
 #include "IceDefs.h"
 #include "IceInst.h"
@@ -27,12 +28,8 @@
 #include <type_traits>
 #include <utility>
 
-#ifndef X86NAMESPACE
-#error "You must define the X86 Target namespace."
-#endif
-
 namespace Ice {
-namespace X86NAMESPACE {
+namespace X8664 {
 
 using namespace ::Ice::X86;
 
@@ -1051,9 +1048,9 @@
   explicit TargetHeaderX86(GlobalContext *Ctx) : TargetHeaderLowering(Ctx) {}
 };
 
-} // end of namespace X86NAMESPACE
+} // end of namespace X8664
 } // end of namespace Ice
 
-#include "IceTargetLoweringX86BaseImpl.h"
+#include "IceTargetLoweringX8664BaseImpl.h"
 
-#endif // SUBZERO_SRC_ICETARGETLOWERINGX86BASE_H
+#endif // SUBZERO_SRC_ICETARGETLOWERINGX8664BASE_H
diff --git a/third_party/subzero/src/IceTargetLoweringX86BaseImpl.h b/third_party/subzero/src/IceTargetLoweringX8664BaseImpl.h
similarity index 99%
copy from third_party/subzero/src/IceTargetLoweringX86BaseImpl.h
copy to third_party/subzero/src/IceTargetLoweringX8664BaseImpl.h
index 5711cb9..ca22a84 100644
--- a/third_party/subzero/src/IceTargetLoweringX86BaseImpl.h
+++ b/third_party/subzero/src/IceTargetLoweringX8664BaseImpl.h
@@ -1,4 +1,5 @@
-//===- subzero/src/IceTargetLoweringX86BaseImpl.h - x86 lowering -*- C++ -*-==//
+//===- subzero/src/IceTargetLoweringX8664BaseImpl.h - x86 lowering -*- C++
+//-*-==//
 //
 //                        The Subzero Code Generator
 //
@@ -13,8 +14,8 @@
 ///
 //===----------------------------------------------------------------------===//
 
-#ifndef SUBZERO_SRC_ICETARGETLOWERINGX86BASEIMPL_H
-#define SUBZERO_SRC_ICETARGETLOWERINGX86BASEIMPL_H
+#ifndef SUBZERO_SRC_ICETARGETLOWERINGX8664BASEIMPL_H
+#define SUBZERO_SRC_ICETARGETLOWERINGX8664BASEIMPL_H
 
 #include "IceCfg.h"
 #include "IceCfgNode.h"
@@ -23,7 +24,7 @@
 #include "IceELFObjectWriter.h"
 #include "IceGlobalInits.h"
 #include "IceInstVarIter.h"
-#include "IceInstX86Base.h"
+#include "IceInstX8664Base.h"
 #include "IceLiveness.h"
 #include "IceOperand.h"
 #include "IcePhiLoweringImpl.h"
@@ -36,7 +37,7 @@
 #include <stack>
 
 namespace Ice {
-namespace X86NAMESPACE {
+namespace X8664 {
 
 // The Microsoft x64 ABI requires the caller to allocate a 32 byte
 // "shadow store" (aka "home space") so that the callee may copy the 4
@@ -4038,7 +4039,7 @@
     return;
   case Intrinsics::AtomicFenceAll:
     // NOTE: FenceAll should prevent and load/store from being moved across the
-    // fence (both atomic and non-atomic). The InstX8632Mfence instruction is
+    // fence (both atomic and non-atomic). The InstX86Mfence instruction is
     // currently marked coarsely as "HasSideEffects".
     _mfence();
     return;
@@ -8175,7 +8176,7 @@
   } break;
   }
 }
-} // end of namespace X86NAMESPACE
+} // namespace X8664
 } // end of namespace Ice
 
-#endif // SUBZERO_SRC_ICETARGETLOWERINGX86BASEIMPL_H
+#endif // SUBZERO_SRC_ICETARGETLOWERINGX8664BASEIMPL_H
