Commit Graph

133631 Commits

Author SHA1 Message Date
Hans-Peter Nilsson
7fd746204c Add forgotten "configure: regenerate" stanza to last CL entry.
From-SVN: r216690
2014-10-25 15:36:39 +00:00
Alan Modra
f27dfe8782 re PR rtl-optimization/63615 (FAIL: gcc.target/i386/addr-sel-1.c)
PR rtl-optimization/63615
	* simplify-rtx.c (simplify_plus_minus): Set "canonicalized" on
	decomposing PLUS or MINUS if operands are not placed adjacent
	in the "ops" array.

From-SVN: r216689
2014-10-25 17:15:52 +10:30
Joseph Myers
4aa1942293 Only allow e500 double in SPE_SIMD_REGNO_P registers.
rs6000_hard_regno_nregs_internal allows SPE vectors in single
registers satisfying SPE_SIMD_REGNO_P (i.e. register numbers 0 to
31).  However, the corresponding test for e500 double treats all
registers as being able to store a 64-bit value, rather than just
those GPRs.

Logically this inconsistency is wrong; in addition, it causes problems
unwinding from signal handlers.  linux-unwind.h uses
ARG_POINTER_REGNUM as a place to store the return address from a
signal handler, but this logic in rs6000_hard_regno_nregs_internal
results in that being considered an 8-byte register, resulting in
assertion failures.
(<https://gcc.gnu.org/ml/gcc-patches/2014-09/msg02625.html> first
needs to be applied for unwinding to work in general on e500.)  This
patch makes rs6000_hard_regno_nregs_internal handle the e500 double
case consistently with SPE vectors.

Tested with no regressions with cross to powerpc-linux-gnuspe (given
the aforementioned patch applied).  Failures of signal handling
unwinding tests such as gcc.dg/cleanup-{8,9,10,11}.c are fixed by this
patch.

	* config/rs6000/rs6000.c (rs6000_hard_regno_nregs_internal): Do
	not allow e500 double in registers not satisyfing
	SPE_SIMD_REGNO_P.

From-SVN: r216688
2014-10-25 01:23:17 +01:00
Joseph Myers
d80c2beaf7 Optimize powerpc*-*-linux* 32-bit classic hard/soft float hardfp/soft-fp use.
Continuing the cleanups of libgcc soft-fp configuration for
powerpc*-*-linux* in preparation for implementing
TARGET_ATOMIC_ASSIGN_EXPAND_FENV for soft-float and e500, this patch
optimizes the choice of which functions to build for the 32-bit
classic hard-float and soft-float cases.  (e500 will be dealt with in
a separate patch which will need to add new features to t-hardfp and
t-softfp; this patch keeps the status quo for e500.)

For hard-float, while the functions in question are part of the libgcc
ABI there is no need for them to contain software floating point code:
no newly built code should use them, and if anything does use them
it's most efficient (space and speed) for them to pass straight
through to floating-point hardware instructions; this case is made to
use t-hardfp to achieve that.  For soft-float, direct use of soft-fp
functions for operations involving DImode or unsigned integers is more
efficient than using the libgcc2.c versions of those operations to
convert to operations on other types (which then end up calling
soft-fp functions for those other types, possibly more than once);
this case is thus stopped from using t-softfp-excl.  (A future patch
will stop the e500 cases from using t-softfp-excl as well.)

Tested with no regressions for crosses to powerpc-linux-gnu (soft
float and classic hard float); also checked that the same set of
symbols and versions is exported from shared libgcc before and after
the patch.

	* configure.ac (ppc_fp_type): Set variable on powerpc*-*-linux*.
	* configure: Regenerate.
	* config.host (powerpc*-*-linux*): Use $ppc_fp_type to determine
	additions to tmake_file.  Use t-hardfp-sfdf and t-hardfp instead
	of soft-fp for 32-bit classic hard float.  Do not use
	t-softfp-excl for soft float.

From-SVN: r216687
2014-10-25 01:22:02 +01:00
GCC Administrator
0f849c161a Daily bump.
From-SVN: r216686
2014-10-25 00:16:13 +00:00
Aldy Hernandez
c22354fd69 dwarf2out.c (declare_in_namespace): Only emit external declarations in the local scope once.
* dwarf2out.c (declare_in_namespace): Only emit external
	declarations in the local scope once.

