Commit Graph

149739 Commits

Author SHA1 Message Date
Jonathan Wakely b2343559f2 Add array support to std::shared_ptr for C++17
* doc/xml/manual/status_cxx2017.xml: Update status.
	* doc/html/manual/status.html: Regenerate.
	* include/bits/shared_ptr.h (shared_ptr(unique_ptr<_Yp, _Del>)): Add
	extension constructor to maintain C++14 behaviour.
	* include/bits/shared_ptr_base.h (__sp_array_delete): Add new struct.
	(__shared_count(_Ptr, false_type), __shared_count(_Ptr, true_type)):
	New constructors.
	(__sp_compatible_with, __sp_is_constructible): Add specializations
	for array support.
	(__sp_is_constructible_arr, __sp_is_constructible_arrN): New helpers.
	(__shared_ptr_access): New base class for observer member functions.
	(__shared_ptr::element_type): Use remove_extent.
	(__shared_ptr::_UniqCompatible): Add __sp_compatible_with check.
	(__shared_ptr(_Yp*)): Use tag dispatching to call new __shared_count
	constructor.
	(__shared_ptr(unique_ptr<_Yp, _Del>)): Add extension constructor.
	(__shared_ptr::operator*, __shared_ptr::operator->): Remove and
	inherit from __shared_ptr_access base class.
	(__shared_ptr::__has_esft_base): Return false for array types.
	(__weak_ptr::element_type): Use remove_extent.
	* include/experimental/bits/shared_ptr.h (__libfund_v1): Remove.
	(__shared_ptr<__libfund_v1<_Tp>>): Remove specializations.
	(__wak_ptr<__libfund_v1<_Tp>>): Likewise.
	(experimental::__sp_compatible_v): Redefine using
	__sp_compatible_with.
	(experimental::__sp_is_constructible_v): Redefine using
	__sp_is_constructible.
	(get_deleter, operator<<): Change argument from __shared_ptr to
	shared_ptr.
	* testsuite/20_util/shared_ptr/cons/array.cc: New test.
	* testsuite/20_util/shared_ptr/cons/unique_ptr_array.cc: Adjust for
	new behaviour.
	* testsuite/20_util/shared_ptr/observers/array.cc: Test observers for
	arrays.
	* testsuite/20_util/shared_ptr/observers/array_neg.cc: New test.

From-SVN: r242369
2016-11-13 22:57:45 +00:00
Kugan Vivekanandarajah a2b4c18823 pr78268.C: New test.
gcc/testsuite/ChangeLog:

2016-11-13  Kugan Vivekanandarajah  <kuganv@linaro.org>

	* g++.dg/torture/pr78268.C: New test.

gcc/ChangeLog:

2016-11-13  Kugan Vivekanandarajah  <kuganv@linaro.org>

	* ipa-cp.c (ipa_get_jf_pass_through_result): Skip unary expressions.
	(propagate_vr_accross_jump_function): Handle unary expressions.
	* ipa-prop.c (ipa_set_jf_unary_pass_through): New.
	(load_from_param_1): New.
	(load_from_unmodified_param): Factor common part into load_from_param_1.
	(load_from_param): New.
	(compute_complex_assign_jump_func): Handle unary expressions.
	(update_jump_functions_after_inlining): Likewise.
	(ipa_write_jump_function): Likewise.
	(ipa_read_jump_function): Likewise.

From-SVN: r242368
2016-11-13 22:04:36 +00:00
Ville Voutilainen 1701800580 Implement P0403R1, Literal suffixes for basic_string_view.
* include/std/string_view
(operator""sv(const char*, size_t)): New.
(operator""sv(const wchar_t*, size_t)): Likewise.
(operator""sv(const char16_t*, size_t)): Likewise.
(operator""sv(const char32_t*, size_t)): Likewise.
* testsuite/21_strings/basic_string_view/literals/types.cc: New.
* testsuite/21_strings/basic_string_view/literals/values.cc: Likewise.
* testsuite/experimental/string_view/literals/values.cc: Add
tests for literals with embedded NULs.

