i386: Add mask2 to builtin_description
authorHongtao Liu <hongtao.liu@intel.com>
Tue, 22 Jan 2019 16:20:25 +0000 (16:20 +0000)
committerH.J. Lu <hjl@gcc.gnu.org>
Tue, 22 Jan 2019 16:20:25 +0000 (08:20 -0800)
commit83f6f4e5f42e74459ceaa17ad45e45983afae100
treee77999ca9377f96ef83847cfb1ac39090af7911c
parent4c6b09810beee144208acfd097fee6f796961e94
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.liu@intel.com>
    H.J. Lu  <hongjiu.lu@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.

Co-Authored-By: H.J. Lu <hongjiu.lu@intel.com>
From-SVN: r268155
gcc/ChangeLog
gcc/config/i386/i386-builtin.def
gcc/config/i386/i386.c