diff -Naurd mpfr-4.1.0-a/PATCHES mpfr-4.1.0-b/PATCHES
--- mpfr-4.1.0-a/PATCHES	2021-03-09 13:58:00.889650773 +0000
+++ mpfr-4.1.0-b/PATCHES	2021-03-09 13:58:00.937650249 +0000
@@ -0,0 +1 @@
+tset_sij
diff -Naurd mpfr-4.1.0-a/VERSION mpfr-4.1.0-b/VERSION
--- mpfr-4.1.0-a/VERSION	2021-03-09 13:55:43.223158508 +0000
+++ mpfr-4.1.0-b/VERSION	2021-03-09 13:58:00.937650249 +0000
@@ -1 +1 @@
-4.1.0-p10
+4.1.0-p11
diff -Naurd mpfr-4.1.0-a/src/mpfr.h mpfr-4.1.0-b/src/mpfr.h
--- mpfr-4.1.0-a/src/mpfr.h	2021-03-09 13:55:43.223158508 +0000
+++ mpfr-4.1.0-b/src/mpfr.h	2021-03-09 13:58:00.933650293 +0000
@@ -27,7 +27,7 @@
 #define MPFR_VERSION_MAJOR 4
 #define MPFR_VERSION_MINOR 1
 #define MPFR_VERSION_PATCHLEVEL 0
-#define MPFR_VERSION_STRING "4.1.0-p10"
+#define MPFR_VERSION_STRING "4.1.0-p11"
 
 /* User macros:
    MPFR_USE_FILE:        Define it to make MPFR define functions dealing
diff -Naurd mpfr-4.1.0-a/src/version.c mpfr-4.1.0-b/src/version.c
--- mpfr-4.1.0-a/src/version.c	2021-03-09 13:55:43.223158508 +0000
+++ mpfr-4.1.0-b/src/version.c	2021-03-09 13:58:00.933650293 +0000
@@ -25,5 +25,5 @@
 const char *
 mpfr_get_version (void)
 {
-  return "4.1.0-p10";
+  return "4.1.0-p11";
 }
diff -Naurd mpfr-4.1.0-a/tests/tset_si.c mpfr-4.1.0-b/tests/tset_si.c
--- mpfr-4.1.0-a/tests/tset_si.c	2020-03-26 11:51:33.000000000 +0000
+++ mpfr-4.1.0-b/tests/tset_si.c	2021-03-09 13:58:00.917650467 +0000
@@ -127,27 +127,29 @@
              power of 2 is exact, unless underflow/overflow occurs.
              The tests on the exponent below avoid integer overflows
              (ep[i] may take extreme values). */
-          e = mpfr_get_exp (x1);
           mpfr_clear_flags ();
-          if (j != 0 && ep[i] < __gmpfr_emin - e)  /* underflow */
+          if (j == 0)
+            goto zero;
+          e = MPFR_GET_EXP (x1);
+          if (ep[i] < __gmpfr_emin - e)  /* underflow */
             {
               mpfr_rnd_t r =
                 (rnd == MPFR_RNDN &&
-                 (ep[i] < __gmpfr_emin - mpfr_get_exp (y) - 1 ||
+                 (ep[i] < __gmpfr_emin - MPFR_GET_EXP (y) - 1 ||
                   IS_POW2 (sign * j))) ?
                 MPFR_RNDZ : (mpfr_rnd_t) rnd;
               inex1 = mpfr_underflow (x1, r, sign);
               flags1 = __gmpfr_flags;
             }
-          else if (j != 0 && ep[i] > __gmpfr_emax - e)  /* overflow */
+          else if (ep[i] > __gmpfr_emax - e)  /* overflow */
             {
               inex1 = mpfr_overflow (x1, (mpfr_rnd_t) rnd, sign);
               flags1 = __gmpfr_flags;
             }
           else
             {
-              if (j != 0)
-                mpfr_set_exp (x1, ep[i] + e);
+              mpfr_set_exp (x1, ep[i] + e);
+            zero:
               flags1 = inex1 != 0 ? MPFR_FLAGS_INEXACT : 0;
             }
 
diff -Naurd mpfr-4.1.0-a/tests/tset_sj.c mpfr-4.1.0-b/tests/tset_sj.c
--- mpfr-4.1.0-a/tests/tset_sj.c	2020-06-01 10:39:52.000000000 +0000
+++ mpfr-4.1.0-b/tests/tset_sj.c	2021-03-09 13:58:00.917650467 +0000
@@ -225,27 +225,29 @@
                  power of 2 is exact, unless underflow/overflow occurs.
                  The tests on the exponent below avoid integer overflows
                  (ep[i] may take extreme values). */
-              e = mpfr_get_exp (x1);
               mpfr_clear_flags ();
-              if (j != 0 && ep[i] < __gmpfr_emin - e)  /* underflow */
+              if (j == 0)
+                goto zero;
+              e = MPFR_GET_EXP (x1);
+              if (ep[i] < __gmpfr_emin - e)  /* underflow */
                 {
                   mpfr_rnd_t r =
                     (rnd == MPFR_RNDN &&
-                     (ep[i] < __gmpfr_emin - mpfr_get_exp (y) - 1 ||
+                     (ep[i] < __gmpfr_emin - MPFR_GET_EXP (y) - 1 ||
                       IS_POW2 (sign * j))) ?
                     MPFR_RNDZ : (mpfr_rnd_t) rnd;
                   inex1 = mpfr_underflow (x1, r, sign);
                   flags1 = __gmpfr_flags;
                 }
-              else if (j != 0 && ep[i] > __gmpfr_emax - e)  /* overflow */
+              else if (ep[i] > __gmpfr_emax - e)  /* overflow */
                 {
                   inex1 = mpfr_overflow (x1, (mpfr_rnd_t) rnd, sign);
                   flags1 = __gmpfr_flags;
                 }
               else
                 {
-                  if (j != 0)
-                    mpfr_set_exp (x1, ep[i] + e);
+                  mpfr_set_exp (x1, ep[i] + e);
+                zero:
                   flags1 = inex1 != 0 ? MPFR_FLAGS_INEXACT : 0;
                 }
             }