From-SVN: r216683
2014-10-25 00:08:41 +00:00
Jonathan Wakely
fbee6d3164 C++11 explicitly forbids macros for bool, true and false.
gcc:
	* ginclude/stdbool.h: Do not define bool, true or false in C++11.

libstdc++-v3:
	* testsuite/18_support/headers/cstdbool/macros.cc: New.

From-SVN: r216679
2014-10-24 21:56:40 +01:00
Tobias Burnus
229c59193a check.c (check_co_collective): Reject coindexed A args.
2014-10-24  Tobias Burnus  <burnus@net-b.de>

gcc/fortran
        * check.c (check_co_collective): Reject coindexed A args.
        (gfc_check_co_reduce): Add OPERATOR checks.
        * gfortran.texi (_gfortran_caf_co_broadcast,
        * _gfortran_caf_co_max,
        _gfortran_caf_co_min, _gfortran_caf_co_sum,
        _gfortran_caf_co_reduce): Add ABI documentation.
        * intrinsic.texi (CO_REDUCE): Document intrinsic.
        (DPROD): Returns double not single precision.
        * trans-decl.c (gfor_fndecl_co_reduce): New global var.
        (gfc_build_builtin_function_decls): Init it.
        * trans.h (gfor_fndecl_co_reduce): Declare it.
        * trans-intrinsic.c (conv_co_collective,
        gfc_conv_intrinsic_subroutine): Handle CO_REDUCE.

gcc/testsuite/
        * gfortran.dg/coarray_collectives_9.f90: Remove dg-error.
        * gfortran.dg/coarray_collectives_13.f90: New.
        * gfortran.dg/coarray_collectives_14.f90: New.
        * gfortran.dg/coarray_collectives_15.f90: New.
        * gfortran.dg/coarray_collectives_16.f90: New.

From-SVN: r216678
2014-10-24 22:52:41 +02:00
Ian Lance Taylor
763206befb Fix error in earlier ChangeLog entry: s/define/undefine/.
From-SVN: r216676
2014-10-24 18:27:04 +00:00
Jiong Wang
714b74f82b [ARM] gnu11 cleanup for aapcs testcases
gcc/testsuite/
   * gcc.target/arm/aapcs/abitest.h: Declare memcpy.

From-SVN: r216675
2014-10-24 17:14:02 +00:00
Marek Polacek
90f3520ea5 re PR c/56980 (C pretty-printer does not handle well pointer to typedef of struct)
PR c/56980
	* c-pretty-print.c (c_pretty_printer::simple_type_specifier): Don't
	print "struct"/"union"/"enum" for typedefed names.

	* gcc.dg/pr56980.c: New test.

From-SVN: r216674
2014-10-24 16:29:56 +00:00
Charles Baylis
820aecbf23 fix up changelog format for r216671.
From-SVN: r216673
2014-10-24 15:01:49 +00:00
Charles Baylis
29e5e2f9e2 [PATCH 2/2] [AARCH64,NEON] Convert arm_neon.h to use new builtins for vld[234](q?)_lane_*
2014-10-24  Charles Baylis  <charles.baylis@linaro.org>

	* config/aarch64/arm_neon.h (__LD2_LANE_FUNC): Rewrite using builtins,
	update uses to use new macro arguments.
	(__LD3_LANE_FUNC): Likewise.
	(__LD4_LANE_FUNC): Likewise.

From-SVN: r216672
2014-10-24 15:00:20 +00:00
Charles Baylis
3ec1be97ac [PATCH 1/2] [AARCH64,NEON] Add patterns + builtins for vld[234](q?)_lane_* intrinsics
2014-10-24  Charles Baylis  <charles.baylis@linaro.org>
	* config/aarch64/aarch64-builtins.c
	(aarch64_types_loadstruct_lane_qualifiers): Define.
	* config/aarch64/aarch64-simd-builtins.def (ld2_lane, ld3_lane,
	ld4_lane): New builtins.
	* config/aarch64/aarch64-simd.md (aarch64_vec_load_lanesoi_lane<mode>):
	New pattern.
	(aarch64_vec_load_lanesci_lane<mode>): Likewise.
	(aarch64_vec_load_lanesxi_lane<mode>): Likewise.
	(aarch64_ld2_lane<mode>): New expand.
	(aarch64_ld3_lane<mode>): Likewise.
	(aarch64_ld4_lane<mode>): Likewise.
	* config/aarch64/aarch64.md (define_c_enum "unspec"): Add
	UNSPEC_LD2_LANE, UNSPEC_LD3_LANE, UNSPEC_LD4_LANE.

From-SVN: r216671
2014-10-24 14:58:51 +00:00
Hans-Peter Nilsson
4eb1ac3913 Fix bad email last commit
From-SVN: r216670
2014-10-24 14:31:47 +00:00
Hans-Peter Nilsson
3d96b0d073 configure.ac (build_configargs): Don't share config.cache between build subdirs.
* configure.ac (build_configargs): Don't share config.cache between
	build subdirs.

From-SVN: r216669
2014-10-24 14:30:35 +00:00
Georg-Johann Lay
8e3d9e673a avr-protos.h (avr_out_sign_extend): New.
* avr-protos.h (avr_out_sign_extend): New.
	* avr.c (avr_adjust_insn_length) [ADJUST_LEN_SEXT]: Handle.
	(avr_out_sign_extend): New function.
	* avr.md (extendqihi2, extendqipsi2, extendqisi2, extendhipsi2)
	(extendhisi2, extendpsisi2): Use it.
	(adjust_len) [sext]: New.

From-SVN: r216668
2014-10-24 14:25:10 +00:00
Paolo Carlini
709def90a4 atomic_base.h: Avoid including <stdbool.h>.
2014-10-24  Paolo Carlini  <paolo.carlini@oracle.com>

	* include/bits/atomic_base.h: Avoid including <stdbool.h>.
	* include/std/atomic: When __cplusplus < 201103L skip the rest of
	the header.
	* testsuite/29_atomics/headers/atomic/std_c++0x_neg.cc: Adjust.

From-SVN: r216667
2014-10-24 12:54:43 +00:00
Daniel Hellstrom
d81230b555 config.gcc (sparc*-*-*): Accept mcpu=leon3v7 processor.
2014-10-24  Daniel Hellstrom  <daniel@gaisler.com>

	* config.gcc (sparc*-*-*): Accept mcpu=leon3v7 processor.
	* doc/invoke.texi (SPARC options): Add mcpu=leon3v7 comment.
	* config/sparc/leon.md (leon3_load, leon_store, leon_fp_*): Handle
	leon3v7 as leon3.
	* config/sparc/sparc-opts.h (enum processor_type): Add LEON3V7.
	* config/sparc/sparc.c (sparc_option_override): Add leon3v7 support.
	* config/sparc/sparc.h (TARGET_CPU_leon3v7): New define.
	* config/sparc/sparc.md (cpu): Add leon3v7.
	* config/sparc/sparc.opt (enum processor_type): Add leon3v7.

From-SVN: r216666
2014-10-24 14:34:49 +02:00
Jiong Wang
07792ca2cb [ARM] revert changes on check_effective_target_arm_*_ok
gcc/testsuite/
    * lib/target-supports.exp
    (check_effective_target_arm_crypto_ok_nocache): Remove declaration for
    vaeseq_u8.
    (check_effective_target_arm_neon_fp16_ok_nocache): Remove declaration for
    vcvt_f16_f32.
    (check_effective_target_arm_neonv2_ok_nocache): Remove declaration for
    vfma_f32.

From-SVN: r216663
2014-10-24 12:06:37 +00:00
Martin Liska
59f084e034 re PR tree-optimization/63595 (Segmentation faults inside kernel)
Fix for PR63595

	* gcc.dg/ipa/pr63595.c: New test.
	* ipa-icf.c (sem_function::compare_phi_node): PHI result comparison

From-SVN: r216662
2014-10-24 11:57:58 +00:00
Christophe Lyon
237d8521e9 vuzp.c: New file.
2014-10-24  Christophe Lyon  <christophe.lyon@linaro.org>

	* gcc.target/aarch64/advsimd-intrinsics/vuzp.c: New file.
	* gcc.target/aarch64/advsimd-intrinsics/vzip.c: Likewise.

From-SVN: r216661
2014-10-24 13:54:30 +02:00
Christophe Lyon
1307a95bc3 vmul.c: New file.
2014-10-24  Christophe Lyon  <christophe.lyon@linaro.org>

	* gcc.target/aarch64/advsimd-intrinsics/vmul.c: New file.

From-SVN: r216660
2014-10-24 13:54:06 +02:00
Christophe Lyon
1933a62797 vldX_lane.c: New file.
2014-10-24  Christophe Lyon  <christophe.lyon@linaro.org>

	* gcc.target/aarch64/advsimd-intrinsics/vldX_lane.c: New file.

From-SVN: r216659
2014-10-24 13:53:29 +02:00
Christophe Lyon
fd8806d544 vldX.c: New file.
2014-10-24  Christophe Lyon  <christophe.lyon@linaro.org>

	* gcc.target/aarch64/advsimd-intrinsics/vldX.c: New file.

From-SVN: r216658
2014-10-24 13:53:04 +02:00
Christophe Lyon
a23001f677 vld1_dup.c: New file.
2014-10-24  Christophe Lyon  <christophe.lyon@linaro.org>

	* gcc.target/aarch64/advsimd-intrinsics/vld1_dup.c: New file.

From-SVN: r216657
2014-10-24 13:52:40 +02:00
Christophe Lyon
2191f6602f vdup-vmov.c: New file.
2014-10-24  Christophe Lyon  <christophe.lyon@linaro.org>

	* gcc.target/aarch64/advsimd-intrinsics/vdup-vmov.c: New file.

From-SVN: r216656
2014-10-24 13:52:16 +02:00
Christophe Lyon
e323628e6b vclz.c: New file.
2014-10-24  Christophe Lyon  <christophe.lyon@linaro.org>

	* gcc.target/aarch64/advsimd-intrinsics/vclz.c: New file.

From-SVN: r216655
2014-10-24 13:51:47 +02:00
Christophe Lyon
fd731cf95b vbsl.c: New file.
2014-10-24  Christophe Lyon  <christophe.lyon@linaro.org>

	* gcc.target/aarch64/advsimd-intrinsics/vbsl.c: New file.

From-SVN: r216654
2014-10-24 13:51:19 +02:00
Christophe Lyon
3a453a5cff vaddw.c: New file.
2014-10-24  Christophe Lyon  <christophe.lyon@linaro.org>

	* gcc.target/aarch64/advsimd-intrinsics/vaddw.c: New file.

From-SVN: r216653
2014-10-24 13:50:51 +02:00
Christophe Lyon
8e8c7a8ab1 vaddl.c: New file.
2014-10-24  Christophe Lyon  <christophe.lyon@linaro.org>

	* gcc.target/aarch64/advsimd-intrinsics/vaddl.c: New file.

From-SVN: r216652
2014-10-24 13:50:24 +02:00
Christophe Lyon
b3f5379954 vaddhn.c: New file.
2014-10-24  Christophe Lyon  <christophe.lyon@linaro.org>

	* gcc.target/aarch64/advsimd-intrinsics/vaddhn.c: New file.

From-SVN: r216651
2014-10-24 13:49:59 +02:00
Christophe Lyon
b46684ac1b vabdl.c: New file.
2014-10-24  Christophe Lyon  <christophe.lyon@linaro.org>

	* gcc.target/aarch64/advsimd-intrinsics/vabdl.c: New file.

From-SVN: r216650
2014-10-24 13:49:10 +02:00
Christophe Lyon
bafbb90b5c vabd.c: New file.
2014-10-24  Christophe Lyon  <christophe.lyon@linaro.org>

	* gcc.target/aarch64/advsimd-intrinsics/vabd.c: New file.

From-SVN: r216649
2014-10-24 13:48:34 +02:00
Christophe Lyon
295dde9412 vabal.c: New file.
2014-10-24  Christophe Lyon  <christophe.lyon@linaro.org>

	* gcc.target/aarch64/advsimd-intrinsics/vabal.c: New file.

