This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.
| Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
|---|---|---|
| Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |
| Other format: | [Raw text] | |
These 2 patches implement Intel MNI intrinsics and fix the 64bit SSE3 intrinsics. The corresponding assembler change is at http://sourceware.org/ml/binutils/2006-02/msg00322.html H.J. ---- gcc/ 2005-11-17 H.J. Lu <hongjiu.lu@intel.com> PR target/24879 * config/i386/i386.c (ix86_init_mmx_sse_builtins): Add void_ftype_di_di and void_ftype_pcvoid_di_di. Use void_ftype_di_di on __builtin_ia32_mwait and void_ftype_pcvoid_di_di on __builtin_ia32_monitor for 64bit. (ix86_expand_builtin): Support 64bit monitor and mwait. * config/i386/pmmintrin.h (_mm_monitor): Remove macro. Use inline function. (_mm_mwait): Likewise. * config/i386/sse.md (sse3_mwait): Make it 32bit only. (sse3_mwait64): New. 64bit mwait. (sse3_monitor): Make it 32bit only. (sse3_monitor64): New. 64bit monitor. gcc/testsuite/ 2005-11-17 H.J. Lu <hongjiu.lu@intel.com> PR target/24879 * gcc.target/i386/monitor.c: New file. 2006-02-24 H.J. Lu <hongjiu.lu@intel.com> * config.gcc (i[34567]86-*-*): Add tmmintrin.h to extra_headers. (x86_64-*-*): Likewise. * config/i386/i386.c (pta_flags): Add PTA_MNI. (override_options): Check MNI. (ix86_builtins): Add IX86_BUILTIN_PHADDW, IX86_BUILTIN_PHADDD, IX86_BUILTIN_PHADDSW, IX86_BUILTIN_PHSUBW, IX86_BUILTIN_PHSUBD, IX86_BUILTIN_PHSUBSW, IX86_BUILTIN_PMADDUBSW, IX86_BUILTIN_PMULHRSW, IX86_BUILTIN_PSHUFB, IX86_BUILTIN_PSIGNB, IX86_BUILTIN_PSIGNW, IX86_BUILTIN_PSIGND, IX86_BUILTIN_PALIGNR, IX86_BUILTIN_PABSB, IX86_BUILTIN_PABSW, IX86_BUILTIN_PABSD, IX86_BUILTIN_PHADDW128, IX86_BUILTIN_PHADDD128, IX86_BUILTIN_PHADDSW128, IX86_BUILTIN_PHSUBW128, IX86_BUILTIN_PHSUBD128, IX86_BUILTIN_PHSUBSW128, IX86_BUILTIN_PMADDUBSW128, IX86_BUILTIN_PMULHRSW128, IX86_BUILTIN_PSHUFB128, IX86_BUILTIN_PSIGNB128, IX86_BUILTIN_PSIGNW128, IX86_BUILTIN_PSIGND128, IX86_BUILTIN_PALIGNR128, IX86_BUILTIN_PABSB128, IX86_BUILTIN_PABSW128 and IX86_BUILTIN_PABSD128. (bdesc_2arg): Add MNI. (bdesc_1arg): Likewise. (ix86_init_mmx_sse_builtins): Support MNI. (ix86_expand_builtin): Likewise. * config/i386/i386.h (TARGET_CPU_CPP_BUILTINS): Likewise. * config/i386/i386.md (UNSPEC_LDQQU): Renamed to ... (UNSPEC_LDDQU): This. (UNSPEC_PSHUFB): New. (UNSPEC_PSIGN): Likewise. (UNSPEC_PALIGNR): Likewise. Include mmx.md before sse.md. * config/i386/i386.opt: Add -mmni. * config/i386/sse.md (sse3_lddqu): Updated. (mni_phaddwv8hi3): New pattern for MNI. (mni_phaddwv4hi3): Likewise. (mni_phadddv4si3): Likewise. (mni_phadddv2si3): Likewise. (mni_phaddswv8hi3): Likewise. (mni_phaddswv4hi3): Likewise. (mni_phsubwv8hi3): Likewise. (mni_phsubwv4hi3): Likewise. (mni_phsubdv4si3): Likewise. (mni_phsubdv2si3): Likewise. (mni_phsubswv8hi3): Likewise. (mni_phsubswv4hi3): Likewise. (mni_pmaddubswv8hi3): Likewise. (mni_pmaddubswv4hi3): Likewise. (mni_pmulhrswv8hi3): Likewise. (mni_pmulhrswv4hi3): Likewise. (mni_pshufbv16qi3): Likewise. (mni_pshufbv8qi3): Likewise. (mni_psign<mode>3): Likewise. (mni_psign<mode>3): Likewise. (mni_palignrti): Likewise. (mni_palignrdi): Likewise. (mni_pabs<mode>2): Likewise. (mni_pabs<mode>2): Likewise. * config/i386/tmmintrin.h: New file. * doc/extend.texi: Document MNI built-in functions. * doc/invoke.texi: Document -mmni/-mno-mni switches.
Attachment:
gcc-x86-sse3-64bit-7.patch
Description: Text document
Attachment:
gcc-4.1-mni-2.patch
Description: Text document
| Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
|---|---|---|
| Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |