diff --git a/compiler/GHC/CmmToLlvm.hs b/compiler/GHC/CmmToLlvm.hs
index f82dbf258a008529bae6cb245858c1b217a3e21f..11079c2cf267ddb9f357493d1b9d4dcf00ac3ed3 100644
--- a/compiler/GHC/CmmToLlvm.hs
+++ b/compiler/GHC/CmmToLlvm.hs
@@ -64,8 +64,8 @@ llvmCodeGen logger dflags h cmm_stream
          let doWarn = wopt Opt_WarnUnsupportedLlvmVersion dflags
          when (not (llvmVersionSupported ver) && doWarn) $ putMsg logger $
            "You are using an unsupported version of LLVM!" $$
-           "Currently only" <+> text (llvmVersionStr supportedLlvmVersionMin) <+>
-           "to" <+> text (llvmVersionStr supportedLlvmVersionMax) <+> "is supported." <+>
+           "Currently only" <+> text (llvmVersionStr supportedLlvmVersionLowerBound) <+>
+           "to" <+> text (llvmVersionStr supportedLlvmVersionUpperBound) <+> "is supported." <+>
            "System LLVM version: " <> text (llvmVersionStr ver) $$
            "We will try though..."
          let isS390X = platformArch (targetPlatform dflags) == ArchS390X
@@ -78,7 +78,7 @@ llvmCodeGen logger dflags h cmm_stream
        -- currently don't use the LLVM version to guide code generation
        -- so this is okay.
        let llvm_ver :: LlvmVersion
-           llvm_ver = fromMaybe supportedLlvmVersionMin mb_ver
+           llvm_ver = fromMaybe supportedLlvmVersionLowerBound mb_ver
 
        -- run code generation
        a <- runLlvm logger dflags llvm_ver bufh $
diff --git a/compiler/GHC/CmmToLlvm/Base.hs b/compiler/GHC/CmmToLlvm/Base.hs
index 60779be4aba2adf1494394d29cb44768f8520334..2095e3d606a491388cfee54fd68257321f8b5583 100644
--- a/compiler/GHC/CmmToLlvm/Base.hs
+++ b/compiler/GHC/CmmToLlvm/Base.hs
@@ -15,7 +15,7 @@ module GHC.CmmToLlvm.Base (
         LiveGlobalRegs,
         LlvmUnresData, LlvmData, UnresLabel, UnresStatic,
 
-        LlvmVersion, supportedLlvmVersionMin, supportedLlvmVersionMax,
+        LlvmVersion, supportedLlvmVersionLowerBound, supportedLlvmVersionUpperBound,
         llvmVersionSupported, parseLlvmVersion,
         llvmVersionStr, llvmVersionList,
 
@@ -263,7 +263,6 @@ llvmPtrBits platform = widthInBits $ typeWidth $ gcWord platform
 -- * Llvm Version
 --
 
--- Newtype to avoid using the Eq instance!
 newtype LlvmVersion = LlvmVersion { llvmVersionNE :: NE.NonEmpty Int }
   deriving (Eq, Ord)
 
@@ -281,14 +280,17 @@ parseLlvmVersion =
       where
         (ver_str, rest) = span isDigit s
 
--- | The LLVM Version that is currently supported.
-supportedLlvmVersionMin, supportedLlvmVersionMax :: LlvmVersion
-supportedLlvmVersionMin = LlvmVersion (sUPPORTED_LLVM_VERSION_MIN NE.:| [])
-supportedLlvmVersionMax = LlvmVersion (sUPPORTED_LLVM_VERSION_MAX NE.:| [])
+-- | The (inclusive) lower bound on the LLVM Version that is currently supported.
+supportedLlvmVersionLowerBound :: LlvmVersion
+supportedLlvmVersionLowerBound = LlvmVersion (sUPPORTED_LLVM_VERSION_MIN NE.:| [])
+
+-- | The (not-inclusive) upper bound  bound on the LLVM Version that is currently supported.
+supportedLlvmVersionUpperBound :: LlvmVersion
+supportedLlvmVersionUpperBound = LlvmVersion (sUPPORTED_LLVM_VERSION_MAX NE.:| [])
 
 llvmVersionSupported :: LlvmVersion -> Bool
 llvmVersionSupported v =
-  v > supportedLlvmVersionMin && v <= supportedLlvmVersionMax
+  v >= supportedLlvmVersionLowerBound && v < supportedLlvmVersionUpperBound
 
 llvmVersionStr :: LlvmVersion -> String
 llvmVersionStr = intercalate "." . map show . llvmVersionList
diff --git a/compiler/GHC/SysTools/Tasks.hs b/compiler/GHC/SysTools/Tasks.hs
index 6fec3a8839c22b4fa1912826d45235cb23f925e6..7c1ea332cfae3ba0a9bbf5b2921aa4d783c10f5f 100644
--- a/compiler/GHC/SysTools/Tasks.hs
+++ b/compiler/GHC/SysTools/Tasks.hs
@@ -14,7 +14,7 @@ import GHC.Platform
 import GHC.ForeignSrcLang
 import GHC.IO (catchException)
 
-import GHC.CmmToLlvm.Base (LlvmVersion, llvmVersionStr, supportedLlvmVersionMin, supportedLlvmVersionMax, llvmVersionStr, parseLlvmVersion)
+import GHC.CmmToLlvm.Base (LlvmVersion, llvmVersionStr, supportedLlvmVersionLowerBound, supportedLlvmVersionUpperBound, llvmVersionStr, parseLlvmVersion)
 
 import GHC.SysTools.Process
 import GHC.SysTools.Info
@@ -236,10 +236,11 @@ figureLlvmVersion logger dflags = traceToolCommand logger "llc" $ do
                 errorMsg logger $ vcat
                     [ text "Warning:", nest 9 $
                           text "Couldn't figure out LLVM version!" $$
-                          text ("Make sure you have installed LLVM between "
-                                ++ llvmVersionStr supportedLlvmVersionMin
+                          text ("Make sure you have installed LLVM between ["
+                                ++ llvmVersionStr supportedLlvmVersionLowerBound
                                 ++ " and "
-                                ++ llvmVersionStr supportedLlvmVersionMax) ]
+                                ++ llvmVersionStr supportedLlvmVersionUpperBound
+                                ++ ")") ]
                 return Nothing)
 
 
