diff --git a/src/tint/intrinsics.def b/src/tint/intrinsics.def
index 2b84d45..ae89f5c 100644
--- a/src/tint/intrinsics.def
+++ b/src/tint/intrinsics.def
@@ -105,8 +105,8 @@
 
 // https://gpuweb.github.io/gpuweb/wgsl/#plain-types-section
 type bool
-@precedence(5) @display("abstract-float") type fa
-@precedence(4) @display("abstract-int")   type ia
+@precedence(5) @display("abstract-int")   type ia
+@precedence(4) @display("abstract-float") type fa
 @precedence(3) type i32
 @precedence(2) type u32
 @precedence(1) type f32
@@ -757,40 +757,40 @@
 // Matrix constructors (scalar)
 @const("MatCtorS")
 ctor mat2x2<T: fa_f32_f16>(T, T,
-                          T, T) -> mat2x2<T>
+                           T, T) -> mat2x2<T>
 @const("MatCtorS")
 ctor mat2x3<T: fa_f32_f16>(T, T, T,
-                          T, T, T) -> mat2x3<T>
+                           T, T, T) -> mat2x3<T>
 @const("MatCtorS")
 ctor mat2x4<T: fa_f32_f16>(T, T, T, T,
-                          T, T, T, T) -> mat2x4<T>
+                           T, T, T, T) -> mat2x4<T>
 @const("MatCtorS")
 ctor mat3x2<T: fa_f32_f16>(T, T,
-                          T, T,
-                          T, T) -> mat3x2<T>
+                           T, T,
+                           T, T) -> mat3x2<T>
 @const("MatCtorS")
 ctor mat3x3<T: fa_f32_f16>(T, T, T,
-                          T, T, T,
-                          T, T, T) -> mat3x3<T>
+                           T, T, T,
+                           T, T, T) -> mat3x3<T>
 @const("MatCtorS")
 ctor mat3x4<T: fa_f32_f16>(T, T, T, T,
-                          T, T, T, T,
-                          T, T, T, T) -> mat3x4<T>
+                           T, T, T, T,
+                           T, T, T, T) -> mat3x4<T>
 @const("MatCtorS")
 ctor mat4x2<T: fa_f32_f16>(T, T,
-                          T, T,
-                          T, T,
-                          T, T) -> mat4x2<T>
+                           T, T,
+                           T, T,
+                           T, T) -> mat4x2<T>
 @const("MatCtorS")
 ctor mat4x3<T: fa_f32_f16>(T, T, T,
-                          T, T, T,
-                          T, T, T,
-                          T, T, T) -> mat4x3<T>
+                           T, T, T,
+                           T, T, T,
+                           T, T, T) -> mat4x3<T>
 @const("MatCtorS")
 ctor mat4x4<T: fa_f32_f16>(T, T, T, T,
-                          T, T, T, T,
-                          T, T, T, T,
-                          T, T, T, T) -> mat4x4<T>
+                           T, T, T, T,
+                           T, T, T, T,
+                           T, T, T, T) -> mat4x4<T>
 
 // Matrix constructors (column vectors)
 @const("MatCtorV")
diff --git a/src/tint/resolver/intrinsic_table.cc b/src/tint/resolver/intrinsic_table.cc
index 0cd0abe..86b44a4 100644
--- a/src/tint/resolver/intrinsic_table.cc
+++ b/src/tint/resolver/intrinsic_table.cc
@@ -349,7 +349,7 @@
 }
 
 bool match_fa(const sem::Type* ty) {
-    return ty->IsAnyOf<Any, sem::AbstractFloat>();
+    return ty->IsAnyOf<Any, sem::AbstractNumeric>();
 }
 
 const sem::AbstractInt* build_ia(MatchState& state) {
diff --git a/src/tint/resolver/intrinsic_table.inl b/src/tint/resolver/intrinsic_table.inl
index c589b2f..ff5878a 100644
--- a/src/tint/resolver/intrinsic_table.inl
+++ b/src/tint/resolver/intrinsic_table.inl
@@ -48,34 +48,6 @@
   return "bool";
 }
 
-/// TypeMatcher for 'type fa'
-class Fa : public TypeMatcher {
- public:
-  /// Checks whether the given type matches the matcher rules.
-  /// Match may define and refine the template types and numbers in state.
-  /// @param state the MatchState
-  /// @param type the type to match
-  /// @returns the canonicalized type on match, otherwise nullptr
-  const sem::Type* Match(MatchState& state,
-                         const sem::Type* type) const override;
-  /// @param state the MatchState
-  /// @return a string representation of the matcher.
-  std::string String(MatchState* state) const override;
-};
-
-const sem::Type* Fa::Match(MatchState& state, const sem::Type* ty) const {
-  if (!match_fa(ty)) {
-    return nullptr;
-  }
-  return build_fa(state);
-}
-
-std::string Fa::String(MatchState*) const {
-  std::stringstream ss;
-  ss << "abstract-float";
-  return ss.str();
-}
-
 /// TypeMatcher for 'type ia'
 class Ia : public TypeMatcher {
  public:
@@ -104,6 +76,34 @@
   return ss.str();
 }
 