From-SVN: r242367
2016-11-13 22:54:27 +02:00
Prathamesh Kulkarni 975672f357 re PR tree-optimization/35503 (Warning about restricted pointers?)
2016-11-13  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>

	PR c/35503
	* doc/invoke.texi: Document Wrestrict.
	* pretty-print.c (pp_format): Add case for "Z" specifier.
	(test_pp_format): Test "Z" specifier.
c-family/
	* c-common.h (warn_for_restrict): Declare.
	* c-warn.c: Include gcc-rich-location.h.
	(warn_for_restrict): New function.
	* c-format.c (gcc_tdiag_char_table): Add entry for "Z" specifier.
	(gcc_cdiag_char_table): Likewise.
	(gcc_cxxdiag_char_table): Likewise.
	* c.opt (Wrestrict): New option.
c/
	* c-parser.c (c_parser_postfix_expression_after_primary): Call
	warn_for_restrict.
cp/
	* parser.c (cp_parser_postfix_pexpression): Call warn_for_restrict.
testsuite/
	* c-c++-common/pr35503-1.c: New test.
	* c-c++-common/pr35503-2.c: Likewise.
	* c-c++-common/pr35503-3.c: Likewise.
	* gcc.dg/format/gcc_diag-1.c: Add tests for "Z" specifier.

From-SVN: r242366
2016-11-13 19:38:36 +00:00
Bob Duff 8d5a1b4f64 decl.c (gnat_to_gnu_entity): In assertion about known Esize...
* gcc-interface/decl.c (gnat_to_gnu_entity): In assertion about known
	Esize, protect with !is_type and change !Unknown_Esize to Known_Esize.

From-SVN: r242363
2016-11-13 18:38:02 +00:00
Uros Bizjak a4ba1151df re PR rtl-optimization/78232 (FAIL: gcc.dg/torture/pr48124-4.c)
PR rtl-optimization/78232
	PR rtl-optimization/78248
	* gcc.dg/ubsan/pr78248.c: New test.

From-SVN: r242362
2016-11-13 19:31:17 +01:00
Eric Botcazou 476053121b decl.c (gnat_to_gnu_entity): Look at the underlying type for the signedness of the type.
* gcc-interface/decl.c (gnat_to_gnu_entity) <E_Signed_Integer_Subtype>:
	Look at the underlying type for the signedness of the type.

From-SVN: r242361
2016-11-13 18:29:45 +00:00
Eric Botcazou c0c54de6a0 decl.c (annotate_value): Deal specially with negative constants.
* gcc-interface/decl.c (annotate_value) <INTEGER_CST>: Deal specially
	with negative constants.

From-SVN: r242360
2016-11-13 18:20:25 +00:00
Eric Botcazou 96826e28ef utils2.c (gnat_protect_expr): Also protect only the address if the expression is the component of a dereference.
* gcc-interface/utils2.c (gnat_protect_expr): Also protect only the
	address if the expression is the component of a dereference.
	Do not use a reference type for the final temporary reference.

From-SVN: r242358
2016-11-13 18:08:25 +00:00
Eric Botcazou 854c00dd69 Makefile.in (NO_OMIT_ADAFLAGS): Define.
* gcc-interface/Makefile.in (NO_OMIT_ADAFLAGS): Define.
	(a-except.o): Replace -fno-inline with NO_INLINE_ADAFLAGS.
	(s-memory.o): New rule.
	(tracebak.o): Replace -fno-omit-frame-pointer with NO_OMIT_ADAFLAGS.

From-SVN: r242357
2016-11-13 17:43:23 +00:00
Eric Botcazou 4be719cdc2 c-ada-spec.c (print_ada_declaration): For typedef declarations...
* c-ada-spec.c (print_ada_declaration): For typedef declarations, look
	for nested types only if the type is a record or union and dump SLOC.

From-SVN: r242356
2016-11-13 17:37:35 +00:00
Eric Botcazou 4ebd491f2a ipa-icf.c (sem_function::merge): Do not create a wrapper also if the original function needs a static chain.
* ipa-icf.c (sem_function::merge): Do not create a wrapper also if the
	original function needs a static chain.

From-SVN: r242354
2016-11-13 17:23:13 +00:00
David Edelsohn 499266dc40 re PR target/78336 (powerpc-darwin bootstrap broken (probably by 241930))
PR target/78336
        * config/rs6000/rs6000.c (rs6000_asm_weaken_decl): Protect
        ASM_OUTPUT_DEF.

From-SVN: r242353
2016-11-13 09:28:49 -05:00
Janus Weil f9d49cd1d0 re PR fortran/60952 ([F03] Problem using "end" as a type-bound procedure and contained procedure)
2016-11-13  Janus Weil  <janus@gcc.gnu.org>

	PR fortran/60952
	* decl.c (match_procedure_in_type): Apply the FL_PROCEDURE attribute
	to the target procedure.

2016-11-13  Janus Weil  <janus@gcc.gnu.org>

	PR fortran/60952
	* gfortran.dg/typebound_proc_34.f90: New test.

From-SVN: r242352
2016-11-13 12:12:05 +01:00
Janus Weil 9cbf867310 re PR fortran/66366 ([OOP] ICE on invalid with non-allocatable CLASS variable)
2016-11-13  Janus Weil  <janus@gcc.gnu.org>

	PR fortran/66366
	* resolve.c (resolve_component): Move check for C437
	to ...
	* decl.c (build_struct): ... here. Fix indentation.

2016-11-13  Janus Weil  <janus@gcc.gnu.org>

	PR fortran/66366
	* gfortran.dg/class_57.f90: Changed error message.
	* gfortran.dg/class_60.f90: New test.

From-SVN: r242351
2016-11-13 10:56:10 +01:00
Jason Merrill 559f2bbc36 CWG 2233 - default arg and parameter pack
* typeck.c (convert_arguments): Handle default arg followed by none.

From-SVN: r242350
2016-11-13 01:52:43 -05:00
Jason Merrill dc8d2d00c5 Fix constexpr lvalue use of __real and __imag.
* constexpr.c (potential_constant_expression_1): REALPART_EXPR and
	IMAGPART_EXPR can be lvalues.

From-SVN: r242349
2016-11-13 01:52:15 -05:00
Jason Merrill ba1e69c03f DR 374 - specialization in outer namespace
PR c++/56840
	* pt.c (check_specialization_namespace): Allow any enclosing
	namespace.
	(check_unqualified_spec_or_inst): New.
	(check_explicit_specialization): Call it.
	* parser.c (cp_parser_elaborated_type_specifier)
	(cp_parser_class_head): Call it.

From-SVN: r242348
2016-11-13 01:51:23 -05:00
GCC Administrator 478eca6464 Daily bump.
From-SVN: r242345
2016-11-13 00:16:21 +00:00
David Edelsohn 0e07583557 * g++.dg/pr78112.C: XFAIL AIX.
From-SVN: r242342
2016-11-12 18:11:04 -05:00
Jonathan Wakely 5485c81829 * src/filesystem/ops.cc (is_empty): Fix typo in exception message.
From-SVN: r242341
2016-11-12 20:28:55 +00:00
Jonathan Wakely 13908b4404 * include/std/future (future_error): Fix public typo to private.
From-SVN: r242340
2016-11-12 20:28:50 +00:00
Joseph Myers 90df67c791 * es.po: Update.
From-SVN: r242338
2016-11-12 18:51:17 +00:00
Segher Boessenkool c0d6cb1a6f rs6000: Don't forget to initialize the TOC (PR77957)
The code generating traceback tables mistakenly does an early return
if !optional_tbtab, which causes it to miss the code generating the TOC
section.  This only matters if the TOC will be empty since otherwise
the section is created elsewhere.

This patch fixes it.


	PR target/77957
	* config/rs6000/rs6000.c (rs6000_output_function_epilogue): Don't
	return early if !optional_tbtab.

