+2011-08-22 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
+
+ * configure.ac (GCC_PICFLAG_FOR_TARGET): Call it.
+ (PICFLAG_FOR_TARGET): Substitute.
+ * aclocal.m4: Regenerate.
+ * configure: Regenerate.
+
+2011-08-22 Dodji Seketeli <dodji@redhat.com>
+
+ * c-family/c-pch.c (c_common_read_pch): Re-set line table right
+ after reading in the pch.
+
+2011-08-22 H.J. Lu <hongjiu.lu@intel.com>
+
+ * acinclude.m4 (gcc_AC_INITFINI_ARRAY): Error if __ELF__ isn't
+ defined.
+ * configure: Regenerated.
+
+2011-08-22 Jakub Jelinek <jakub@redhat.com>
+
+ PR tree-optimization/50133
+ * tree-vect-stmts.c (vect_finish_stmt_generation): Copy location
+ from stmt instead of some statement around gsi.
+
+ PR middle-end/50141
+ * expr.c (get_bit_range): Only use DECL_THREAD_LOCAL_P if
+ innerdecl is a VAR_DECL.
+
+2011-08-22 Kirill Yukhin <kirill.yukhin@intel.com>
+
+ * config/i386/avx2intrin.h: New file.
+ * config/i386/i386-builtin-types.def (PCINT, PCINT64, PV4SI,
+ PV8SI, V32QI_FTYPE_V32QI, V32QI_FTYPE_V16QI, V16HI_FTYPE_V16HI,
+ V16HI_FTYPE_V8HI, V8SI_FTYPE_V8SI, V16HI_FTYPE_V16QI,
+ V8SI_FTYPE_V16QI, V4DI_FTYPE_V16QI, V8SI_FTYPE_V8HI,
+ V4DI_FTYPE_V8HI, V4DI_FTYPE_V4SI, V4DI_FTYPE_PV4DI,
+ V4DI_FTYPE_V2DI, V2DI_FTYPE_PCV2DI_V2DI, V4SI_FTYPE_PCV4SI_V4SI,
+ V32QI_FTYPE_V16HI_V16HI, V16HI_FTYPE_V8SI_V8SI,
+ V32QI_FTYPE_V32QI_V32QI, V16HI_FTYPE_V32QI_V32QI,
+ V16HI_FTYPE_V16HI_V8HI, V16HI_FTYPE_V16HI_V16HI,
+ V16HI_FTYPE_V16HI_INT, V16HI_FTYPE_V16HI_SI,
+ V16HI_FTYPE_V16HI_V16HI_INT, V32QI_FTYPE_V32QI_V32QI_INT,
+ V8SI_FTYPE_V8SI_V4SI, V8SI_FTYPE_V8SI_V8SI,
+ V8SI_FTYPE_V16HI_V16HI, V8SI_FTYPE_V8SI_INT, V8SI_FTYPE_V8SI_SI,
+ V8SI_FTYPE_PCV8SI_V8SI, V4DI_FTYPE_V4DI_V4DI,
+ V4DI_FTYPE_V8SI_V8SI, V4DI_FTYPE_V4DI_V2DI,
+ V4DI_FTYPE_PCV4DI_V4DI, V4DI_FTYPE_V4DI_INT,
+ V2DI_FTYPE_V4DI_INT, V4DI_FTYPE_V4DI_V4DI_INT,
+ V4DI_FTYPE_V4DI_V2DI_INT, VOID_FTYPE_PV2DI_V2DI_V2DI,
+ VOID_FTYPE_PV4DI_V4DI_V4DI, VOID_FTYPE_PV4SI_V4SI_V4SI,
+ VOID_FTYPE_PV8SI_V8SI_V8SI,
+ V2DF_FTYPE_V2DF_PCDOUBLE_V4SI_V2DF_INT,
+ V4DF_FTYPE_V4DF_PCDOUBLE_V4SI_V4DF_INT,
+ V2DF_FTYPE_V2DF_PCDOUBLE_V2DI_V2DF_INT,
+ V4DF_FTYPE_V4DF_PCDOUBLE_V4DI_V4DF_INT,
+ V4SF_FTYPE_V4SF_PCFLOAT_V4SI_V4SF_INT,
+ V8SF_FTYPE_V8SF_PCFLOAT_V8SI_V8SF_INT,
+ V4SF_FTYPE_V4SF_PCFLOAT_V2DI_V4SF_INT,
+ V4SF_FTYPE_V4SF_PCFLOAT_V4DI_V4SF_INT,
+ V2DI_FTYPE_V2DI_PCINT64_V4SI_V2DI_INT,
+ V4DI_FTYPE_V4DI_PCINT64_V4SI_V4DI_INT,
+ V2DI_FTYPE_V2DI_PCINT64_V2DI_V2DI_INT,
+ V4DI_FTYPE_V4DI_PCINT64_V4DI_V4DI_INT,
+ V4SI_FTYPE_V4SI_PCINT_V4SI_V4SI_INT,
+ V8SI_FTYPE_V8SI_PCINT_V8SI_V8SI_INT,
+ V4SI_FTYPE_V4SI_PCINT_V2DI_V4SI_INT,
+ V4SI_FTYPE_V4SI_PCINT_V4DI_V4SI_INT,
+ V16HI_FTYPE_V16HI_SI_COUNT, V16HI_FTYPE_V16HI_V8HI_COUNT,
+ V8SI_FTYPE_V8SI_SI_COUNT, V8SI_FTYPE_V8SI_V4SI_COUNT,
+ V4DI_FTYPE_V4DI_INT_COUNT, V4DI_FTYPE_V4DI_V2DI_COUNT,
+ V4DI_FTYPE_V4DI_INT_CONVERT,
+ V4DI_FTYPE_V4DI_V4DI_INT_CONVERT): New.
+ * config/i386/i386.c (ix86_builtins): Add IX86_BUILTIN_MPSADBW256,
+ IX86_BUILTIN_PABSB256, IX86_BUILTIN_PABSW256,
+ IX86_BUILTIN_PABSD256, IX86_BUILTIN_PACKSSDW256,
+ IX86_BUILTIN_PACKSSWB256, IX86_BUILTIN_PACKUSDW256,
+ IX86_BUILTIN_PACKUSWB256, IX86_BUILTIN_PADDB256,
+ IX86_BUILTIN_PADDW256, IX86_BUILTIN_PADDD256,
+ IX86_BUILTIN_PADDQ256, IX86_BUILTIN_PADDSB256,
+ IX86_BUILTIN_PADDSW256, IX86_BUILTIN_PADDUSB256,
+ IX86_BUILTIN_PADDUSW256, IX86_BUILTIN_PALIGNR256,
+ IX86_BUILTIN_AND256I, IX86_BUILTIN_ANDNOT256I,
+ IX86_BUILTIN_PAVGB256, IX86_BUILTIN_PAVGW256,
+ IX86_BUILTIN_PBLENDVB256, IX86_BUILTIN_PBLENDVW256,
+ IX86_BUILTIN_PCMPEQB256, IX86_BUILTIN_PCMPEQW256,
+ IX86_BUILTIN_PCMPEQD256, IX86_BUILTIN_PCMPEQQ256,
+ IX86_BUILTIN_PCMPGTB256, IX86_BUILTIN_PCMPGTW256,
+ IX86_BUILTIN_PCMPGTD256, IX86_BUILTIN_PCMPGTQ256,
+ IX86_BUILTIN_PHADDW256, IX86_BUILTIN_PHADDD256,
+ IX86_BUILTIN_PHADDSW256, IX86_BUILTIN_PHSUBW256,
+ IX86_BUILTIN_PHSUBD256, IX86_BUILTIN_PHSUBSW256,
+ IX86_BUILTIN_PMADDUBSW256, IX86_BUILTIN_PMADDWD256,
+ IX86_BUILTIN_PMAXSB256, IX86_BUILTIN_PMAXSW256,
+ IX86_BUILTIN_PMAXSD256, IX86_BUILTIN_PMAXUB256,
+ IX86_BUILTIN_PMAXUW256, IX86_BUILTIN_PMAXUD256,
+ IX86_BUILTIN_PMINSB256, IX86_BUILTIN_PMINSW256,
+ IX86_BUILTIN_PMINSD256, IX86_BUILTIN_PMINUB256,
+ IX86_BUILTIN_PMINUW256, IX86_BUILTIN_PMINUD256,
+ IX86_BUILTIN_PMOVMSKB256, IX86_BUILTIN_PMOVSXBW256,
+ IX86_BUILTIN_PMOVSXBD256, IX86_BUILTIN_PMOVSXBQ256,
+ IX86_BUILTIN_PMOVSXWD256, IX86_BUILTIN_PMOVSXWQ256,
+ IX86_BUILTIN_PMOVSXDQ256, IX86_BUILTIN_PMOVZXBW256,
+ IX86_BUILTIN_PMOVZXBD256, IX86_BUILTIN_PMOVZXBQ256,
+ IX86_BUILTIN_PMOVZXWD256, IX86_BUILTIN_PMOVZXWQ256,
+ IX86_BUILTIN_PMOVZXDQ256, IX86_BUILTIN_PMULDQ256,
+ IX86_BUILTIN_PMULHRSW256, IX86_BUILTIN_PMULHUW256,
+ IX86_BUILTIN_PMULHW256, IX86_BUILTIN_PMULLW256,
+ IX86_BUILTIN_PMULLD256, IX86_BUILTIN_PMULUDQ256,
+ IX86_BUILTIN_POR256, IX86_BUILTIN_PSADBW256,
+ IX86_BUILTIN_PSHUFB256, IX86_BUILTIN_PSHUFD256,
+ IX86_BUILTIN_PSHUFHW256, IX86_BUILTIN_PSHUFLW256,
+ IX86_BUILTIN_PSIGNB256, IX86_BUILTIN_PSIGNW256,
+ IX86_BUILTIN_PSIGND256, IX86_BUILTIN_PSLLDQI256,
+ IX86_BUILTIN_PSLLWI256, IX86_BUILTIN_PSLLW256,
+ IX86_BUILTIN_PSLLDI256, IX86_BUILTIN_PSLLD256,
+ IX86_BUILTIN_PSLLQI256, IX86_BUILTIN_PSLLQ256,
+ IX86_BUILTIN_PSRAWI256, IX86_BUILTIN_PSRAW256,
+ IX86_BUILTIN_PSRADI256, IX86_BUILTIN_PSRAD256,
+ IX86_BUILTIN_PSRLDQI256, IX86_BUILTIN_PSRLWI256,
+ IX86_BUILTIN_PSRLW256, IX86_BUILTIN_PSRLDI256,
+ IX86_BUILTIN_PSRLD256, IX86_BUILTIN_PSRLQI256,
+ IX86_BUILTIN_PSRLQ256, IX86_BUILTIN_PSUBB256,
+ IX86_BUILTIN_PSUBW256, IX86_BUILTIN_PSUBD256,
+ IX86_BUILTIN_PSUBQ256, IX86_BUILTIN_PSUBSB256,
+ IX86_BUILTIN_PSUBSW256, IX86_BUILTIN_PSUBUSB256,
+ IX86_BUILTIN_PSUBUSW256, IX86_BUILTIN_PUNPCKHBW256,
+ IX86_BUILTIN_PUNPCKHWD256, IX86_BUILTIN_PUNPCKHDQ256,
+ IX86_BUILTIN_PUNPCKHQDQ256, IX86_BUILTIN_PUNPCKLBW256,
+ IX86_BUILTIN_PUNPCKLWD256, IX86_BUILTIN_PUNPCKLDQ256,
+ IX86_BUILTIN_PUNPCKLQDQ256, IX86_BUILTIN_PXOR256,
+ IX86_BUILTIN_MOVNTDQA256, IX86_BUILTIN_VBROADCASTSS_PS,
+ IX86_BUILTIN_VBROADCASTSS_PS256,
+ IX86_BUILTIN_VBROADCASTSD_PD256,
+ IX86_BUILTIN_VBROADCASTSI256, IX86_BUILTIN_PBLENDD256,
+ IX86_BUILTIN_PBLENDD128, IX86_BUILTIN_PBROADCASTB256,
+ IX86_BUILTIN_PBROADCASTW256, IX86_BUILTIN_PBROADCASTD256,
+ IX86_BUILTIN_PBROADCASTQ256, IX86_BUILTIN_PBROADCASTB128,
+ IX86_BUILTIN_PBROADCASTW128, IX86_BUILTIN_PBROADCASTD128,
+ IX86_BUILTIN_PBROADCASTQ128, IX86_BUILTIN_VPERMVARSI256,
+ IX86_BUILTIN_VPERMDF256, IX86_BUILTIN_VPERMVARSF256,
+ IX86_BUILTIN_VPERMDI256, IX86_BUILTIN_VPERMTI256,
+ IX86_BUILTIN_VEXTRACT128I256, IX86_BUILTIN_VINSERT128I256,
+ IX86_BUILTIN_MASKLOADD, IX86_BUILTIN_MASKLOADQ,
+ IX86_BUILTIN_MASKLOADD256, IX86_BUILTIN_MASKLOADQ256,
+ IX86_BUILTIN_MASKSTORED, IX86_BUILTIN_MASKSTOREQ,
+ IX86_BUILTIN_MASKSTORED256, IX86_BUILTIN_MASKSTOREQ256,
+ IX86_BUILTIN_PSLLVV4DI, IX86_BUILTIN_PSLLVV2DI,
+ IX86_BUILTIN_PSLLVV8SI, IX86_BUILTIN_PSLLVV4SI,
+ IX86_BUILTIN_PSRAVV8SI, IX86_BUILTIN_PSRAVV4SI,
+ IX86_BUILTIN_PSRLVV4DI, IX86_BUILTIN_PSRLVV2DI,
+ IX86_BUILTIN_PSRLVV8SI, IX86_BUILTIN_PSRLVV4SI,
+ IX86_BUILTIN_GATHERSIV2DF, IX86_BUILTIN_GATHERSIV4DF,
+ IX86_BUILTIN_GATHERDIV2DF, IX86_BUILTIN_GATHERDIV4DF,
+ IX86_BUILTIN_GATHERSIV4SF, IX86_BUILTIN_GATHERSIV8SF,
+ IX86_BUILTIN_GATHERDIV4SF, IX86_BUILTIN_GATHERDIV8SF,
+ IX86_BUILTIN_GATHERSIV2DI, IX86_BUILTIN_GATHERSIV4DI,
+ IX86_BUILTIN_GATHERDIV2DI, IX86_BUILTIN_GATHERDIV4DI,
+ IX86_BUILTIN_GATHERSIV4SI, IX86_BUILTIN_GATHERSIV8SI,
+ IX86_BUILTIN_GATHERDIV4SI, IX86_BUILTIN_GATHERDIV8SI.
+ (bdesc_special_args): Add IX86_BUILTIN_MOVNTDQA256,
+ IX86_BUILTIN_MASKLOADD, IX86_BUILTIN_MASKLOADQ,
+ IX86_BUILTIN_MASKLOADD256, IX86_BUILTIN_MASKLOADQ256,
+ IX86_BUILTIN_MASKSTORED, IX86_BUILTIN_MASKSTOREQ,
+ IX86_BUILTIN_MASKSTORED256, IX86_BUILTIN_MASKSTOREQ256.
+ (bdesc_args): Add IX86_BUILTIN_MPSADBW256,
+ IX86_BUILTIN_PABSB256, IX86_BUILTIN_PABSW256,
+ IX86_BUILTIN_PABSD256, IX86_BUILTIN_PACKSSDW256,
+ IX86_BUILTIN_PACKSSWB256, IX86_BUILTIN_PACKUSDW256,
+ IX86_BUILTIN_PACKUSWB256, IX86_BUILTIN_PADDB256,
+ IX86_BUILTIN_PADDW256, IX86_BUILTIN_PADDD256,
+ IX86_BUILTIN_PADDQ256, IX86_BUILTIN_PADDSB256,
+ IX86_BUILTIN_PADDSW256, IX86_BUILTIN_PADDUSB256,
+ IX86_BUILTIN_PADDUSW256, IX86_BUILTIN_PALIGNR256,
+ IX86_BUILTIN_AND256I, IX86_BUILTIN_ANDNOT256I,
+ IX86_BUILTIN_PAVGB256, IX86_BUILTIN_PAVGW256,
+ IX86_BUILTIN_PBLENDVB256, IX86_BUILTIN_PBLENDVW256,
+ IX86_BUILTIN_PCMPEQB256, IX86_BUILTIN_PCMPEQW256,
+ IX86_BUILTIN_PCMPEQD256, IX86_BUILTIN_PCMPEQQ256,
+ IX86_BUILTIN_PCMPGTB256, IX86_BUILTIN_PCMPGTW256,
+ IX86_BUILTIN_PCMPGTD256, IX86_BUILTIN_PCMPGTQ256,
+ IX86_BUILTIN_PHADDW256, IX86_BUILTIN_PHADDD256,
+ IX86_BUILTIN_PHADDSW256, IX86_BUILTIN_PHSUBW256,
+ IX86_BUILTIN_PHSUBD256, IX86_BUILTIN_PHSUBSW256,
+ IX86_BUILTIN_PMADDUBSW256, IX86_BUILTIN_PMADDWD256,
+ IX86_BUILTIN_PMAXSB256, IX86_BUILTIN_PMAXSW256,
+ IX86_BUILTIN_PMAXSD256, IX86_BUILTIN_PMAXUB256,
+ IX86_BUILTIN_PMAXUW256, IX86_BUILTIN_PMAXUD256,
+ IX86_BUILTIN_PMINSB256, IX86_BUILTIN_PMINSW256,
+ IX86_BUILTIN_PMINSD256, IX86_BUILTIN_PMINUB256,
+ IX86_BUILTIN_PMINUW256, IX86_BUILTIN_PMINUD256,
+ IX86_BUILTIN_PMOVMSKB256, IX86_BUILTIN_PMOVSXBW256,
+ IX86_BUILTIN_PMOVSXBD256, IX86_BUILTIN_PMOVSXBQ256,
+ IX86_BUILTIN_PMOVSXWD256, IX86_BUILTIN_PMOVSXWQ256,
+ IX86_BUILTIN_PMOVSXDQ256, IX86_BUILTIN_PMOVZXBW256,
+ IX86_BUILTIN_PMOVZXBD256, IX86_BUILTIN_PMOVZXBQ256,
+ IX86_BUILTIN_PMOVZXWD256, IX86_BUILTIN_PMOVZXWQ256,
+ IX86_BUILTIN_PMOVZXDQ256, IX86_BUILTIN_PMULDQ256,
+ IX86_BUILTIN_PMULHRSW256, IX86_BUILTIN_PMULHUW256,
+ IX86_BUILTIN_PMULHW256, IX86_BUILTIN_PMULLW256,
+ IX86_BUILTIN_PMULLD256, IX86_BUILTIN_PMULUDQ256,
+ IX86_BUILTIN_POR256, IX86_BUILTIN_PSADBW256,
+ IX86_BUILTIN_PSHUFB256, IX86_BUILTIN_PSHUFD256,
+ IX86_BUILTIN_PSHUFHW256, IX86_BUILTIN_PSHUFLW256,
+ IX86_BUILTIN_PSIGNB256, IX86_BUILTIN_PSIGNW256,
+ IX86_BUILTIN_PSIGND256, IX86_BUILTIN_PSLLDQI256,
+ IX86_BUILTIN_PSLLWI256, IX86_BUILTIN_PSLLW256,
+ IX86_BUILTIN_PSLLDI256, IX86_BUILTIN_PSLLD256,
+ IX86_BUILTIN_PSLLQI256, IX86_BUILTIN_PSLLQ256,
+ IX86_BUILTIN_PSRAWI256, IX86_BUILTIN_PSRAW256,
+ IX86_BUILTIN_PSRADI256, IX86_BUILTIN_PSRAD256,
+ IX86_BUILTIN_PSRLDQI256, IX86_BUILTIN_PSRLWI256,
+ IX86_BUILTIN_PSRLW256, IX86_BUILTIN_PSRLDI256,
+ IX86_BUILTIN_PSRLD256, IX86_BUILTIN_PSRLQI256,
+ IX86_BUILTIN_PSRLQ256, IX86_BUILTIN_PSUBB256,
+ IX86_BUILTIN_PSUBW256, IX86_BUILTIN_PSUBD256,
+ IX86_BUILTIN_PSUBQ256, IX86_BUILTIN_PSUBSB256,
+ IX86_BUILTIN_PSUBSW256, IX86_BUILTIN_PSUBUSB256,
+ IX86_BUILTIN_PSUBUSW256, IX86_BUILTIN_PUNPCKHBW256,
+ IX86_BUILTIN_PUNPCKHWD256, IX86_BUILTIN_PUNPCKHDQ256,
+ IX86_BUILTIN_PUNPCKHQDQ256, IX86_BUILTIN_PUNPCKLBW256,
+ IX86_BUILTIN_PUNPCKLWD256, IX86_BUILTIN_PUNPCKLDQ256,
+ IX86_BUILTIN_PUNPCKLQDQ256, IX86_BUILTIN_PXOR256,
+ IX86_BUILTIN_VBROADCASTSS_PS, IX86_BUILTIN_VBROADCASTSS_PS256,
+ IX86_BUILTIN_VBROADCASTSD_PD256,
+ IX86_BUILTIN_VBROADCASTSI256, IX86_BUILTIN_PBLENDD256,
+ IX86_BUILTIN_PBLENDD128, IX86_BUILTIN_PBROADCASTB256,
+ IX86_BUILTIN_PBROADCASTW256, IX86_BUILTIN_PBROADCASTD256,
+ IX86_BUILTIN_PBROADCASTQ256, IX86_BUILTIN_PBROADCASTB128,
+ IX86_BUILTIN_PBROADCASTW128, IX86_BUILTIN_PBROADCASTD128,
+ IX86_BUILTIN_PBROADCASTQ128, IX86_BUILTIN_VPERMVARSI256,
+ IX86_BUILTIN_VPERMDF256, IX86_BUILTIN_VPERMVARSF256,
+ IX86_BUILTIN_VPERMDI256, IX86_BUILTIN_VPERMTI256,
+ IX86_BUILTIN_VEXTRACT128I256, IX86_BUILTIN_VINSERT128I256,
+ IX86_BUILTIN_PSLLVV4DI, IX86_BUILTIN_PSLLVV2DI,
+ IX86_BUILTIN_PSLLVV8SI, IX86_BUILTIN_PSLLVV4SI,
+ IX86_BUILTIN_PSRAVV8SI, IX86_BUILTIN_PSRAVV4SI,
+ IX86_BUILTIN_PSRLVV4DI, IX86_BUILTIN_PSRLVV2DI,
+ IX86_BUILTIN_PSRLVV8SI, IX86_BUILTIN_PSRLVV4SI.
+ (ix86_init_mmx_sse_builtins): Add IX86_BUILTIN_GATHERSIV2DF,
+ IX86_BUILTIN_GATHERSIV4DF, IX86_BUILTIN_GATHERDIV2DF,
+ IX86_BUILTIN_GATHERDIV4DF, IX86_BUILTIN_GATHERSIV4SF,
+ IX86_BUILTIN_GATHERSIV8SF, IX86_BUILTIN_GATHERDIV4SF,
+ IX86_BUILTIN_GATHERDIV8SF, IX86_BUILTIN_GATHERSIV2DI,
+ IX86_BUILTIN_GATHERSIV4DI, IX86_BUILTIN_GATHERDIV2DI,
+ IX86_BUILTIN_GATHERDIV4DI, IX86_BUILTIN_GATHERSIV4SI,
+ IX86_BUILTIN_GATHERSIV8SI, IX86_BUILTIN_GATHERDIV4SI,
+ IX86_BUILTIN_GATHERDIV8SI.
+ (ix86_preferred_simd_mode): Support AVX2 modes.
+ (ix86_expand_args_builtin): Support AVX2 builtins.
+ (ix86_expand_special_args_builtin): Likewise.
+ (ix86_expand_builtin): Likewise.
+ * config/i386/i386.md (UNSPEC_VPERMSI): New.
+ (UNSPEC_VPERMDF): Likewise.
+ (UNSPEC_VPERMSF): Likewise.
+ (UNSPEC_VPERMDI): Likewise.
+ (UNSPEC_VPERMTI): Likewise.
+ (UNSPEC_GATHER): Likewise.
+ (ssemodesuffix): Extend.
+ * config/i386/immintrin.h: Include avx2intrin.h when __AVX2__
+ is defined.
+ * config/i386/predicates.md (const1248_operand): New.
+ * config/i386/sse.md (VI_AVX2): New mode iterator.
+ (VI1_AVX2): Likewise.
+ (VI2_AVX2): Likewise.
+ (VI4_AVX2): Likewise.
+ (VI8_AVX2): Likewise.
+ (VIMAX_AVX2): Likewise.
+ (SSESCALARMODE): Likewise.
+ (VI12_AVX2): Likewise.
+ (VI24_AVX2): Likewise.
+ (VI124_AVX2): Likewise.
+ (VI248_AVX2): Likewise.
+ (VI48_AVX2): Likewise.
+ (VI4SD_AVX2): Likewise.
+ (V48_AVX2): Likewise.
+ (AVX256MODE2P): Likewise.
+ (AVXMODE48P_DI): Likewise.
+ (sse2_avx2): New mode attribute.
+ (ssse3_avx2): Likewise.
+ (sse4_1_avx2): Likewise.
+ (avx_avx2): Likewise.
+ (ssebytemode): Likewise.
+ (AVXTOSSEMODE): Likewise.
+ (AVXMODE48P_DI): Likewise.
+ (gthrfirstp): Likewise.
+ (gthrlastp): Likewise.
+ (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.
+ (avx2_umulv4siv4di3): Likewise
+ (*avx2_umulv4siv4di3): Likewise
+ (avx2_pmaddwd): Likewise.
+ (*avx2_pmaddwd): Likewise.
+ (avx2_lshrqv4di3): Likewise.
+ (avx2_lshlqv4di3): Likewise.
+ (avx2_lshl<mode>3): Likewise.
+ (avx2_<umaxmin:code><mode>3): Likewise.
+ (*avx2_<umaxmin:code><mode>3): Likewise.
+ (avx2_<smaxmin:code><mode>3): Likewise.
+ (*avx2_<smaxmin:code><mode>3): Likewise.
+ (avx2_eq<mode>3): Likewise.
+ (*avx2_eq<mode>3): Likewise.
+ (avx2_gt<mode>3): 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): Likewise.
+ (avx2_pshufd_1): Likewise.
+ (avx2_pshuflwv3): Likewise.
+ (avx2_pshuflw_1): Likewise.
+ (avx2_pshufhwv3): Likewise.
+ (avx2_pshufhw_1): Likewise.
+ (avx2_uavgv32qi3): Likewise.
+ (*avx2_uavgv32qi3): Likewise.
+ (avx2_uavgv16hi3): Likewise.
+ (*avx2_uavgv16hi3): Likewise.
+ (avx2_pmovmskb): Likewise.
+ (avx2_phaddwv16hi3): Likewise.
+ (avx2_phadddv8si3): Likewise.
+ (avx2_phaddswv16hi3): Likewise.
+ (avx2_phsubwv16hi3): Likewise.
+ (avx2_phsubdv8si3): Likewise.
+ (avx2_phsubswv16hi3): Likewise.
+ (avx2_pmaddubsw256): Likewise.
+ (avx2_umulhrswv16hi3): Likewise.
+ (*avx2_umulhrswv16hi3): Likewise.
+ (avx2_packusdw): Likewise.
+ (avx2_pblendd<mode>): Likewise.
+ (avx2_<code>v16qiv16hi2): Likewise.
+ (avx2_<code>v8qiv8si2): Likewise.
+ (avx2_<code>v8hiv8si2): Likewise.
+ (avx2_<code>v4qiv4di2): Likewise.
+ (avx2_<code>v4hiv4di2): Likewise.
+ (avx2_<code>v4siv4di2): Likewise.
+ (avx2_pbroadcast<mode>): Likewise.
+ (avx2_permvarv8si): Likewise.
+ (avx2_permv4df): Likewise.
+ (avx2_permvarv8sf): Likewise.
+ (avx2_permv4di): Likewise.
+ (avx2_permv2ti): Likewise.
+ (avx2_vec_dupv4df): Likewise.
+ (avx2_vbroadcasti128_<mode>): Likewise.
+ (avx2_vec_set_lo_v4di): Likewise.
+ (avx2_vec_set_hi_v4di): Likewise.
+ (*avx2_maskmov<avx2modesuffix><avxmodesuffix>): Likewise.
+ (avx2_extracti128): Likewise.
+ (avx2_inserti128): Likewise.
+ (avx2_ashrvv8si): Likewise.
+ (avx2_ashrvv4si): Likewise.
+ (avx2_<lshift>vv8si): Likewise.
+ (avx2_<lshift>v<mode>): Likewise.
+ (avx2_<lshift>vv2di): Likewise.
+ (avx2_gathersi<mode>): Likewise.
+ (*avx2_gathersi<mode>): Likewise.
+ (avx2_gatherdi<mode>): Likewise.
+ (*avx2_gatherdi<mode>): Likewise.
+ (avx2_gatherdi<mode>256): Likewise.
+ (*avx2_gatherdi<mode>256): Likewise.
+ (*<plusminus_insn><mode>3): Update for AVX2.
+ (<sse2_avx2>_<plusminus_insn><mode>3): Rename from
+ sse2_<plusminus_insn><mode>3. Use VI12_AVX2 mode iterator.
+ (*<sse2_avx2>_<plusminus_insn><mode>3): Rename from
+ *sse2_<plusminus_insn><mode>3. Use VI12_AVX2 mode iterator.
+ (mul<mode>3): Rename from mulv8hi3. Use VI4_AVX2 mode iterator.
+ (*mul<mode>3): Rename from *mulv8hi3. Use VI4_AVX2 mode iterator.
+ Update for VI2_AVX2.
+ (<s>mul<mode>3_highpart): Rename from <s>mulv8hi3_highpart.
+ Use VI2_AVX2 mode iterator.
+ (*<s>mul<mode>3_highpart): Rename from *<s>mulv8hi3_highpart.
+ Use VI2_AVX2 mode iterator. Update for AVX2.
+ (*sse4_1_mulv2siv2di3): Update for AVX2.
+ (ashr<mode>3): Use VI24_AVX2 mode iterator. Update for AVX2.
+ (lshr<mode>3): Use VI248_AVX2 mode iterator. Update for AVX2.
+ (<sse2_avx2>_ashl<mode>3): Rename from sse2_ashlv1ti3. Use VIMAX_AVX2
+ mode iterator. Update for AVX2.
+ (<sse2_avx2>_andnot<mode>3): Rename from sse2_andnot<mode>3. Use VI
+ mode iterator.
+ (*andnot<mode>3): Likewise. Update for AVX2.
+ (<any_logic:code><mode>3): Use VI mode iterator.
+ (*<any_logic:code><mode>3): Likewise. Update for AVX2.
+ (<sse2_avx2>_packsswb): Rename from sse2_packsswb.
+ Use VI1_AVX mode iterator. Update for AVX2.
+ (<sse2_avx2>_packssdw): Rename from sse2_packssdw.
+ Use VI2_AVX mode iterator. Update for AVX2.
+ (<sse2_avx2>_packuswb): Rename from sse2_packsswb.
+ Use VI1_AVX mode iterator. Update for AVX2.
+ (<sse2_avx2>_psadbw): Rename from sse2_psadbw. Use VI8_AVX2
+ mode iterator. Update for AVX2.
+ (<ssse3_avx2>_pshufb<mode>3): Rename from ssse3_pshufbv16qi3. Use
+ Vi1_AVX2 mode iterator. Update for AVX2.
+ (<ssse3_avx2>_psign<mode>3): Rename from ssse3_psign<mode>3. Use
+ VI124_AVX2 mode iterator. Update for AVX2.
+ (<ssse3_avx2>_palignr<mode>): Rename from ssse3_palignrti. Use
+ SSESCALARMODE mode iterator. Update for AVX2.
+ (abs<mode>2): Use VI124_AVX2 mode iterator. Update for AVX2.
+ (<sse4_1_avx2>_movntdqa): Rename from sse4_1_movntdqa. Use VI8_AVX2
+ mode iterator. Update for AVX2.
+ (<sse4_1_avx2>_mpsadbw): Rename from sse4_1_mpsadbw. Use VI1_AVX2
+ mode iterator. Update for AVX2.
+ (<sse4_1_avx2>_pblendvb): Rename from sse4_1_pblendvb. Use VI1_AVX2
+ mode iterator. Update for AVX2.
+ (<sse4_1_avx2>_pblendw): Rename from sse4_1_pblendvb. Use VI2_AVX2
+ mode iterator. Update for AVX2.
+ (<avx_avx2>_maskload<avx2modesuffix><avxmodesuffix>): Rename from
+ avx_maskload<ssemodesuffix><avxsizesuffix>. Use VI48_AVX2
+ mode iterator.
+ (<avx_avx2>_maskstore<avx2modesuffix><avxmodesuffix>): Rename from
+ avx_maskstore<ssemodesuffix><avxsizesuffix>. Use VI48_AVX2
+ mode iterator.
+ * doc/extend.texi: Document AVX2 built-in functions.
+ * doc/invoke.texi: Document -mavx2.
+
+2011-08-22 Matthias Klose <doko@debian.org>
+
+ Revert:
+ 2011-07-11 Arthur Loiret <aloiret@debian.org>
+ Matthias Klose <doko@debian.org>
+ * config/mips/t-linux64 (MULTILIB_DIRNAMES): Set to 'n32 . 64' if
+ tm_defines contains MIPS_ABI_DEFAULT ABI_32, to follow the glibc
+ convention.
+ * config.gcc (tm_defines): Add MIPS_ABI_DEFAULT=ABI_32.
+
+2011-08-22 Mikael Pettersson <mikpe@it.uu.se>
+
+ PR bootstrap/50146
+ * ira-color.c (assign_hard_reg): Move saved_nregs declaration
+ to #ifndef HONOR_REG_ALLOC_ORDER block.
+
+2011-08-21 Richard Henderson <rth@redhat.com>
+
+ * rtl.h (INSN_ANNULLED_BRANCH_P): Only allow JUMP_INSN.
+ * dwarf2cfi.c (scan_trace): Test JUMP_P before INSN_ANNULLED_BRANCH_P.
+ * resource.c (next_insn_no_annul): Likewise.
+ (mark_set_resources): Likewise.
+ * reorg.c (delete_from_delay_slot): Likewise.
+ (dbr_schedule, redundant_insn, try_merge_delay_insns): Likewise.
+ (get_branch_condition): Test pc_rtx and LABEL_REF before dereferencing.
+
+2011-08-21 Uros Bizjak <ubizjak@gmail.com>
+
+ * config/i386/i386.md (any_div): Remove.
+ (sgnprefix): Update for removal.
+ (u): Ditto.
+
+2011-08-20 Vladimir Makarov <vmakarov@redhat.com>
+
+ * ira-lives.c (mark_pseudo_regno_subword_live): Use allocno class
+ for ira_reg_class_max_nregs. Increase pressure by 1.
+ (mark_pseudo_regno_subword_dead): Use allocno class
+ for ira_reg_class_max_nregs.
+
+2011-08-20 Richard Henderson <rth@redhat.com>
+
+ * config/c6x/eqd.c, config/c6x/eqf.c, config/c6x/ged.c,
+ config/c6x/gef.c, config/c6x/gtd.c, config/c6x/gtf.c,
+ config/c6x/led.c, config/c6x/lef.c, config/c6x/ltd.c,
+ config/c6x/ltf.c: Adjust include path for soft-fp.
+
+2011-08-20 H.J. Lu <hongjiu.lu@intel.com>
+
+ PR other/46770
+ * config.gcc (tm_file): Add initfini-array.h if
+ .init_arrary/.fini_array are supported.
+
+ * crtstuff.c: Don't generate .ctors nor .dtors sections if
+ USE_INITFINI_ARRAY is defined.
+
+ * output.h (default_elf_init_array_asm_out_constructor): New.
+ (default_elf_fini_array_asm_out_destructor): Likewise.
+ * varasm.c (elf_init_array_section): Likewise.
+ (elf_fini_array_section): Likewise.
+ (get_elf_initfini_array_priority_section): Likewise.
+ (default_elf_init_array_asm_out_constructor): Likewise.
+ (default_elf_fini_array_asm_out_destructor): Likewise.
+
+ * config/initfini-array.h: New.
+
+2011-08-20 Richard Sandiford <rdsandiford@googlemail.com>
+
+ * config/mips/mips.c (mips_class_max_nregs): Check that the mode is
+ OK for ST_REGS and FP_REGS before taking those classes into account.
+
+2011-08-20 Richard Sandiford <rdsandiford@googlemail.com>
+
+ * config/mips/mips.c (mips_reorg_process_insns): Check for jumps
+ before checking for annulled branches.
+
+2011-08-20 Uros Bizjak <ubizjak@gmail.com>
+
+ * config/i386/i386.c (ix86_binary_operator_ok): Use
+ satisfies_constraint_L.
+
+2011-08-20 Uros Bizjak <ubizjak@gmail.com>
+ Michael Matz <matz@suse.de>
+
+ * config/i386/i386.c (ix86_expand_round_sse4): Expand as
+ trunc (a + copysign (nextafter (0.5, 0.0), a)).
+
+2011-08-20 Anatoly Sokolov <aesok@post.ru>
+
+ * doc/tm.texi.in (PREFERRED_OUTPUT_RELOAD_CLASS): Remove.
+ * doc/tm.texi: Regenerate.
+ * targhooks.c (default_preferred_output_reload_class): Don't use
+ PREFERRED_OUTPUT_RELOAD_CLASS macro.
+ * system.h (PREFERRED_OUTPUT_RELOAD_CLASS): Poison.
+
+2011-08-20 Jakub Jelinek <jakub@redhat.com>
+
+ PR tree-optimization/48739
+ * tree-ssa.c: Include cfgloop.h.
+ (execute_update_addresses_taken): When updating ssa, if in loop closed
+ SSA form, call rewrite_into_loop_closed_ssa instead of update_ssa.
+ * Makefile.in (tree-ssa.o): Depend on $(CFGLOOP_H).
+
+2011-08-19 Vladimir Makarov <vmakarov@redhat.com>
+
+ PR rtl-optimization/49936
+ * ira.c (ira_init_register_move_cost): Ignore too small subclasses
+ for calculation of max register move costs.
+
+2011-08-19 Joseph Myers <joseph@codesourcery.com>
+
+ * c-parser.c (c_parser_postfix_expression): Convert operands of
+ __builtin_complex to their semantic types.
+
+2011-08-19 H.J. Lu <hongjiu.lu@intel.com>
+
+ PR middle-end/49721
+ * explow.c (convert_memory_address_addr_space): Also permute the
+ conversion and addition of constant for zero-extend.
+
+2011-08-19 Joseph Myers <joseph@codesourcery.com>
+
+ * c-parser.c (c_parser_postfix_expression): Handle RID_BUILTIN_COMPLEX.
+ * doc/extend.texi (__builtin_complex): Document.
+
+2011-08-19 Andrew Stubbs <ams@codesourcery.com>
+
+ * tree-ssa-math-opts.c (is_widening_mult_rhs_p): Handle constants
+ beyond conversions.
+ (convert_mult_to_widen): Convert constant inputs to the right type.
+ (convert_plusminus_to_widen): Don't automatically reject inputs that
+ are not an SSA_NAME.
+ Convert constant inputs to the right type.
+
+2011-08-19 Andrew Stubbs <ams@codesourcery.com>
+
+ * tree-ssa-math-opts.c (convert_plusminus_to_widen): Convert add_rhs
+ to the correct type.
+
+2011-08-19 Andrew Stubbs <ams@codesourcery.com>
+
+ * tree-ssa-math-opts.c (convert_mult_to_widen): Better handle
+ unsigned inputs of different modes.
+ (convert_plusminus_to_widen): Likewise.
+
+2011-08-19 Andrew Stubbs <ams@codesourcery.com>
+
+ * tree-ssa-math-opts.c (is_widening_mult_rhs_p): Add new argument
+ 'type'.
+ Use 'type' from caller, not inferred from 'rhs'.
+ Don't reject non-conversion statements. Do return lhs in this case.
+ (is_widening_mult_p): Add new argument 'type'.
+ Use 'type' from caller, not inferred from 'stmt'.
+ Pass type to is_widening_mult_rhs_p.
+ (convert_mult_to_widen): Pass type to is_widening_mult_p.
+ (convert_plusminus_to_widen): Likewise.
+
+2011-08-19 Andrew Stubbs <ams@codesourcery.com>
+
+ * tree-ssa-math-opts.c (is_widening_mult_p): Remove FIXME.
+ Ensure the the larger type is the first operand.
+
+2011-08-19 Andrew Stubbs <ams@codesourcery.com>
+
+ * tree-ssa-math-opts.c (convert_mult_to_widen): Convert
+ unsupported unsigned multiplies to signed.
+ (convert_plusminus_to_widen): Likewise.
+
2011-08-19 Andrew Stubbs <ams@codesourcery.com>
* tree-ssa-math-opts.c (convert_plusminus_to_widen): Permit a single
* c-decl.c (grokdeclarator): Diagnose _Noreturn for non-C1X if
pedantic.
- * c-parser.c (c_parser_declspecs): Include _Noreturn in syntax
- comment.
+ * c-parser.c (c_parser_declspecs): Include _Noreturn in syntax comment.
* ginclude/stdnoreturn.h (noreturn): Don't define for C++.
2011-08-19 Joseph Myers <joseph@codesourcery.com>
AVX2 feature.
* config/i386/i386-c.c (ix86_target_macros_internal):
Conditionally define __AVX2__.
- * config/i386/i386.c (ix86_option_override_internal): Define
- PTA_AVX2. Define "core-avx2" processor alias. Handle avx2
- option.
+ * config/i386/i386.c (ix86_option_override_internal): Define PTA_AVX2.
+ Define "core-avx2" processor alias. Handle avx2 option.
(ix86_valid_target_attribute_inner_p): Handle avx2 option.
* config/i386/i386.h (TARGET_AVX2): New.
* config/i386/i386.opt (mavx2): New.
* cgraphunit.c (thunk_adjust): Use fold_build_pointer_plus_loc.
(cgraph_redirect_edge_call_stmt_to_callee): Use size_int.
* expr.c (expand_expr_addr_expr_1): Use fold_build_pointer_plus.
- * fold-const.c (build_range_check): Negate using the original
- type.
+ * fold-const.c (build_range_check): Negate using the original type.
(fold_unary_loc): Use fold_build_pointer_plus_loc.
* gimple-fold.c (gimple_adjust_this_by_delta): Use
convert_to_ptrofftype.
2011-08-12 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
- PR target/48328
+ PR target/48328
* config/arm/arm.h (CASE_VECTOR_SHORTEN_MODE): Fix distance
for tbh instructions.
-2011-08-12 Diego Novillo <dnovillo@google.com>
+2011-08-12 Diego Novillo <dnovillo@google.com>
* data-streamer.h (streamer_write_zero): Rename from output_zero.
(streamer_write_uhwi): Rename from lto_output_uleb128.
2011-08-12 Richard Guenther <rguenther@suse.de>
- * tree-vrp.c (extract_range_from_unary_expr_1): Implement
- -X as 0 - X.
+ * tree-vrp.c (extract_range_from_unary_expr_1): Implement -X as 0 - X.
2011-08-12 Romain Geissler <romain.geissler@gmail.com>