diff --git a/library/core/src/intrinsics.rs b/library/core/src/intrinsics.rs
index 5274262ded2..9ca29b81c7d 100644
--- a/library/core/src/intrinsics.rs
+++ b/library/core/src/intrinsics.rs
@@ -846,6 +846,12 @@ extern "rust-intrinsic" {
/// destination value, then forgets the original. It's equivalent to C's
/// `memcpy` under the hood, just like `transmute_copy`.
///
+ /// Because `transmute` is a by-value operation, alignment of the *transmuted values
+ /// themselves* is not a concern. As with any other function, the compiler already ensures
+ /// both `T` and `U` are properly aligned. However, when transmuting values that *point
+ /// elsewhere* (such as pointers, references, boxes…), the caller has to ensure proper
+ /// alignment of the pointed-to values.
+ ///
/// `transmute` is **incredibly** unsafe. There are a vast number of ways to
/// cause [undefined behavior][ub] with this function. `transmute` should be
/// the absolute last resort.
@@ -965,7 +971,13 @@ extern "rust-intrinsic" {
/// assert_eq!(b"Rust", &[82, 117, 115, 116]);
/// ```
///
- /// Turning a `Vec<&T>` into a `Vec