From-SVN: r242336
2016-11-12 16:13:14 +01:00
Janus Weil b93d8a3f16 re PR fortran/77501 ([F03] ICE in gfc_match_generic, at fortran/decl.c:9429)
2016-11-12  Janus Weil  <janus@gcc.gnu.org>

	PR fortran/77501
	* class.c (gfc_find_typebound_intrinsic_op): Remove an unnecessary
	assert and nullification.
	* decl.c (gfc_match_decl_type_spec): Use gfc_get_tbp_symtree,
	fix indentation.
	(gfc_match_generic): Remove an unnecessary assert.
	Use gfc_get_tbp_symtree to avoid ICE.

2016-11-12  Janus Weil  <janus@gcc.gnu.org>

	PR fortran/77501
	* gfortran.dg/typebound_generic_16.f90: New test.

From-SVN: r242335
2016-11-12 10:25:47 +01:00
Jonathan Wakely 330cc73d98 Add std::future_error constructor from future_errc
* include/std/future (future_error): Make existing constructor
	private and add constructor from future_errc.

From-SVN: r242334
2016-11-12 03:40:24 +00:00
Jonathan Wakely 0f88f1f2ab Use shared_ptr<T>::element_type in hash specializations
* include/bits/shared_ptr.h (hash<shared_ptr<T>>): Use element_type.
	* include/bits/shared_ptr_base.h (hash<__shared_ptr<T, L>>): Likewise.

From-SVN: r242333
2016-11-12 03:24:34 +00:00
GCC Administrator 9eb97e61d8 Daily bump.
From-SVN: r242331
2016-11-12 00:16:18 +00:00
Jakub Jelinek b8f70e67b8 re PR c++/71225 (Overeager instantiation of members of non-template class nested in class template)
PR c++/71225
	* g++.dg/cpp0x/pr71225.C: New test.

From-SVN: r242328
2016-11-12 00:42:25 +01:00
Eric Botcazou 8b287aea35 re PR rtl-optimization/59461 (missed zero-extension elimination in the combiner)
PR rtl-optimization/59461
	* doc/rtl.texi (paradoxical subregs): Add missing word.
	* combine.c (reg_nonzero_bits_for_combine): Do not discard results
	in modes with precision larger than that of last_set_mode.
	* rtlanal.c (nonzero_bits1) <SUBREG>: If WORD_REGISTER_OPERATIONS is
	set and LOAD_EXTEND_OP is appropriate, propagate results from inner
	REGs to paradoxical SUBREGs.
	(num_sign_bit_copies1) <SUBREG>: Likewise.  Check that the mode is not
	larger than a word before invoking LOAD_EXTEND_OP on it.

From-SVN: r242326
2016-11-11 22:38:33 +00:00
Joseph Myers 84971f1bad * fr.po: Update.
From-SVN: r242324
2016-11-11 22:08:25 +00:00
Uros Bizjak 76ee24d041 i386.md (*<shift_insn><mode>3_doubleword): Mark operand 0 as earlyclobber.
* config/i386/i386.md (*<shift_insn><mode>3_doubleword): Mark
	operand 0 as earlyclobber.
	(*ashl<mode>3_doubleword): Ditto for all operand 0 alternatives.

From-SVN: r242318
2016-11-11 20:38:20 +01:00
Michael Meissner a9c1825cda re PR target/78243 (incorrect byte offset in vextractuh with -mcpu=power9)
2016-11-11  Michael Meissner  <meissner@linux.vnet.ibm.com>

	PR target/78243
	* config/rs6000/vsx.md (vsx_extract_<mode>_p9): Correct the
	element order for little endian ordering.

	* config/rs6000/altivec.md (reduc_plus_scal_<mode>): Use
	VECTOR_ELT_ORDER_BIG and not BYTES_BIG_ENDIAN to adjust element
	number.

From-SVN: r242317
2016-11-11 19:12:12 +00:00
Szabolcs Nagy 9d8f95deca [i386][musl] Add cpuinfo to static libgcc only on *-musl*
The __cpu_indicator_init and __cpu_model symbols are not safe to use
from shared libgcc_s.so from ifunc resolvers, so since gcc-6, only
the definitions from static libgcc.a are used, however the symbols
are kept in libgcc_s as well for backward compatibility (with
appropriate symbol version).  On targets without such backward
compatibility concern add cpuinfo to the static library only (this
avoids running the ctor, reduces libgcc_s size and elf abi concerns
about the versioned symbols).

