From eb3e9f604784afbcd4fd641ad913e92b25effd0b Mon Sep 17 00:00:00 2001 From: Uros Bizjak Date: Mon, 22 Aug 2011 18:50:10 +0200 Subject: [PATCH] * ChangeLog: Fix and enhance ChangeLog entry. From-SVN: r177966 --- gcc/ChangeLog | 187 +++++++++++++++++++++----------------------------- 1 file changed, 79 insertions(+), 108 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 22363543afb..dd5531a702d 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -239,7 +239,7 @@ IX86_BUILTIN_GATHERSIV8SI, IX86_BUILTIN_GATHERDIV4SI, IX86_BUILTIN_GATHERDIV8SI. (ix86_preferred_simd_mode): Support AVX2 modes. - (ix86_expand_args_builtin): Support AVX2 built-ins. + (ix86_expand_args_builtin): Support AVX2 builtins. (ix86_expand_special_args_builtin): Likewise. (ix86_expand_builtin): Likewise. * config/i386/i386.md (UNSPEC_VPERMSI): New. @@ -252,7 +252,7 @@ * config/i386/immintrin.h: Include avx2intrin.h when __AVX2__ is defined. * config/i386/predicates.md (const1248_operand): New. - * config/i386/sse.md (VI_AVX2): + * config/i386/sse.md (VI_AVX2): New mode iterator. (VI1_AVX2): Likewise. (VI2_AVX2): Likewise. (VI4_AVX2): Likewise. @@ -261,111 +261,53 @@ (SSESCALARMODE): Likewise. (VI12_AVX2): Likewise. (VI24_AVX2): Likewise. - (VI124_AVX2): Likeuse_submit_for_speed = 1 - wise. + (VI124_AVX2): Likewise. (VI248_AVX2): Likewise. (VI48_AVX2): Likewise. (VI4SD_AVX2): Likewise. (V48_AVX2): Likewise. - (avx2modesuffix): Likewise. - (sse_avx2): Likewise. - (sse2_avx2): Likewise. + (AVX256MODE2P): Likewise. + (AVXMODE48P_DI): Likewise. + (sse2_avx2): New mode attribute. (ssse3_avx2): Likewise. (sse4_1_avx2): Likewise. (avx_avx2): Likewise. - (lshift): Likewise. - (lshift_insn): Likewise. - (lshift): Likewise. - (SSESHORTMODE): Likewise. - (SSELONGMODE): Likewise. - (SSEBYTEMODE): Likewise. + (ssebytemode): Likewise. (AVXTOSSEMODE): Likewise. - (shortmode): Likewise. - (ssescalarmodesuffix): Update. - (sseunpackmode): Likewise. - (ssepackmode): Likewise. - (AVX256MODEI): New. - (AVX256MODE124): Likewise. - (AVX256MODE1248): Likewise. - (AVX256MODE248): Likewise. - (AVXMODE48P_SI): Likewise. - (AVXMODE48P_SI): Likewise. - (AVXMODE48P_DI): Likewise. (AVXMODE48P_DI): Likewise. (gthrfirstp): Likewise. (gthrlastp): Likewise. - (avx2): Likwise. - (ssevecsize): Likewise. - (ssedoublesizemode): Likewise. - (avxvecmode): Likewise. - (avxvecsize): Likewise. - (avxhalfvecmode): Likewise. - (avxscalarmode): Likewise. - (avxpermvecmode): Likewise. - (avxmodesuffixp): Likewise. - (avxmodesuffix): Likewise. - (avx2_vec_dupv4sf): New. + (lshift): New code_iterator + (lshift): New code attribute. + (lshift): Likewise. + (ssescalarmodesuffix): Update. + (sseunpackmode): Likewise. + (ssepackmode): Likewise. + (avx2_vec_dupv4sf): New insn pattern. (avx2_vec_dupv8sf): Likewise. (avx2_interleave_highv4di): Likewise. (avx2_interleave_lowv4di): Likewise. - (3): Update. - (*3): Likewise. - (sse2_3): Rename to ... - ("_3): ... this. updated. - (*sse2_3): Likewise. - (*_3): Likewise. - (mulv8hi3): Likewise. - (mul3): Likewise. - (*mulv8hi3): Likewise. - (*mul3): Likewise. - (mulv8hi3_highpart): Likewise. - (mul3_highpart): Likewise. - (*mulv8hi3_highpart): Likewise. - (*mul3_highpart): Likewise. - (avx2_umulv4siv4di3): Likewise. - (*avx_umulv4siv4di3): Likewise. - (sse4_1_mulv2siv2di3): Likewise. - (_mul3): Likewise. - (*sse4_1_mulv2siv2di3): Likewise. - (*_mulv2siv2di3): Likewise. - (avx2_pmaddwd): New. + (avx2_umulv4siv4di3): Likewise + (*avx2_umulv4siv4di3): Likewise + (avx2_pmaddwd): Likewise. (*avx2_pmaddwd): Likewise. - (mulv4si3): Rename to ... - (mul3): ... this. Update. - (*sse4_1_mulv4si3): Likewise. - (*_mul3): Likewise. - (ashr3): Update. - (avx2_lshrqv4di3): New. - (lshr3): Update. - (avx2_lshlqv4di3): New. + (avx2_lshrqv4di3): Likewise. + (avx2_lshlqv4di3): Likewise. (avx2_lshl3): Likewise. - (sse2_ashlv1ti3): Rename to ... - (_ashl3): ... this. Update. - (avx2_3): New. - (*avx2_3): Likewise. - (avx2_3): New. - (*avx2_3): Likewise. + (avx2_3): Likewise. + (*avx2_3): Likewise. + (avx2_3): Likewise. + (*avx2_3): Likewise. (avx2_eq3): Likewise. (*avx2_eq3): Likewise. (avx2_gt3): Likewise. - (sse2_andnot3): Rename to ... - (_andnot3): ... this. Update. - (*andnot3): Update. - (3): Update. - (*3): Likewise. - (sse2_packsswb): Rename to ... - (_packsswb): ... this. Update. - (sse2_packssdw): Likewise. - (_packssdw): Likewise. - (sse2_packuswb): Likewise. - (_packuswb): Likewise. (avx2_interleave_highv32qi): New. (avx2_interleave_lowv32qi): Likewise. (avx2_interleave_highv16hi): Likewise. (avx2_interleave_lowv16hi): Likewise. (avx2_interleave_highv8si): Likewise. (avx2_interleave_lowv8si): Likewise. - (avx2_pshufd): New + (avx2_pshufd): Likewise. (avx2_pshufd_1): Likewise. (avx2_pshuflwv3): Likewise. (avx2_pshuflw_1): Likewise. @@ -375,9 +317,7 @@ (*avx2_uavgv32qi3): Likewise. (avx2_uavgv16hi3): Likewise. (*avx2_uavgv16hi3): Likewise. - (sse2_psadbw): Rename to ... - (_psadbw): ... this. Update. - (avx2_pmovmskb): New. + (avx2_pmovmskb): Likewise. (avx2_phaddwv16hi3): Likewise. (avx2_phadddv8si3): Likewise. (avx2_phaddswv16hi3): Likewise. @@ -387,23 +327,8 @@ (avx2_pmaddubsw256): Likewise. (avx2_umulhrswv16hi3): Likewise. (*avx2_umulhrswv16hi3): Likewise. - (ssse3_pshufbv16qi3): Rename to ... - (_pshufb3): ... this. Update. - (ssse3_psign3): Likewise. - (_psign3): Likewise. - (ssse3_palignrti): Likewise. - (_palignr): Likewise. - (abs2): Likewise. - (sse4_1_movntdqa): Rename to ... - (_movntdqa): ... this. Update. - (sse4_1_mpsadbw): Likewise. - (_mpsadbw): Likewise. - (avx2_packusdw): New. - (sse4_1_pblendvb): Rename to ... - (_pblendvb): ... this. Update. - (sse4_1_pblendw): Likewise. - (_pblendw): Likewise. - (avx2_pblendd): New. + (avx2_packusdw): Likewise. + (avx2_pblendd): Likewise. (avx2_v16qiv16hi2): Likewise. (avx2_v8qiv8si2): Likewise. (avx2_v8hiv8si2): Likewise. @@ -420,12 +345,7 @@ (avx2_vbroadcasti128_): Likewise. (avx2_vec_set_lo_v4di): Likewise. (avx2_vec_set_hi_v4di): Likewise. - (avx_maskload): Rename to ... - (_maskload): ... this. - Update. - (avx_maskstore): Likewise. - (_maskstore): Likewise. - (*avx2_maskmov): New. + (*avx2_maskmov): Likewise. (avx2_extracti128): Likewise. (avx2_inserti128): Likewise. (avx2_ashrvv8si): Likewise. @@ -439,6 +359,57 @@ (*avx2_gatherdi): Likewise. (avx2_gatherdi256): Likewise. (*avx2_gatherdi256): Likewise. + (*3): Update for AVX2. + (_3): Rename from + sse2_3. Use VI12_AVX2 mode iterator. + (*_3): Rename from + *sse2_3. Use VI12_AVX2 mode iterator. + (mul3): Rename from mulv8hi3. Use VI4_AVX2 mode iterator. + (*mul3): Rename from *mulv8hi3. Use VI4_AVX2 mode iterator. + Update for VI2_AVX2. + (mul3_highpart): Rename from mulv8hi3_highpart. + Use VI2_AVX2 mode iterator. + (*mul3_highpart): Rename from *mulv8hi3_highpart. + Use VI2_AVX2 mode iterator. Update for AVX2. + (*sse4_1_mulv2siv2di3): Update for AVX2. + (ashr3): Use VI24_AVX2 mode iterator. Update for AVX2. + (lshr3): Use VI248_AVX2 mode iterator. Update for AVX2. + (_ashl3): Rename from sse2_ashlv1ti3. Use VIMAX_AVX2 + mode iterator. Update for AVX2. + (_andnot3): Rename from sse2_andnot3. Use VI + mode iterator. + (*andnot3): Likewise. Update for AVX2. + (3): Use VI mode iterator. + (*3): Likewise. Update for AVX2. + (_packsswb): Rename from sse2_packsswb. + Use VI1_AVX mode iterator. Update for AVX2. + (_packssdw): Rename from sse2_packssdw. + Use VI2_AVX mode iterator. Update for AVX2. + (_packuswb): Rename from sse2_packsswb. + Use VI1_AVX mode iterator. Update for AVX2. + (_psadbw): Rename from sse2_psadbw. Use VI8_AVX2 + mode iterator. Update for AVX2. + (_pshufb3): Rename from ssse3_pshufbv16qi3. Use + Vi1_AVX2 mode iterator. Update for AVX2. + (_psign3): Rename from ssse3_psign3. Use + VI124_AVX2 mode iterator. Update for AVX2. + (_palignr): Rename from ssse3_palignrti. Use + SSESCALARMODE mode iterator. Update for AVX2. + (abs2): Use VI124_AVX2 mode iterator. Update for AVX2. + (_movntdqa): Rename from sse4_1_movntdqa. Use VI8_AVX2 + mode iterator. Update for AVX2. + (_mpsadbw): Rename from sse4_1_mpsadbw. Use VI1_AVX2 + mode iterator. Update for AVX2. + (_pblendvb): Rename from sse4_1_pblendvb. Use VI1_AVX2 + mode iterator. Update for AVX2. + (_pblendw): Rename from sse4_1_pblendvb. Use VI2_AVX2 + mode iterator. Update for AVX2. + (_maskload): Rename from + avx_maskload. Use VI48_AVX2 + mode iterator. + (_maskstore): Rename from + avx_maskstore. Use VI48_AVX2 + mode iterator. * doc/extend.texi: Document AVX2 built-in functions. * doc/invoke.texi: Document -mavx2.