diff --git a/CHANGELOG b/CHANGELOG
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -1,5 +1,14 @@
 # Changelog
 
+- 0.4.7 (2026-10-31)
+  * Bumps the ppad-fixed dependency to 0.2.1, which under the llvm
+    flag on x86_64 compiles ppad-fixed with LLVM's x86 cmov converter
+    off (-optlc=-x86-cmov-converter=false). This library is compiled
+    likewise, as ppad-fixed's constant-time arithmetic can be inlined
+    into it.
+
+  * Crypto.MAC.Poly1305.Arm is no longer exposed.
+
 - 0.4.6 (2026-08-01)
   * Merely bumps the ppad-fixed dependency.
 
diff --git a/ppad-poly1305.cabal b/ppad-poly1305.cabal
--- a/ppad-poly1305.cabal
+++ b/ppad-poly1305.cabal
@@ -1,6 +1,6 @@
 cabal-version:      3.0
 name:               ppad-poly1305
-version:            0.4.6
+version:            0.4.7
 synopsis:           A fast Poly1305 MAC
 license:            MIT
 license-file:       LICENSE
@@ -35,15 +35,21 @@
       -Wall
   if flag(llvm)
     ghc-options: -fllvm -O2
+  -- LLVM's x86 backend rewrites a cmov whose operand is a load as a
+  -- branch (its cmov converter), which would make the borrow-masked
+  -- correction of ppad-fixed's sub_mod# (inlinable here) a branch on
+  -- the borrow; keep the cmov.
+  if flag(llvm) && arch(x86_64)
+    ghc-options: -optlc=-x86-cmov-converter=false
   exposed-modules:
       Crypto.MAC.Poly1305
-      Crypto.MAC.Poly1305.Arm
   other-modules:
+      Crypto.MAC.Poly1305.Arm
       Data.Barrier
   build-depends:
       base >= 4.9 && < 5
     , bytestring >= 0.9 && < 0.13
-    , ppad-fixed >= 0.2 && < 0.3
+    , ppad-fixed >= 0.2.1 && < 0.3
   c-sources:
       cbits/poly1305_arm.c
   if arch(aarch64)
@@ -106,4 +112,3 @@
     , deepseq
     , ppad-poly1305
     , weigh
-