diff --git a/configure.ac b/configure.ac
index e3763055ec930f8f681d9b472e618565a388e273..38de5953b6ddc1c0c58a5f8f606f8b54679ace56 100644
--- a/configure.ac
+++ b/configure.ac
@@ -724,8 +724,8 @@ AC_SUBST(InstallNameToolCmd)
 # tools we are looking for. In the past, GHC supported a number of
 # versions of LLVM simultaneously, but that stopped working around
 # 3.5/3.6 release of LLVM.
-LlvmMinVersion=10
-LlvmMaxVersion=12 # inclusive
+LlvmMinVersion=9  # inclusive
+LlvmMaxVersion=13 # not inclusive
 AC_SUBST([LlvmMinVersion])
 AC_SUBST([LlvmMaxVersion])
 sUPPORTED_LLVM_VERSION_MIN=$(echo \($LlvmMinVersion\) | sed 's/\./,/')
diff --git a/m4/find_llvm_prog.m4 b/m4/find_llvm_prog.m4
index 79a6a502a50c36097a2d45b476da2f94818f3b6b..dc620ae4706c3e7946266f746ed266f86cf0a4df 100644
--- a/m4/find_llvm_prog.m4
+++ b/m4/find_llvm_prog.m4
@@ -24,7 +24,7 @@ AC_DEFUN([FIND_LLVM_PROG],[
             [AC_MSG_RESULT(no)
              $1=""
              AC_MSG_NOTICE([We only support llvm $3 to $4 (found $PROG_VERSION).])],
-            [AX_COMPARE_VERSION([$PROG_VERSION], [gt], [$4],
+            [AX_COMPARE_VERSION([$PROG_VERSION], [ge], [$4],
              [AC_MSG_RESULT(no)
               $1=""
               AC_MSG_NOTICE([We only support llvm $3 to $4 (found $PROG_VERSION).])],