libgcc/
2016-11-11  Szabolcs Nagy  <szabolcs.nagy@arm.com>

	* config.host (i[3456]86-*-musl*, x86_64-*-musl*): Use
	i386/t-cpuinfo-static instead of i386/t-cpuinfo.
	* config/i386/t-cpuinfo-static: New.

From-SVN: r242268
2016-11-11 17:31:07 +00:00
Uros Bizjak c901bc0d8e re PR target/78310 (ICE: insn does not satisfy its constraints: {*bmi2_rorxdi3_1} with -mbmi2)
PR target/78310
	* config/i386/i386.md (rotate to rotatex splitter): Avoid overflow
	when calculating operand 2.
	(rotate to rotatex zext splitter): Ditto.

testsuite/ChangeLog:

	PR target/78310
	* gcc.target/i386/pr78310.c: New test.

From-SVN: r242076
2016-11-11 17:21:52 +01:00
Jeff Law 606f928d38 gimple-ssa-isolate-paths.c (is_divmod_with_given_divisor): New function.
* gimple-ssa-isolate-paths.c (is_divmod_with_given_divisor): New
	function.
	(stmt_uses_name_in_undefined_way): New function, extracted from
	find_implicit_erroneous_behavior and extended for div/mod case.
	(stmt_uses_0_or_null_in_undefined_way): New function, extracted from
	find_explicit_erroneous_behavior and extended for div/mod case.
	(find_implicit_erroneous_behavior): Use new helper function.
	(find_explicit_erroneous_behavior): Use new helper function.

	* gcc.dg/tree-ssa/isolate-6.c: New test.
	* gcc.dg/tree-ssa/isolate-7.c: New test.

From-SVN: r242075
2016-11-11 09:00:47 -07:00
Bin Cheng be2789903f re PR testsuite/78292 (test case gcc.dg/vect/vect-cond-2.c fails starting with r241967)
gcc/testsuite
	PR testsuite/78292
	* gcc.dg/vect/vect-cond-2.c: Only drop xfail for targets supporting
	vect_max_reduc.

From-SVN: r242073
2016-11-11 14:59:48 +00:00
Ian Lance Taylor 0f366729b9 libgo: fix GOARCH_INT64ALIGN for several targets
From Andreas Schwab.
    
    Reviewed-on: https://go-review.googlesource.com/33130

From-SVN: r242072
2016-11-11 14:52:35 +00:00
Jakub Jelinek d9ab7525e5 re PR c++/72774 (ICE on invalid C++ code on x86_64-linux-gnu (tree check: expected tree that contains ‘decl minimal’ structure, have ‘tree_list’ in consider_binding_level, at cp/name-lookup.c:4721))
PR c++/72774
	* g++.dg/parse/pr72774.C: New test.

From-SVN: r242070
2016-11-11 14:39:06 +01:00
Richard Biener 4b7e0c7668 re PR tree-optimization/71575 ([graphite] internal compiler error: in copy_cond_phi_nodes, at graphite-isl-ast-to-gimple.c:2500)
2016-11-11  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/71575
	* graphite-isl-ast-to-gimple.c (copy_cond_phi_nodes): Remove
	bogus assert.

	* gcc.dg/graphite/pr71575-1.c: New testcase.
	* gcc.dg/graphite/pr71575-2.c: Likewise.

From-SVN: r242069
2016-11-11 12:54:25 +00:00
Richard Biener d07f8c591a re PR middle-end/78295 (Spurious -Wuninitialized warning for vector element assignment)
2016-11-11  Richard Biener  <rguenther@suse.de>

	PR middle-end/78295
	* tree-ssa-uninit.c (warn_uninitialized_vars): Do not warn
	about uninitialized destination arg of BIT_INSERT_EXPR.

	* gcc.dg/uninit-pr78295.c: New testcase.

