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