Commit Graph

87 Commits

Author SHA1 Message Date
Victor Kaplansky 4035f24587 re PR testsuite/25918 (gcc.dg/vect/vect-reduc-dot-s16.c scan-tree-dump-times vectorized 1 loops 1 and gcc.dg/vect/vect-reduc-pattern-2.c scan-tree-dump-times vectorized 2 loops 1 fail)
testsuite/
2006-02-16  Victor Kaplansky  <victork@il.ibm.com>

	PR tree-opt/25918
	* lib/target-supports.exp
	(check_effective_target_vect_short_mult): New.
	(check_effective_target_vect_char_mult): New.
	(check_effective_target_vect_widen_sum_qi_to_si): New.
	(check_effective_target_vect_widen_sum_qi_to_hi): New.
	(check_effective_target_vect_widen_sum_hi_to_si): New.
	* gcc.dg/vect/vect-reduc-dot-s16.c: Remove, split into
	vect-reduc-dot-s16a.c and vect-reduc-dot-s16b.c
	* vect-reduc-dot-s16a.c: New, split from vect-reduc-dot-s16.c.
	* vect-reduc-dot-s16b.c: New, split from vect-reduc-dot-s16.c.
	* gcc.dg/vect/vect-reduc-pattern-2.c: Remove, split into
	vect-reduc-pattern-2a.c, vect-reduc-pattern-2b.c and
	vect-reduc-pattern-2c.c
	* gcc.dg/vect/vect-reduc-pattern-1.c: Remove, split into
	vect-reduc-pattern-1a.c, vect-reduc-pattern-1b.c and
	vect-reduc-pattern-1c.c

