1. 21 Nov, 2014 40 commits
    • futex.h (SYS_futex): Define if not already done. · c8451a46
      2014-11-21  Steve Ellcey  <sellcey@imgtec.com>
      
      	* config/linux/mips/futex.h (SYS_futex): Define if not already done.
      
      From-SVN: r217952
      Steve Ellcey committed
    • re PR c++/63942 (constexpr conflicts with previous declaration) · 64bec774
      	PR c++/63942
      	* name-lookup.c (supplement_binding_1): Override a mangling alias.
      	* mangle.c (implicit_alias_p, remove_implicit_alias): New.
      	(mangle_decl): Avoid creating conflicting alias with
      	-fabi-compat-version=0, too.
      	* cp-tree.h: Adjust.
      
      From-SVN: r217950
      Jason Merrill committed
    • re PR c++/63849 ([c++11] ICE on variadic alias template with wrappers) · 6602e109
      	PR c++/63849
      	* mangle.c (decl_mangling_context): Use template_type_parameter_p.
      
      From-SVN: r217949
      Jason Merrill committed
    • re PR c++/63588 (ICE (segfault) on arm-linux-gnueabihf) · 169fe7fa
      	PR c++/63588
      	* pt.c (uses_template_parms): Handle null argument.
      
      From-SVN: r217948
      Jason Merrill committed
    • re PR target/63897 (gcc.dg/torture/vector-2.c fails at on x86_64-apple-darwin14) · 18ea3d61
      2014-11-21  Vladimir Makarov  <vmakarov@redhat.com>
      
      	PR target/63897
      	* lra-lives.c (mark_regno_live, mark_regno_dead): Remove last
      	argument.
      	(process_bb_lives): Rename dead_insn_p on remove_p
      	and global_live_info_p on dead_insn_p.  Calculate local live info
      	unconditionally.  Remove last argument in calls mark_regno_live and
      	mark_regno_dead.  Reorganize body of EXECUTE_IF_SET_IN_BITMAP.
      	(lra_create_live_ranges): Rename to lra_create_live_ranges_1.
      	Return bool.  Rename global_live_info_p on dead_insn_p.  Return
      	flag of live info change.
      	(lra_create_live_ranges): New.
      
      From-SVN: r217947
      Vladimir Makarov committed
    • re PR target/63848 (FAIL: c-c++-common/torture/builtin-arith-overflow-17.c -O0 execution test) · 92344ed0
      	PR target/63848
      	PR target/63975
      	* internal-fn.c (expand_arith_overflow_result_store,
      	expand_addsub_overflow, expand_neg_overflow, expand_mul_overflow): Use
      	do_compare_rtx_and_jump instead of emit_cmp_and_jump_insns everywhere,
      	adjust arguments to those functions.  Use unsignedp = true for
      	EQ, NE, GEU, LEU, LTU and GTU comparisons.
      
      From-SVN: r217946
      Jakub Jelinek committed
    • re PR tree-optimization/64006 (__builtin_mul_overflow fails to signal overflow) · 09877e13
      	PR tree-optimization/64006
      	* tree-vrp.c (stmt_interesting_for_vrp): Return true
      	for {ADD,SUB,MUL}_OVERFLOW internal calls.
      	(vrp_visit_assignment_or_call): For {ADD,SUB,MUL}_OVERFLOW
      	internal calls, check if any REALPART_EXPR/IMAGPART_EXPR
      	immediate uses would change their value ranges and return
      	SSA_PROP_INTERESTING if so, or SSA_PROP_NOT_INTERESTING
      	if there are some REALPART_EXPR/IMAGPART_EXPR immediate uses
      	interesting for vrp.
      
      	* gcc.c-torture/execute/pr64006.c: New test.
      
      From-SVN: r217945
      Jakub Jelinek committed
    • * Makefile.in: Regenerate. · eb23df59
      From-SVN: r217944
      Ilya Verbin committed
    • go-test.exp (go-set-goarch): Add case for ppc64le goarch value for go testing. · 6d8325a7
      	* go.test/go-test.exp (go-set-goarch): Add case for ppc64le goarch
      	value for go testing.
      
      From-SVN: r217942
      Lynn Boger committed
    • runtime: GOARCH values for ppc64 BE & LE · 6f7ccafa
      ppc64 for BE
      ppc64le for LE
      issue 8654
      
      From-SVN: r217941
      Ian Lance Taylor committed
    • re PR target/63965 (ICE: in extract_constrain_insn, at recog.c:2230 on ppc64) · 12829505
      2014-11-21  Michael Meissner  <meissner@linux.vnet.ibm.com>
      
      	PR target/63965
      	* config/rs6000/rs6000.c (rs6000_setup_reg_addr_masks): Do not set
      	Altivec & -16 mask if the type is not valid for Altivec registers.
      	(rs6000_secondary_reload_memory): Add support for ((reg + const) +
      	reg) that occurs during push_reload processing.
      
      	* config/rs6000/altivec.md (altivec_mov<mode>): Add instruction
      	alternative for moving constant vectors which are easy altivec
      	constants to GPRs.  Set the length attribute each of the
      	alternatives.
      
      From-SVN: r217940
      Michael Meissner committed
    • Refine configure guard for MIPS .module availability · a871c139
      gcc/
      
      	* configure.ac: When checking for MIPS .module support ensure that
      	o32 FPXX is supported to avoid a second configure check.
      	* configure: Regenerate.
      
      From-SVN: r217939
      Matthew Fortune committed
    • [AArch64] Add vector pattern for __builtin_ctz · 5e32e83b
        gcc/
          * config/aarch64/iterators.md (VS): New mode iterator.
          (vsi2qi): New mode attribute.
          (VSI2QI): Likewise.
          * config/aarch64/aarch64-simd-builtins.def: New entry for ctz.
          * config/aarch64/aarch64-simd.md (ctz<mode>2): New pattern for ctz.
          * config/aarch64/aarch64-builtins.c
          (aarch64_builtin_vectorized_function): Support BUILT_IN_CTZ.
      
        gcc/testsuite/
          * gcc.target/aarch64/vect_ctz_1.c: New testcase.
      
      From-SVN: r217938
      Jiong Wang committed
    • Always use PIC option with -shared in libtool · a699d672
      Libtool needs to pass PIC option -shared when creating shared object to
      link regular object files with slim-lto archive.
      
      	PR bootstrap/63784
      	* libtool.m4: Add $pic_flag with -shared.
      
      boehm-gc/
      
      	PR bootstrap/63784
      	* configure: Regenerated.
      
      gcc/
      
      	PR bootstrap/63784
      	* configure: Regenerated.
      
      libatomic/
      
      	PR bootstrap/63784
      	* configure: Regenerated.
      
      libbacktrace/
      
      	PR bootstrap/63784
      	* configure: Regenerated.
      
      libcc1/
      
      	PR bootstrap/63784
      	* configure: Regenerated.
      
      libcilkrts/
      
      	PR bootstrap/63784
      	* configure: Regenerated.
      
      libffi/
      
      	PR bootstrap/63784
      	* configure: Regenerated.
      
      libgfortran/
      
      	PR bootstrap/63784
      	* configure: Regenerated.
      
      libgomp/
      
      	PR bootstrap/63784
      	* configure: Regenerated.
      
      libitm/
      
      	PR bootstrap/63784
      	* configure: Regenerated.
      
      libjava/
      
      	PR bootstrap/63784
      	* configure: Regenerated.
      
      libjava/classpath/
      
      	PR bootstrap/63784
      	* configure: Regenerated.
      
      libobjc/
      
      	PR bootstrap/63784
      	* configure: Regenerated.
      
      libquadmath/
      
      	PR bootstrap/63784
      	* configure: Regenerated.
      
      libsanitizer/
      
      	PR bootstrap/63784
      	* configure: Regenerated.
      
      libssp/
      
      	PR bootstrap/63784
      	* configure: Regenerated.
      
      libstdc++-v3/
      
      	PR bootstrap/63784
      	* configure: Regenerated.
      
      libvtv/
      
      	PR bootstrap/63784
      	* configure: Regenerated.
      
      lto-plugin/
      
      	PR bootstrap/63784
      	* configure: Regenerated.
      
      From-SVN: r217937
      H.J. Lu committed
    • [AArch64] Implement vsqrt_f64 intrinsic · 522b094f
      	* config/aarch64/arm_neon.h (vsqrt_f64): New intrinsic.
      
      	* gcc.target/aarch64/simd/vsqrt_f64_1.c
      
      From-SVN: r217936
      Kyrylo Tkachov committed
    • Add x86 pcommit instruction. · 36e9b73e
      gcc/
      
      	* common/config/i386/i386-common.c (OPTION_MASK_ISA_PCOMMIT_UNSET,
      	OPTION_MASK_ISA_PCOMMIT_SET): New.
      	(ix86_handle_option): Handle OPT_mpcommit.
      	* config.gcc: Add pcommitintrin.h
      	* config/i386/pcommitintrin.h: New file.
      	* config/i386/cpuid.h (bit_PCOMMIT): Define.
      	* config/i386/driver-i386.c (host_detect_local_cpu): Detect pcommit.
      	* config/i386/i386-c.c (ix86_target_macros_internal): Define
      	__PCOMMIT__.
      	* config/i386/i386.c (ix86_target_string): Add -mpcommit.
      	(PTA_PCOMMIT): Define.
      	(ix86_option_override_internal): Handle new option.
      	(ix86_valid_target_attribute_inner_p): Add pcommit.
      	(ix86_builtins): Add IX86_BUILTIN_PCOMMIT.
      	(bdesc_special_args): Add __builtin_ia32_pcommit.
      	* config/i386/i386.h (TARGET_PCOMMIT, TARGET_PCOMMIT_P): Define.
      	* config/i386/i386.md (unspecv): Add UNSPECV_PCOMMIT.
      	(pcommit): New instruction.
      	* config/i386/i386.opt: Add mpcommit.
      	* config/i386/x86intrin.h: Include pcommitintrin.h.
      
      gcc/testsuite/
      
      	* g++.dg/other/i386-2.C: Add -mpcommit.
      	* g++.dg/other/i386-3.C: Ditto.
      	* gcc.target/i386/pcommit-1.c: New test.
      	* gcc.target/i386/sse-12.c: Add new options.
      	* gcc.target/i386/sse-13.c: Ditto.
      	* gcc.target/i386/sse-14.c: Ditto.
      	* gcc.target/i386/sse-22.c: Ditto.
      	* gcc.target/i386/sse-23.c: Ditto.
      
      From-SVN: r217935
      Ilya Tocar committed
    • PR debug/38757 gcc does not emit DW_LANG_C99. · dcc97066
      For C and C++ add the language standard version in use to lang_hooks.name.
      Change users of lang_hook.name to check with new functions lang_GNU_C or
      lang_GNU_CXX. In dwarf2out.c output the DW_LANG_C version from the
      lang_hooks.name and merge any LTO TRANSLATION_UNIT_LANGUAGE found. Adds
      two testcases to dwarf2.exp to check the right DWARF DW_AT_language is set
      on the compile_unit depending on the -std=c89 or -std=c99 setting.
      
      gcc/c-family/ChangeLog
      
      	PR debug/38757
      	* c-opts.c (set_std_c89): Set lang_hooks.name.
      	(set_std_c99): Likewise.
      	(set_std_c11): Likewise.
      	(set_std_cxx98): Likewise.
      	(set_std_cxx11): Likewise.
      	(set_std_cxx14): Likewise.
      	(set_std_cxx1z): Likewise.
      
      gcc/ChangeLog
      
      	PR debug/38757
      	* config/avr/avr-c.c (avr_cpu_cpp_builtins): Use lang_GNU_C.
      	* config/darwin.c (darwin_file_end): Use lang_GNU_CXX.
      	(darwin_override_options): Likewise.
      	* config/ia64/ia64.c (ia64_struct_retval_addr_is_first_parm_p):
      	Likewise.
      	* config/rs6000/rs6000.c (rs6000_output_function_epilogue):
      	Likewise.
      	* dbxout.c (get_lang_number): Likewise.
      	(dbxout_type): Likewise.
      	(dbxout_symbol_location): Likewise.
      	* dwarf2out.c (add_prototyped_attribute): Add DW_AT_prototype
      	also for DW_LANG_{C,C99,ObjC}.
      	(highest_c_language): New function.
      	(gen_compile_unit_die): Call highest_c_language to merge LTO
      	TRANSLATION_UNIT_LANGUAGE. Use strncmp language_string to
      	determine if DW_LANG_C99 or DW_LANG_C89 should be returned.
      	* fold-const.c (fold_cond_expr_with_comparison): Use lang_GNU_CXX.
      	* langhooks.h (struct lang_hooks): Add version comment to name.
      	(lang_GNU_C): New function declaration.
      	(lang_GNU_CXX): Likewise.
      	* langhooks.c (lang_GNU_C): New function.
      	(lang_GNU_CXX): Likewise.
      	* vmsdbgout.c (vmsdbgout_init): Use lang_GNU_C and lang_GNU_CXX.
      
      gcc/testsuite/ChangeLog
      
      	PR debug/38757
      	* gcc.dg/debug/dwarf2/lang-c89.c: New test.
      	* gcc.dg/debug/dwarf2/lang-c99.c: Likewise.
      
      From-SVN: r217934
      Mark Wielaard committed
    • Support clwb x86 instruction. · 9c3bca11
      gcc/
      	* common/config/i386/i386-common.c (OPTION_MASK_ISA_CLWB_UNSET,
      	OPTION_MASK_ISA_CLWB_SET): New.
      	(ix86_handle_option): Handle OPT_mclwb.
      	* config.gcc: Add clwbintrin.h.
      	* config/i386/clwbintrin.h: New file.
      	* config/i386/cpuid.h (bit_CLWB): Define.
      	* config/i386/driver-i386.c (host_detect_local_cpu): Detect clwb. 
      	* config/i386/i386-c.c (ix86_target_macros_internal): Define
      	__CLWB__.
      	* config/i386/i386.c (ix86_target_string): Add -mclwb.
      	(PTA_CLWB): Define.
      	(ix86_option_override_internal): Handle new option.
      	(ix86_valid_target_attribute_inner_p): Add clwb.
      	(ix86_builtins): Add IX86_BUILTIN_CLWB.
      	(ix86_init_mmx_sse_builtins): Add __builtin_ia32_clwb.
      	(ix86_expand_builtin): Handle IX86_BUILTIN_CLWB.
      	* config/i386/i386.h (TARGET_CLWB, TARGET_CLWB_P): Define.
      	* config/i386/i386.md (unspecv): Add UNSPECV_CLWB.
      	(clwb): New instruction.
      	* config/i386/i386.opt: Add mclwb.
      	* config/i386/x86intrin.h: Include clwbintrin.h.
      
      gcc/testsuite/
      
      	* g++.dg/other/i386-2.C: Add -mclwb.
      	* g++.dg/other/i386-3.C: Ditto.
      	* gcc.target/i386/clwb-1.c: New test.
      	* gcc.target/i386/sse-12.c: Add new options.
      	* gcc.target/i386/sse-13.c: Ditto.
      	* gcc.target/i386/sse-14.c: Ditto.
      	* gcc.target/i386/sse-22.c: Ditto.
      	* gcc.target/i386/sse-23.c: Ditto.
      
      From-SVN: r217933
      Ilya Tocar committed
    • Add avx512vbmi instructions. · 3dcc8af5
      gcc/
      
      	* common/config/i386/i386-common.c (OPTION_MASK_ISA_AVX512VBMI_SET
      	OPTION_MASK_ISA_AVX512VBMI_UNSET): New.
      	(ix86_handle_option): Handle OPT_mavx512vbmi.
      	* config.gcc: Add avx512vbmiintrin.h, avx512vbmivlintrin.h.
      	* config/i386/avx512vbmiintrin.h: New file.
      	* config/i386/avx512vbmivlintrin.h: Ditto.
      	* config/i386/cpuid.h (bit_AVX512VBMI): New.
      	* config/i386/driver-i386.c (host_detect_local_cpu): Detect avx512vbmi.
      	* config/i386/i386-c.c (ix86_target_macros_internal): Define
      	__AVX512VBMI__.
      	* config/i386/i386.c (ix86_target_string): Add -mavx512vbmi.
      	(PTA_AVX512VBMI): Define.
      	(ix86_option_override_internal): Handle new options.
      	(ix86_valid_target_attribute_inner_p): Add avx512vbmi,
      	(ix86_builtins): Add IX86_BUILTIN_VPMULTISHIFTQB512,
      	IX86_BUILTIN_VPMULTISHIFTQB256, IX86_BUILTIN_VPMULTISHIFTQB128,
      	IX86_BUILTIN_VPERMVARQI512_MASK, IX86_BUILTIN_VPERMT2VARQI512,
      	IX86_BUILTIN_VPERMT2VARQI512_MASKZ, IX86_BUILTIN_VPERMI2VARQI512,
      	IX86_BUILTIN_VPERMVARQI256_MASK, IX86_BUILTIN_VPERMVARQI128_MASK,
      	IX86_BUILTIN_VPERMT2VARQI256, IX86_BUILTIN_VPERMT2VARQI256_MASKZ,
      	IX86_BUILTIN_VPERMT2VARQI128, IX86_BUILTIN_VPERMI2VARQI256,
      	IX86_BUILTIN_VPERMI2VARQI128.
      	(bdesc_special_args): Add __builtin_ia32_vpmultishiftqb512_mask,
      	__builtin_ia32_vpmultishiftqb256_mask,
      	__builtin_ia32_vpmultishiftqb128_mask,
      	__builtin_ia32_permvarqi512_mask, __builtin_ia32_vpermt2varqi512_mask,
      	__builtin_ia32_vpermt2varqi512_maskz,
      	__builtin_ia32_vpermi2varqi512_mask, __builtin_ia32_permvarqi256_mask,
      	__builtin_ia32_permvarqi128_mask, __builtin_ia32_vpermt2varqi256_mask,
      	__builtin_ia32_vpermt2varqi256_maskz,
      	__builtin_ia32_vpermt2varqi128_mask,
      	__builtin_ia32_vpermt2varqi128_maskz,
      	__builtin_ia32_vpermi2varqi256_mask,
      	__builtin_ia32_vpermi2varqi128_mask.
      	(ix86_hard_regno_mode_ok): Allow big masks for AVX512VBMI.
      	* config/i386/i386.h (TARGET_AVX512VBMI, TARGET_AVX512VBMI_P): Define.
      	* config/i386/i386.opt: Add mavx512vbmi.
      	* config/i386/immintrin.h: Include avx512vbmiintrin.h,
      	avx512vbmivlintrin.h.
      	* config/i386/sse.md (unspec): Add UNSPEC_VPMULTISHIFT.
      	(VI1_AVX512VL): New iterator.
      	(<avx512>_permvar<mode><mask_name>): Use it.
      	(<avx512>_vpermi2var<mode>3_maskz): Ditto.
      	(<avx512>_vpermi2var<mode>3<sd_maskz_name>): Ditto.
      	(<avx512>_vpermi2var<mode>3_mask): Ditto.
      	(<avx512>_vpermt2var<mode>3_maskz): Ditto.
      	(<avx512>_vpermt2var<mode>3<sd_maskz_name>): Ditto.
      	(<avx512>_vpermt2var<mode>3_mask): Ditto.
      	(vpmultishiftqb<mode><mask_name>): Ditto.
      
      gcc/testsuite/
      
      	* g++.dg/other/i386-2.C: Add -mavx512vbmi.
      	* g++.dg/other/i386-3.C: Ditto.
      	* gcc.target/i386/avx512f-helper.h: Add avx512vbmi-check.h.
      	* gcc.target/i386/avx512vbmi-check.h: Ditto.
      	* gcc.target/i386/avx512vbmi-vpermb-1.c: Ditto.
      	* gcc.target/i386/avx512vbmi-vpermb-2.c: Ditto.
      	* gcc.target/i386/avx512vbmi-vpermi2b-1.c: Ditto.
      	* gcc.target/i386/avx512vbmi-vpermi2b-2.c: Ditto.
      	* gcc.target/i386/avx512vbmi-vpermt2b-1.c: Ditto.
      	* gcc.target/i386/avx512vbmi-vpermt2b-2.c: Ditto.
      	* gcc.target/i386/avx512vbmi-vpmultishiftqb-1.c: Ditto.
      	* gcc.target/i386/avx512vbmi-vpmultishiftqb-2.c: Ditto.
      	* gcc.target/i386/avx512vl-vpermb-2.c: Ditto.
      	* gcc.target/i386/avx512vl-vpermi2b-2.c: Ditto.
      	* gcc.target/i386/avx512vl-vpermt2b-2.c: Ditto.
      	* gcc.target/i386/avx512vl-vpmaddhuq-2.c: Ditto.
      	* gcc.target/i386/avx512vl-vpmaddluq-2.c: Ditto.
      	* gcc.target/i386/avx512vl-vpmultishiftqb-2.c: Ditto.
      	* gcc.target/i386/i386.exp (check_effective_target_avx512vbmi): New.
      	* gcc.target/i386/sse-12.c: Add new options.
      	* gcc.target/i386/sse-13.c: Ditto.
      	* gcc.target/i386/sse-14.c: Ditto.
      	* gcc.target/i386/sse-22.c: Ditto.
      	* gcc.target/i386/sse-23.c: Ditto.
      
      From-SVN: r217932
      Ilya Tocar committed
    • re PR rtl-optimization/63952 (bootstrap failure (ICE in prepare_cmp_insn) on s390x in libjava) · de6fba39
      	PR rtl-optimization/63952
      	* optabs.c (prepare_cmp_insn): Do not call can_compare_p for CCmode.
      	* config/s390/s390.md ("cbranchcc4"): Accept any s390_comparison.
      	Remove incorrect TARGET_HARD_FLOAT check and no-op expander code.
      
      From-SVN: r217929
      Ulrich Weigand committed
    • Add avx512ifma instructions. · 4190ea38
      gcc/
      	* common/config/i386/i386-common.c (OPTION_MASK_ISA_AVX512IFMA_SET,
      	OPTION_MASK_ISA_AVX512IFMA_UNSET): New.
      	(ix86_handle_option): Handle OPT_mavx512ifma.
      	* config.gcc: Add avx512ifmaintrin.h, avx512ifmavlintrin.h.
      	* config/i386/avx512ifmaintrin.h: New file.
      	* config/i386/avx512ifmaivlntrin.h: Ditto.
      	* config/i386/cpuid.h (bit_AVX512IFMA): New.
      	* config/i386/driver-i386.c (host_detect_local_cpu): Detect
      	avx512ifma.
      	* config/i386/i386-c.c (ix86_target_macros_internal): Define
      	__AVX512IFMA__.
      	* config/i386/i386.c (ix86_target_string): Add -mavx512ifma.
      	(PTA_AVX512IFMA): Define.
      	(ix86_option_override_internal): Handle new options.
      	(ix86_valid_target_attribute_inner_p): Add avx512ifma.
      	(ix86_builtins): Add IX86_BUILTIN_VPMADD52LUQ512,
      	IX86_BUILTIN_VPMADD52HUQ512, IX86_BUILTIN_VPMADD52LUQ256,
      	IX86_BUILTIN_VPMADD52HUQ256, IX86_BUILTIN_VPMADD52LUQ128,
      	IX86_BUILTIN_VPMADD52HUQ128, IX86_BUILTIN_VPMADD52LUQ512_MASKZ,
      	IX86_BUILTIN_VPMADD52HUQ512_MASKZ, IX86_BUILTIN_VPMADD52LUQ256_MASKZ,
      	IX86_BUILTIN_VPMADD52HUQ256_MASKZ, IX86_BUILTIN_VPMADD52LUQ128_MASKZ,
      	IX86_BUILTIN_VPMADD52HUQ128_MASKZ.
      	(bdesc_special_args): Add __builtin_ia32_vpmadd52luq512_mask,
      	__builtin_ia32_vpmadd52luq512_maskz,
      	__builtin_ia32_vpmadd52huq512_mask,
      	__builtin_ia32_vpmadd52huq512_maskx,
      	__builtin_ia32_vpmadd52luq256_mask,
      	__builtin_ia32_vpmadd52luq256_maskz,
      	__builtin_ia32_vpmadd52huq256_mask,
      	__builtin_ia32_vpmadd52huq256_maskz,
      	__builtin_ia32_vpmadd52luq128_mask,
      	__builtin_ia32_vpmadd52luq128_maskz,
      	__builtin_ia32_vpmadd52huq128_mask,
      	__builtin_ia32_vpmadd52huq128_maskz,
      	* config/i386/i386.h (TARGET_AVX512IFMA, TARGET_AVX512IFMA_P): Define.
      	* config/i386/i386.opt: Add mavx512ifma.
      	* config/i386/immintrin.h: Include avx512ifmaintrin.h,
      	avx512ifmavlintrin.h.
      	* config/i386/sse.md (unspec): Add UNSPEC_VPMADD52LUQ,
      	UNSPEC_VPMADD52HUQ.
      	(VPMADD52): New iterator.
      	(vpmadd52type): New attribute.
      	(vpamdd52huq<mode>_maskz): New.
      	(vpamdd52luq<mode>_maskz): Ditto.
      	(vpamdd52<vpmadd52type><mode><sd_maskz_name>): Ditto.
      	(vpamdd52<vpmadd52type><mode>_mask): Ditto.
      
      gcc/testsuite/
      
      	* g++.dg/other/i386-2.C: Add -mavx512ifma.
      	* g++.dg/other/i386-3.C: Ditto.
      	* gcc.target/i386/avx512f-helper.h: Add avx512ifma-check.h.
      	* gcc.target/i386/avx512ifma-check.h: New.
      	* gcc.target/i386/avx512ifma-vpmaddhuq-1.c: Ditto.
      	* gcc.target/i386/avx512ifma-vpmaddhuq-2.c: Ditto.
      	* gcc.target/i386/avx512ifma-vpmaddluq-1.c: Ditto.
      	* gcc.target/i386/avx512ifma-vpmaddluq-2.c: Ditto.
      	* gcc.target/i386/avx512vl-vpmaddhuq-2.c: Ditto.
      	* gcc.target/i386/avx512vl-vpmaddluq-2.c: Ditto.
      	* gcc.target/i386/i386.exp (check_effective_target_avx512ifma): New.
      	* gcc.target/i386/sse-12.c: Add new options.
      	* gcc.target/i386/sse-13.c: Ditto.
      	* gcc.target/i386/sse-14.c: Ditto.
      	* gcc.target/i386/sse-22.c: Ditto.
      	* gcc.target/i386/sse-23.c: Ditto.
      
      2014-11-21  Georg-Johann Lay  <avr@gjlay.de>
      
      From-SVN: r217928
      Ilya Tocar committed
    • Revert: Workaround following [PATCH] Pul all constants last in tree_swap_operands_p · 8f399c3e
      	https://gcc.gnu.org/ml/gcc-patches/2014-09/msg01509.html
      	2014-09-22  Alan Lawrence  <alan.lawrence@arm.com>
      	gcc/:
              	* fold-const.c (tree_swap_operands_p): Strip only sign-preserving NOPs.
      
      From-SVN: r217927
      Alan Lawrence committed
    • [MIPS] If using branch likelies in MIPS sync code fill the delay slot · 3b6eaaa5
      with a nop.
      
      gcc/
      	* config/mips/mips.c (mips_process_sync_loop): Place a 
      	nop in the delay slot of the branch likely instruction.
      	(mips_output_sync_loop): Ensure mips_branch_likely is 
      	set before calling mips_output_sync_loop.
      	(mips_sync_loop_insns): Likewise.
      
      From-SVN: r217926
      Andrew Bennett committed
    • missing ChangeLog entry · 4bec9831
      From-SVN: r217925
      William Schmidt committed
    • PR/target 63673 · 98758884
      2014-11-21  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
      
      	PR/target 63673
      	* config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Allow
      	the base pointer of vec_vsx_ld and vec_vsx_st to take a pointer to
      	double.
      
      From-SVN: r217924
      William Schmidt committed
    • Add ChangeLog entry · 81d9b5a3
      From-SVN: r217923
      Georg-Johann Lay committed
    • Forward-port from 2014-10-30 4_9-branch r216934 PR target/63633 · 00e641f1
      gcc/
      	Forward-port from 2014-10-30 4_9-branch r216934
      	PR target/63633
      	* config/avr/avr-protos.h (regmask): New inline function.
      	(avr_fix_inputs, avr_emit3_fix_outputs): New protos.
      	* config/avr/avr.c (avr_fix_operands, avr_move_fixed_operands)
      	(avr_fix_inputs, avr_emit3_fix_outputs): New functions.
      	* config/avr/avr-fixed.md (mulqq3_nomul, muluqq3_nomul)
      	(mul<ALL2QA>3, mul<ALL4A>3, <usdiv><ALL1Q>3, <usdiv><ALL2QA>3)
      	(<usdiv><ALL4A>3, round<ALL124QA>3): Fix input operands.
      	* config/avr/avr-dimode.md (add<ALL8>3, sub<ALL8>3)
      	(<ss_addsub><ALL8S>3, <us_addsub><ALL8U>3, cbranch<ALL8>4)
      	(<di_shifts><ALL8>3, <any_extend>mulsidi3): Fix input operands.
      	* config/avr/avr.md (mulqi3_call, mulhi3_call, mulsi3, mulpsi3)
      	(mulu<QIHI>si3, muls<QIHI>si3, mulohisi3, <any_extend>mulhisi3)
      	(usmulhisi3, <any_extend>mulhi3_highpart, mulsqipsi3)
      	(fmul, fmuls, fmulsu): Fix operands.  Turn insn into expander as
      	needed.
      
      gcc/testsuite/
      	Forward-port from 2014-10-30 4_9-branch r216934
      	PR target/63633
      	* gcc.target/avr/torture/pr63633-ice-mult.c: New test.
      
      From-SVN: r217922
      Georg-Johann Lay committed
    • re PR sanitizer/64013 (libsanitizer fails to build) · 7697b16f
      	PR sanitizer/64013
      	* sanitizer_common/sanitizer_linux.cc (FileExists): Cherry pick
      	upstream r222532.
      
      From-SVN: r217921
      Jakub Jelinek committed
    • re PR debug/63239 (DWARF does not represent C++ deleted methods) · e984e36f
      	PR debug/63239
      	* g++.dg/debug/dwarf2/deleted-member-function.C: Pass
      	-gno-strict-dwarf.
      
      From-SVN: r217920
      Francois-Xavier Coudert committed
    • re PR testsuite/61137 (FAIL: gcc.target/ia64/small-addr-1.c (test for excess errors)) · d8def3cf
      	PR target/61137
      	* config/ia64/ia64.c (ia64_attribute_takes_identifier_p): New function.
      	(TARGET_ATTRIBUTE_TAKES_IDENTIFIER_P): Redefine to it.
      
      From-SVN: r217919
      Jakub Jelinek committed
    • re PR debug/63239 (DWARF does not represent C++ deleted methods) · 4b8f3f06
      	PR debug/63239
      	* g++.dg/debug/dwarf2/deleted-member-function.C: Pass
      	-gno-strict-dwarf on darwin.
      
      From-SVN: r217918
      Francois-Xavier Coudert committed
    • [AArch64, Obvious] Fix formatting of SHLL and friends · 130ee2eb
      gcc/
      
      	* config/aarch64/aarch64-simd.md
      	(aarch64_<ANY_EXTEND:su><ADDSUB:optab>l<mode>): Add a tab between
      	output mnemonic and operands.
      	(aarch64_simd_vec_unpack<su>_lo_<mode>): Likewise.
      	(aarch64_simd_vec_unpack<su>_hi_<mode>): Likewise.
      
      From-SVN: r217917
      James Greenhalgh committed
    • Add fgcse-sm test with scan-rtl-dump · ba483b00
      2014-11-21  Tom de Vries  <tom@codesourcery.com>
      
      	* gcc.dg/store-motion-fgcse-sm.c: New test.
      
      From-SVN: r217916
      Tom de Vries committed
    • MAINTAINERS (Write After Approval): Add myself. · fc065a61
      2014-11-21  Renlin Li  <Renlin.Li@arm.com>
      
              * MAINTAINERS (Write After Approval): Add myself.
      
      From-SVN: r217915
      Renlin Li committed
    • i386.c (ix86_option_override_internal): Increase PARAM_MAX_COMPLETELY_PEELED_INSNS. · db2d5d46
      	* config/i386/i386.c (ix86_option_override_internal): Increase
      	PARAM_MAX_COMPLETELY_PEELED_INSNS.
      
      From-SVN: r217914
      Evgeny Stupachenko committed
    • re PR target/60451 (X86 vectorization improve: pack instead of pshufb) · d5dcbe8e
      gcc/testsuite
      
      	PR target/60451
      	* gcc.target/i386/pr60451.c: New.
      
      gcc/
      	PR target/60451
      	* config/i386/i386.c (expand_vec_perm_even_odd_pack): New.
      	(expand_vec_perm_even_odd_1): Add new expand for V8HI mode,
      	replace for V16QI, V16HI and V32QI modes.
      	(ix86_expand_vec_perm_const_1): Add new expand.
      
      From-SVN: r217913
      Evgeny Stupachenko committed
    • MAINTAINERS (write-after-approval): Add myself. · efcc23e6
      2014-11-20  Alex Velenko  <Alex.Velenko@arm.com>
      
      	* MAINTAINERS (write-after-approval): Add myself.
      
      From-SVN: r217912
      Alex Velenko committed
    • rl78-real.md (movqi_from_es): New pattern. · 7bbf5a3d
      	* config/rl78/rl78-real.md (movqi_from_es): New pattern.
      	* config/rl78/rl78.c (struct machine_function): Add uses_es field.
      	(rl78_expand_prologue): Save the ES register in interrupt handlers
      	that use it.
      	(rl78_expand_epilogue): Restore the ES register if necessary.
      	(rl78_start_function): Mention if the function uses the ES
      	register.
      	(rl78_lo16): Record the use of the ES register.
      	(transcode_memory_rtx): Likewise.
      
      From-SVN: r217911
      Nick Clifton committed
    • re PR tree-optimization/61773 (ICE in tree-ssa-strlen.c:417) · 1e762c6a
      	PR tree-optimization/61773
      	* tree-ssa-strlen.c (get_string_length): Don't assert
      	stpcpy has been prototyped if si->stmt is BUILT_IN_MALLOC.
      
      	* gcc.dg/pr61773.c: New test.
      
      From-SVN: r217910
      Jakub Jelinek committed
    • re PR target/63764 (ICE: in verify_ssa, at tree-ssa.c:939) · aa7da51a
      	PR target/63764
      c-family/
      	* c-common.h (convert_vector_to_pointer_for_subscript): Change
      	return type to bool.
      	* c-common.c: Include gimple-expr.c.
      	(convert_vector_to_pointer_for_subscript): Change return type to
      	bool.  If *vecp is not lvalue_p and has VECTOR_TYPE, return true
      	and copy it into a TARGET_EXPR and use that instead of *vecp
      	directly.
      c/
      	* c-typeck.c (build_array_ref): Adjust
      	convert_vector_to_pointer_for_subscript caller.  If it returns true,
      	call non_lvalue_loc on the result.
      cp/
      	* typeck.c (cp_build_array_ref): Adjust
      	convert_vector_to_pointer_for_subscript caller.  If it returns true,
      	call non_lvalue_loc on the result.
      testsuite/
      	* c-c++-common/pr63764-1.c: New test.
      	* c-c++-common/pr63764-2.c: New test.
      
      From-SVN: r217909
      Jakub Jelinek committed