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;

Reply via email to