From-SVN: r111135
2006-02-16 09:59:00 +00:00
Josh Conner 4c553323a6 re PR target/25376 (section attribute doesn't work on darwin)
PR target/25376
* varasm.c (function_section): Check for section name before
calling select_section on targets that define
USE_SELECT_SECTION_FOR_FUNCTIONS.  On other targets, use
unlikely_text_section instead of hot_function_section if
first_function_block_is_cold.
* gcc.dg/pr25376.c: New test.

* gcc.c-torture/compile/pr23237.c: Only compile test -- don't
assemble.
* lib/target-supports.exp (check_named_sections_available):
Only compile named-sections test -- don't assemble.

From-SVN: r110917
2006-02-13 18:12:17 +00:00
Steve Ellcey 3b1a6677a7 re PR testsuite/25318 (g++.dg/other/pr22003.C (test for excess errors) fails)
PR testsuite/25318
	* lib/target-supports.exp (check_effective_target_freorder):
	Check to see if target supports -freorder-blocks-and-partition.
	* g++.dg/other/pr22003.C: Use "dg-require-effective-target freorder"
	instead of "dg-require-named-sections".

From-SVN: r110405
2006-01-30 17:06:16 +00:00
Paul Brook efe5e27109 struct-layout-1.exp: Pass -e to generator program on short-enum targets.
2006-01-26  Paul Brook  <paul@codesourcery.com>

	* gcc.dg/compat/struct-layout-1.exp: Pass -e to generator program
	on short-enum targets.
	* gcc.dg/compat/struct-layout-1_generate.c (short_enums): New
	variable.
	(generate_fields): Use short_enums.
	(main): Set short_enums.  Document -e.
	* g++.dg/compat/struct-layout-1.exp: Pass -e to generator program
	on short-enum targets.
	* g++.dg/compat/struct-layout-1_generate.c (short_enums): New
	variable.
	(generate_fields): Use short_enums.
	(main): Set short_enums.  Document -e.
	* lib/target-supports.exp (check_effective_target_short_enums): New.

From-SVN: r110247
2006-01-26 04:08:39 +00:00
Hans-Peter Nilsson a782ee4583 re PR testsuite/25891 (gomp tests run on non-libgomp (non-thread) ports, failing all)
PR testsuite/25891
	* lib/target-supports.exp (check_effective_target_fopenmp): New proc.
	* gcc.dg/gomp/gomp.exp: Return without testing anything if
	check_effective_target_fopenmp returns 0.

From-SVN: r110148
2006-01-23 23:44:16 +00:00
Dorit Nuzman 20f0622174 Makefile.in (tree-vect-patterns.o): Add rule for new file.
* Makefile.in (tree-vect-patterns.o): Add rule for new file.
        * tree-vect-analyze.c (vect_determine_vectorization_factor): Use
        existing STMT_VINFO_VECTYPE if available.
        (vect_mark_relevant): Add special handling for stmts that are
        marked as STMT_VINFO_IN_PATTERN_P.
        (vect_analyze_loop): Call vect_pattern_recog.
        * tree-vectorizer.c (new_stmt_vec_info): Initialize new fields.
        * tree-vectorizer.h (in_pattern_p, related_stmt): New fields in
        stmt_info.
        (STMT_VINFO_IN_PATTERN_P, STMT_VINFO_RELATED_STMT): New macros.
        (vect_recog_func_ptr): New function-pointer type.
        * tree-vect-patterns.c: New file.
        (vect_recog_widen_sum_pattern, vect_recog_widen_mult_pattern):
        (vect_recog_dot_prod_pattern, vect_pattern_recog):
        (vect_pattern_recog_1): New functions.
        (vect_pattern_recog_funcs): New array of function pointers.

        * tree-vectorizer.h (ternary_op): New enum value.
        * tree-vect-transform.c (vect_create_epilog_for_reduction): Added
        declaration. Revised documentation. Removed redundant dump prints.
        Removed redundant argument. Added support for reduction patterns.
        (vectorizable_reduction): Added support for reduction patterns.
        (vect_transform_stmt): Added support for patterns.

        * expr.c (expand_expr_real_1): Added case for DOT_PROD_EXPR.
        * genopinit.c (udot_prod_optab, sdot_prod_optab): Initialize.
        * optabs.c (optab_for_tree_code): Added case for DOT_PROD_EXPR.
        (expand_widen_pattern_expr): New function.
        (init_optabs): Initialize new optabs udot_prod_optab,
        sdot_prod_optab.
        * optabs.h (OTI_sdot_prod, OTI_udot_prod): New.
        (sdot_prod_optab, udot_prod_optab): Define new optabs.
        (expand_widen_pattern_expr): New function declaration.
        * tree.def (DOT_PROD_EXPR, WIDEN_SUM_EXPR, WIDEN_MULT_EXPR): New
        tree-codes.
        * tree-inline.c (estimate_num_insns_1): Added cases for new
        tree-codes DOT_PROD_EXPR, WIDEN_SUM_EXPR, WIDEN_MULT_EXPR.
        * tree-pretty-print.c (dump_generic_node): Likewise.
        (op_prio): Likewise.
        (op_symbol): Added cases for WIDEN_SUM_EXPR, WIDEN_MULT_EXPR.
        * tree-ssa-operands.c (get_expr_operands): Added case for
        DOT_PROD_EXPR.
        * tree-vect-patterns.c (widened_name_p): New function.
        (vect_recog_dot_prod_pattern): Added function implementation.
        * tree-vect-transform.c (get_initial_def_for_reduction): Added
        cases for DOT_PROD_EXPR, WIDEN_SUM_EXPR.
        * config/rs6000/altivec.md (udot_prod<mode>, sdot_prodv8hi): New.
        * config/i386/sse.md (sdot_prodv8hi, udot_prodv4si): New.

        * expr.c (expand_expr_real_1): Added case for WIDEN_SUM_EXPR.
        * genopinit.c (widen_ssum_optab, widen_usum_optab): Initialize.
        * optabs.c (optab_for_tree_code): Added case for WIDEN_SUM_EXPR.
        (init_optabs): Initialize new optabs widen_ssum_optab,
        widen_usum_optab.
        * optabs.h (OTI_widen_ssum, OTI_widen_usum): New.
        (widen_ssum_optab, widen_usum_optab): Define new optabs.
        * tree-vect-generic.c: (expand_vector_operations_1): Check type of
        use instead of type of def.
        * tree-vect-patterns.c (vect_recog_widen_sum_pattern): Added
        function implementation.
        * config/rs6000/altivec.md (widen_usum<mode>, widen_ssumv16qi,
        widen_ssumv8hi): New.

        * doc/tm.texi (ssum_widen, usum_widen, sdot_prod, udot_prod): New
        patterns.

From-SVN: r109954
2006-01-19 10:24:00 +00:00
Janis Johnson 265e7d505c target-supports.exp (check_effective_target_dfp_nocache, [...]): New.
* lib/target-supports.exp (check_effective_target_dfp_nocache,
	check_effective_target_dfprt_nocache): New.
	(check_effective_target_dfp): Use check_effective_target_dfp_nocache.
	(check_effective_target_dfprt): New.
	* lib/c-compat.exp (check_dfp): Remove.
	(compat_dfp_setup): Use check_effective_target_dfprt_nocache.
	* gcc.dg/dfp/dfp.exp: Compile, execute, or skip tests based on
	level of support for decimal float.
	* gcc.dg/dfp/call-by-value.c, cast.c, compare-eq-const.c,
	compare-eq-d128.c, compare-eq-d32.c, compare-eq-d64.c,
	compare-eq-dfp.c, compare-rel-const.c, compare-rel-d128.c,
	compare-rel-d32.c, compare-rel-d64.c, compare-rel-dfp.c,
	convert-bfp.c, convert-bfp-fold.c, convert-complex.c, convert-dfp.c,
	convert-dfp-fold.c, convert-dfp-round.c, convert-int-fold.c,
	convert-int-saturate.c, func-array.c, func-mixed.c, func-scalar.c,
	func-struct.c, func-vararg-dfp.c, func-vararg-mixed.c,
	func-vararg-size0.c, inf-1.c, loop-index.c, nan-1.c, nan-2.c,
	operator-arith-fold.c, operator-assignment.c, operator-comma.c,
	operator-cond.c, operator-logical.c, operator-unary.c, snan.c,
	struct-layout-1.c, union-init.c, usual-arith-conv.c: Remove dg-do
	directives.

From-SVN: r109779
2006-01-17 00:09:27 +00:00
Janis Johnson 27a2694fb9 nodfp-1.c: New test.
* gcc.dg/nodfp-1.c: New test.
	* gcc.dg/compat/scalar-return-dfp_x.c: Likewise.
	* gcc.dg/compat/scalar-return-dfp_x.c: Likewise.
	* gcc.dg/compat/scalar-return-dfp_main.c: Likewise.
	* gcc.dg/compat/scalar-by-value-dfp_main.c: Likewise.
	* gcc.dg/compat/scalar-by-value-dfp_x.c: Likewise.
	* gcc.dg/compat/scalar-return-dfp_y.c: Likewise.
	* gcc.dg/compat/scalar-by-value-dfp_y.c: Likewise.
	* gcc.dg/debug/dwarf2/dwarf-float.c: Likewise.
	* gcc.dg/debug/dwarf2/dwarf-dfp.c: Likewise.
	* gcc.dg/format/dfp-scanf-1.c: Likewise.
	* gcc.dg/format/dfp-printf-1.c: Likewise.
	* gcc.dg/compat/struct-layout-1.exp: Use c-compat.exp.
	(compat_setup_dfp): New.
	* gcc.dg/compat/compat.exp: Use it.
	(compat-use-alt-compiler, compat-use-tst-compiler): Move to new file.
	Make some variables global, prepend "compat_" to their names.
	* gcc.dg/compat/struct-layout-1.h: Conditional DFP support.
	* gcc.dg/compat/struct-layout-1_generate.c: Ditto.
	* gcc.misc-tests/dectest.exp: New test driver for decTest.
	* lib/compat.exp (compat_skip_list): Make global, rename.
	* lib/c-compat.exp: New file.
	* lib/target-supports.exp (check_effective_target_dfp): New.

	* gcc.dg/dfp/dec-eval-method.c, gcc.dg/dfp/func-array.c,
	gcc.dg/dfp/convert-dfp-fold.c, gcc.dg/dfp/struct-union.c,
	gcc.dg/dfp/compare-rel.h, gcc.dg/dfp/convert-dfp-round.c,
	gcc.dg/dfp/func-struct.c, gcc.dg/dfp/constants-c99.c,
	gcc.dg/dfp/compare-eq-d32.c, gcc.dg/dfp/func-vararg-mixed.c,
	gcc.dg/dfp/compare-rel-d128.c, gcc.dg/dfp/operator-comma.c,
	gcc.dg/dfp/decfloat-constants.c, gcc.dg/dfp/operator-bitwise.c,
	gcc.dg/dfp/func-mixed.c, gcc.dg/dfp/compare-eq-dfp.c,
	gcc.dg/dfp/operator-assignment.c, gcc.dg/dfp/dfp-round.h,
	gcc.dg/dfp/modes.c, gcc.dg/dfp/keywords-c99.c, gcc.dg/dfp/nan-1.c,
	gcc.dg/dfp/loop-index.c, gcc.dg/dfp/compare-eq-d64.c,
	gcc.dg/dfp/convert-bfp.c, gcc.dg/dfp/usual-arith-conv-const.c,
	gcc.dg/dfp/convert-dfp.c, gcc.dg/dfp/compare-rel-const.c,
	gcc.dg/dfp/convert-int-fold.c, gcc.dg/dfp/keywords-pedantic.c,
	gcc.dg/dfp/compare-rel-d32.c, gcc.dg/dfp/call-by-value.c,
	gcc.dg/dfp/constants-hex.c, gcc.dg/dfp/func-scalar.c,
	gcc.dg/dfp/keywords-ignored-c99.c, gcc.dg/dfp/snan.c,
	gcc.dg/dfp/usual-arith-conv.c, gcc.dg/dfp/constants-pedantic.c,
	gcc.dg/dfp/operator-logical.c, gcc.dg/dfp/compare-eq-d128.c,
	gcc.dg/dfp/convert-bfp-fold.c, gcc.dg/dfp/ctypes.c,
	gcc.dg/dfp/convert-int.c, gcc.dg/dfp/keywords-c89.c,
	gcc.dg/dfp/constants.c, gcc.dg/dfp/compare-rel-dfp.c,
	gcc.dg/dfp/compare-eq-const.c, gcc.dg/dfp/cast-bad.c,
	gcc.dg/dfp/operator-arith-fold.c, gcc.dg/dfp/union-init.c,
	gcc.dg/dfp/struct-layout-1.c,
	gcc.dg/dfp/compare-eq.hgcc.dg/dfp/convert-int-saturate.c,
	gcc.dg/dfp/compare-rel-d64.c, gcc.dg/dfp/func-vararg-size0.c,
	gcc.dg/dfp/Wconversion-2.c, gcc.dg/dfp/nan-2.c,
	gcc.dg/dfp/operator-cond.c, gcc.dg/dfp/composite-type.c,
	gcc.dg/dfp/func-vararg-dfp.c,
	gcc.dg/dfp/dfp.expgcc.dg/dfp/keywords-reserved.c,
	gcc.dg/dfp/convert-complex.c, gcc.dg/dfp/Wbad-function-cast-1.c,
	gcc.dg/dfp/operator-unary.c, gcc.dg/dfp/altivec-types.c,
	gcc.dg/dfp/cast.c, gcc.dg/dfp/typespec.c,
	gcc.dg/dfp/wtr-conversion-1.c: New tests.

Co-Authored-By: Ben Elliston <bje@au.ibm.com>
Co-Authored-By: Jon Grimm <jgrimm2@us.ibm.com>
Co-Authored-By: Yao Qi <qiyaoltc@cn.ibm.com>

From-SVN: r109604
2006-01-12 08:29:59 +11:00
Jan Beulich 345f13fecf netware.h (TARGET_SUBTARGET_DEFAULT): Include MASK_ALIGN_DOUBLE.
gcc/
2006-01-10  Jan Beulich  <jbeulich@novell.com>

	* config/i386/netware.h (TARGET_SUBTARGET_DEFAULT): Include
	MASK_ALIGN_DOUBLE.
	* config/i386/nwld.h (LINK_SPEC): Add --extensions:GNU option.
	* config/i386/t-nwld (SHLIB_LINK): Insert spaces between expr
	arguments.

gcc/testsuite/
2006-01-10  Jan Beulich  <jbeulich@novell.com>

	* lib/target-supports.exp (check_visibility_available): Simplify test
	for *-*-netware*.
	(check_profiling_available): Fail for *-*-netware*.
	* g++.old-deja/g++.law/profile1.C: Remove dg-bogus for *-*-netware*.
	* gcc.dg/20021014-1.c: Likewise.
	* gcc.dg/nest.c: Likewise.

From-SVN: r109536
2006-01-10 07:18:15 +00:00
Jakub Jelinek 396b535a72 backport: sync.md: New file.
Merge from gomp-branch.
	* config/sparc/sync.md: New file.
	* config/sparc/sparc.md (UNSPECV_MEMBAR, UNSPECV_CAS, UNSPECV_SWAP,
	UNSPECV_LDSTUB): New constants.
	* config/sparc/sparc.c (sparc_expand_compare_and_swap_12): New function.
	* config/sparc/predicates.md (memory_reg_operand): New predicate.
	* config/sparc/sparc-protos.h (sparc_expand_compare_and_swap_12): New
	prototype.

	* gcc.dg/ia64-sync-1.c: On sparc*-*-*, pass -mcpu=v9.
	* gcc.dg/ia64-sync-2.c: Likewise.
	* gcc.dg/ia64-sync-3.c: Likewise.
	* gcc.dg/ia64-sync-4.c: Likewise.
	* gcc.dg/sync-2.c: Likewise.
	* lib/target-supports.exp (sync_char_short, sync_int_long): Indicate
	that sparc64-*-* and sparcv9-*-* supports sync builtins.

From-SVN: r109271
2006-01-03 10:06:36 +01:00
Adrian Straetling 3093f076e1 s390.c (s390_expand_mask_and_shift, [...]): New.
2005-12-07  Adrian Straetling  <straetling@de.ibm.com>

	* config/s390/s390.c (s390_expand_mask_and_shift, 
	struct alignment_context, init_alignment_context, 
	s390_expand_cs_hqi): New.
	* config/s390/s390-protos.h (s390_expand_cs_hqi): Declare.
	* config/s390/s390.md ("sync_compare_and_swaphi",
	"sync_compare_and_swapqi"): New pattern.

	* lib/target-supports.exp (check_effective_target_sync_char_short):
	Add s390*.

From-SVN: r108178
2005-12-07 19:56:32 +00:00
Uros Bizjak ada8006795 re PR target/24475 (gcc.dg/tls/pr24428.c execution test and gcc.dg/tls/pr24428-2.c execution test fail on IA32)
PR target/24475
	* lib/target-supports.exp (check_effective_target_tls): New.
	(check_effective_target_tls_runtime): New.
	* gcc.dg/tls/tls.exp, g++.dg/tls/tls.exp: Remove check
	for TLS support.
	* gcc.dg/tls/opt-1.c, gcc.dg/tls/opt-2.c, gcc.dg/tls/opt-3.c,
	gcc.dg/tls/opt-4.c, gcc.dg/tls/opt-5.c, gcc.dg/tls/opt-6.c,
	gcc.dg/tls/opt-7.c, gcc.dg/tls/opt-8.c, gcc.dg/tls/opt-9.c,
	gcc.dg/tls/opt-10.c, gcc.dg/tls/diag-1.c, gcc.dg/tls/diag-2.c,
	gcc.dg/tls/diag-3.c, gcc.dg/tls/diag-4.c, gcc.dg/tls/diag-5.c,
	gcc.dg/tls/alias-1.c, gcc.dg/tls/alpha-1.c, gcc.dg/tls/asm-1.c,
	gcc.dg/tls/debug-1.c, gcc.dg/tls/init-1.c, gcc.dg/tls/nonpic-1.c,
	gcc.dg/tls/pic-1.c, gcc.dg/tls/section-1.c, gcc.dg/tls/struct-1.c,
	gcc.dg/tls/trivial.c, g++.dg/tls/diag-1.C, g++.dg/tls/diag-2.C,
	g++.dg/tls/diag-3.C, g++.dg/tls/diag-4.C, g++.dg/tls/init-1.C,
	g++.dg/tls/init-2.C, g++.dg/tls/trivial.C: Require
	effective-target TLS.
	* gcc.dg/tls/pr24428-2.c, gcc.dg/tls/pr24428.c, gcc.dg/tls/opt-11.c, 
	g++.dg/tls/static-1a.cc, g++.dg/tls/static-1.C: Require
	effective-target TLS runtime.

From-SVN: r107804
2005-12-01 07:52:11 +01:00
Eric Botcazou 9cfda6fa54 re PR libfortran/24432 (Missing symbols)
PR libfortran/24432
	* lib/target-supports.exp (check_effective_target_fortran_large_real):
	Check that 'cos' is supported.

From-SVN: r107321
2005-11-21 20:52:25 +00:00
Andreas Tobler 5bd9e94d23 static_linking_1.f: Fix static_libgfortran processing.
2005-11-11  Andreas Tobler  <a.tobler@schweiz.ch>

	* gfortran.dg/static_linking_1.f: Fix static_libgfortran processing.

	* lib/target-supports.exp (check_effective_target_static_libgfortran):
	Add -static to additional_flags and pass it to target_compile.

From-SVN: r106800
2005-11-11 22:41:55 +01:00
François-Xavier Coudert f2ae4b2bd0 re PR libfortran/22298 (libgfortran init() constructor isn't called if executable is statically linked)
PR libfortran/22298

	* runtime/main.c (stupid_function_name_for_static_linking): New
	function.
	* runtime/error.c (internal_error): Call
	stupid_function_name_for_static_linking.
	* libgfortran.h: Add prototype for
	stupid_function_name_for_static_linking.

	* gcc/testsuite/lib/target-supports.exp
	(check_effective_target_static_libgfortran): New
	static_libgfortran effective target.
	* gcc/testsuite/gfortran.dg/static_linking_1.f: New test.
	* gcc/testsuite/gfortran.dg/static_linking_1.c: New file.

From-SVN: r106484
2005-11-04 08:44:29 +00:00
Hans-Peter Nilsson edc5687ec1 * lib/target-supports.exp
(check_effective_target_pcc_bitfield_type_matters): New proc.
	* gcc.dg/bitfld-3.c: Gate on target pcc_bitfield_type_matters.

From-SVN: r106375
2005-11-02 02:49:24 +00:00
Hans-Peter Nilsson aa5c7673b8 target-supports.exp (check_effective_default_packed): New proc.
* lib/target-supports.exp (check_effective_default_packed): New proc.
	* g++.dg/ext/packed3.C, g++.dg/ext/packed8.C, g++.dg/other/crash-4.C:
	Gate expected errors on target ! default_packed.
	* g++.dg/ext/packed4.C: Gate on target ! default_packed.

From-SVN: r106374
2005-11-02 02:41:44 +00:00
Janis Johnson f6cf6841d0 target-supports.exp (check_effective_target_fortran_large_real, [...]): Replace cached result when target changes.
* lib/target-supports.exp (check_effective_target_fortran_large_real,
	check_effective_target_fortran_large_int): Replace cached result
	when target changes.

From-SVN: r104959
2005-10-04 21:45:50 +00:00
Uros Bizjak 41a182c62d target-supports.exp (check_effective_target_vect_shift): Implement with result caching.
* lib/target-supports.exp (check_effective_target_vect_shift):
	Implement with result caching. Add i?86, x86_64 and ia64 targets.
	(check_effective_target_vect_condition): Fix copy-n-pasto.

	* gcc.dg/vect/pr22480.c : Enable for effective-target vect_shift.
	* gcc.dg/vect/vect-shift-1.c: Remove XFAIL for i?86 and x86_64
	targets.

From-SVN: r104888
2005-10-03 07:24:08 +02:00
Richard Henderson 38f3168781 alpha.c (emit_insxl, [...]): New functions.
* config/alpha/alpha.c (emit_insxl, alpha_expand_compare_and_swap_12,
        alpha_split_compare_and_swap_12, alpha_expand_lock_test_and_set_12,
        alpha_split_lock_test_and_set_12): New functions.
        * config/alpha/alpha-protos.h: Update.
        * config/alpha/alpha.md (UNSPEC_MB, UNSPEC_ATOMIC,
        UNSPEC_CMPXCHG, UNSPEC_XCHG): Rename from UNSPECV_FOO.
        * config/alpha/sync.md (I12MODE): New.
        (memory_barrier, mb_internal): Use unspec instead of unspec_volatile.
        (sync_<fetchop_name><I48MODE>): Likewise.
        (sync_nand<I48MODE>): Likewise.
        (sync_old_<fetchop_name><I48MODE>): Likewise.
        (sync_new_<fetchop_name><I48MODE>): Likewise.
        (sync_old_nand<I48MODE>, sync_new_nand<I48MODE>): Likewise.
        (sync_compare_and_swap<I48MODE>): Likewise.
        (sync_lock_test_and_set<I48MODE>): Likewise.
        (sync_compare_and_swap<I12MODE>): New.
        (sync_compare_and_swap<I12MODE>_1): New.
        (sync_lock_test_and_set<I12MODE>): New.
        (sync_lock_test_and_set<I12MODE>_1): New.

        * lib/target-supports.exp (check_effective_target_sync_char_short):
        Add alpha.

From-SVN: r101833
2005-07-09 11:28:23 -07:00
Richard Henderson d5dfe0b8c2 target-supports.exp (check_effective_target_vect_no_int_max): Rename from check_effective_target_vect_no_max.
* lib/target-supports.exp (check_effective_target_vect_no_int_max):
        Rename from check_effective_target_vect_no_max.
        (check_effective_target_vect_no_int_add): New.
        * gcc.dg/vect/vect-13.c: Use vect_no_int_max.
        * gcc.dg/vect/vect-91.c: Use vect_no_int_add.
        * gcc.dg/vect/vect-reduc-3.c: Likewise.
        * gcc.dg/vect/vect-reduc-1.c: Use both.
        * gcc.dg/vect/vect-reduc-2.c: Likewise.

From-SVN: r101435
2005-06-29 11:25:12 -07:00
Richard Henderson 9fb93f8966 i386.c (ix86_expand_int_vcond): Remove unsignedp argument.
* config/i386/i386.c (ix86_expand_int_vcond): Remove unsignedp
        argument.  Simplify canonicalization of condition.  Use unsigned
        saturating subtraction for QI and HImode unsigned compares.  Use
        bit arithmetic tricks for SImode unsigned compares.
        * config/i386/i386-protos.h (ix86_expand_int_vcond): Update decl.
        * config/i386/sse.md (SSEMODE14): New.
        (umaxv8hi3): Use us_minus+plus to avoid vcond.
        (umaxv4si3): New.
        (smax<SSEMODE14>3): Rename from smaxv16qi3 and macroize.
        (smin<SSEMODE14>3): Similarly with sminv16qi3.
        (umin<SSEMODE24>3): Similarly with uminv8hi3.

        * lib/target-supports.exp (check_effective_target_vect_no_max):
        Remove i386 and x86_64.

From-SVN: r101429
2005-06-29 10:27:23 -07:00
Kelley Cook f115b6539d Update FSF address.
From-SVN: r101316
2005-06-25 01:45:27 +00:00
Francois-Xavier Coudert 32aa3bffc3 c99_functions.c (log10l): New log10l function for systems where this is not available.
* intrinsics/c99_functions.c (log10l): New log10l function for
	systems where this is not available.
	* c99_protos.h: Prototype for log10l function.
	* libgfortran.h: Use generated kinds.h to define GFC_INTEGER_*,
	GFC_UINTEGER_*, GFC_LOGICAL_*, GFC_REAL_*, GFC_COMPLEX_*. Update
	prototypes for gfc_itoa and xtoa.
	* io/io.h: Update prototypes for set_integer and max_value.
	* io/list_read.c (convert_integer): Use new
	GFC_(INTEGER|REAL)_LARGEST type.
	* io/read.c (set_integer): Likewise.
	(max_value): Likewise.
	(convert_real): Likewise.
	(real_l): Likewise.
	(next_char): Likewise.
	(read_decimal): Likewise.
	(read_radix): Likewise.
	(read_f): Likewise.
	* io/write.c (extract_int): Use new GFC_INTEGER_LARGEST type.
	(extract_real): Use new GFC_REAL_LARGEST type.
	(calculate_exp): Likewise.
	(calculate_G_format): Likewise.
	(output_float): Likewise. Use log10l for long double values.
	Add comment for sprintf format. Use GFC_REAL_LARGEST_FORMAT.
	(write_l): Use new GFC_INTEGER_LARGEST type.
	(write_float): Use new GFC_REAL_LARGEST type.
	(write_int): Remove useless special case for (len < 8).
	(write_decimal): Use GFC_INTEGER_LARGEST.
	(otoa): Use GFC_UINTEGER_LARGEST as argument.
	(btoa): Use GFC_UINTEGER_LARGEST as argument.
	* runtime/error.c (gfc_itoa): Use GFC_INTEGER_LARGEST as
	argument.
	(xtoa): Use GFC_UINTEGER_LARGEST as argument.
	* Makefile.am: Use mk-kinds-h.sh to generate header kinds.h
	with all Fortran kinds available.
	* configure.ac: Check for strtold and log10l.
	* Makefile.in: Regenerate.
	* aclocal.m4: Regenerate.
	* configure: Regenerate.
	* config.h.in: Regenerate.
	* mk-kinds-h.sh: Configuration script for available integer
	and real kinds.
	* lib/target-supports.exp: Add
	check_effective_target_fortran_large_real and
	check_effective_target_fortran_large_int to check for
	corresponding effective targets.
	* gfortran.dg/large_integer_kind_1.f90: New test.
	* gfortran.dg/large_real_kind_1.f90: New test.

From-SVN: r101274
2005-06-23 18:50:25 +00:00
Dorit Nuzman a6b46ba2c8 genopinit.c (vec_shl_optab, [...]): Initialize new optabs.
* genopinit.c (vec_shl_optab, vec_shr_optab): Initialize new optabs.
        (reduc_plus_optab): Removed.  Replcaed with...
        (reduc_splus_optab, reduc_uplus_optab): Initialize new optabs.
        * optabs.c (optab_for_tree_code): Return reduc_splus_optab or
        reduc_uplus_optab instead of reduc_plus_optab.
        (expand_vec_shift_expr): New function.
        (init_optabs): Initialize new optabs. Remove initialization of
        reduc_plus_optab.
        (optab_for_tree_code): Return vec_shl_optab/vec_shr_optab
        for VEC_LSHIFT_EXPR/VEC_RSHIFT_EXPR.
        * optabs.h (OTI_reduc_plus): Removed. Replaced with...
        (OTI_reduc_splus, OTI_reduc_uplus): New.
        (reduc_plus_optab): Removed.  Replcaed with...
        (reduc_splus_optab, reduc_uplus_optab): New optabs.
        (vec_shl_optab, vec_shr_optab): New optabs.
        (expand_vec_shift_expr): New function declaration.

        * tree.def (VEC_LSHIFT_EXPR, VEC_RSHIFT_EXPR): New tree-codes.
        * tree-inline.c (estimate_num_insns_1): Handle new tree-codes.
        * expr.c (expand_expr_real_1): Handle new tree-codes.
        * tree-pretty-print.c (dump_generic_node, op_symbol, op_prio): Likewise.
        * tree-vect-generic.c (expand_vector_operations_1): Add assert.

        * tree-vect-transform.c (vect_create_epilog_for_reduction): Add two
        alternatives for generating reduction epilog code.
        (vectorizable_reduction): Don't fail of direct reduction support is
        not available.
        (vectorizable_target_reduction_pattern): Likewise.

        * config/rs6000/altivec.md (reduc_smax_v4si, reduc_smax_v4sf,
        reduc_umax_v4si, reduc_smin_v4si, reduc_smin_v4sf, reduc_umin_v4si,
        reduc_plus_v4si, reduc_plus_v4sf): Removed.
        (vec_shl_<mode>, vec_shr_<mode>, altivec_vsumsws_nomode,
        reduc_splus_<mode>, reduc_uplus_v16qi): New.

From-SVN: r101231
2005-06-21 09:02:00 +00:00
Dorit Nuzman 61d3cdbb12 tree.def (REDUC_MAX_EXPR, [...]): New tree-codes.
* tree.def (REDUC_MAX_EXPR, REDUC_MIN_EXPR, REDUC_PLUS_EXPR): New
        tree-codes.
        * optabs.h (OTI_reduc_smax, OTI_reduc_umax, OTI_reduc_smin,
        OTI_reduc_umin, OTI_reduc_plus): New optabs for reduction.
        (reduc_smax_optab, reduc_umax_optab, reduc_smin_optab, reduc_umin_optab,
        reduc_plus_optab): New optabs for reduction.
        * expr.c (expand_expr_real_1): Handle new tree-codes.
        * tree-inline.c (estimate_num_insns_1): Handle new tree-codes.
        * tree-pretty-print.c (dump_generic_node, op_prio, op_symbol): Handle
        new tree-codes.
        * optabs.c (optab_for_tree_code): Handle new tree-codes.
        (init_optabs): Initialize new optabs.
        * genopinit.c (optabs): Define handlers for new optabs.

        * tree-vect-analyze.c (vect_analyze_operations): Fail vectorization in
        case of a phi that is marked as relevant. Call vectorizable_reduction.
        (vect_mark_relevant): Phis may be marked as relevant.
        (vect_mark_stmts_to_be_vectorized): The use corresponding to the
        reduction variable in a reduction stmt does not mark its defining phi
        as relevant. Update documentation accordingly.
        (vect_can_advance_ivs_p): Skip reduction phis.
        * tree-vect-transform.c (vect_get_vec_def_for_operand): Takes
        additional argument. Handle reduction.
        (vect_create_destination_var): Update call to vect_get_new_vect_var.
        Handle non-vector argument.
        (get_initial_def_for_reduction): New function.
        (vect_create_epilog_for_reduction): New function.
        (vectorizable_reduction): New function.
        (vect_get_new_vect_var): Handle new vect_var_kind.
        (vectorizable_assignment, vectorizable_operation, vectorizable_store,
        vectorizable_condition): Update call to vect_get_new_vect_var.
        (vect_transform_stmt): Call vectorizable_reduction.
        (vect_update_ivs_after_vectorizer): Skip reduction phis.
        (vect_transform_loop): Skip if stmt is both not relevant and not live.
        * tree-vectorizer.c (reduction_code_for_scalar_code): New function.
        (vect_is_simple_reduction): Was empty - added implementation.
        * tree-vectorizer.h (vect_scalar_var): New enum vect_var_kind value.
        (reduc_vec_info_type): New enum vect_def_type value.
        * config/rs6000/altivec.md (reduc_smax_v4si, reduc_smax_v4sf,
        reduc_umax_v4si, reduc_smin_v4si, reduc_umin_v4sf, reduc_smin_v4sf,
        reduc_plus_v4si, reduc_plus_v4sf): New define_expands.

        * tree-vect-analyze.c (vect_determine_vectorization_factor): Remove
        ENABLE_CHECKING around gcc_assert.
        * tree-vect-transform.c (vect_do_peeling_for_loop_bound,
        (vect_do_peeling_for_alignment, vect_transform_loop,
        vect_get_vec_def_for_operand): Likewise.

From-SVN: r101155
2005-06-18 13:18:52 +00:00
Adrian Straetling 89a590b340 target-supports.exp (check_effective_target_sync_int_long): Add s390 and s390x targets.
2005-06-07  Adrian Straetling  <straetling@de.ibm.com>

	* lib/target-supports.exp (check_effective_target_sync_int_long):
	Add s390 and s390x targets.

From-SVN: r100717
2005-06-07 19:27:01 +00:00
Paolo Bonzini b956116ebf re PR testsuite/21292 (gen-vect-11b.c and gen-vect-11c.c fail)
2005-06-03  Paolo Bonzini  <bonzini@gnu.org>

	PR tree-optimization/21292

	* lib/target-supports.exp (check_effective_target_vect_cmdline_needed):
	New.
	* gcc.dg/tree-ssa/gen-vect-11.c, gcc.dg/tree-ssa/gen-vect-11a.c,
	gcc.dg/tree-ssa/gen-vect-11b.c, gcc.dg/tree-ssa/gen-vect-11c.c,
	gcc.dg/tree-ssa/gen-vect-2.c, gcc.dg/tree-ssa/gen-vect-25.c,
	gcc.dg/tree-ssa/gen-vect-26.c, gcc.dg/tree-ssa/gen-vect-28.c,
	gcc.dg/tree-ssa/gen-vect-32.c: Require it.

From-SVN: r100535
2005-06-03 08:09:47 +00:00
Geoffrey Keating bc0f348e10 Index: ChangeLog
2005-05-31  Geoffrey Keating  <geoffk@geoffk.org>

	* config/rs6000/rs6000.md (sync_boolcshort_internal): New.
	* config/rs6000/rs6000.c (rs6000_emit_sync): Shift count must
	be complemented for big-endian.  Mask for AND must be rotated,
	not shifted.  Handle short operands with NOT on the memory
	operation.

Index: testsuite/ChangeLog
2005-05-31  Geoffrey Keating  <geoffk@geoffk.org>

	* lib/target-supports.exp
	(check_effective_target_sync_char_short): New.
	* gcc.dg/sync-2.c: New.

From-SVN: r100515
2005-06-02 21:45:57 +00:00
Richard Henderson 2b5bf0e27e sse.md (mulv4si3): New.
* config/i386/sse.md (mulv4si3): New.

        * lib/target-supports.exp (check_effective_target_vect_int_mul): Add
        i?86 and x86_64.

From-SVN: r99811
2005-05-16 21:33:42 -07:00
David Billinghurst cea02b6e7e re PR libstdc++/21526 (libstdc++-v3 testsuite hangs on cygwin)
2005-05-16  David Billinghurst <David.Billinghurst@riotinto.com>

	PR libstdc++/21526
	* lib/target-supports.exp (check_mkfifo_available):
	Return 0 for cygwin as mkfifo support incomplete on platform.
	Fix typos in comments.

From-SVN: r99757
2005-05-16 00:51:38 +00:00
Mark Mitchell 34f4edf8ec testsuite_hooks.cc (try_mkfifo): Remove.
* testsuite/testsuite_hooks.cc (try_mkfifo): Remove.
	* testsuite/testsuite_hooks.h (try_mkfifo): Likewise.
	* testsuite/27_io/basic_filebuf/close/char/4879.cc: Use
	dg-require-fork and dg-require-mkfifo.  Replace try_mkfifo with
	mkfifo.
	* testsuite/27_io/basic_filebuf/close/char/9964.cc: Likewise.
	* testsuite/27_io/basic_filebuf/imbue/char/13171-2.cc: Likewise.
	* testsuite/27_io/basic_filebuf/imbue/char/13582-2.cc: Likewise.
	* testsuite/27_io/basic_filebuf/imbue/wchar_t/13582-2.cc:
	Likewise.
	* testsuite/27_io/basic_filebuf/imbue/wchar_t/14975-2.cc:
	Likewise.
	* testsuite/27_io/basic_filebuf/open/char/9507.cc: Likewise.
	* testsuite/27_io/basic_filebuf/showmanyc/char/9533-1.cc:
	Likewise.
	* testsuite/27_io/basic_filebuf/underflow/char/10097.cc: Likewise.
	* testsuite/27_io/objects/char/7.cc: Likewise.
	* testsuite/27_io/objects/char/9661-1.cc: Likewise.
	* testsuite/27_io/objects/wchar_t/7.cc: Likewise.
	* testsuite/27_io/objects/wchar_t/9661-1.cc: Likewise.

	* lib/target-supports-dg.exp (dg-require-fork): New function.
	(dg-require-mkfifo): Likewise.
	* lib/target-supports.exp (check_function_available): New
	function.
	(check_fork_available): Likewise.
	(check_mkfifo_available): Likewise.

From-SVN: r99325
2005-05-06 17:03:10 +00:00
Paul Brook 0d341a6ae1 arm-g2.c: Use effective-target arm32.
2005-05-05  Paul Brook  <paul@codesourcery.com>

	* gcc.dg/arm-g2.c: Use effective-target arm32.
	* gcc.dg/arm-mmx-1.c: Ditto.
	* gcc.dg/arm-scd42-2.c: Ditto.
	* gcc.dg/arm-vfp1.c: Ditto.
	* lib/target-supports.exp (check_effective_target_arm32): New
	function.

From-SVN: r99269
2005-05-05 15:12:01 +00:00
Bob Wilson dd2778f346 target-supports.exp (check_profiling_available): Return false for xtensa-*-elf.
* lib/target-supports.exp (check_profiling_available): Return
	false for xtensa-*-elf.

From-SVN: r98950
2005-04-29 00:06:26 +00:00
Geoffrey Keating 915167f5a5 Index: ChangeLog
2005-04-21  Geoffrey Keating  <geoffk@apple.com>

	* config/rs6000/rs6000-protos.h (rs6000_emit_sync): New.
	* config/rs6000/rs6000.c (rs6000_emit_vector_compare): Use
	gen_rtx_* not gen_rtx_fmt_*.
	(rs6000_emit_vector_select): Likewise.
	(rs6000_emit_sync): New.
	* config/rs6000/rs6000.md (GPR, INT, INT1): New mode macros.
	(larx, stcx, cmp): New mode substitutions.
	(UNSPEC_SYNC, UNSPEC_SYNC_OP, UNSPEC_SYNC_SWAP, UNSPEC_LWSYNC,
	UNSPEC_ISYNC): New constants.
	(rlwinm): Give name.
	(memory_barrier, isync, lwsync): New insns.
	(sync_compare_and_swap<mode>, sync_lock_test_and_set<mode>): New insn.
	(sync_lock_release<mode>): New expander.
	(sync_add<mode>, sync_sub<mode>, sync_ior<mode>, sync_and<mode>,
	sync_xor<mode>, sync_nand<mode>, sync_old_add<mode>,
	sync_old_sub<mode>, sync_old_ior<mode>, sync_old_and<mode>,
	sync_old_xor<mode>, sync_old_nand<mode>, sync_new_add<mode>,
	sync_new_sub<mode>, sync_new_ior<mode>, sync_new_and<mode>,
	sync_new_xor<mode>, sync_new_nand<mode>): New expanders.
	(sync_add<mode>_internal, sync_addshort_internal,
	sync_sub<mode>_internal, sync_andsi_internal, sync_anddi_internal,
	sync_boolsi_internal, sync_booldi_internal, sync_boolc<mode>_internal,
	sync_boolc<mode>_internal2, sync_boolcc<mode>_internal): New insns.

	* doc/md.texi (Standard Names): sync_compare_and_swap's operand 0
	is the memory before, not after, the operation.  Clarify
	barrier requirements.

Index: testsuite/ChangeLog
2005-04-21  Geoffrey Keating  <geoffk@apple.com>

	* lib/target-supports.exp (check_effective_target_sync_int_long):
	Add powerpc*.

From-SVN: r98527
2005-04-21 21:13:41 +00:00
Richard Henderson f12b785df3 builtins.c (expand_builtin_sync_operation): Revert last change.
* builtins.c (expand_builtin_sync_operation): Revert last change.
        * optabs.c (expand_bool_compare_and_swap): Compare vs old value,
        not vs new value.
        (expand_compare_and_swap_loop): Likewise.
        (expand_sync_operation): Remove fallback from NAND to AND; invert
        memory operand when expanding from cmpxchg.
        (expand_sync_fetch_operation): Likewise.
        * doc/extend.texi (Atomic Builtins): Fix docs for nand and
        compare-and-swap.

        * config/alpha/alpha.c (alpha_split_atomic_op): Invert memory operand
        when implementing NAND.  Fix double-add for AFTER.
        * config/alpha/sync.md (sync_nand<I48MODE>): Invert memory operand.
        (sync_old_nand<I48MODE>, sync_new_nand<I48MODE>): Likewise.
        (sync_compare_and_swap<I48MODE>): Fix compare vs zero.  Return old
        memory value.
        (sync_lock_test_and_set<I48MODE>): Remove extra label and last
        memory barrier.

        * config/i386/sync.md (sync_compare_and_swap<IMODE>): Fix pattern
        to return old memory value.
        (sync_compare_and_swap_cc<IMODE>): Likewise.

        * config/ia64/ia64.c (ia64_dependencies_evaluation_hook): Early
        return pre-reload.  Don't consider output or anti dependencies.
        * config/ia64/sync.md (IMODE): New.
        (modesuffix): Add QI and HI.
        (memory_barrier): Simplify expansion.
        (sync_compare_and_swap<IMODE>): Use IMODE, not I48MODE.
        (cmpxchg_acq_<IMODE>): Likewise.
        (sync_lock_test_and_set<IMODE>): Likewise.
        (sync_lock_release<IMODE>): Likewise.

From-SVN: r98436
2005-04-19 21:54:11 -07:00
Devang Patel a45f6936f4 atlivec.md (mulv4si3): New pattern.
* config/rs6000/atlivec.md (mulv4si3): New pattern.

        * gcc.dg/vect/vect-11.c: Require effective target vect_int_mult.
        * gcc.dg/vect/vect-11a.c: New.
        * gcc.dg/vect/vect-none.c: Update.
        * lib/target-supports.exp (check_effective_target_vect_int_mult): New.

From-SVN: r98323
2005-04-18 08:50:53 -07:00
Richard Henderson ae46a07ab2 i386.c (ix86_expand_sse_cmp): Split out from ...
* config/i386/i386.c (ix86_expand_sse_cmp): Split out from ...
        (ix86_expand_sse_movcc): ... here.  Take cmp as a pre-computed
        register.
        (ix86_expand_fp_movcc): Update to match.
        (ix86_expand_fp_vcond, ix86_expand_int_vcond): New.
        * config/i386/i386-protos.h: Update.
        * config/i386/sse.md (vcondv4sf, vcondv2df): New.
        (vcond<SSEMODE124>, vcondu<SSEMODE12>): New.

        * lib/target-supports.exp (check_effective_target_vect_condition):
        Add ia64, i?86, and x86_64.

From-SVN: r98146
2005-04-14 10:46:08 -07:00
Devang Patel b52485c631 tree-data-ref.c (build_classic_dist_vector, [...]): Make externally visible.
* tree-data-ref.c (build_classic_dist_vector,
         compute_subscript_distance): Make externally visible.
         * tree-data-ref.h (build_classic_dist_vector,
         compute_subscript_distance): Same.
         * tree-vect-analyze.c (vect_analyze_data_ref_dependence):
         Check distance vector against vectorization factor.
         (vect_analyze_loop): Determine vectorizaion factor before
         analyzing data dependences.
         * tree-vectorizer.c (loops_num): Make it externally visible and
         rename ...
         * tree-vectorizer.c (vect_loops_num): ... new name.
         * tree-vectorizer.h  (vect_loops_num): New.

         * tree-vect-analyze.c (vect_analyze_operations): Check
         vectorizable codition.
         * tree-vect-transform.c (vect_is_simple_cond): New function.
         (vectorizable_condition): New function.
         (vect_transform_stmt): Handle condition_vec_info_type.
         * tree-vectorizer.h (enum stmt_vec_info_type): Add
         condition_vec_info_type.
         (vectorizable_condition): New.

         * lib/target-supports.exp (check_effective_target_vect_condition): New.
         * gcc.dg/vect/vect-ifcvt-1.c: New test.
         * gcc.dg/vect/vect-ifcvt-2.c: New test.
         * gcc.dg/vect/vect-ifcvt-3.c: New test.
         * gcc.dg/vect/vect-ifcvt-4.c: New test.
         * gcc.dg/vect/vect-ifcvt-5.c: New test.
         * gcc.dg/vect/vect-ifcvt-6.c: New test.
         * gcc.dg/vect/vect-ifcvt-7.c: New test.
         * gcc.dg/vect/vect-none.c: Now one loop is vectorized.

         * gcc.dg/vect/vect-dv-1.c: New test.
         * gcc.dg/vect/vect-dv-2.c: New test.

From-SVN: r97999
2005-04-11 18:35:54 -07:00
Hans-Peter Nilsson b6e3f5722e target-supports.exp (get_compiler_messages): Support optional arguments, the fourth being compiler options.
* lib/target-supports.exp (get_compiler_messages): Support
	optional arguments, the fourth being compiler options.
	(check_effective_target_fpic): New proc.
	* gcc.dg/20050321-2.c: Restrict to target fpic.

From-SVN: r97763
2005-04-06 23:27:11 +00:00
Devang Patel 3e0de9d188 altivec.md (altivec_vsr<VI_char>): Rename to ..
* config/rs600/altivec.md (altivec_vsr<VI_char>): Rename to ..
         (lhsr<mode>3): ... new name.
         (altivec_vsra<VI_char>): Rename to ..
         (ashr<mode>3): ... new name.
         * config/rs6000/rs6000.c (builtin_description): Rename shift
         operations.

         testsuite:
         * lib/target-supports.exp (check_effective_target_vect_shif): New.
         * gcc.dg/vect/vect-shift-1.c: New test.

From-SVN: r97636
2005-04-05 09:33:29 -07:00
Geoffrey Keating d3d9a67f7e pragma-override1.C: Mark as requiring 'internal' visibility.
* g++.dg/ext/visibility/pragma-override1.C: Mark as requiring
	'internal' visibility.
	* g++.dg/ext/visibility/pragma-override2.C: Likewise.
	* g++.dg/ext/visibility/visibility-7.C: Mark as requiring
	'protected' visibility.
	* gcc.dg/visibility-7.c: Likewise.
	* lib/target-supports.exp (check_visibility_available): Take
	a parameter, the kind of visibility to check for.
	* lib/target-supports-dg.exp (dg-require-visibility): Pass parameter
	to check_visibility_available.

From-SVN: r97031
2005-03-25 02:21:01 +00:00
Mark Mitchell 0b3deaafeb target-supports.exp (check_iconv_available): Default libiconv to -liconv, if there is no definition.
* lib/target-supports.exp (check_iconv_available): Default
	libiconv to -liconv, if there is no definition.

	* testsuite/lib/libstdc++.exp (libstdc++_init): Improve handling
	of compilers not in the build directory.
	(libstdc++_wchar_t): New variable.
	(libstdc++_threads): Likewise.
	(libstdc++_test_objs): Likewise.
	(v3_target_compile): Use libstdc++_test_objs.
	(v3-list-tests): Remove.
	(listdc++_build_support): New function.
	* testsuite/libstdc++-dg/normal.exp: Rework to dynamically
	generate list of tests.

From-SVN: r96934
2005-03-23 16:45:45 +00:00
Janis Johnson 3562bc34e8 target-supports.exp (check_vmx_hw_available): Use -maltivec for darwin.
* lib/target-supports.exp (check_vmx_hw_available): Use -maltivec for
        darwin.

Co-Authored-By: Dorit Naishlos <dorit@il.ibm.com>

From-SVN: r96527
2005-03-15 18:41:19 +00:00
Ben Elliston 11289ef979 vlad.exp: Remove trailing semicolons.
* consistency.vlad/vlad.exp: Remove trailing semicolons.
	* g++.dg/gcov/gcov.exp: Likewise.
	* gcc.c-torture/execute/ieee/ieee.exp: Likewise.
	* gcc.target/xstormy16/xstormy16.exp: Likewise.
	* lib/c-torture.exp: Likewise.
	* lib/fortran-torture.exp: Likewise.
	* lib/g++.exp: Likewise.
	* lib/gcc-defs.exp: Likewise.
	* lib/gcc-dg.exp: Likewise.
	* lib/gcc.exp: Likewise.
	* lib/gcov.exp: Likewise.
	* lib/gfortran.exp: Likewise.
	* lib/mike-g++.exp: Likewise.
	* lib/mike-gcc.exp: Likewise.
	* lib/objc-torture.exp: Likewise.
	* lib/objc.exp: Likewise.
	* lib/profopt.exp: Likewise.
	* lib/target-libpath.exp: Likewise.
	* lib/target-supports.exp: Likewise.
	* lib/treelang.exp: Likewise.
	* lib/wrapper.exp: Likewise.

From-SVN: r96132
2005-03-09 09:10:34 +11:00
John David Anglin 6731e86da0 file-format.exp (gcc_target_object_format): Add check for som format and hardcode object formats on hppa*-*-hpux*.
* lib/file-format.exp (gcc_target_object_format): Add check for som
        format and hardcode object formats on hppa*-*-hpux*.
	* lib/target-supports.exp (check_weak_available): Add check for som
	object format.  Always return 0 on hppa*-*-hpux10*.
	* gcc.dg/titype-1.c, gcc.dg/uninit-C.c: Don't use TImode if __hppa__
	is defined.
	* objc.dg/stabs-1.m: hppa*64*-*-* doesn't have stabs.

From-SVN: r95982
2005-03-06 18:26:53 +00:00
Uros Bizjak 74231b0f2c * lib/target-supports.exp (check_iconv_available): Fix comment.
From-SVN: r95927
2005-03-05 11:08:31 +01:00
Janis Johnson 56afd7aae3 target-supports.exp (check_effective_target_broken_cplxf_arg): New.
* lib/target-supports.exp (check_effective_target_broken_cplxf_arg):
	New.

From-SVN: r94900
2005-02-11 22:34:57 +00:00
Janis Johnson 635b0f2a72 target-supports.exp (current_target_name): New.
* lib/target-supports.exp (current_target_name): New.
	(check_effective_target_ilp32, check_effective_target_lp64):
	Cache the result to use as long as the current target, with
	multilib flags, remains the same.

From-SVN: r94168
2005-01-24 18:24:02 +00:00
Richard Henderson ef719a44ef emmintrin.h (_mm_cvtsi128_si32): Move earlier.
* config/i386/emmintrin.h (_mm_cvtsi128_si32): Move earlier.
	(_mm_cvtsi128_si64x): Likewise.
	(_mm_srl_epi64, _mm_srl_epi32, _mm_srl_epi16, _mm_sra_epi32,
	_mm_sra_epi16, _mm_sll_epi64, _mm_sll_epi32, _mm_sll_epi16): Use
	the _mm_{srl,sll}i_foo counterpart, and _mm_cvtsi128_si32.
	* config/i386/i386-modes.def: Add V16HI, V32QI, V4DF, V8SF.
	* config/i386/i386-protos.h: Update.
	* config/i386/i386.c (print_operand): Add 'H'.
	(ix86_fixup_binary_operands): Split out from ...
	(ix86_expand_binary_operator): ... here.
	(ix86_fixup_binary_operands_no_copy): New.
	(ix86_expand_fp_absneg_operator): Handle vector mode results.
	(bdesc_2arg): Update names for sse{,2,3}_ prefixes.
	(ix86_init_mmx_sse_builtins): Remove *maskncmp* special cases.
	(safe_vector_operand): Use CONST0_RTX.
	(ix86_expand_binop_builtin): Use ix86_fixup_binary_operands.
	(ix86_expand_builtin): Merge CODE_FOR_sse2_maskmovdqu_rex64 and
	CODE_FOR_sse2_maskmovdqu.  Special case SSE version of MASKMOVDQU
	expansion.  Update names for sse{,2,3}_ prefixes.  Remove *maskncmp*
	special cases.
	* config/i386/i386.h (IX86_BUILTIN_CMPNGTSS): New.
	(IX86_BUILTIN_CMPNGESS): New.
	* config/i386/i386.md (UNSPEC_FIX_NOTRUNC): New.
	(attr type): Add sselog1.
	(attr unit, attr memory): Handle it.
	(movti, movti_internal, movti_rex64): Move near other integer moves.
	(movtf, movtf_internal): Move near other fp moves.
	(SSEMODE, SSEMODEI, vec_setv2df, vec_extractv2df, vec_initv2df,
	vec_setv4sf, vec_extractv4sf, vec_initv4sf, movv4sf, movv4sf_internal,
	movv2df, movv2df_internal, mov<SSEMODEI>, mov<SSEMODEI>_internal,
	movmisalign<SSEMODE>, sse_movups_1, sse_movmskps, sse_movntv4sf,
	sse_movhlps, sse_movlhps, sse_storehps, sse_loadhps, sse_storelps,
	sse_loadlps, sse_loadss, sse_loadss_1, sse_movss, sse_storess,
	sse_shufps, addv4sf3, vmaddv4sf3, subv4sf3, vmsubv4sf3, negv4sf2,
	mulv4sf3, vmmulv4sf3, divv4sf3, vmdivv4sf3, rcpv4sf2, vmrcpv4sf2,
	rsqrtv4sf2, vmrsqrtv4sf2, sqrtv4sf2, vmsqrtv4sf2, sse_andv4sf3,
	sse_nandv4sf3, sse_iorv4sf3, sse_xorv4sf3, sse2_andv2df3,
	sse2_nandv2df3, sse2_iorv2df3, sse2_xorv2df3, sse2_andv2di3,
	sse2_nandv2di3, sse2_iorv2di3, sse2_xorv2di3, maskcmpv4sf3,
	vmmaskcmpv4sf3, sse_comi, sse_ucomi, sse_unpckhps, sse_unpcklps,
	smaxv4sf3, vmsmaxv4sf3, sminv4sf3, vmsminv4sf3, cvtpi2ps, cvtps2pi,
	cvttps2pi, cvtsi2ss, cvtsi2ssq, cvtss2si, cvtss2siq, cvttss2si,
	cvttss2siq, addv2df3, vmaddv2df3, subv2df3, vmsubv2df3, mulv2df3,
	vmmulv2df3, divv2df3, vmdivv2df3, smaxv2df3, vmsmaxv2df3, sminv2df3,
	vmsminv2df3, sqrtv2df2, vmsqrtv2df2, maskcmpv2df3, vmmaskcmpv2df3,
	sse2_comi, sse2_ucomi, sse2_movmskpd, sse2_pmovmskb, sse2_maskmovdqu,
	sse2_maskmovdqu_rex64, sse2_movntv2df, sse2_movntv2di, sse2_movntsi,
	cvtdq2ps, cvtps2dq, cvttps2dq, cvtdq2pd, cvtpd2dq, cvttpd2dq,
	cvtpd2pi, cvttpd2pi, cvtpi2pd, cvtsd2si, cvtsd2siq, cvttsd2si,
	cvttsd2siq, cvtsi2sd, cvtsi2sdq, cvtsd2ss, cvtss2sd, cvtpd2ps,
	cvtps2pd, addv16qi3, addv8hi3, addv4si3, addv2di3, ssaddv16qi3,
	ssaddv8hi3, usaddv16qi3, usaddv8hi3, subv16qi3, subv8hi3, subv4si3,
	subv2di3, sssubv16qi3, sssubv8hi3, ussubv16qi3, ussubv8hi3, mulv8hi3,
	smulv8hi3_highpart, umulv8hi3_highpart, sse2_umulsidi3,
	sse2_umulv2siv2di3, sse2_pmaddwd, sse2_uavgv16qi3, sse2_uavgv8hi3,
	sse2_psadbw, sse2_pinsrw, sse2_pextrw, sse2_pshufd, sse2_pshuflw,
	sse2_pshufhw, eqv16qi3, eqv8hi3, eqv4si3, gtv16qi3, gtv8hi3,
	gtv4si3, umaxv16qi3, smaxv8hi3, uminv16qi3, sminv8hi3, ashrv8hi3,
	ashrv4si3, lshrv8hi3, lshrv4si3, lshrv2di3, ashlv8hi3, ashlv4si3,
	ashlv2di3, sse2_ashlti3, sse2_lshrti3, sse2_unpckhpd, sse2_unpcklpd,
	sse2_packsswb, sse2_packssdw, sse2_packuswb, sse2_punpckhbw,
	sse2_punpckhwd, sse2_punpckhdq, sse2_punpcklbw, sse2_punpcklwd,
	sse2_punpckldq, sse2_punpcklqdq, sse2_punpckhqdq, sse2_movupd,
	sse2_movdqu, sse2_movdq2q, sse2_movdq2q_rex64, sse2_movq2dq,
	sse2_movq2dq_rex64, sse2_loadd, sse2_stored, sse2_storehpd,
	sse2_loadhpd, sse2_storelpd, sse2_loadlpd, sse2_movsd, sse2_loadsd,
	sse2_loadsd_1, sse2_storesd, sse2_shufpd, sse2_clflush, sse2_mfence,
	mfence_insn, sse2_lfence, lfence_insn, mwait, monitor, addsubv4sf3,
	addsubv2df3, haddv4sf3, haddv2df3, hsubv4sf3, hsubv2df3, movshdup,
	movsldup, lddqu, loadddup, movddup): Move to sse.md.  Any with
	non-optabs meanings renamed with an "sse{,2,3}_" prefix at the
	same time.
	(SSEPUSH, push<SSEPUSH>): Remove.
	(MMXPUSH, push<MMXPUSH>): Remove.
	(sse_movaps, sse_movaps_1, sse_movups): Remove.
	(sse2_movapd, sse2_movdqa, sse2_movq): Remove.
	(sse2_andti3, sse2_nandti3, sse2_iorti3, sse2_xorti3): Remove.
	(sse_clrv4sf, sse_clrv2df, sse2_clrti): Remove.
	(maskncmpv4sf3, vmmaskncmpv4sf3): Remove.
	(maskncmpv2df3, vmmaskncmpv2df3): Remove.
	(ashrv8hi3_ti, ashrv4si3_ti, lshrv8hi3_ti, lshrv4si3_ti): Remove.
	(lshrv2di3_ti, ashlv8hi3_ti, ashlv4si3_ti, ashlv2di3_ti): Remove.
	* config/i386/athlon.md (athlon_sselog_load): Handle sselog1.
	(athlon_sselog_load_k8, athlon_sselog, athlon_sselog_k8): Likewise.
	* config/i386/ppro.md (ppro_sse_div_V4SF_load): Fix memory attr.
	(ppro_sse_log_V4SF_load): Similarly.  Handle sselog1.
	(ppro_sse_log_V4SF): Handle sselog1.
	* config/i386/predicates.md (const_0_to_1_operand): New.
	(const_0_to_255_mul_8_operand): New.
	(const_1_to_31_operand): Rename from const_int_1_31_operand.
	(const_2_to_3_operand, const_4_to_7_operand): New.
	* config/i386/sse.md: New file.
	(SSEMODE12, SSEMODE24, SSEMODE124, SSEMODE248, ssevecsize): New.
	(sse_movups): Rename from sse_movups_1.
	(sse_loadlss): Rename from sse_loadss_1.
	(andv4sf3, iorv4sf3, xorv4sf3, andv2df3): Remove the sse prefix
	from the name.
	(negv4sf2): Use ix86_expand_fp_absneg_operator.
	(absv4sf2, negv2df, absv2df): New.
	(addv4sf3): Add expander to call ix86_fixup_binary_operands_no_copy.
	(subv4sf3, mulv4sf3, divv4sf3, smaxv4sf3, sminv4sf3, andv4sf3,
	iorv4sf3, xorv4sf3, addv2df3, subv2df3, mulv2df3, divv2df3,
	smaxv2df3, sminv2df3, andv2df3, iorv2df3, xorv2df3, mulv8hi3,
	umaxv16qi3, smaxv8hi3, uminv16qi3, sminv8hi3): Likewise.
	(sse3_addsubv4sf3): Model correctly.
	sse3_haddv4sf3, sse3_hsubv4sf3, sse3_addsubv2df3, sse3_haddv2df3,
	sse3_hsubv2df3, sse2_ashlti3, sse2_lshrti3): Likewise.
	(sse_movhlps): Model with vec_select+vec_concat.
	(sse_movlhps, sse_unpckhps, sse_unpcklps, sse3_movshdup,
	sse3_movsldup, sse_shufps, sse_shufps_1, sse2_unpckhpd, sse3_movddup,
	sse2_unpcklpd, sse2_shufpd, sse2_shufpd_1, sse2_punpckhbw,
	sse2_punpcklbw, sse2_punpckhwd, sse2_punpcklwd, sse2_punpckhdq,
	sse2_punpckldq, sse2_punpckhqdq, sse2_punpcklqdq, sse2_pshufd,
	sse2_pshufd_1, sse2_pshuflw, sse2_pshuflw_1, sse2_pshufhw,
	sse2_pshufhw_1): Likewise.
	(neg<SSEMODEI>2, one_cmpl<SSEMODEI>2): New.
	(add<SSEMODEI>3, sse2_ssadd<SSEMODE12>3, sse2_usadd<SSEMODE12>3,
	sub<SSEMODEI>3, sse2_sssub<SSEMODE12>3, sse2_ussub<SSEMODE12>3,
	ashr<SSEMODE24>3, lshr<SSEMODE248>3, sse2_eq<SSEMODE124>3,
	sse2_gt<SSEMODDE124>3, and<SSEMODEI>3, sse_nand<SSEMODEI>3,
	ior<SSEMODEI>3, xor<SSEMODEI>3): Macroize from existing patterns.
	(addv4sf3, sse_vmaddv4sf3, mulv4sf3, sse_vmmulv4sf3, smaxv4sf3,
	sse_vmsmaxv4sf3, sminv4sf3, sse_vmsminv4sf3, addv2df3, sse2_vmaddv2df3,
	mulv2df3, sse2_vmmulv2df3, smaxv2df3, sse2_vmsmaxv2df3, sminv2df3,
	sse2_vmsminv2df3, umaxv16qi3, smaxv8hi3, uminv16qi3
	sminv8hi3): Mark commutative
	operands.  Use ix86_binary_operator_ok.
	(sse_unpckhps, sse_unpcklps, sse2_packsswb, sse2_packssdw,
	sse2_packuswb, sse2_punpckhbw, sse2_punpcklbw, sse2_punpckhwd,
	sse2_punpcklwd, sse2_punpckhdq, sse2_punpckldq, sse2_punpckhqdq,
	sse2_punpcklqdq): Allow operand2 in memory.
	(sse_movhlps, sse_movlhps, sse2_unpckhpd, sse2_unpcklpd
	sse2_movsd): Add memory alternatives.
	(sse_storelps): Turn expander into an insn; split after reload.
	(sse_storess, sse2_loadhpd, sse2_loadlpd): Add non-xmm inputs.
	(sse2_storehpd, sse2_storelpd): Add non-xmm outputs.

From-SVN: r93101
2005-01-08 16:51:31 -08:00