aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2016-07-26re PR rtl-optimization/71984 (wrong code with -O -mavx512cd)Richard Biener4-2/+37
2016-07-26 Richard Biener <rguenther@suse.de> PR rtl-optimization/71984 * simplify-rtx.c (simplify_subreg): Use GET_MODE_SIZE and prepare for VOIDmode. * gcc.dg/torture/pr71984.c: New testcase. From-SVN: r238757
2016-07-26re PR tree-optimization/72517 (436.cactusADM: More than 40% regression in O3 ↵Richard Biener2-0/+8
and Ofast on AMD bdver4 m/c.) 2016-07-26 Richard Biener <rguenther@suse.de> PR middle-end/72517 * expmed.c (extract_bit_field_1): Constrain the vector mode with element size matching the extraction mode size when choosing a better vector mode to do the extraction from. From-SVN: r238756
2016-07-26Add support to run auto-vectorization tests for multiple effective targets.Robert Suchanek7-489/+940
gcc/testsuite/ * g++.dg/vect/vect.exp: Add and set new global EFFECTIVE_TARGETS. Call g++-dg-runtest via et-dg-runtest. * gcc.dg/graphite/graphite.exp: Likewise, but for dg-runtest. * gcc.dg/vect/vect.exp: Likewise. * gfortran.dg/graphite/graphite.exp: Likewise, but for gfortran-dg-runtest. * gfortran.dg/vect/vect.exp: Likewise. * lib/target-supports.exp (check_mpaired_single_hw_available): New. (check_mips_loongson_hw_available): Likewise. (check_effective_target_mpaired_single_runtime): Likewise. (check_effective_target_mips_loongson_runtime): Likewise. (add_options_for_mpaired_single): Likewise. (check_effective_target_vect_int): Add global et_index. Check and save the supported feature for a target selected by the et_index target. Break long lines where appropriate. Call et-is-effective-target for MIPS with an argument instead of check_effective_target_* where appropriate. (check_effective_target_vect_intfloat_cvt): Likewise. (check_effective_target_vect_uintfloat_cvt): Likewise. (check_effective_target_vect_floatint_cvt): Likewise. (check_effective_target_vect_floatuint_cvt): Likewise. (check_effective_target_vect_simd_clones): Likewise. (check_effective_target_vect_shift): ewise. (check_effective_target_whole_vector_shift): Likewise. (check_effective_target_vect_bswap): Likewise. (check_effective_target_vect_shift_char): Likewise. (check_effective_target_vect_long): Likewise. (check_effective_target_vect_float): Likewise. (check_effective_target_vect_double): Likewise. (check_effective_target_vect_long_long): Likewise. (check_effective_target_vect_no_int_max): Likewise. (check_effective_target_vect_no_int_add): Likewise. (check_effective_target_vect_no_bitwise): Likewise. (check_effective_target_vect_widen_shift): Likewise. (check_effective_target_vect_no_align): Likewise. (check_effective_target_vect_hw_misalign): Likewise. (check_effective_target_vect_element_align): Likewise. (check_effective_target_vect_condition): Likewise. (check_effective_target_vect_cond_mixed): Likewise. (check_effective_target_vect_char_mult): Likewise. (check_effective_target_vect_short_mult): Likewise. (check_effective_target_vect_int_mult): Likewise. (check_effective_target_vect_extract_even_odd): Likewise. (check_effective_target_vect_interleave): Likewise. (check_effective_target_vect_stridedN): Likewise. (check_effective_target_vect_multiple_sizes): Likewise. (check_effective_target_vect64): Likewise. (check_effective_target_vect_call_copysignf): Likewise. (check_effective_target_vect_call_sqrtf): Likewise. (check_effective_target_vect_call_btrunc): Likewise. (check_effective_target_vect_call_btruncf): Likewise. (check_effective_target_vect_call_ceil): Likewise. (check_effective_target_vect_call_ceilf): Likewise. (check_effective_target_vect_call_floor): Likewise. (check_effective_target_vect_call_floorf): Likewise. (check_effective_target_vect_call_lceil): Likewise. (check_effective_target_vect_call_lfloor): Likewise. (check_effective_target_vect_call_nearbyint): Likewise. (check_effective_target_vect_call_nearbyintf): Likewise. (check_effective_target_vect_call_round): Likewise. (check_effective_target_vect_call_roundf): Likewise. (check_effective_target_vect_perm): Likewise, but also append *_saved to the existing global name to properly cache the result. (check_effective_target_vect_perm_byte): Likewise. (check_effective_target_vect_perm_short): Likewise. (check_effective_target_vect_widen_sum_hi_to_si_pattern): Likewise. (check_effective_target_vect_widen_sum_hi_to_si): Likewise. (check_effective_target_vect_widen_sum_qi_to_hi): Likewise. (check_effective_target_vect_widen_sum_qi_to_si): Likewise. (check_effective_target_vect_widen_mult_qi_to_hi_pattern): Likewise. (check_effective_target_vect_widen_mult_qi_to_hi): Likewise. (check_effective_target_vect_widen_mult_hi_to_si_pattern): Likewise. (check_effective_target_vect_widen_mult_si_to_di_pattern): Likewise. (check_effective_target_vect_sdot_qi): Likewise. (check_effective_target_vect_udot_qi): Likewise. (check_effective_target_vect_sdot_hi): Likewise. (check_effective_target_vect_udot_hi): Likewise. (check_effective_target_vect_usad_char): Likewise. (check_effective_target_vect_pack_trunc): Likewise. (check_effective_target_vect_unpack): Likewise. (check_effective_target_vect_aligned_arrays): Likewise. (check_effective_target_vect_natural_alignment): Likewise. (check_effective_target_vector_alignment_reachable): Likewise. (check_effective_target_vector_alignment_reachable_for_64bit): Likewise. (is-effective-target): Initialize et_index if undefined. (et-dg-runtest): New. (et-is-effective-target): Likewise. (check_vect_support_and_set_flags): Add supported MIPS targets to EFFECTIVE_TARGETS list. Return the number of supported targets. From-SVN: r238755
2016-07-26re PR middle-end/70920 (if ((intptr_t)ptr == 0) doesn't get simplified to if ↵Richard Biener8-2/+111
(ptr == 0)) 2016-07-26 Richard Biener <rguenther@suse.de> Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org> PR middle-end/70920 * match.pd ((intptr)x eq/ne CST to x eq/ne (typeof x) CST): New pattern. testsuite/ * gcc.dg/pr70920-1.c: New test-case. * gcc.dg/pr70902-2.c: Likewise. * gcc.dg/pr70920-3.c: Likewise. * gcc.dg/pr70920-4.c: Likewise * gcc.dg/tree-ssa/ssa-dom-branch-1.c: Change scan-tree-dump-times to 2 instead of 3. Co-Authored-By: Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org> From-SVN: r238754
2016-07-26update_version_svn: Ignore the GCC 4.9 branch.Richard Biener2-1/+5
2016-07-26 Richard Biener <rguenther@suse.de> * update_version_svn: Ignore the GCC 4.9 branch. From-SVN: r238753
2016-07-26crontab: Remove entry for the GCC 4.9 branch.Richard Biener2-1/+4
2016-07-26 Richard Biener <rguenther@suse.de> * crontab: Remove entry for the GCC 4.9 branch. From-SVN: r238752
2016-07-26add [cd]tors to scc_infoTrevor Saunders2-35/+34
gcc/ChangeLog: 2016-07-26 Trevor Saunders <tbsaunde+gcc@tbsaunde.org> * tree-ssa-structalias.c (struct scc_info): Change types of members to auto_sbitmap and auto_vec. (scc_info::scc_info): New constructor. (scc_info::~scc_info): New destructor. (init_scc_info): Remove. (free_scc_info): Remove. (find_indirect_cycles): Adjust. (perform_var_substitution): Likewise. (free_var_substitution_info): Likewise. From-SVN: r238751
2016-07-26add a constructor to elim_graphTrevor Saunders2-48/+24
gcc/ChangeLog: 2016-07-26 Trevor Saunders <tbsaunde+gcc@tbsaunde.org> * tree-outof-ssa.c (struct elim_graph): Change type of members to auto_vec and auto_sbitmap. (elim_graph::elim_graph): New constructor. (delete_elim_graph): Remove. (expand_phi_nodes): Adjust. From-SVN: r238750
2016-07-26remove elim_graph typedefTrevor Saunders2-18/+38
gcc/ChangeLog: 2016-07-26 Trevor Saunders <tbsaunde+gcc@tbsaunde.org> * tree-outof-ssa.c (struct elim_graph): Remove typedef. (new_elim_graph): Adjust. (clear_elim_graph): Likewise. (delete_elim_graph): Likewise. (elim_graph_size): Likewise. (elim_graph_add_node): Likewise. (elim_graph_add_edge): Likewise. (elim_graph_remove_succ_edge): Likewise. (eliminate_name): Likewise. (eliminate_build): Likewise. (elim_forward): Likewise. (elim_unvisited_predecessor): Likewise. (elim_backward): Likewise. (elim_create): Likewise. (eliminate_phi): Likewise. (expand_phi_nodes): Likewise. From-SVN: r238749
2016-07-26use auto_sbitmap in various placesTrevor Saunders38-269/+162
gcc/ChangeLog: 2016-07-26 Trevor Saunders <tbsaunde+gcc@tbsaunde.org> * bt-load.c (compute_out): Use auto_sbitmap class. (link_btr_uses): Likewise. * cfganal.c (mark_dfs_back_edges): Likewise. (post_order_compute): Likewise. (inverted_post_order_compute): Likewise. (pre_and_rev_post_order_compute_fn): Likewise. (single_pred_before_succ_order): Likewise. * cfgexpand.c (pass_expand::execute): Likewise. * cfgloop.c (verify_loop_structure): Likewise. * cfgloopmanip.c (fix_bb_placements): Likewise. (remove_path): Likewise. (update_dominators_in_loop): Likewise. * cfgrtl.c (break_superblocks): Likewise. * ddg.c (check_sccs): Likewise. (create_ddg_all_sccs): Likewise. * df-core.c (df_worklist_dataflow): Likewise. * dse.c (dse_step3): Likewise. * except.c (eh_region_outermost): Likewise. * function.c (thread_prologue_and_epilogue_insns): Likewise. * gcse.c (prune_expressions): Likewise. (prune_insertions_deletions): Likewise. * gimple-ssa-backprop.c (backprop::~backprop): Likewise. * graph.c (draw_cfg_nodes_no_loops): Likewise. * ira-lives.c (remove_some_program_points_and_update_live_ranges): Likewise. * lcm.c (compute_earliest): Likewise. (compute_farthest): Likewise. * loop-unroll.c (unroll_loop_constant_iterations): Likewise. (unroll_loop_runtime_iterations): Likewise. (unroll_loop_stupid): Likewise. * lower-subreg.c (decompose_multiword_subregs): Likewise. * lra-lives.c: Likewise. * lra.c (lra): Likewise. * modulo-sched.c (schedule_reg_moves): Likewise. (optimize_sc): Likewise. (get_sched_window): Likewise. (sms_schedule_by_order): Likewise. (check_nodes_order): Likewise. (order_nodes_of_sccs): Likewise. (order_nodes_in_scc): Likewise. * recog.c (split_all_insns): Likewise. * regcprop.c (pass_cprop_hardreg::execute): Likewise. * reload1.c (reload): Likewise. * sched-rgn.c (haifa_find_rgns): Likewise. (split_edges): Likewise. (compute_trg_info): Likewise. * sel-sched.c (init_seqno): Likewise. * store-motion.c (remove_reachable_equiv_notes): Likewise. * tree-into-ssa.c (update_ssa): Likewise. * tree-ssa-live.c (live_worklist): Likewise. * tree-ssa-loop-im.c (fill_always_executed_in): Likewise. * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely): * Likewise. (try_peel_loop): Likewise. * tree-ssa-loop-manip.c (tree_transform_and_unroll_loop): * Likewise. * tree-ssa-pre.c (compute_antic): Likewise. * tree-ssa-reassoc.c (undistribute_ops_list): Likewise. * tree-stdarg.c (reachable_at_most_once): Likewise. * tree-vect-slp.c (vect_attempt_slp_rearrange_stmts): Likewise. * var-tracking.c (vt_find_locations): Likewise. From-SVN: r238748
2016-07-26add auto_sbitmap classTrevor Saunders2-0/+29
gcc/ChangeLog: 2016-07-26 Trevor Saunders <tbsaunde+gcc@tbsaunde.org> * sbitmap.h (auto_sbitmap): New class. From-SVN: r238747
2016-07-26[RS6000] push_secondary_reload ICEAlan Modra2-0/+7
PR target/72103 * config/rs6000/rs6000.c (rs6000_secondary_reload): Initialize sri->t_icode. From-SVN: r238744
2016-07-26libgo: bump library version number for 1.7Ian Lance Taylor3-3/+3
Reviewed-on: https://go-review.googlesource.com/25211 From-SVN: r238743
2016-07-26os/user: fix Solaris declaration.Ian Lance Taylor2-2/+2
Patch from Rainer Orth. Reviewed-on: https://go-review.googlesource.com/25210 From-SVN: r238742
2016-07-26Daily bump.GCC Administrator1-1/+1
From-SVN: r238741
2016-07-25PR c++/65970 - revert loop location changeJason Merrill2-1/+11
* cp-gimplify.c (genericize_cp_loop): Revert location change. From-SVN: r238737
2016-07-25PR c++/71837 - pack expansion in init-captureJason Merrill5-1/+51
* lambda.c (add_capture): Leave a pack expansion in a TREE_LIST. (build_lambda_object): Call build_x_compound_expr_from_list. * pt.c (tsubst) [DECLTYPE_TYPE]: Likewise. From-SVN: r238733
2016-07-25Fix selftest::temp_source_file ctorDavid Malcolm2-1/+6
gcc/ChangeLog: * input.c (selftest::temp_source_file::temp_source_file): Fix missing "%s" in fprintf. From-SVN: r238732
2016-07-25PR c++/71833 - member template with two parameter packsJason Merrill3-3/+18
PR c++/54440 * pt.c (coerce_template_parameter_pack): Fix logic for pack index. From-SVN: r238731
2016-07-25PR c++/65970 - constexpr infinite loopJason Merrill7-9/+45
gcc/c-family/ * c.opt (fconstexpr-loop-limit): New. gcc/cp/ * constexpr.c (cxx_eval_loop_expr): Count iterations. * cp-gimplify.c (genericize_cp_loop): Use start_locus even for infinite loops. From-SVN: r238730
2016-07-25PR c++/71972 - constexpr array self-modificationJason Merrill3-28/+54
* constexpr.c (cxx_eval_array_reference): Handle looking for the value of an element we're currently modifying. From-SVN: r238729
2016-07-25* g++.dg/init/elide5.C: Don't use unsigned long for size_t.Jason Merrill1-2/+1
From-SVN: r238728
2016-07-25re PR middle-end/71732 (FAIL: gcc.dg/torture/pr71532.c at -O2 and above)John David Anglin2-0/+13
PR middle-end/71732 * cselib.c (cselib_process_insn): Invalidate argument slots for const/pure calls. From-SVN: r238727
2016-07-25testsuite: add two missing label_values annotationsAlexander Monakov3-0/+7
2016-07-25 Alexander Monakov <amonakov@ispras.ru> * gcc.c-torture/execute/pr71494.c: Require label_values. * gcc.dg/pr16973.c: Ditto. From-SVN: r238726
2016-07-25[AArch64][10/10] ARMv8.2-A FP16 lane scalar intrinsicsJiong Wang2-0/+58
gcc/ * config/aarch64/arm_neon.h (vfmah_lane_f16, vfmah_laneq_f16, vfmsh_lane_f16, vfmsh_laneq_f16, vmulh_lane_f16, vmulh_laneq_f16, vmulxh_lane_f16, vmulxh_laneq_f16): New. From-SVN: r238725
2016-07-25[AArch64][9/10] ARMv8.2-A FP16 three operands scalar intrinsicsJiong Wang4-10/+33
gcc/ * config/aarch64/aarch64-simd-builtins.def: Register new builtins. * config/aarch64/aarch64.md (fma, fnma): Support HF. * config/aarch64/arm_fp16.h (vfmah_f16, vfmsh_f16): New. From-SVN: r238724
2016-07-25[AArch64][8/10] ARMv8.2-A FP16 two operands scalar intrinsicsJiong Wang6-65/+347
gcc/ * config/aarch64/aarch64-simd-builtins.def: Register new builtins. * config/aarch64/aarch64.md (<FCVT_F2FIXED:fcvt_fixed_insn>hf<mode>3): New. (<FCVT_FIXED2F:fcvt_fixed_insn><mode>hf3): Likewise. (add<mode>3): Likewise. (sub<mode>3): Likewise. (mul<mode>3): Likewise. (div<mode>3): Likewise. (*div<mode>3): Likewise. (<fmaxmin><mode>3): Extend to HF. * config/aarch64/aarch64-simd.md (aarch64_rsqrts<mode>): Likewise. (fabd<mode>3): Likewise. (<FCVT_F2FIXED:fcvt_fixed_insn><VHSDF_HSDF:mode>3): Likewise. (<FCVT_FIXED2F:fcvt_fixed_insn><VHSDI_HSDI:mode>3): Likewise. (aarch64_fmulx<mode>): Likewise. (aarch64_fac<optab><mode>): Likewise. (aarch64_frecps<mode>): Likewise. (<FCVT_F2FIXED:fcvt_fixed_insn>hfhi3): New. (<FCVT_FIXED2F:fcvt_fixed_insn>hihf3): Likewise. * config/aarch64/iterators.md (VHSDF_SDF): Delete. (VSDQ_HSDI): Support HI. (fcvt_target, FCVT_TARGET): Likewise. * config/aarch64/arm_fp16.h (vaddh_f16, vsubh_f16, vabdh_f16, vcageh_f16, vcagth_f16, vcaleh_f16, vcalth_f16, vceqh_f16, vcgeh_f16, vcgth_f16, vcleh_f16, vclth_f16, vcvth_n_f16_s16, vcvth_n_f16_s32, vcvth_n_f16_s64, vcvth_n_f16_u16, vcvth_n_f16_u32, vcvth_n_f16_u64, vcvth_n_s16_f16, vcvth_n_s32_f16, vcvth_n_s64_f16, vcvth_n_u16_f16, vcvth_n_u32_f16, vcvth_n_u64_f16, vdivh_f16, vmaxh_f16, vmaxnmh_f16, vminh_f16, vminnmh_f16, vmulh_f16, vmulxh_f16, vrecpsh_f16, vrsqrtsh_f16): New. From-SVN: r238723
2016-07-25[AArch64][7/10] ARMv8.2-A FP16 one operand scalar intrinsicsJiong Wang9-58/+534
gcc/ * config.gcc (aarch64*-*-*): Install arm_fp16.h. * config/aarch64/aarch64-builtins.c (hi_UP): New. * config/aarch64/aarch64-simd-builtins.def: Register new builtins. * config/aarch64/aarch64-simd.md (aarch64_frsqrte<mode>): Extend to HF mode. (aarch64_frecp<FRECP:frecp_suffix><mode>): Likewise. (aarch64_cm<optab><mode>): Likewise. * config/aarch64/aarch64.md (<frint_pattern><mode>2): Likewise. (l<fcvt_pattern><su_optab><GPF:mode><GPI:mode>2): Likewise. (fix_trunc<GPF:mode><GPI:mode>2): Likewise. (sqrt<mode>2): Likewise. (abs<mode>2): Likewise. (<optab><mode>hf2): New pattern for HF mode. (<optab>hihf2): Likewise. * config/aarch64/arm_neon.h: Include arm_fp16.h. * config/aarch64/iterators.md (GPF_F16, GPI_F16, VHSDF_HSDF): New. (w1, w2, v, s, q, Vmtype, V_cmp_result, fcvt_iesize, FCVT_IESIZE): Support HF mode. * config/aarch64/arm_fp16.h: New file. (vabsh_f16, vceqzh_f16, vcgezh_f16, vcgtzh_f16, vclezh_f16, vcltzh_f16, vcvth_f16_s16, vcvth_f16_s32, vcvth_f16_s64, vcvth_f16_u16, vcvth_f16_u32, vcvth_f16_u64, vcvth_s16_f16, vcvth_s32_f16, vcvth_s64_f16, vcvth_u16_f16, vcvth_u32_f16, vcvth_u64_f16, vcvtah_s16_f16, vcvtah_s32_f16, vcvtah_s64_f16, vcvtah_u16_f16, vcvtah_u32_f16, vcvtah_u64_f16, vcvtmh_s16_f16, vcvtmh_s32_f16, vcvtmh_s64_f16, vcvtmh_u16_f16, vcvtmh_u32_f16, vcvtmh_u64_f16, vcvtnh_s16_f16, vcvtnh_s32_f16, vcvtnh_s64_f16, vcvtnh_u16_f16, vcvtnh_u32_f16, vcvtnh_u64_f16, vcvtph_s16_f16, vcvtph_s32_f16, vcvtph_s64_f16, vcvtph_u16_f16, vcvtph_u32_f16, vcvtph_u64_f16, vnegh_f16, vrecpeh_f16, vrecpxh_f16, vrndh_f16, vrndah_f16, vrndih_f16, vrndmh_f16, vrndnh_f16, vrndph_f16, vrndxh_f16, vrsqrteh_f16, vsqrth_f16): New. From-SVN: r238722
2016-07-25[AArch64][6/14] ARMv8.2-A FP16 reduction vector intrinsicsJiong Wang5-12/+78
gcc/ * config/aarch64/aarch64-simd-builtins.def (reduc_smax_scal_, reduc_smin_scal_): Use VDQIF_F16. (reduc_smax_nan_scal_, reduc_smin_nan_scal_): Use VHSDF. * config/aarch64/aarch64-simd.md (reduc_<maxmin_uns>_scal_<mode>): Use VHSDF. (aarch64_reduc_<maxmin_uns>_internal<mode>): Likewise. * config/aarch64/iterators.md (VDQIF_F16): New. (vp): Support HF modes. * config/aarch64/arm_neon.h (vmaxv_f16, vmaxvq_f16, vminv_f16, vminvq_f16, vmaxnmv_f16, vmaxnmvq_f16, vminnmv_f16, vminnmvq_f16): New. From-SVN: r238721
2016-07-25[AArch64][5/10] ARMv8.2-A FP16 lane vector intrinsicsJiong Wang4-16/+190
gcc/ * config/aarch64/aarch64-simd.md (*aarch64_mulx_elt_to_64v2df): Rename to "*aarch64_mulx_elt_from_dup<mode>". (*aarch64_mul3_elt<mode>): Update schedule type. (*aarch64_mul3_elt_from_dup<mode>): Likewise. (*aarch64_fma4_elt_from_dup<mode>): Likewise. (*aarch64_fnma4_elt_from_dup<mode>): Likewise. * config/aarch64/iterators.md (VMUL): Supprt half precision float modes. (f, fp): Support HF modes. * config/aarch64/arm_neon.h (vfma_lane_f16, vfmaq_lane_f16, vfma_laneq_f16, vfmaq_laneq_f16, vfma_n_f16, vfmaq_n_f16, vfms_lane_f16, vfmsq_lane_f16, vfms_laneq_f16, vfmsq_laneq_f16, vfms_n_f16, vfmsq_n_f16, vmul_lane_f16, vmulq_lane_f16, vmul_laneq_f16, vmulq_laneq_f16, vmul_n_f16, vmulq_n_f16, vmulx_lane_f16, vmulxq_lane_f16, vmulx_laneq_f16, vmulxq_laneq_f16): New. From-SVN: r238719
2016-07-25[AArch64][4/10] ARMv8.2-A FP16 three operands vector intrinsicsJiong Wang4-81/+89
gcc/ * config/aarch64/aarch64-simd-builtins.def: Register new builtins. * config/aarch64/aarch64-simd.md (fma<mode>4, fnma<mode>4): Extend to HF modes. * config/aarch64/arm_neon.h (vfma_f16, vfmaq_f16, vfms_f16, vfmsq_f16): New. From-SVN: r238718
2016-07-25[AArch64][3/10] ARMv8.2-A FP16 two operands vector intrinsicsJiong Wang6-96/+523
gcc/ * config/aarch64/aarch64-simd-builtins.def: Register new builtins. * config/aarch64/aarch64-simd.md (aarch64_rsqrts<mode>): Extend to HF modes. (fabd<mode>3): Likewise. (<FCVT_F2FIXED:fcvt_fixed_insn><VHSDF_SDF:mode>3): Likewise. (<FCVT_FIXED2F:fcvt_fixed_insn><VHSDI_SDI:mode>3): Likewise. (aarch64_<maxmin_uns>p<mode>): Likewise. (<su><maxmin><mode>3): Likewise. (<maxmin_uns><mode>3): Likewise. (<fmaxmin><mode>3): Likewise. (aarch64_faddp<mode>): Likewise. (aarch64_fmulx<mode>): Likewise. (aarch64_frecps<mode>): Likewise. (*aarch64_fac<optab><mode>): Rename to aarch64_fac<optab><mode>. (add<mode>3): Extend to HF modes. (sub<mode>3): Likewise. (mul<mode>3): Likewise. (div<mode>3): Likewise. (*div<mode>3): Likewise. * config/aarch64/aarch64.c (aarch64_emit_approx_div): Return false for HF, V4HF and V8HF. * config/aarch64/iterators.md (VDQ_HSDI, VSDQ_HSDI): New mode iterator. * config/aarch64/arm_neon.h (vadd_f16): New. (vaddq_f16, vabd_f16, vabdq_f16, vcage_f16, vcageq_f16, vcagt_f16, vcagtq_f16, vcale_f16, vcaleq_f16, vcalt_f16, vcaltq_f16, vceq_f16, vceqq_f16, vcge_f16, vcgeq_f16, vcgt_f16, vcgtq_f16, vcle_f16, vcleq_f16, vclt_f16, vcltq_f16, vcvt_n_f16_s16, vcvtq_n_f16_s16, vcvt_n_f16_u16, vcvtq_n_f16_u16, vcvt_n_s16_f16, vcvtq_n_s16_f16, vcvt_n_u16_f16, vcvtq_n_u16_f16, vdiv_f16, vdivq_f16, vdup_lane_f16, vdup_laneq_f16, vdupq_lane_f16, vdupq_laneq_f16, vdups_lane_f16, vdups_laneq_f16, vmax_f16, vmaxq_f16, vmaxnm_f16, vmaxnmq_f16, vmin_f16, vminq_f16, vminnm_f16, vminnmq_f16, vmul_f16, vmulq_f16, vmulx_f16, vmulxq_f16, vpadd_f16, vpaddq_f16, vpmax_f16, vpmaxq_f16, vpmaxnm_f16, vpmaxnmq_f16, vpmin_f16, vpminq_f16, vpminnm_f16, vpminnmq_f16, vrecps_f16, vrecpsq_f16, vrsqrts_f16, vrsqrtsq_f16, vsub_f16, vsubq_f16): Likewise. From-SVN: r238717
2016-07-25[AArch64][2/10] ARMv8.2-A FP16 one operand vector intrinsicsJiong Wang7-59/+523
gcc/ * config/aarch64/aarch64-builtins.c (TYPES_BINOP_USS): New. * config/aarch64/aarch64-simd-builtins.def: Register new builtins. * config/aarch64/aarch64-simd.md (aarch64_rsqrte<mode>): Extend to HF modes. (neg<mode>2): Likewise. (abs<mode>2): Likewise. (<frint_pattern><mode>2): Likewise. (l<fcvt_pattern><su_optab><VDQF:mode><fcvt_target>2): Likewise. (<optab><VDQF:mode><fcvt_target>2): Likewise. (<fix_trunc_optab><VDQF:mode><fcvt_target>2): Likewise. (ftrunc<VDQF:mode>2): Likewise. (<optab><fcvt_target><VDQF:mode>2): Likewise. (sqrt<mode>2): Likewise. (*sqrt<mode>2): Likewise. (aarch64_frecpe<mode>): Likewise. (aarch64_cm<optab><mode>): Likewise. * config/aarch64/aarch64.c (aarch64_emit_approx_sqrt): Return false for V4HF and V8HF. * config/aarch64/iterators.md (VHSDF, VHSDF_DF, VHSDF_SDF): New. (VDQF_COND, fcvt_target, FCVT_TARGET, hcon): Extend mode attribute to HF modes. (stype): New. * config/aarch64/arm_neon.h (vdup_n_f16): New. (vdupq_n_f16): Likewise. (vld1_dup_f16): Use vdup_n_f16. (vld1q_dup_f16): Use vdupq_n_f16. (vabs_f16): New. (vabsq_f16, vceqz_f16, vceqzq_f16, vcgez_f16, vcgezq_f16, vcgtz_f16, vcgtzq_f16, vclez_f16, vclezq_f16, vcltz_f16, vcltzq_f16, vcvt_f16_s16, vcvtq_f16_s16, vcvt_f16_u16, vcvtq_f16_u16, vcvt_s16_f16, vcvtq_s16_f16, vcvt_u16_f16, vcvtq_u16_f16, vcvta_s16_f16, vcvtaq_s16_f16, vcvta_u16_f16, vcvtaq_u16_f16, vcvtm_s16_f16, vcvtmq_s16_f16, vcvtm_u16_f16, vcvtmq_u16_f16, vcvtn_s16_f16, vcvtnq_s16_f16, vcvtn_u16_f16, vcvtnq_u16_f16, vcvtp_s16_f16, vcvtpq_s16_f16, vcvtp_u16_f16, vcvtpq_u16_f16, vneg_f16, vnegq_f16, vrecpe_f16, vrecpeq_f16, vrnd_f16, vrndq_f16, vrnda_f16, vrndaq_f16, vrndi_f16, vrndiq_f16, vrndm_f16, vrndmq_f16, vrndn_f16, vrndnq_f16, vrndp_f16, vrndpq_f16, vrndx_f16, vrndxq_f16, vrsqrte_f16, vrsqrteq_f16, vsqrt_f16, vsqrtq_f16): Likewise. From-SVN: r238716
2016-07-25[AArch64][1/10] ARMv8.2-A FP16 data processing intrinsicsJiong Wang4-15/+346
gcc/ * config/aarch64/aarch64-simd.md (aarch64_<PERMUTE:perm_insn><PERMUTE:perm_hilo><mode>): Use VALL_F16. (aarch64_ext<mode>): Likewise. (aarch64_rev<REVERSE:rev_op><mode>): Likewise. * config/aarch64/aarch64.c (aarch64_evpc_trn): Support V4HFmode and V8HFmode. (aarch64_evpc_uzp): Likewise. (aarch64_evpc_zip): Likewise. (aarch64_evpc_ext): Likewise. (aarch64_evpc_rev): Likewise. * config/aarch64/arm_neon.h (__aarch64_vdup_lane_f16): New. (__aarch64_vdup_laneq_f16): New.. (__aarch64_vdupq_lane_f16): New. (__aarch64_vdupq_laneq_f16): New. (vbsl_f16): New. (vbslq_f16): New. (vdup_n_f16): New. (vdupq_n_f16): New. (vdup_lane_f16): New. (vdup_laneq_f16): New. (vdupq_lane_f16): New. (vdupq_laneq_f16): New. (vduph_lane_f16): New. (vduph_laneq_f16): New. (vext_f16): New. (vextq_f16): New. (vmov_n_f16): New. (vmovq_n_f16): New. (vrev64_f16): New. (vrev64q_f16): New. (vtrn1_f16): New. (vtrn1q_f16): New. (vtrn2_f16): New. (vtrn2q_f16): New. (vtrn_f16): New. (vtrnq_f16): New. (__INTERLEAVE_LIST): Support float16x4_t, float16x8_t. (vuzp1_f16): New. (vuzp1q_f16): New. (vuzp2_f16): New. (vuzp2q_f16): New. (vzip1_f16): New. (vzip2q_f16): New. (vmov_n_f16): Reimplement using vdup_n_f16. (vmovq_n_f16): Reimplement using vdupq_n_f16.. From-SVN: r238715
2016-07-25[AArch64][3/3] Migrate aarch64_expand_prologue/epilogue to aarch64_add_constantJiong Wang2-63/+33
gcc/ * config/aarch64/aarch64.c (aarch64_add_constant): New parameter "frame_related_p". Generate CFA annotation when it's necessary. (aarch64_expand_prologue): Use aarch64_add_constant. (aarch64_expand_epilogue): Likewise. (aarch64_output_mi_thunk): Pass "false" when calling aarch64_add_constant. From-SVN: r238714
2016-07-25[AArch64][2/3] Optimize aarch64_add_constant to generate better addition ↵Jiong Wang2-38/+46
sequences gcc/ * config/aarch64/aarch64.c (aarch64_add_constant): Optimize instruction sequences. From-SVN: r238713
2016-07-25[AArch64][1/3] Migrate aarch64_add_constant to new interface & kill ↵Jiong Wang2-90/+20
aarch64_build_constant gcc/ * config/aarch64/aarch64.c (aarch64_add_constant): New parameter "mode". Use aarch64_internal_mov_immediate instead of aarch64_build_constant. (aarch64_output_mi_thunk): Pass Pmode when calling aarch64_add_constant. (aarch64_build_constant): Delete. From-SVN: r238712
2016-07-25Fix missing qualification in <ext/rope>Georeth Chow3-1/+35
2016-07-25 Georeth Chow <georeth2010@gmail.com> * include/ext/ropeimpl.h (rope<>::_S_dump(_RopeRep*, int)): Qualify _S_concat enumerator. * testsuite/ext/rope/6.cc: New test. From-SVN: r238711
2016-07-25revert: nvptx: do not implicitly enable -ftoplevel-reorderAlexander Monakov2-0/+14
Revert 2016-07-20 Alexander Monakov <amonakov@ispras.ru> * config/nvptx/nvptx.c (nvptx_option_override): Do not set flag_toplevel_reorder. From-SVN: r238710
2016-07-25cgraph.c (cgraph_node::verify_node): Compare against builtin by using ↵Richard Biener11-157/+41
DECL_BUILT_IN_CLASS and DECL_FUNCTION_CODE. 2016-07-25 Richard Biener <rguenther@suse.de> * cgraph.c (cgraph_node::verify_node): Compare against builtin by using DECL_BUILT_IN_CLASS and DECL_FUNCTION_CODE. * tree-chkp.c (chkp_gimple_call_builtin_p): Likewise. * tree-streamer.h (streamer_handle_as_builtin_p): Remove. (streamer_get_builtin_tree): Likewise. (streamer_write_builtin): Likewise. * lto-streamer.h (LTO_builtin_decl): Remove. * lto-streamer-in.c (lto_read_tree_1): Remove assert. (lto_input_scc): Remove LTO_builtin_decl handling. (lto_input_tree_1): Liekwise. * lto-streamer-out.c (lto_output_tree_1): Remove special handling of builtins. (DFS::DFS): Likewise. * tree-streamer-in.c (streamer_get_builtin_tree): Remove. * tree-streamer-out.c (pack_ts_function_decl_value_fields): Remove assert. (streamer_write_builtin): Remove. lto/ * lto.c (compare_tree_sccs_1): Remove streamer_handle_as_builtin_p uses. (unify_scc): Likewise. (lto_read_decls): Likewise. From-SVN: r238709
2016-07-25Fix tests for targets with sizeof(int) != 32.Senthil Kumar Selvaraj4-2/+12
gcc/testsuite/ * gcc.dg/torture/pr69352.c (foo): Cast to intptr_t instead of long. * gcc.dg/torture/pr69771.c: Require int32plus. * gcc.dg/torture/pr71866.c (inb): Add cast to intptr_t. From-SVN: r238708
2016-07-25Don't call get_working_sets w/ LTO and -fauto-profile (PRMartin Liska2-1/+8
* lto-cgraph.c (input_symtab): Don't call get_working_sets if flag_auto_profile is set to true. From-SVN: r238707
2016-07-25Handle loops with loop->latch == NULL (PR gcov-profile/71868)Martin Liska2-3/+9
PR gcov-profile/71868 * cfgloopanal.c (expected_loop_iterations_unbounded): When we have a function with multiple latches, count them all. From-SVN: r238706
2016-07-25Fix memory leak introduced in r238336Martin Liska2-1/+8
* tree-ssa-loop-niter.c (loop_only_exit_p): Release body array. From-SVN: r238705
2016-07-25Call get_ops just for SSA_NAMEs (PR tree-optimization/71987)Martin Liska4-3/+35
PR tree-optimization/71987 * tree-ssa-reassoc.c (maybe_optimize_range_tests): Call get_ops just for SSA_NAMEs. Fix GNU coding style. * gcc.dg/torture/pr71987.c: New test. From-SVN: r238704
2016-07-25Use std::mt19937, std::thread and std::atomic to simplify testsJonathan Wakely3-120/+56
* testsuite/20_util/shared_ptr/thread/default_weaktoshared.cc: Use std::mt19937, std::thread and std::atomic to simplify test. * testsuite/20_util/shared_ptr/thread/mutex_weaktoshared.cc: Likewise. From-SVN: r238703
2016-07-25Adapt the numbering scheme (PR gcov-profile/64874)Martin Liska3-12/+18
PR gcov-profile/64874 * gcov-io.h: Update command about file format. * gcov-iov.c (main): Adapt the numbering scheme. From-SVN: r238702
2016-07-25Revert 2015-11-09 sanitizer/obstack configuryAlan Modra13-72/+22
The 2015-11-23 sanitizer merge from upstream lost the changes from f6528435 to sanitizer_common/sanitizer_common_interceptors.inc, which made use of _OBSTACK_SIZE_T. So the configury changes to define _OBSTACK_SIZE_T don't do anything. This wasn't such a bad thing anyway.. The configure test wrongly adds -I${srcdir}/../include, effectively resulting in a test of libiberty/obstack rather than libc obstack support, and it's the latter that asan and tsan need to work with. So, remove the useless configure test. Upstream santizer project has been made aware of the problem if glibc obstack support is ever updated. Bootsrapped etc. x86_64-linux and committed as obvious. Revert 2015-11-09 Alan Modra <amodra@gmail.com> * configure.ac: Don't substitute OBSTACK_DEFS. * asan/Makefile.am: Remove OBSTACK_DEFS from DEFS. * tsan/Makefile.am: Likewise. * configure: Regenerate. * Makefile.in: Regenerate. * asan/Makefile.in: Regenerate. * interception/Makefile.in: Regenerate. * libbacktrace/Makefile.in: Regenerate. * lsan/Makefile.in: Regenerate. * sanitizer_common/Makefile.in: Regenerate. * tsan/Makefile.in: Regenerate. * ubsan/Makefile.in: Regenerate. From-SVN: r238701
2016-07-25Daily bump.GCC Administrator1-1/+1
From-SVN: r238700
2016-07-24PR c++/71515 - typename in partial specializationJason Merrill3-14/+25
* pt.c (resolve_typename_type): Try to avoid calling currently_open_class. From-SVN: r238696