diff --git a/samples/main.cc b/samples/main.cc
index f2d8507..dc30009 100644
--- a/samples/main.cc
+++ b/samples/main.cc
@@ -245,7 +245,7 @@
     if (!ReadFile<uint32_t>(options.input_filename, &data)) {
       return 1;
     }
-    reader = std::make_unique<tint::reader::spv::Parser>(data);
+    reader = std::make_unique<tint::reader::spirv::Parser>(data);
   }
 #endif
   if (!reader) {
diff --git a/src/reader/spirv/fail_stream.h b/src/reader/spirv/fail_stream.h
index 714359b..8045f92 100644
--- a/src/reader/spirv/fail_stream.h
+++ b/src/reader/spirv/fail_stream.h
@@ -19,7 +19,7 @@
 
 namespace tint {
 namespace reader {
-namespace spv {
+namespace spirv {
 
 /// A FailStream object accumulates values onto a given std::ostream,
 /// and can be used to record failure by writing the false value
@@ -67,7 +67,7 @@
   std::ostream* out_;
 };
 
-}  // namespace spv
+}  // namespace spirv
 }  // namespace reader
 }  // namespace tint
 
diff --git a/src/reader/spirv/fail_stream_test.cc b/src/reader/spirv/fail_stream_test.cc
index 96c9652..7ee2ab7 100644
--- a/src/reader/spirv/fail_stream_test.cc
+++ b/src/reader/spirv/fail_stream_test.cc
@@ -21,7 +21,7 @@
 
 namespace tint {
 namespace reader {
-namespace spv {
+namespace spirv {
 namespace {
 
 using ::testing::Eq;
@@ -71,6 +71,6 @@
 }
 
 }  // namespace
-}  // namespace spv
+}  // namespace spirv
 }  // namespace reader
 }  // namespace tint
diff --git a/src/reader/spirv/parser.cc b/src/reader/spirv/parser.cc
index 56bc07b..46e4433 100644
--- a/src/reader/spirv/parser.cc
+++ b/src/reader/spirv/parser.cc
@@ -18,7 +18,7 @@
 
 namespace tint {
 namespace reader {
-namespace spv {
+namespace spirv {
 
 Parser::Parser(const std::vector<uint32_t>& spv_binary)
     : Reader(), impl_(std::make_unique<ParserImpl>(spv_binary)) {}
@@ -35,6 +35,6 @@
   return impl_->module();
 }
 
-}  // namespace spv
+}  // namespace spirv
 }  // namespace reader
 }  // namespace tint
diff --git a/src/reader/spirv/parser.h b/src/reader/spirv/parser.h
index acf7a6a..61eee80 100644
--- a/src/reader/spirv/parser.h
+++ b/src/reader/spirv/parser.h
@@ -23,7 +23,7 @@
 
 namespace tint {
 namespace reader {
-namespace spv {
+namespace spirv {
 
 class ParserImpl;
 
@@ -47,7 +47,7 @@
   std::unique_ptr<ParserImpl> impl_;
 };
 
-}  // namespace spv
+}  // namespace spirv
 }  // namespace reader
 }  // namespace tint
 
diff --git a/src/reader/spirv/parser_impl.cc b/src/reader/spirv/parser_impl.cc
index 8eb8a27..2c5e17f 100644
--- a/src/reader/spirv/parser_impl.cc
+++ b/src/reader/spirv/parser_impl.cc
@@ -20,7 +20,7 @@
 
 namespace tint {
 namespace reader {
-namespace spv {
+namespace spirv {
 
 namespace {
 
@@ -143,6 +143,6 @@
   return true;
 }
 
-}  // namespace spv
+}  // namespace spirv
 }  // namespace reader
 }  // namespace tint
