On 7/27/19 3:04 AM, Uros Bizjak wrote: > On Wed, Jul 24, 2019 at 12:43 PM Tejas Joshi <tejasjoshi9...@gmail.com> wrote: >> >> Hi. >> This is a patch that Uros suggested for roundeven expansion, here. >> Thanks for the heads up. >> <https://gcc.gnu.org/ml/gcc-patches/2019-07/msg01038.html> >> I have rerun the testsuite on the patch, it survives the regression >> tests and bootstraps on x86_64-linux-gnu. Note, patch to be applied on >> top of >> <https://gcc.gnu.org/ml/gcc-patches/2019-06/msg01828.html> >> >> Thanks, >> Tejas >> >> gcc/ChangeLog: >> >> 2019-07-24 Tejas Joshi <tejasjoshi9...@gmail.com> >> >> * builtins.c (mathfn_built_in_2): Change CASE_MATHFN to >> CASE_MATHFN_FLOATN for roundeven. >> * config/i386/i386.c (ix86_i387_mode_needed): Add case I387_ROUNDEVEN. >> (ix86_mode_needed): Likewise. >> (ix86_mode_after): Likewise. >> (ix86_mode_entry): Likewise. >> (ix86_mode_exit): Likewise. >> (ix86_emit_mode_set): Likewise. >> (emit_i387_cw_initialization): Add case I387_CW_ROUNDEVEN. >> * config/i386/i386.h (ix86_stack_slot) : Add SLOT_CW_ROUNDEVEN. >> (ix86_entry): Add I387_ROUNDEVEN. >> (avx_u128_state): Add I387_CW_ANY. >> * config/i386/i386.md: Define UNSPEC_FRNDINT_ROUNDEVEN. >> (define_int_iterator): Likewise. >> (define_int_attr): Likewise for rounding_insn, rounding and ROUNDING. >> (define_constant): Define ROUND_ROUNDEVEN mode. >> (define_attr): Add roundeven mode for i387_cw. >> (<rouding_insn><mode>2): Add condition for ROUND_ROUNDEVEN. >> * internal-fn.def (ROUNDEVEN): New builtin function. >> * optabs.def (roundeven_optab): New optab. >> > > LGTM for the x86 part, but you are mixing middle-end changes in the > patch, so you also need an OK from a middle-end maintainer. I think the middle end bits are fine too.
Jeff