From-SVN: r242068
2016-11-11 12:53:36 +00:00
GCC Administrator 495d8b0f03 Daily bump.
From-SVN: r242065
2016-11-11 00:16:19 +00:00
Sandra Loosemore c47c721569 re PR c/37998 (Unclear documentation of -fno-common)
2016-11-10  Sandra Loosemore  <sandra@codesourcery.com>

	PR c/37998

	gcc/
	* doc/invoke.texi (Code Gen Options) [-fno-common]: Use correct
	terminology.  Expand to remove ambiguity.

From-SVN: r242062
2016-11-10 18:56:30 -05:00
Ian Lance Taylor 980f9a0a4b runtime: copy signal code from Go 1.7 runtime
Add a little shell script to auto-generate runtime.sigtable from the
    known signal names.
    
    Force the main package to always import the runtime package.  Otherwise
    some runtime package global variables may never be initialized.
    
    Set the syscallsp and syscallpc fields of g when entering a syscall, so
    that the runtime package knows when a g is executing a syscall.
    
    Fix runtime.funcPC to avoid dead store elimination of the interface
    value when the function is inlined.
    
    Reviewed-on: https://go-review.googlesource.com/33025

From-SVN: r242060
2016-11-10 22:53:23 +00:00
Segher Boessenkool 071af74db6 combine: Do not call simplify from inside change_zero_ext (PR78232)
When combine splits a three-insn combination into two instructions it
can reuse i2dest for the temporary result of the first new instruction.
However all information it has in reg_stat about that register will be
stale.  This results in the simplify_gen_binary calls in change_zero_ext
using out-of-date information, which makes it think one of the ANDs
generated there always results in 0, and it doesn't get better from there.

This can also happen if a splitter in the MD uses nonzero_bits (for
example).  I tried to make the splitting code in combine save and restore
the i2dest reg_stat info, but that causes one of the acats tests to fail.

This whole reg_stat thing needs an overhaul, and/or we shouldn't reuse
i2dest for unrelated purposes when splitting.

This patch changes change_zero_ext to do the expected simplifications
itself and not call simplify_gen_*.


	PR rtl-optimization/78232
	* combine.c (try_combine): Add a big comment about why reusing i2dest
	is undesirable.
	(change_zero_ext): Do not call simplify_gen_binary, do the
	simplifications manually.

From-SVN: r242059
2016-11-10 23:45:39 +01:00
Fritz O. Reese 9490321264 Fix ICE and improve errors for invalid anonymous structure declarations.
PR fortran/78277
	* gcc/fortran/decl.c (gfc_match_data_decl): Gracefully handle bad
	anonymous structure declarations.

	PR fortran/78277
	* gcc/testsuite/gfortran.dg/dec_structure_17.f90: New test.

From-SVN: r242058
2016-11-10 21:57:13 +00:00
Fritz O. Reese 05b8fcb4d2 Fix some whitespace.
gcc/fortran/
	* decl.c (get_struct_decl, gfc_match_map, gfc_match_union): Fix
	whitespace.
	* interface.c (gfc_compare_union_types): Likewise.

From-SVN: r242057
2016-11-10 21:54:48 +00:00
Jason Merrill f065303fcf PR c++/77337 - auto return and lambda
* pt.c (tsubst_friend_function): Don't set DECL_INITIAL.
	(instantiate_decl): It's OK to defer a constexpr function.
	* cp-tree.h (DECL_FRIEND_PSEUDO_TEMPLATE_INSTANTIATION): Check
	DECL_LANG_SPECIFIC.
	* decl2.c (decl_defined_p): Use it.  No longer static.
	* decl.c (redeclaration_error_message): Use decl_defined_p.
	* constexpr.c (cxx_eval_call_expression): Set input_location around
	call to instantiate_decl.

From-SVN: r242056
2016-11-10 16:42:36 -05:00
François Dumont 28d1bf4464 debug.cc (format_word): Delete.
2016-11-10  François Dumont  <fdumont@gcc.gnu.org>

	* src/c++11/debug.cc (format_word): Delete.
	(print_literal): New. Replace call to print_word for literals.

