diff --git a/docs/archive/LangRefNew.rst b/docs/archive/LangRefNew.rst
index 21fb5523d82c6..bd486e9fd88c9 100644
--- a/docs/archive/LangRefNew.rst
+++ b/docs/archive/LangRefNew.rst
@@ -1424,7 +1424,7 @@ into every file. Its declarations can only be found by dot
syntax. It provides access to a small number of primitive representation
types and operations defined over them that map directly to LLVM IR.
-The existance of and details of this module are a private implementation detail
+The existence of and details of this module are a private implementation detail
used by our implementation of the standard library. Swift code outside the
standard library should not be aware of this library, and an independent
implementation of the swift standard library should be allowed to be
diff --git a/test/SILPasses/functionsigopts_sroa.sil b/test/SILPasses/functionsigopts_sroa.sil
index 4e72aa3baf427..38563342e4f8d 100644
--- a/test/SILPasses/functionsigopts_sroa.sil
+++ b/test/SILPasses/functionsigopts_sroa.sil
@@ -188,7 +188,7 @@ bb0(%0 : $S1):
return %9999 : $()
}
-// This test checks where we have a multiple level heirarchy, the root is dead,
+// This test checks where we have a multiple level hierarchy, the root is dead,
// but the root has all fields used. This means that we should extract
// everything, but we should not "reform" the aggregate.
// CHECK-LABEL: sil [fragile] [thunk] @multiple_level_all_root_fields_used_callee : $@convention(thin) (S2) -> (Builtin.Int16, Builtin.Int64) {
diff --git a/test/decl/var/usage.swift b/test/decl/var/usage.swift
index 5ce87625960e8..d56e9bfc00858 100644
--- a/test/decl/var/usage.swift
+++ b/test/decl/var/usage.swift
@@ -140,7 +140,7 @@ func testTuple() {
tup.x = 1
// QoI: 'variable was never mutated' noisy when only part of a destructured tuple is mutated
- var (tupA, tupB) = (1,2) // don't warn about tupB being changable to a 'let'.
+ var (tupA, tupB) = (1,2) // don't warn about tupB being changeable to a 'let'.
tupA += tupB
}