+/// TypeMatcher for 'type fa'
+class Fa : public TypeMatcher {
+ public:
+  /// Checks whether the given type matches the matcher rules.
+  /// Match may define and refine the template types and numbers in state.
+  /// @param state the MatchState
+  /// @param type the type to match
+  /// @returns the canonicalized type on match, otherwise nullptr
+  const sem::Type* Match(MatchState& state,
+                         const sem::Type* type) const override;
+  /// @param state the MatchState
+  /// @return a string representation of the matcher.
+  std::string String(MatchState* state) const override;
+};
+
+const sem::Type* Fa::Match(MatchState& state, const sem::Type* ty) const {
+  if (!match_fa(ty)) {
+    return nullptr;
+  }
+  return build_fa(state);
+}
+
+std::string Fa::String(MatchState*) const {
+  std::stringstream ss;
+  ss << "abstract-float";
+  return ss.str();
+}
+
 /// TypeMatcher for 'type i32'
 class I32 : public TypeMatcher {
  public:
@@ -1567,12 +1567,12 @@
 };
 
 const sem::Type* AbstractOrScalar::Match(MatchState& state, const sem::Type* ty) const {
-  if (match_fa(ty)) {
-    return build_fa(state);
-  }
   if (match_ia(ty)) {
     return build_ia(state);
   }
+  if (match_fa(ty)) {
+    return build_fa(state);
+  }
   if (match_i32(ty)) {
     return build_i32(state);
   }
@@ -1859,12 +1859,12 @@
 };
 
 const sem::Type* FiaFiu32F16::Match(MatchState& state, const sem::Type* ty) const {
-  if (match_fa(ty)) {
-    return build_fa(state);
-  }
   if (match_ia(ty)) {
     return build_ia(state);
   }
+  if (match_fa(ty)) {
+    return build_fa(state);
+  }
   if (match_i32(ty)) {
     return build_i32(state);
   }
@@ -1905,12 +1905,12 @@
 };
 
 const sem::Type* FiaFi32F16::Match(MatchState& state, const sem::Type* ty) const {
-  if (match_fa(ty)) {
-    return build_fa(state);
-  }
   if (match_ia(ty)) {
     return build_ia(state);
   }
+  if (match_fa(ty)) {
+    return build_fa(state);
+  }
   if (match_i32(ty)) {
     return build_i32(state);
   }
@@ -1948,12 +1948,12 @@
 };
 
 const sem::Type* FiaFiu32::Match(MatchState& state, const sem::Type* ty) const {
-  if (match_fa(ty)) {
-    return build_fa(state);
-  }
   if (match_ia(ty)) {
     return build_ia(state);
   }
+  if (match_fa(ty)) {
+    return build_fa(state);
+  }
   if (match_i32(ty)) {
     return build_i32(state);
   }
@@ -2533,8 +2533,8 @@
   TemplateNumberMatcher template_number_1_{1};
   TemplateNumberMatcher template_number_2_{2};
   Bool Bool_;
-  Fa Fa_;
   Ia Ia_;
+  Fa Fa_;
   I32 I32_;
   U32 U32_;
   F32 F32_;
@@ -2619,8 +2619,8 @@
     /* [0] */ &template_type_0_,
     /* [1] */ &template_type_1_,
     /* [2] */ &Bool_,
-    /* [3] */ &Fa_,
-    /* [4] */ &Ia_,
+    /* [3] */ &Ia_,
+    /* [4] */ &Fa_,
     /* [5] */ &I32_,
     /* [6] */ &U32_,
     /* [7] */ &F32_,
diff --git a/src/tint/resolver/intrinsic_table_test.cc b/src/tint/resolver/intrinsic_table_test.cc
index 02c97f7..b9f9d53 100644
--- a/src/tint/resolver/intrinsic_table_test.cc
+++ b/src/tint/resolver/intrinsic_table_test.cc
@@ -767,6 +767,22 @@
 )");
 }
 
+TEST_F(IntrinsicTableTest, MatchTypeConstructorImplicitMatFromVec) {
+    auto* af = create<sem::AbstractFloat>();
+    auto* vec2_ai = create<sem::Vector>(create<sem::AbstractInt>(), 2u);
+    auto* vec2_af = create<sem::Vector>(af, 2u);
+    auto* mat2x2_af = create<sem::Matrix>(vec2_af, 2u);
+    auto result = table->Lookup(CtorConvIntrinsic::kMat2x2, nullptr,
+                                utils::Vector{vec2_ai, vec2_ai}, Source{{12, 34}});
+    ASSERT_NE(result.target, nullptr);
+    EXPECT_TYPE(result.target->ReturnType(), mat2x2_af);
+    EXPECT_TRUE(result.target->Is<sem::TypeConstructor>());
+    ASSERT_EQ(result.target->Parameters().Length(), 2u);
+    EXPECT_TYPE(result.target->Parameters()[0]->Type(), vec2_af);
+    EXPECT_TYPE(result.target->Parameters()[1]->Type(), vec2_af);
+    EXPECT_NE(result.const_eval_fn, nullptr);
+}
+
 TEST_F(IntrinsicTableTest, MatchTypeConversion) {
     auto* i32 = create<sem::I32>();
     auto* vec3_i32 = create<sem::Vector>(i32, 3u);
