https://gcc.gnu.org/bugzilla/show_bug.cgi?id=102464
--- Comment #6 from Hongtao.liu <crazylht at gmail dot com> --- (In reply to Hongtao.liu from comment #5) > (gdb) p direct_internal_fn_supported_p (IFN_CEIL, type, OPTIMIZE_FOR_BOTH) > $110 = false > > (gdb) p direct_internal_fn_supported_p (IFN_SQRT, type, OPTIMIZE_FOR_BOTH) > $111 = true > > hmm, why? Hmm, Because in ix86_optab_supported_p, we have case rint_optab: if ((SSE_FLOAT_MODE_P (mode1) && TARGET_SSE_MATH && !flag_trapping_math && !TARGET_SSE4_1)) return opt_type == OPTIMIZE_FOR_SPEED; return true; case floor_optab: case ceil_optab: case btrunc_optab: if ((SSE_FLOAT_MODE_P (mode1) && TARGET_SSE_MATH && !flag_trapping_math && TARGET_SSE4_1) return true; return opt_type == OPTIMIZE_FOR_SPEED;