diff --git a/compiler/GHC/Driver/DynFlags.hs b/compiler/GHC/Driver/DynFlags.hs
index 63f2ec15875b992a3a38b93fff2672f537102ca0..55a11df38b877732c6b923b22877b26e125984b8 100644
--- a/compiler/GHC/Driver/DynFlags.hs
+++ b/compiler/GHC/Driver/DynFlags.hs
@@ -699,7 +699,8 @@ defaultDynFlags mySettings =
         avx512er = False,
         avx512f = False,
         avx512pf = False,
-        fma = False,
+        -- Use FMA by default on AArch64
+        fma = (platformArch . sTargetPlatform $ mySettings) == ArchAArch64,
 
         maxInlineAllocSize = 128,
         maxInlineMemcpyInsns = 32,
diff --git a/docs/users_guide/using.rst b/docs/users_guide/using.rst
index 10b793bd85af8706fc9673a893fdc2aa722d64d6..0c9cb898d04f285d873b7f4e0ce50f4d4a4964b2 100644
--- a/docs/users_guide/using.rst
+++ b/docs/users_guide/using.rst
@@ -1415,7 +1415,7 @@ messages and in GHCi:
 
     The structure of the output is described by a `JSON Schema <https://json-schema.org/>`_.
     The schema can be downloaded :download:`here <diagnostics-as-json-schema-1_0.json>`.
-    
+
 .. ghc-flag:: -fdiagnostics-color=⟨always|auto|never⟩
     :shortdesc: Use colors in error messages
     :type: dynamic
@@ -1761,6 +1761,8 @@ Some flags only make sense for particular target platforms.
     :type: dynamic
     :category: platform-options
 
+    :default: off by default, except for Aarch64 where it's on by default.
+
     :since: 9.8.1
 
     Use native FMA instructions to implement the fused multiply-add floating-point