From-SVN: r216648
2014-10-24 13:47:49 +02:00
Christophe Lyon
f59574a1c4 binary_sat_op.inc: New file.
2014-10-24  Christophe Lyon  <christophe.lyon@linaro.org>

	* gcc.target/aarch64/advsimd-intrinsics/binary_sat_op.inc: New
	file.
	* gcc.target/aarch64/advsimd-intrinsics/vqadd.c: Likewise.
	* gcc.target/aarch64/advsimd-intrinsics/vqsub.c: Likewise.

From-SVN: r216647
2014-10-24 13:47:21 +02:00
Christophe Lyon
56900c9c77 unary_sat_op.inc: New file.
2014-10-24  Christophe Lyon  <christophe.lyon@linaro.org>

	* gcc.target/aarch64/advsimd-intrinsics/unary_sat_op.inc: New
	file.
	* gcc.target/aarch64/advsimd-intrinsics/vqabs.c: Likewise.
	* gcc.target/aarch64/advsimd-intrinsics/vqneg.c: Likewise.

From-SVN: r216646
2014-10-24 13:46:47 +02:00
Christophe Lyon
c91f3ac1ff cmp_fp_op.inc: New file.
2014-10-24  Christophe Lyon  <christophe.lyon@linaro.org>

	* gcc.target/aarch64/advsimd-intrinsics/cmp_fp_op.inc: New file.
	* gcc.target/aarch64/advsimd-intrinsics/vcage.c: Likewise.
	* gcc.target/aarch64/advsimd-intrinsics/vcagt.c: Likewise.
	* gcc.target/aarch64/advsimd-intrinsics/vcale.c: Likewise.
	* gcc.target/aarch64/advsimd-intrinsics/vcalt.c: Likewise.

From-SVN: r216645
2014-10-24 13:46:04 +02:00
Christophe Lyon
ed9f6694fa cmp_op.inc: New file.
2014-10-24  Christophe Lyon  <christophe.lyon@linaro.org>

	* gcc.target/aarch64/advsimd-intrinsics/cmp_op.inc: New file.
	* gcc.target/aarch64/advsimd-intrinsics/vceq.c: Likewise.
	* gcc.target/aarch64/advsimd-intrinsics/vcge.c: Likewise.
	* gcc.target/aarch64/advsimd-intrinsics/vcgt.c: Likewise.
	* gcc.target/aarch64/advsimd-intrinsics/vcle.c: Likewise.
	* gcc.target/aarch64/advsimd-intrinsics/vclt.c: Likewise.

From-SVN: r216644
2014-10-24 13:45:24 +02:00
Christophe Lyon
25b0d373ba binary_op.inc: New file.
2014-10-24  Christophe Lyon  <christophe.lyon@linaro.org>

	* gcc.target/aarch64/advsimd-intrinsics/binary_op.inc: New file.
	* gcc.target/aarch64/advsimd-intrinsics/vadd.c: Likewise.
	* gcc.target/aarch64/advsimd-intrinsics/vand.c: Likewise.
	* gcc.target/aarch64/advsimd-intrinsics/vbic.c: Likewise.
	* gcc.target/aarch64/advsimd-intrinsics/veor.c: Likewise.
	* gcc.target/aarch64/advsimd-intrinsics/vorn.c: Likewise.
	* gcc.target/aarch64/advsimd-intrinsics/vorr.c: Likewise.
	* gcc.target/aarch64/advsimd-intrinsics/vsub.c: Likewise.

From-SVN: r216643
2014-10-24 13:44:44 +02:00
Christophe Lyon
a5d9f9d388 unary_op.inc: New file.
2014-10-24  Christophe Lyon  <christophe.lyon@linaro.org>

	* gcc.target/aarch64/advsimd-intrinsics/unary_op.inc: New file.
	* gcc.target/aarch64/advsimd-intrinsics/vabs.c: Likewise.
	* gcc.target/aarch64/advsimd-intrinsics/vneg.c: Likewise.

