diff --git a/src/tint/lang/spirv/reader/parser/atomics_test.cc b/src/tint/lang/spirv/reader/parser/atomics_test.cc
index 4f5dd32..28f51de 100644
--- a/src/tint/lang/spirv/reader/parser/atomics_test.cc
+++ b/src/tint/lang/spirv/reader/parser/atomics_test.cc
@@ -117,8 +117,7 @@
     EXPECT_DEATH_IF_SUPPORTED({ auto _ = Run(src); }, "internal compiler error");
 }
 
-// TODO(dsinclair): Requires `Block` decoration support
-TEST_F(SpirvParserDeathTest, DISABLED_AtomicSMin_u32) {
+TEST_F(SpirvParserDeathTest, AtomicSMin_u32) {
     auto src = R"(
                OpCapability Shader
                OpExtension "SPV_KHR_storage_buffer_storage_class"
@@ -156,8 +155,7 @@
     EXPECT_DEATH_IF_SUPPORTED({ auto _ = Run(src); }, "internal compiler error");
 }
 
-// TODO(dsinclair): Requires `Block` decoration support
-TEST_F(SpirvParserDeathTest, DISABLED_AtomicSMax_u32) {
+TEST_F(SpirvParserDeathTest, AtomicSMax_u32) {
     auto src = R"(
                OpCapability Shader
                OpExtension "SPV_KHR_storage_buffer_storage_class"
@@ -195,8 +193,7 @@
     EXPECT_DEATH_IF_SUPPORTED({ auto _ = Run(src); }, "internal compiler error");
 }
 
-// TODO(dsinclair): Requires `Block` decoration support
-TEST_F(SpirvParserDeathTest, DISABLED_AtomicUMin_i32) {
+TEST_F(SpirvParserDeathTest, AtomicUMin_i32) {
     auto src = R"(
                OpCapability Shader
                OpExtension "SPV_KHR_storage_buffer_storage_class"
@@ -855,8 +852,7 @@
 )");
 }
 
-// TODO(dsinclair): Requires `Block` decoration support
-TEST_F(SpirvParser_AtomicsTest, DISABLED_AtomicAdd) {
+TEST_F(SpirvParser_AtomicsTest, AtomicAdd) {
     EXPECT_IR(R"(
                OpCapability Shader
                OpExtension "SPV_KHR_storage_buffer_storage_class"
@@ -929,8 +925,7 @@
 )");
 }
 
-// TODO(dsinclair): Requires `Block` decoration support
-TEST_F(SpirvParser_AtomicsTest, DISABLED_AtomicSub) {
+TEST_F(SpirvParser_AtomicsTest, AtomicSub) {
     EXPECT_IR(R"(
                OpCapability Shader
                OpExtension "SPV_KHR_storage_buffer_storage_class"
@@ -1003,8 +998,7 @@
 )");
 }
 
-// TODO(dsinclair): Requires `Block` decoration support
-TEST_F(SpirvParser_AtomicsTest, DISABLED_AtomicAnd) {
+TEST_F(SpirvParser_AtomicsTest, AtomicAnd) {
     EXPECT_IR(R"(
                OpCapability Shader
                OpExtension "SPV_KHR_storage_buffer_storage_class"
@@ -1077,8 +1071,7 @@
 )");
 }
 
-// TODO(dsinclair): Requires `Block` decoration support
-TEST_F(SpirvParser_AtomicsTest, DISABLED_AtomicOr) {
+TEST_F(SpirvParser_AtomicsTest, AtomicOr) {
     EXPECT_IR(R"(
                OpCapability Shader
                OpExtension "SPV_KHR_storage_buffer_storage_class"
@@ -1151,8 +1144,7 @@
 )");
 }
 
-// TODO(dsinclair): Requires `Block` decoration support
-TEST_F(SpirvParser_AtomicsTest, DISABLED_AtomicXor) {
+TEST_F(SpirvParser_AtomicsTest, AtomicXor) {
     EXPECT_IR(R"(
                OpCapability Shader
                OpExtension "SPV_KHR_storage_buffer_storage_class"
@@ -1225,8 +1217,7 @@
 )");
 }
 
-// TODO(dsinclair): Requires `Block` decoration support
-TEST_F(SpirvParser_AtomicsTest, DISABLED_AtomicMax) {
+TEST_F(SpirvParser_AtomicsTest, AtomicMax) {
     EXPECT_IR(R"(
                OpCapability Shader
                OpExtension "SPV_KHR_storage_buffer_storage_class"
@@ -1299,8 +1290,7 @@
 )");
 }
 
-// TODO(dsinclair): Requires `Block` decoration support
-TEST_F(SpirvParser_AtomicsTest, DISABLED_AtomicMin) {
+TEST_F(SpirvParser_AtomicsTest, AtomicMin) {
     EXPECT_IR(R"(
                OpCapability Shader
                OpExtension "SPV_KHR_storage_buffer_storage_class"
@@ -1373,8 +1363,7 @@
 )");
 }
 
-// TODO(dsinclair): Requires `Block` decoration support
-TEST_F(SpirvParser_AtomicsTest, DISABLED_AtomicExchange) {
+TEST_F(SpirvParser_AtomicsTest, AtomicExchange) {
     EXPECT_IR(R"(
                OpCapability Shader
                OpExtension "SPV_KHR_storage_buffer_storage_class"
@@ -1447,8 +1436,7 @@
 )");
 }
 
-// TODO(dsinclair): Requires `Block` decoration support
-TEST_F(SpirvParser_AtomicsTest, DISABLED_AtomicCompareExchange) {
+TEST_F(SpirvParser_AtomicsTest, AtomicCompareExchange) {
     EXPECT_IR(R"(
                OpCapability Shader
                OpExtension "SPV_KHR_storage_buffer_storage_class"
@@ -1521,8 +1509,7 @@
 )");
 }
 
-// TODO(dsinclair): Requires `Block` decoration support
-TEST_F(SpirvParser_AtomicsTest, DISABLED_AtomicLoad) {
+TEST_F(SpirvParser_AtomicsTest, AtomicLoad) {
     EXPECT_IR(R"(
                OpCapability Shader
                OpExtension "SPV_KHR_storage_buffer_storage_class"
@@ -1595,8 +1582,7 @@
 )");
 }
 
-// TODO(dsinclair): Requires `Block` decoration support
-TEST_F(SpirvParser_AtomicsTest, DISABLED_AtomicStore) {
+TEST_F(SpirvParser_AtomicsTest, AtomicStore) {
     EXPECT_IR(R"(
                OpCapability Shader
                OpExtension "SPV_KHR_storage_buffer_storage_class"
@@ -1669,8 +1655,7 @@
 )");
 }
 
-// TODO(dsinclair): Requires `Block` decoration support
-TEST_F(SpirvParser_AtomicsTest, DISABLED_AtomicDecrement) {
+TEST_F(SpirvParser_AtomicsTest, AtomicDecrement) {
     EXPECT_IR(R"(
                OpCapability Shader
                OpExtension "SPV_KHR_storage_buffer_storage_class"
@@ -1743,8 +1728,7 @@
 )");
 }
 
-// TODO(dsinclair): Requires `Block` decoration support
-TEST_F(SpirvParser_AtomicsTest, DISABLED_AtomicIncrement) {
+TEST_F(SpirvParser_AtomicsTest, AtomicIncrement) {
     EXPECT_IR(R"(
                OpCapability Shader
                OpExtension "SPV_KHR_storage_buffer_storage_class"
@@ -2250,8 +2234,7 @@
 )");
 }
 
-// TODO(dsinclair): Requires `Block` decoration support
-TEST_F(SpirvParser_AtomicsTest, DISABLED_ReplaceAssignsAndDecls_StructOfArray) {
+TEST_F(SpirvParser_AtomicsTest, ReplaceAssignsAndDecls_StructOfArray) {
     EXPECT_IR(R"(
                OpCapability Shader
                OpExtension "SPV_KHR_storage_buffer_storage_class"
@@ -2326,8 +2309,7 @@
 )");
 }
 
-// TODO(dsinclair): Requires `Block` decoration support
-TEST_F(SpirvParser_AtomicsTest, DISABLED_ReplaceAssignsAndDecls_Let) {
+TEST_F(SpirvParser_AtomicsTest, ReplaceAssignsAndDecls_Let) {
     EXPECT_IR(R"(
                OpCapability Shader
                OpExtension "SPV_KHR_storage_buffer_storage_class"
diff --git a/src/tint/lang/spirv/reader/parser/function_test.cc b/src/tint/lang/spirv/reader/parser/function_test.cc
index c2175f8..41622bc 100644
--- a/src/tint/lang/spirv/reader/parser/function_test.cc
+++ b/src/tint/lang/spirv/reader/parser/function_test.cc
@@ -226,8 +226,7 @@
 )");
 }
 
-// TODO(dsinclair): Requires `Block` decoration support
-TEST_F(SpirvParserTest, DISABLED_VertexShader_PositionUnused_Struct) {
+TEST_F(SpirvParserTest, VertexShader_PositionUnused_Struct) {
     EXPECT_IR(R"(
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -264,8 +263,7 @@
 )");
 }
 
-// TODO(dsinclair): Requires `Block` decoration support
-TEST_F(SpirvParserTest, DISABLED_VertexShader_PositionUsed_Struct) {
+TEST_F(SpirvParserTest, VertexShader_PositionUsed_Struct) {
     EXPECT_IR(R"(
                OpCapability Shader
                OpMemoryModel Logical GLSL450
diff --git a/src/tint/lang/spirv/reader/parser/memory_test.cc b/src/tint/lang/spirv/reader/parser/memory_test.cc
index c8e0d05..2c4fa2c 100644
--- a/src/tint/lang/spirv/reader/parser/memory_test.cc
+++ b/src/tint/lang/spirv/reader/parser/memory_test.cc
@@ -30,8 +30,7 @@
 namespace tint::spirv::reader {
 namespace {
 
-// TODO(dsinclair): Requires `Block` decoration support
-TEST_F(SpirvParserTest, DISABLED_ArrayLength_FromVar) {
+TEST_F(SpirvParserTest, ArrayLength_FromVar) {
     EXPECT_IR(R"(
                OpCapability Shader
                OpExtension "SPV_KHR_storage_buffer_storage_class"
@@ -81,8 +80,7 @@
 )");
 }
 
-// TODO(dsinclair): Requires `Block` decoration support
-TEST_F(SpirvParserTest, DISABLED_ArrayLength_FromCopyObject) {
+TEST_F(SpirvParserTest, ArrayLength_FromCopyObject) {
     EXPECT_IR(R"(
                OpCapability Shader
                OpExtension "SPV_KHR_storage_buffer_storage_class"
@@ -134,8 +132,7 @@
 )");
 }
 
-// TODO(dsinclair): Requires `Block` decoration support
-TEST_F(SpirvParserTest, DISABLED_ArrayLength_FromAccessChain) {
+TEST_F(SpirvParserTest, ArrayLength_FromAccessChain) {
     EXPECT_IR(R"(
                OpCapability Shader
                OpExtension "SPV_KHR_storage_buffer_storage_class"
@@ -399,8 +396,7 @@
 )");
 }
 
-// TODO(dsinclair): Requires `Block` decoration support
-TEST_F(SpirvParserTest, DISABLED_Store_RuntimeArrayElement) {
+TEST_F(SpirvParserTest, Store_RuntimeArrayElement) {
     EXPECT_IR(R"(
                OpCapability Shader
                OpExtension "SPV_KHR_storage_buffer_storage_class"
@@ -1387,8 +1383,7 @@
 )");
 }
 
-// TODO(dsinclair): Requires `Block` decoration support
-TEST_F(SpirvParserTest, DISABLED_StorageBufferAccessMode) {
+TEST_F(SpirvParserTest, StorageBufferAccessMode) {
     EXPECT_IR(R"(
                OpCapability Shader
                OpExtension "SPV_KHR_storage_buffer_storage_class"
diff --git a/src/tint/lang/spirv/reader/parser/parser.cc b/src/tint/lang/spirv/reader/parser/parser.cc
index 6890743..00d4cbc 100644
--- a/src/tint/lang/spirv/reader/parser/parser.cc
+++ b/src/tint/lang/spirv/reader/parser/parser.cc
@@ -482,6 +482,10 @@
         uint32_t array_stride = 0;
         for (auto& deco : type->decorations()) {
             switch (spv::Decoration(deco[0])) {
+                case spv::Decoration::Block: {
+                    // Ignore, just means it's a memory block.
+                    break;
+                }
                 case spv::Decoration::ArrayStride: {
                     array_stride = deco[1];
                     break;
diff --git a/src/tint/lang/spirv/reader/parser/var_test.cc b/src/tint/lang/spirv/reader/parser/var_test.cc
index 546eb14..9a87cd7 100644
--- a/src/tint/lang/spirv/reader/parser/var_test.cc
+++ b/src/tint/lang/spirv/reader/parser/var_test.cc
@@ -142,8 +142,7 @@
 )");
 }
 
-// TODO(dsinclair): Requires `Block` decoration support
-TEST_F(SpirvParserTest, DISABLED_StorageVar_ReadOnly) {
+TEST_F(SpirvParserTest, StorageVar_ReadOnly) {
     EXPECT_IR(R"(
                OpCapability Shader
                OpExtension "SPV_KHR_storage_buffer_storage_class"
@@ -183,8 +182,7 @@
 )");
 }
 
-// TODO(dsinclair): Requires `Block` decoration support
-TEST_F(SpirvParserTest, DISABLED_StorageVar_ReadWrite) {
+TEST_F(SpirvParserTest, StorageVar_ReadWrite) {
     EXPECT_IR(R"(
                OpCapability Shader
                OpExtension "SPV_KHR_storage_buffer_storage_class"
@@ -223,8 +221,7 @@
 )");
 }
 
-// TODO(dsinclair): Requires `Block` decoration support
-TEST_F(SpirvParserTest, DISABLED_StorageVar_ReadOnly_And_ReadWrite) {
+TEST_F(SpirvParserTest, StorageVar_ReadOnly_And_ReadWrite) {
     EXPECT_IR(R"(
                OpCapability Shader
                OpExtension "SPV_KHR_storage_buffer_storage_class"
@@ -268,8 +265,7 @@
 )");
 }
 
-// TODO(dsinclair): Requires `Block` decoration support
-TEST_F(SpirvParserTest, DISABLED_UniformVar) {
+TEST_F(SpirvParserTest, UniformVar) {
     EXPECT_IR(R"(
                OpCapability Shader
                OpMemoryModel Logical GLSL450
@@ -1277,8 +1273,7 @@
 )");
 }
 
-// TODO(dsinclair): Requires `Block` decoration support
-TEST_F(SpirvParserTest, DISABLED_Var_OpSpecConstantComposite_struct_Mixed) {
+TEST_F(SpirvParserTest, Var_OpSpecConstantComposite_struct_Mixed) {
     EXPECT_IR(R"(
                OpCapability Shader
                OpExtension "SPV_KHR_storage_buffer_storage_class"
diff --git a/src/tint/lang/spirv/reader/reader_test.cc b/src/tint/lang/spirv/reader/reader_test.cc
index e406e90..28cf6d6 100644
--- a/src/tint/lang/spirv/reader/reader_test.cc
+++ b/src/tint/lang/spirv/reader/reader_test.cc
@@ -362,8 +362,7 @@
 )");
 }
 
-// TODO(dsinclair): Requires `Block` decoration support
-TEST_F(SpirvReaderTest, DISABLED_ClipDistances_gl_PerVertex) {
+TEST_F(SpirvReaderTest, ClipDistances_gl_PerVertex) {
     auto got = Run(R"(
                OpCapability Shader
                OpCapability ClipDistance