From-SVN: r242055
2016-11-10 21:29:43 +00:00
Michael Meissner 456f0dfa1c rs6000.c (rs6000_hard_regno_mode_ok): If ISA 3.0...
[gcc]
2016-11-10  Michael Meissner  <meissner@linux.vnet.ibm.com>

	* config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): If ISA 3.0,
	enable HImode and QImode to go in vector registers by default if
	the -mvsx-small-integer option is enabled.
	(rs6000_secondary_reload_simple_move): Likewise.
	(rs6000_preferred_reload_class): Don't force integer constants to
	be loaded into vector registers that we can easily make into
	memory (or being created in the GPRs and moved over with direct
	move).
	* config/rs6000/vsx.md (UNSPEC_P9_MEMORY): Delete, no longer
	used.
	(vsx_extract_<mode>): Rework V4SImode, V8HImode, and V16QImode
	vector extraction on ISA 3.0 when the scalar integer can be
	allocated in vector registers.  Generate the VEC_SELECT directy,
	and don't use UNSPEC's to avoid having the scalar type in a vector
	register.  Make the expander target registers, and let the
	combiner fold in results storing to memory, if the machine
	supports stores.
	(vsx_extract_<mode>_di): Likewise.
	(vsx_extract_<mode>_p9): Likewise.
	(vsx_extract_<mode>_di_p9): Likewise.
	(vsx_extract_<mode>_store_p9): Likewise.
	(vsx_extract_si): Likewise.
	(vsx_extract_<mode>_p8): Likewise.
	(p9_lxsi<wd>zx): Delete, no longer used.
	(p9_stxsi<wd>x): Likewise.
	* config/rs6000/rs6000.md (INT_ISA3): New mode iterator for
	integers in vector registers for ISA 3.0.
	(QHI): Update comment.
	(zero_extendqi<mode>2): Add support for ISA 3.0 scalar load or
	vector extract instructions in sign/zero extend.
	(zero_extendhi<mode>): Likewise.
	(extendqi<mode>): Likewise.
	(extendhi<mode>2): Likewise.
	(HImode splitter for load/sign extend in vector register):
	Likewise.
	(float<QHI:mode><FP_ISA3:mode>2): Eliminate old method of
	optimizing floating point conversions to/from small data types and
	rewrite it to support QImode/HImode being allowed in vector
	registers on ISA 3.0.
	(float<QHI:mode><FP_ISA3:mode>2_internal): Likewise.
	(floatuns<QHI:mode><FP_ISA3:mode>2): Likewise.
	(floatuns<QHI:mode><FP_ISA3:mode>2_internal): Likewise.
	(fix_trunc<SFDF:mode><QHI:mode>2): Likewise.
	(fix_trunc<SFDF:mode><QHI:mode>2_internal): Likewise.
	(fixuns_trunc<SFDF:mode><QHI:mode>2): Likewise.
	(fixuns_trunc<SFDF:mode><QHI:mode>2_internal): Likewise.
	VSPLITISW on ISA 2.07.
	(movhi_internal): Combine movhi_internal and movqi_internal into
	one mov<mode>_internal with an iterator.  Add support for QImode
	and HImode being allowed in vector registers.  Make large number
	of attributes and constraints easier to read.
	(movqi_internal): Likewise.
	(mov<mode>_internal): Likewise.
	(movdi_internal64): Fix constraint to allow loading -16..15 with
	VSPLITISW on ISA 2.07.
	(integer XXSPLTIB splitter): Add support for QI, HI, and SImode as
	well as DImode.

[gcc/testsuite]
2016-11-10  Michael Meissner  <meissner@linux.vnet.ibm.com>

	* gcc.target/powerpc/vsx-qimode.c: New test for QImode, HImode
	being allowed in vector registers.
	* gcc.target/powerpc/vsx-qimode2.c: Likewise.
	* gcc.target/powerpc/vsx-qimode3.c: Likewise.
	* gcc.target/powerpc/vsx-himode.c: Likewise.
	* gcc.target/powerpc/vsx-himode2.c: Likewise.
	* gcc.target/powerpc/vsx-himode3.c: Likewise.
	* gcc.target/powerpc/p9-extract-1.c: Change MFVSRD to just MFVSR,
	to allow matching MFVSRD or MFVSRW.

From-SVN: r242048
2016-11-10 19:38:33 +00:00