diff --git a/src/reader/spirv/parser_impl.h b/src/reader/spirv/parser_impl.h
index 65127d5..00549da 100644
--- a/src/reader/spirv/parser_impl.h
+++ b/src/reader/spirv/parser_impl.h
@@ -35,7 +35,7 @@
 
 namespace tint {
 namespace reader {
-namespace spv {
+namespace spirv {
 
 /// Parser implementation for SPIR-V.
 class ParserImpl : Reader {
@@ -130,7 +130,7 @@
   std::unordered_set<uint32_t> glsl_std_450_imports_;
 };
 
-}  // namespace spv
+}  // namespace spirv
 }  // namespace reader
 }  // namespace tint
 
diff --git a/src/reader/spirv/parser_impl_import_test.cc b/src/reader/spirv/parser_impl_import_test.cc
index 6b07d63..e1823c8 100644
--- a/src/reader/spirv/parser_impl_import_test.cc
+++ b/src/reader/spirv/parser_impl_import_test.cc
@@ -22,7 +22,7 @@
 
 namespace tint {
 namespace reader {
-namespace spv {
+namespace spirv {
 namespace {
 
 using ::testing::ElementsAre;
@@ -69,6 +69,6 @@
 // imports.
 
 }  // namespace
-}  // namespace spv
+}  // namespace spirv
 }  // namespace reader
 }  // namespace tint
diff --git a/src/reader/spirv/parser_impl_test.cc b/src/reader/spirv/parser_impl_test.cc
index 4c29806..c4ce36c 100644
--- a/src/reader/spirv/parser_impl_test.cc
+++ b/src/reader/spirv/parser_impl_test.cc
@@ -22,7 +22,7 @@
 
 namespace tint {
 namespace reader {
-namespace spv {
+namespace spirv {
 
 namespace {
 
@@ -51,6 +51,6 @@
 
 }  // namespace
 
-}  // namespace spv
+}  // namespace spirv
 }  // namespace reader
 }  // namespace tint
diff --git a/src/reader/spirv/parser_test.cc b/src/reader/spirv/parser_test.cc
index 7f8da83..25cb34a 100644
--- a/src/reader/spirv/parser_test.cc
+++ b/src/reader/spirv/parser_test.cc
@@ -21,7 +21,7 @@
 
 namespace tint {
 namespace reader {
-namespace spv {
+namespace spirv {
 
 namespace {
 using ParserTest = testing::Test;
@@ -38,6 +38,6 @@
 
 }  // namespace
 
-}  // namespace spv
+}  // namespace spirv
 }  // namespace reader
 }  // namespace tint
diff --git a/src/reader/spirv/spirv_tools_helpers_test.cc b/src/reader/spirv/spirv_tools_helpers_test.cc
index 7345308..2a31f7d 100644
--- a/src/reader/spirv/spirv_tools_helpers_test.cc
+++ b/src/reader/spirv/spirv_tools_helpers_test.cc
@@ -23,7 +23,7 @@
 
 namespace tint {
 namespace reader {
-namespace spv {
+namespace spirv {
 namespace test {
 
 /// @returns the SPIR-V module assembled from the given text.  Numeric IDs
@@ -50,6 +50,6 @@
 }
 
 }  // namespace test
-}  // namespace spv
+}  // namespace spirv
 }  // namespace reader
 }  // namespace tint
diff --git a/src/reader/spirv/spirv_tools_helpers_test.h b/src/reader/spirv/spirv_tools_helpers_test.h
index b77d954..91cb081 100644
--- a/src/reader/spirv/spirv_tools_helpers_test.h
+++ b/src/reader/spirv/spirv_tools_helpers_test.h
@@ -21,7 +21,7 @@
 
 namespace tint {
 namespace reader {
-namespace spv {
+namespace spirv {
 namespace test {
 
 /// @returns the SPIR-V module assembled from the given text.  Numeric IDs
@@ -29,7 +29,7 @@
 std::vector<uint32_t> Assemble(const std::string& spirv_assembly);
 
 }  // namespace test
-}  // namespace spv
+}  // namespace spirv
 }  // namespace reader
 }  // namespace tint
 
