https://gcc.gnu.org/bugzilla/show_bug.cgi?id=88909

--- Comment #1 from hjl at gcc dot gnu.org <hjl at gcc dot gnu.org> ---
Author: hjl
Date: Tue Jan 22 16:20:25 2019
New Revision: 268155

URL: https://gcc.gnu.org/viewcvs?rev=268155&root=gcc&view=rev
Log:
i386: Add mask2 to builtin_description

There are

struct builtin_description
{
  const HOST_WIDE_INT mask;
  const enum insn_code icode;
  const char *const name;
  const enum ix86_builtins code;
  const enum rtx_code comparison;
  const int flag;
};

Since "mask" is used for both ix86_isa_flags and ix86_isa_flags2, buitins
with both flags can't be handled easily.  This patch adds mask2 to
builtin_description to handle it properly.

2019-01-22  Hongtao Liu  <hongtao....@intel.com>
            H.J. Lu  <hongjiu...@intel.com>

        PR target/88909
        * config/i386/i386-builtin.def: Add mask2 to all builtin
        initializations.  Merge ARGS2 and SPECIAL_ARGS2 into ARGS and
        SPECIAL_ARGS.
        * config/i386/i386.c (BDESC): Add mask2 to the definition.
        (BDESC_FIRST): Likewise.
        (define_builtin): Add an argument for mask2.  Updated to handle
        both ix86_isa_flags and ix86_isa_flags2.
        (define_builtin_const): Likewise.
        (define_builtin_pure): Likewise.
        (define_builtin2): Deleted.
        (define_builtin_const2): Likewise.
        (builtin_description): Add a member, mask2.
        (bdesc_*): Add mask2 to builtin initializations.
        (ix86_init_mmx_sse_builtins): Update calls to def_builtin,
        def_builtin_const and def_builtin_pure.  Remove SPECIAL_ARGS2
        support.
        (ix86_get_builtin_func_type): Remove SPECIAL_ARGS2 support.

Modified:
    trunk/gcc/ChangeLog
    trunk/gcc/config/i386/i386-builtin.def
    trunk/gcc/config/i386/i386.c

Reply via email to