diff --git a/src/tint/lang/core/ir/validator.cc b/src/tint/lang/core/ir/validator.cc
index 4a5b1d6..9766d25 100644
--- a/src/tint/lang/core/ir/validator.cc
+++ b/src/tint/lang/core/ir/validator.cc
@@ -29,6 +29,7 @@
 
 #include <algorithm>
 #include <cstdint>
+#include <functional>
 #include <memory>
 #include <string>
 #include <string_view>
@@ -109,6 +110,11 @@
 
 namespace tint::core::ir {
 
+struct ValidatedType {
+    const type::Type* ty;
+    Capabilities caps;
+};
+
 namespace {
 
 /// @returns the parent block of @p block
@@ -776,6 +782,8 @@
     Hashmap<const ir::Function*, Hashset<const ir::UserCall*, 4>, 4> user_func_calls_;
     Hashset<const ir::Discard*, 4> discards_;
     core::ir::ReferencedModuleVars<const Module> referenced_module_vars_;
+
+    Hashset<ValidatedType, 16> validated_types_{};
 };
 
 Validator::Validator(const Module& mod, Capabilities capabilities)
@@ -1188,6 +1196,14 @@
 void Validator::CheckType(const core::type::Type* root,
                           std::function<diag::Diagnostic&()> diag,
                           Capabilities ignore_caps) {
+    if (root == nullptr) {
+        return;
+    }
+
+    if (!validated_types_.Add(ValidatedType{root, ignore_caps})) {
+        return;
+    }
+
     auto visit = [&](const type::Type* type) {
         return tint::Switch(
             type,
@@ -2525,3 +2541,20 @@
 }
 
 }  // namespace tint::core::ir
+
+namespace std {
+
+template <>
+struct hash<tint::core::ir::ValidatedType> {
+    size_t operator()(const tint::core::ir::ValidatedType& v) const { return Hash(v.ty, v.caps); }
+};
+
+template <>
+struct equal_to<tint::core::ir::ValidatedType> {
+    bool operator()(const tint::core::ir::ValidatedType& a,
+                    const tint::core::ir::ValidatedType& b) const {
+        return a.ty->Equals(*(b.ty)) && a.caps == b.caps;
+    }
+};
+
+}  // namespace std
diff --git a/test/tint/benchmark/skinned-shadowed-pbr-fragment.wgsl.expected.ir.glsl b/test/tint/benchmark/skinned-shadowed-pbr-fragment.wgsl.expected.ir.glsl
deleted file mode 100644
index 708a412..0000000
--- a/test/tint/benchmark/skinned-shadowed-pbr-fragment.wgsl.expected.ir.glsl
+++ /dev/null
@@ -1,3 +0,0 @@
-SKIP: FAILED
-
-Times out on bots
