diff --git a/library/constant_time_impl.h b/library/constant_time_impl.h
index afec89422..513f146f9 100644
--- a/library/constant_time_impl.h
+++ b/library/constant_time_impl.h
@@ -331,42 +331,6 @@ static inline unsigned char mbedtls_ct_uchar_in_range_if(unsigned char low,
     return (unsigned char) (~(low_mask | high_mask)) & to;
 }
 
-static inline int mbedtls_ct_int_if(mbedtls_ct_condition_t condition, int if1, int if0)
-{
-    /*
-     * Use memcpy to avoid unsigned-to-signed conversion UB.
-     *
-     * Although this looks inefficient, in practice (for gcc and clang),
-     * the sizeof test is eliminated at compile-time, and identical code is generated
-     * as for mbedtls_ct_uint_if (for -Os and -O1 or higher).
-     */
-    int result;
-    if (sizeof(int) <= sizeof(unsigned int)) {
-        unsigned int uif1 = 0, uif0 = 0;
-        memcpy(&uif1, &if1, sizeof(if1));
-        memcpy(&uif0, &if0, sizeof(if0));
-        unsigned int uresult = mbedtls_ct_uint_if(condition, uif1, uif0);
-        memcpy(&result, &uresult, sizeof(result));
-    } else {
-        mbedtls_ct_memcpy_if(condition, (unsigned char *) &result, (const unsigned char *) &if1,
-                             (const unsigned char *) &if0, sizeof(result));
-    }
-    return result;
-}
-
-static inline int mbedtls_ct_int_if_else_0(mbedtls_ct_condition_t condition, int if1)
-{
-    if (sizeof(int) <= sizeof(unsigned int)) {
-        unsigned int uif1 = 0;
-        memcpy(&uif1, &if1, sizeof(if1));
-        unsigned int uresult = mbedtls_ct_uint_if_else_0(condition, uif1);
-        int result;
-        memcpy(&result, &uresult, sizeof(result));
-        return result;
-    } else {
-        return mbedtls_ct_int_if(condition, if1, 0);
-    }
-}
 
 /* ============================================================================
  * Everything below here is trivial wrapper functions
diff --git a/library/constant_time_internal.h b/library/constant_time_internal.h
index 604268e33..d3d8945d1 100644
--- a/library/constant_time_internal.h
+++ b/library/constant_time_internal.h
@@ -411,34 +411,6 @@ static inline unsigned char mbedtls_ct_uchar_in_range_if(unsigned char low,
                                                          unsigned char c,
                                                          unsigned char t);
 
-/** Choose between two int values.
- *
- * Functionally equivalent to:
- *
- * condition ? if1 : if0.
- *
- * \param condition     Condition to test.
- * \param if1           Value to use if \p condition == MBEDTLS_CT_TRUE.
- * \param if0           Value to use if \p condition == MBEDTLS_CT_FALSE.
- *
- * \return  \c if1 if \p condition == MBEDTLS_CT_TRUE, otherwise \c if0.
- */
-static inline int mbedtls_ct_int_if(mbedtls_ct_condition_t condition, int if1, int if0);
-
-/** Choose between an int value and 0.
- *
- * Functionally equivalent to:
- *
- * condition ? if1 : 0.
- *
- * Functionally equivalent to mbedtls_ct_int_if(condition, if1, 0).
- *
- * \param condition     Condition to test.
- * \param if1           Value to use if \p condition == MBEDTLS_CT_TRUE.
- *
- * \return  \c if1 if \p condition == MBEDTLS_CT_TRUE, otherwise 0.
- */
-static inline int mbedtls_ct_int_if_else_0(mbedtls_ct_condition_t condition, int if1);
 
 /* ============================================================================
  * Block memory operations