From-SVN: r216642
2014-10-24 13:42:09 +02:00
Christophe Lyon
2f46a9cd83 Add new files missing from previous commit.
From-SVN: r216641
2014-10-24 13:40:58 +02:00
Christophe Lyon
16ad00b00a README.advsimd-intrinsics: New file.
2014-10-24  Christophe Lyon  <christophe.lyon@linaro.org>

	* gcc.target/arm/README.advsimd-intrinsics: New file.
	* gcc.target/aarch64/advsimd-intrinsics/README: Likewise.
	* gcc.target/aarch64/advsimd-intrinsics/arm-neon-ref.h: Likewise.
	* gcc.target/aarch64/advsimd-intrinsics/compute-ref-data.h:
	Likewise.
	* gcc.target/aarch64/advsimd-intrinsics/advsimd-intrinsics.exp:
	Likewise.
	* gcc.target/aarch64/advsimd-intrinsics/vaba.c: Likewise.
	* gcc.target/aarch64/advsimd-intrinsics/vld1.c: Likewise.
	* gcc.target/aarch64/advsimd-intrinsics/vshl.c: Likewise.

From-SVN: r216640
2014-10-24 13:38:51 +02:00
Kyrylo Tkachov
bc50815a52 [AArch64] LINK_SPEC changes for Cortex-A53 erratum 835769 workaround
* config/aarch64/aarch64-elf-raw.h (CA53_ERR_835769_SPEC): Define.
     (LINK_SPEC): Include CA53_ERR_835769_SPEC.
     * config/aarch64/aarch64-linux.h (CA53_ERR_835769_SPEC): Define.
     (LINK_SPEC): Include CA53_ERR_835769_SPEC.

From-SVN: r216639
2014-10-24 11:32:40 +00:00
Christophe Lyon
84a34193c2 wrapper.exp ({tool}_maybe_build_wrapper): Clear wrap_compile_flags before setting it.
2014-10-24  Christophe Lyon  <christophe.lyon@linaro.org>

	* lib/wrapper.exp ({tool}_maybe_build_wrapper): Clear
	wrap_compile_flags before setting it.

From-SVN: r216638
2014-10-24 13:32:05 +02:00
Kyrylo Tkachov
8baff86e56 [AArch64] Cleanup logic around aarch64_final_prescan
* config/aarch64/aarch64.h (ADJUST_INSN_LENGTH): Wrap definition in
	do while (0).
	* config/aarch64/aarch64.c (is_mem_p): Delete.
	(is_memory_op): Rename to...
	(has_memory_op): ... This.  Use FOR_EACH_SUBRTX.
	(dep_between_memop_and_curr): Assert that the input is a SET.
	(aarch64_madd_needs_nop): Add comment.  Do not call
	dep_between_memop_and_curr on NULL body.
	(aarch64_final_prescan_insn): Add comment.
	Include rtl-iter.h.

From-SVN: r216637
2014-10-24 11:30:42 +00:00
Richard Biener
1f59b31508 Makefile.in (BUILD_CPPLIB): Move $(LIBINTL) $(LIBICONV) to genmatch BUILD_LIBS instead.
2014-10-24  Richard Biener  <rguenther@suse.de>

	* Makefile.in (BUILD_CPPLIB): Move $(LIBINTL) $(LIBICONV)
	to genmatch BUILD_LIBS instead.

From-SVN: r216632
2014-10-24 11:09:30 +00:00
Richard Biener
e0ee10ed5a genmatch.c (expr::gen_transform): Use fold_buildN_loc and build_call_expr_loc.
2014-10-24  Richard Biener  <rguenther@suse.de>

	* genmatch.c (expr::gen_transform): Use fold_buildN_loc
	and build_call_expr_loc.
	(dt_simplify::gen): Drop non_lvalue for GIMPLE, use
	non_lvalue_loc to build it for GENERIC.
	(decision_tree::gen_generic): Add location argument to
	generic_simplify prototype.
	(capture_info): New class.
	(capture_info::capture_info): New constructor.
	(capture_info::walk_match): New method.
	(capture_info::walk_result): New method.
	(capture_info::walk_c_expr): New method.
	(dt_simplify::gen): Handle preserving side-effects for
	GENERIC code generation.
	(decision_tree::gen_generic): Do not reject operands
	with TREE_SIDE_EFFECTS.
	* generic-match.h: New file.
	* generic-match-head.c: Include generic-match.h, not gimple-match.h.
	* match.pd: Add some constant folding patterns from fold-const.c.
	* fold-const.c: Include generic-match.h.
	(fold_unary_loc): Dispatch to generic_simplify.
	(fold_ternary_loc): Likewise.
	(fold_binary_loc): Likewise.  Remove patterns now implemented
	by generic_simplify.
	* gimple-fold.c (replace_stmt_with_simplification): New function.
	(fold_stmt_1): Add valueize parameter, dispatch to gimple_simplify.
	(no_follow_ssa_edges): New function.
	(fold_stmt): New overload with valueization hook.  Use
	no_follow_ssa_edges for the overload without hook.
	(fold_stmt_inplace): Likewise.
	* gimple-fold.h (no_follow_ssa_edges): Declare.

From-SVN: r216631
2014-10-24 11:00:08 +00:00
Felix Yang
77efea3120 re PR target/63173 (performance problem with simd intrinsics vld2_dup_* on aarch64-none-elf)
PR target/63173
        * config/aarch64/arm_neon.h (__LD2R_FUNC): Remove macro.
        (__LD3R_FUNC): Ditto.
        (__LD4R_FUNC): Ditto.
        (vld2_dup_s8, vld2_dup_s16, vld2_dup_s32, vld2_dup_f32, vld2_dup_f64,
         vld2_dup_u8, vld2_dup_u16, vld2_dup_u32, vld2_dup_p8, vld2_dup_p16
         vld2_dup_s64, vld2_dup_u64, vld2q_dup_s8, vld2q_dup_p8, 
         vld2q_dup_s16, vld2q_dup_p16, vld2q_dup_s32, vld2q_dup_s64, 
         vld2q_dup_u8, vld2q_dup_u16, vld2q_dup_u32, vld2q_dup_u64 
         vld2q_dup_f32, vld2q_dup_f64): Rewrite using builtin functions.
        (vld3_dup_s64, vld3_dup_u64, vld3_dup_f64, vld3_dup_s8 
         vld3_dup_p8, vld3_dup_s16, vld3_dup_p16, vld3_dup_s32 
         vld3_dup_u8, vld3_dup_u16, vld3_dup_u32, vld3_dup_f32
         vld3q_dup_s8, vld3q_dup_p8, vld3q_dup_s16, vld3q_dup_p16 
         vld3q_dup_s32, vld3q_dup_s64, vld3q_dup_u8, vld3q_dup_u16 
         vld3q_dup_u32, vld3q_dup_u64, vld3q_dup_f32, vld3q_dup_f64): Likewise.
        (vld4_dup_s64, vld4_dup_u64, vld4_dup_f64, vld4_dup_s8 
         vld4_dup_p8, vld4_dup_s16, vld4_dup_p16, vld4_dup_s32 
         vld4_dup_u8, vld4_dup_u16, vld4_dup_u32, vld4_dup_f32 
         vld4q_dup_s8, vld4q_dup_p8, vld4q_dup_s16, vld4q_dup_p16 
         vld4q_dup_s32, vld4q_dup_s64, vld4q_dup_u8, vld4q_dup_u16 
         vld4q_dup_u32, vld4q_dup_u64, vld4q_dup_f32, vld4q_dup_f64): Likewise.
        * config/aarch64/aarch64.md (define_c_enum "unspec"): Add
        UNSPEC_LD2_DUP, UNSPEC_LD3_DUP, UNSPEC_LD4_DUP.
        * config/aarch64/aarch64-simd-builtins.def (ld2r, ld3r, ld4r): New
        builtins.
        * config/aarch64/aarch64-simd.md (aarch64_simd_ld2r<mode>): New pattern.
        (aarch64_simd_ld3r<mode>): Likewise.
        (aarch64_simd_ld4r<mode>): Likewise.
        (aarch64_ld2r<mode>): New expand.
        (aarch64_ld3r<mode>): Likewise.
        (aarch64_ld4r<mode>): Likewise.

Co-Authored-By: Jiji Jiang <jiangjiji@huawei.com>

From-SVN: r216630
2014-10-24 10:53:08 +00:00
Rainer Orth
e7d8c7020c Fix gcc.dg/pr63594-1.c execution on Solaris/x86
* gcc.dg/pr63594-1.c: Apply -mno-mmx to all i?86-*-* and x86_64-*-*
        targets.
        * gcc.dg/pr63594-2.c: Likewise.

From-SVN: r216629
2014-10-24 09:09:43 +00:00