1. 01 Oct, 2018 2 commits
  2. 30 Sep, 2018 8 commits
    • mmx.md (EMMS): New int iterator. · b38ab29f
      	* config/i386/mmx.md (EMMS): New int iterator.
      	(emms): New int attribute.
      	(mmx_<emms>): Macroize insn from *mmx_emms and *mmx_femms using
      	EMMS int iterator.  Explicitly declare clobbers.
      	(mmx_emms): Remove expander.
      	(mmx_femms): Ditto.
      	* config/i386/predicates.md (emms_operation): Remove predicate.
      	(vzeroall_pattern): New predicate.
      	(vzeroupper_pattern): Rename from vzeroupper_operation.
      	* config/i386/i386.c (ix86_avx_u128_mode_after): Use
      	vzeroupper_pattern and vzeroall_pattern predicates.
      
      From-SVN: r264727
      Uros Bizjak committed
    • re PR rtl-optimization/86939 (IRA incorrectly creates an interference between a… · 0df92803
      re PR rtl-optimization/86939 (IRA incorrectly creates an interference between a pseudo register and a hard register)
      
      gcc/
      	PR rtl-optimization/86939
      	* ira-lives.c (make_hard_regno_born): Rename from this...
      	(make_hard_regno_live): ... to this.  Remove update to conflict
      	information.  Update function comment.
      	(make_hard_regno_dead): Add conflict information update.  Update
      	function comment.
      	(make_object_born): Rename from this...
      	(make_object_live): ... to this.  Remove update to conflict information.
      	Update function comment.
      	(make_object_dead):  Add conflict information update.  Update function
      	comment.
      	(mark_pseudo_regno_live): Call make_object_live.
      	(mark_pseudo_regno_subword_live): Likewise.
      	(mark_hard_reg_dead): Update function comment.
      	(mark_hard_reg_live): Call make_hard_regno_live.
      	(process_bb_node_lives): Likewise.
      	* lra-lives.c (make_hard_regno_born): Rename from this...
      	(make_hard_regno_live): ... to this.  Remove update to conflict
      	information.  Remove now uneeded check_pic_pseudo_p argument.
      	Update function comment.
      	(make_hard_regno_dead): Add check_pic_pseudo_p argument and add update
      	to conflict information.  Update function comment.
      	(mark_pseudo_live): Remove update to conflict information.  Update
      	function comment.
      	(mark_pseudo_dead): Add conflict information update.
      	(mark_regno_live): Call make_hard_regno_live.
      	(mark_regno_dead): Call make_hard_regno_dead with new arguement.
      	(process_bb_lives): Call make_hard_regno_live and make_hard_regno_dead.
      
      From-SVN: r264726
      Peter Bergner committed
    • re PR fortran/87359 (pointer being freed was not allocated) · a086078b
      2018-09-30  Paul Thomas  <pault@gcc.gnu.org>
      
      	PR fortran/87359
      	* trans-array.c (gfc_is_reallocatable_lhs): Correct the problem
      	introduced by r264358, which prevented components of associate
      	names from being reallocated on assignment.
      
      
      2018-09-30  Paul Thomas  <pault@gcc.gnu.org>
      
      	PR fortran/87359
      	* gfortran.dg/associate_40.f90 : New test.
      
      From-SVN: r264725
      Paul Thomas committed
    • re PR fortran/70752 (Incorrect LEN for ALLOCATABLE CHARACTER) · ba08c70a
      2018-09-30  Paul Thomas  <pault@gcc.gnu.org>
      
      	PR fortran/70752
      	PR fortran/72709
      	* trans-array.c (gfc_conv_scalarized_array_ref): If this is a
      	deferred type and the info->descriptor is present, use the
      	info->descriptor
      	(gfc_conv_array_ref): Is the se expr is a descriptor type, pass
      	it as 'decl' rather than the symbol backend_decl.
      	(gfc_array_allocate): If the se string_length is a component
      	reference, fix it and use it for the expression string length
      	if the latter is not a variable type. If it is a variable do
      	an assignment. Make use of component ref string lengths to set
      	the descriptor 'span'.
      	(gfc_conv_expr_descriptor): For pointer assignment, do not set
      	the span field if gfc_get_array_span returns zero.
      	* trans.c (get_array_span): If the upper bound a character type
      	is zero, use the descriptor span if available.
      
      
      2018-09-30  Paul Thomas  <pault@gcc.gnu.org>
      
      	PR fortran/70752
      	PR fortran/72709
      	* gfortran.dg/deferred_character_25.f90 : New test.
      	* gfortran.dg/deferred_character_26.f90 : New test.
      	* gfortran.dg/deferred_character_27.f90 : New test to verify
      	that PR82617 remains fixed.
      
      From-SVN: r264724
      Paul Thomas committed
    • messages.xml: Switch link to www.oracle.com to https. · f1525dd4
      	* doc/xml/manual/messages.xml: Switch link to www.oracle.com
      	to https.
      
      From-SVN: r264723
      Gerald Pfeifer committed
    • policy_data_structures_biblio.xml: Update link to Microsoft Component Model Object Technologies. · 8b3f1589
      	* doc/xml/manual/policy_data_structures_biblio.xml: Update
      	link to Microsoft Component Model Object Technologies.
      
      From-SVN: r264722
      Gerald Pfeifer committed
    • re PR fortran/70149 ([F08] Character pointer initialization causes ICE) · 8ba60ec4
      2018-09-30  Paul Thomas  <pault@gcc.gnu.org>
      
      	PR fortran/70149
      	* trans-decl.c (gfc_get_symbol_decl): A deferred character
      	length pointer that is initialized needs the string length to
      	be initialized as well.
      
      2018-09-30  Paul Thomas  <pault@gcc.gnu.org>
      
      	PR fortran/70149
      	* gfortran.dg/deferred_character_24.f90 : New test.
      
      From-SVN: r264721
      Paul Thomas committed
    • Daily bump. · 5e8b5d90
      From-SVN: r264720
      GCC Administrator committed
  3. 29 Sep, 2018 6 commits
  4. 28 Sep, 2018 19 commits
    • match.pd (simple_comparison): Don't optimize if either operand is a function pointer when... · 400bc526
      	* match.pd (simple_comparison): Don't optimize if either operand is
      	a function pointer when target needs function pointer canonicalization.
      
      From-SVN: r264705
      John David Anglin committed
    • rs5000: Delete all specific asm_cpu_* and ASM_CPU_*_SPEC · 68cf2892
      Now that e.g. ASM_CPU_POWER5_SPEC is always "-mpower5" it is clearer and
      easier to just write that directly.
      
      
      	* config/rs6000/driver-rs6000.c (asm_names): Adjust the entries for
      	power5 .. power9 to remove indirection.
      	* config/rs6000/rs6000.h (ASM_CPU_POWER5_SPEC, ASM_CPU_POWER6_SPEC,
      	ASM_CPU_POWER7_SPEC, ASM_CPU_POWER8_SPEC, ASM_CPU_POWER9_SPEC,
      	ASM_CPU_476_SPEC): Delete.
      	(ASM_CPU_SPEC): Adjust.
      	(EXTRA_SPECS): Delete asm_cpu_power5, asm_cpu_power6, asm_cpu_power7,
      	asm_cpu_power8, asm_cpu_power9, asm_cpu_476.
      
      From-SVN: r264704
      Segher Boessenkool committed
    • rs6000: Delete HAVE_AS_DCI · f0ca30bf
      Every supported assembler supports these instructions.  Committing.
      
      
      	* config.in: Delete HAVE_AS_DCI.
      	* config/powerpcspe/powerpcspe.h: Treat HAVE_AS_DCI as always true.
      	* config/rs6000/rs6000.h: Ditto.
      	* configure.ac: Delete HAVE_AS_DCI.
      	* configure: Regenerate.
      
      From-SVN: r264703
      Segher Boessenkool committed
    • rs6000: Delete HAVE_AS_LWSYNC and TARGET_LWSYNC_INSTRUCTION · 2660fecc
      All supported assemblers know lwsync, so we never need to generate this
      instruction using the .long escape hatch.
      
      
      	* config.in (HAVE_AS_LWSYNC): Delete.
      	* config/powerpcspe/powerpcspe.h (TARGET_LWSYNC_INSTRUCTION): Delete.
      	* config/powerpcspe/sync.md (*lwsync): Always generate lwsync, never
      	do it as a .long .
      	* config/rs6000/rs6000.h (TARGET_LWSYNC_INSTRUCTION): Delete.
      	* config/rs6000/sync.md (*lwsync): Always generate lwsync, never do it
      	as a .long .
      	* configure.ac: Delete HAVE_AS_LWSYNC.
      	* configure: Regenerate.
      
      From-SVN: r264702
      Segher Boessenkool committed
    • calls.c (expand_call): Try to do a tail call for thunks at -O0 too. · 44662f68
      	* calls.c (expand_call): Try to do a tail call for thunks at -O0 too.
      	* cgraph.h (struct cgraph_thunk_info): Add indirect_offset.
      	(cgraph_node::create_thunk): Add indirect_offset parameter.
      	(thunk_adjust): Likewise.
      	* cgraph.c (cgraph_node::create_thunk): Add indirect_offset parameter
      	and initialize the corresponding field with it.
      	(cgraph_node::dump): Dump indirect_offset field.
      	* cgraphclones.c (duplicate_thunk_for_node): Deal with indirect_offset.
      	* cgraphunit.c (cgraph_node::analyze): Be prepared for external thunks.
      	(thunk_adjust): Add indirect_offset parameter and deal with it.
      	(cgraph_node::expand_thunk): Deal with the indirect_offset field and
      	pass it to thunk_adjust.  Do not call the target hook if it's non-zero
      	or if the thunk is external or local.  Fix formatting.  Do not chain
      	the RESULT_DECL to BLOCK_VARS.  Pass the static chain to the target,
      	if any, in the GIMPLE representation.
      	* ipa-icf.c (sem_function::equals_wpa): Deal with indirect_offset.
      	* lto-cgraph.c (lto_output_node): Write indirect_offset field.
      	(input_node): Read indirect_offset field.
      	* tree-inline.c (expand_call_inline): Pass indirect_offset field in the
      	call to thunk_adjust.
      	* tree-nested.c (struct nesting_info): Add thunk_p field.
      	(create_nesting_tree): Set it.
      	(convert_all_function_calls): Copy static chain from targets to thunks.
      	(finalize_nesting_tree_1): Return early for thunks.
      	(unnest_nesting_tree_1): Do not finalize thunks.
      	(gimplify_all_functions): Do not gimplify thunks.
      cp/
      	* method.c (use_thunk): Adjust call to cgraph_node::create_thunk.
      ada/
      	* gcc-interface/decl.c (is_cplusplus_method): Do not require C++
      	convention on Interfaces.
      	* gcc-interface/trans.c (Subprogram_Body_to_gnu): Try to create a
      	bona-fide thunk and hand it over to the middle-end.
      	(get_controlling_type): New function.
      	(use_alias_for_thunk_p): Likewise.
      	(thunk_labelno): New static variable.
      	(make_covariant_thunk): New function.
      	(maybe_make_gnu_thunk): Likewise.
      	* gcc-interface/utils.c (finish_subprog_decl): Set DECL_CONTEXT of the
      	result DECL here instead of...
      	(end_subprog_body): ...here.
      
      Co-Authored-By: Pierre-Marie de Rodat <derodat@adacore.com>
      
      From-SVN: r264701
      Eric Botcazou committed
    • functions.h (__foreign_iterator_aux3(const _Safe_iterator<>&, const… · 5c441345
      functions.h (__foreign_iterator_aux3(const _Safe_iterator<>&, const _InputeIter&, const _InputIter&, __true_type)): Use empty() rather than begin() == end().
      
      2018-09-28  François Dumont  <fdumont@gcc.gnu.org>
      
      	* include/debug/functions.h
      	(__foreign_iterator_aux3(const _Safe_iterator<>&, const _InputeIter&,
      	const _InputIter&, __true_type)): Use empty() rather than begin() ==
      	end().
      
      From-SVN: r264699
      François Dumont committed
    • opt-suggestions.c: fix minor memory leak · a0bdbb09
      gcc/ChangeLog:
      	* opt-suggestions.c (option_proposer::build_option_suggestions):
      	Release "option_values".
      
      From-SVN: r264698
      David Malcolm committed
    • dumpfile.c: use prefixes other than 'note: ' for MSG_{OPTIMIZED_LOCATIONS|MISSED_OPTIMIZATION} · ed2d9d37
      As noted at Cauldron, dumpfile.c currently emits "note: " for all kinds
      of dump message, so that (after filtering) there's no distinction between
      MSG_OPTIMIZED_LOCATIONS vs MSG_NOTE vs MSG_MISSED_OPTIMIZATION in the
      textual output.
      
      This patch changes dumpfile.c so that the "note: " varies to show
      which MSG_* was used, with the string prefix matching that used for
      filtering in -fopt-info, hence e.g.
        directive_unroll_3.f90:24:0: optimized: loop unrolled 7 times
      and:
        pr19210-1.c:24:3: missed: missed loop optimization: niters analysis ends up with assumptions.
      
      The patch adds "dg-optimized" and "dg-missed" directives for use
      in the testsuite for matching these (with -fopt-info on stderr; they
      don't help for dumpfile output).
      
      The patch also converts the various problem-reporting dump messages
      in coverage.c:get_coverage_counts to use MSG_MISSED_OPTIMIZATION
      rather than MSG_OPTIMIZED_LOCATIONS, as the docs call out "optimized"
      as
        "information when an optimization is successfully applied",
      whereas "missed" is for
        "information about missed optimizations",
      and problems with profile data seem to me to fall much more into the
      latter category than the former.  Doing so requires converting a few
      tests from using "-fopt-info" (which is implicitly
      "-fopt-info-optimized-optall") to getting the "missed" optimizations.
      Changing them to "-fopt-info-missed" added lots of noise from the
      vectorizer, so I changed these tests to use "-fopt-info-missed-ipa".
      
      gcc/ChangeLog:
      	* coverage.c (get_coverage_counts): Convert problem-reporting dump
      	messages from MSG_OPTIMIZED_LOCATIONS to MSG_MISSED_OPTIMIZATION.
      	* dumpfile.c (kind_as_string): New function.
      	(dump_loc): Rather than a hardcoded prefix of "note: ", use
      	kind_as_string to vary the prefix based on dump_kind.
      	(selftest::test_capture_of_dump_calls): Update for above.
      
      gcc/testsuite/ChangeLog:
      	* c-c++-common/unroll-1.c: Update expected output from "note" to
      	"optimized".
      	* c-c++-common/unroll-2.c: Likewise.
      	* c-c++-common/unroll-3.c: Likewise.
      	* g++.dg/tree-ssa/dom-invalid.C: Update expected output from
      	dg-message to dg-missed.  Convert param from -fopt-info to
      	-fopt-info-missed-ipa.
      	* g++.dg/tree-ssa/pr81408.C: Update expected output from
      	dg-message to dg-missed.
      	* g++.dg/vect/slp-pr56812.cc: Update expected output from
      	dg-message to dg-optimized.
      	* gcc.dg/pr26570.c: Update expected output from dg-message to
      	dg-missed.  Convert param from -fopt-info to
      	-fopt-info-missed-ipa.
      	* gcc.dg/pr32773.c: Likewise.
      	* gcc.dg/tree-ssa/pr19210-1.c: Update expected output from
      	dg-message to dg-missed.
      	* gcc.dg/unroll-2.c: Update expected output from dg-message to
      	dg-optimized.
      	* gcc.dg/vect/nodump-vect-opt-info-1.c: Likewise.  Convert param
      	from -fopt-info to -fopt-info-vec.
      	* gfortran.dg/directive_unroll_1.f90: Update expected output from
      	"note" to "optimized".
      	* gfortran.dg/directive_unroll_2.f90: Likewise.
      	* gfortran.dg/directive_unroll_3.f90: Likewise.
      	* gnat.dg/unroll4.adb: Likewise.
      	* lib/gcc-dg.exp (dg-optimized): New procedure.
      	(dg-missed): New procedure.
      
      From-SVN: r264697
      David Malcolm committed
    • Fix gcc.dg/torture/fp-int-convert.h for excess precision after PR c/87390. · 5718d9d9
      As reported in
      <https://gcc.gnu.org/ml/gcc-patches/2018-09/msg01684.html>, some
      fp-int-convert tests fail after my fix for PR c/87390, in Arm /
      AArch64 configurations where _Float16 uses excess precision by
      default.  The issue is comparisons of the results of a conversion by
      assignment (compile-time or run-time) from integer to floating-point
      with the original integer value; previously this would compare against
      an implicit compile-time conversion to the target type, but now, for
      C11 and later, it compares against an implicit compile-time conversion
      to a possibly wider evaluation format.  This is fixed by adding casts
      to the test so that the comparison is with a value converted
      explicitly to the target type at compile time, without any use of a
      wider evaluation format.
      
      	PR c/87390
      	* gcc.dg/torture/fp-int-convert.h (TEST_I_F_VAL): Convert integer
      	values explicitly to target type for comparison.
      
      From-SVN: r264696
      Joseph Myers committed
    • i386.h (SSE_REGNO): Fix check for FIRST_REX_SSE_REG. · 02469d3a
      	* config/i386/i386.h (SSE_REGNO): Fix check for FIRST_REX_SSE_REG.
      	(GET_SSE_REGNO): Rename from SSE_REGNO.  Update all uses for rename.
      
      From-SVN: r264695
      Uros Bizjak committed
    • i386.h (CC_REGNO): Remove FPSR_REGS. · adb67ffb
      	* config/i386/i386.h (CC_REGNO): Remove FPSR_REGS.
      	* config/i386/i386.c (ix86_fixed_condition_code_regs): Use
      	INVALID_REGNUM instead of FPSR_REG.
      	(ix86_md_asm_adjust): Do not clobber FPSR_REG.
      	* config/i386/i386.md: Update comment of FP compares.
      	(fldenv): Do not clobber FPSR_REG.
      
      From-SVN: r264694
      Uros Bizjak committed
    • Fix date in ChangeLog file. · 713e9ce2
      From-SVN: r264693
      Steve Ellcey committed
    • re PR testsuite/87433 (gcc.dg/zero_bits_compound-1.c and… · a8b4e6c4
      re PR testsuite/87433 (gcc.dg/zero_bits_compound-1.c and gcc.target/aarch64/ashltidisi.c tests fail after combine two to two instruction patch on aarch64)
      
      2018-09-28  Steve Ellcey  <sellcey@cavium.com>
      
      	PR testsuite/87433
      	* gcc.target/aarch64/ashltidisi.c: Expect 3 asr instructions
      	instead of 4.
      
      From-SVN: r264692
      Steve Ellcey committed
    • re PR testsuite/87433 (gcc.dg/zero_bits_compound-1.c and… · 259cd78a
      re PR testsuite/87433 (gcc.dg/zero_bits_compound-1.c and gcc.target/aarch64/ashltidisi.c tests fail after combine two to two instruction patch on aarch64)
      
      2018-09-28  Steve Ellcey  <sellcey@cavium.com>
      
      	PR testsuite/87433
      	* gcc.dg/zero_bits_compound-1.c: Do not run on aarch64*-*-*.
      
      From-SVN: r264691
      Steve Ellcey committed
    • compiler: fix parsing issue with non-ASCII first package char · 20a73a19
          
          Fix a bug in the parser code that decides whether a given name should
          be considered exported or not. The function Lex::is_exported_name
          (which assumes that its input is a mangled name) was being called on
          non-mangled (raw utf-8) names in various places. For the bug in
          question this caused an imported package to be registered under the
          wrong name. To fix the issue, rename 'Lex::is_exported_name' to
          'Lex::is_exported_mangled_name', and add a new 'Lex::is_exported_name'
          that works on utf-8 strings.
          
          Fixes golang/go#27836.
          
          Reviewed-on: https://go-review.googlesource.com/137736
      
      From-SVN: r264690
      Ian Lance Taylor committed
    • tree.h (BLOCK_ORIGIN): New. · dc16b007
      2018-09-28  Richard Biener  <rguenther@suse.de>
      
      	* tree.h (BLOCK_ORIGIN): New.
      	* omp-expand.c (grid_expand_target_grid_body): Assign
      	BLOCK_ORIGIN to BLOCK_ABSTRACT_ORIGIN.
      	* tree-inline.c (remap_block): Likewise.
      
      	* auto-profile.c (get_function_decl_from_block): Simplify
      	by eliding the BLOCK_ABSTRACT_ORIGIN chasing.
      	* langhooks.c (lhd_print_error_function): Likewise.
      	* optinfo-emit-json.cc (optrecord_json_writer::inlining_chain_to):
      	Likewise.
      	* tree-ssa-live.c (remove_unused_scope_block_p): Likewise.
      	* tree.c (block_nonartificial_location): Likewise.
      	(block_ultimate_origin): Likewise.
      	* tree-pretty-print.c (percent_K_format): Likewise.  Remove
      	no longer needed LTO case.
      
      	cp/
      	* error.c (cp_print_error_function): Simplify by eliding
      	the BLOCK_ABSTRACT_ORIGIN chasing.
      
      From-SVN: r264689
      Richard Biener committed
    • Simplify vec_merge according to the mask. · 2bd4ca7a
      This patch was part of the original patch we acquired from Honza and Martin.
      
      It simplifies nested vec_merge operations using the same mask.
      
      Self-tests are included.
      
      2018-09-28  Andrew Stubbs  <ams@codesourcery.com>
      	    Jan Hubicka  <jh@suse.cz>
      	    Martin Jambor  <mjambor@suse.cz>
      
      	* simplify-rtx.c (simplify_merge_mask): New function.
      	(simplify_ternary_operation): Use it, also see if VEC_MERGEs with the
      	same masks are used in op1 or op2.
      	(test_vec_merge): New function.
      	(test_vector_ops): Call test_vec_merge.
      
      Co-Authored-By: Jan Hubicka <jh@suse.cz>
      Co-Authored-By: Martin Jambor <mjambor@suse.cz>
      
      From-SVN: r264688
      Andrew Stubbs committed
    • sparc-protos.h (sparc_branch_cost): Declare. · 227efe87
      	* config/sparc/sparc-protos.h (sparc_branch_cost): Declare.
      	* config/sparc/sparc.h (BRANCH_COST): Call sparc_branch_cost.
      	* config/sparc/sparc.c (struct processor_costs): Add branch_cost field.
      	(cypress_costs): Set it.
      	(supersparc_costs): Likewise.
      	(hypersparc_costs): Likewise.
      	(leon_cost): Likewise.
      	(leon3_costs): Likewise.
      	(sparclet_costs): Likewise.
      	(ultrasparc_costs): Likewise.
      	(ultrasparc_costs): Likewise.
      	(niagara_costs): Likewise.
      	(niagara2_costs): Likewise.
      	(niagara3_costs): Likewise.
      	(niagara4_costs): Likewise.
      	(niagara7_costs): Likewise.
      	(m8_costs): Likewise.
      	(TARGET_CAN_FOLLOW_JUMP): Define.
      	(pass_work_around_errata::gate): Minor tweak.
      	(sparc_option_override): Remove MASK_FSMULD mask for V7 processors.
      	Do not set both MASK_VIS4 and MASK_VIS4B for M8 processor.
      	Automaitcally clear MASK_FSMULD mask for V7 processors.
      	(sparc_can_follow_jump): New static function.
      	(output_ubranch): Deal with CROSSING_JUMP_P.
      	(sparc_use_sched_lookahead): Rewrite using switch statement.
      	(sparc_issue_rate): Reorder.
      	(sparc_branch_cost): New function.
      
      From-SVN: r264687
      Eric Botcazou committed
    • Daily bump. · 7847bfcb
      From-SVN: r264685
      GCC Administrator committed
  5. 27 Sep, 2018 5 commits
    • rs6000: Fix one more vec_splat case · c057b53a
      This fixes the one remaining case where the stricter vec_splat checking
      complains in the testsuite.
      
      
      	* g++.dg/ext/altivec-6.C: Change the vec_splat second argument to a
      	valid value, in the "vector bool int" case.
      
      From-SVN: r264681
      Segher Boessenkool committed
    • tree.h (tree_to_shwi): Add attribute nonnull and pure. · 73ca9fb5
      gcc/ChangeLog:
      
      	* tree.h (tree_to_shwi): Add attribute nonnull and pure.
      	(tree_to_poly_int64, tree_to_uhwi, tree_to_poly_uint64): Same.
      	(int_fits_type_p): Same.
      
      gcc/ada/ChangeLog:
      
      	* gcc-interface/utils.c (make_packable_type): Introduce a temporary
      	to avoid -Wnonnull.
      	(unchecked_convert): Same.
      
      From-SVN: r264680
      Martin Sebor committed
    • mmintrin.h (_mm_unpackhi_pi8): Change __int128_t to __int128. · f20ac637
      2018-09-27  Jinsong Ji  <jji@us.ibm.com>
      	    Bill Schmidt  <wschmidt@linux.ibm.com>
      
      	* config/rs6000/mmintrin.h (_mm_unpackhi_pi8): Change __int128_t
      	to __int128.
      	(_mm_unpacklo_pi8): Likewise.
      	(_mm_add_pi8): Likewise.
      	(_mm_add_pi16): Likewise.
      	(_mm_add_pi32): Likewise.
      	(_mm_sub_pi8): Likewise.
      	(_mm_sub_pi16): Likewise.
      	(_mm_sub_pi32): Likewise.
      	(_mm_cmpgt_pi8): Likewise.
      	(_mm_cmpeq_pi16): Likewise.
      	(_mm_cmpgt_pi16): Likewise.
      	(_mm_cmpeq_pi32): Likewise.
      	(_mm_cmpgt_pi32): Likewise.
      	(_mm_adds_pi8): Likewise.
      	(_mm_adds_pi16): Likewise.
      	(_mm_adds_pu8): Likewise.
      	(_mm_adds_pu16): Likewise.
      	(_mm_subs_pi8): Likewise.
      	(_mm_subs_pi16): Likewise.
      	(_mm_subs_pu8): Likewise.
      	(_mm_subs_pu16): Likewise.
      	(_mm_madd_pi16): Likewise.
      	(_mm_mulhi_pi16): Likewise.
      	(_mm_mullo_pi16): Likewise.
      	(_mm_sll_pi16): Likewise.
      	(_mm_sra_pi16): Likewise.
      	(_mm_srl_pi16): Likewise.
      	(_mm_set1_pi16): Likewise.
      	(_mm_set1_pi8): Likewise.
      	* config/rs6000/xmmintrin.h (_mm_max_pi16): Likewise.
      	(_mm_max_pu8): Likewise.
      	(_mm_min_pi16): Likewise.
      	(_mm_min_pu8): Likewise.
      
      From-SVN: r264678
      Jinsong Ji committed
    • i386.md (UNSPEC_FLDCW): Remove. · f3f518f2
      	* config/i386/i386.md (UNSPEC_FLDCW): Remove.
      
      From-SVN: r264677
      Uros Bizjak committed
    • i386.md (FPSR_REG): Remove. · eaa17c21
      	* config/i386/i386.md (FPSR_REG): Remove.
      	(x86_fnstcw_1): Use (const_int 0) instead of FPCR_REG.
      	(x86_fldcw_1): Remove insn pattern.
      	(fnstenv): Do not clobber FPCR_REG.
      	(fldenv): Ditto.
      	* config/i386/i386.h (FIXED_REGISTERS) Remove fpsr register.
      	(CALL_USED_REGISTERS): Ditto.
      	(REG_ALLOC_ORDER): Ditto.
      	(REG_CLASS_CONTENTS): Ditto.
      	(HI_REGISTER_NAMES): Ditto.
      	(ADDITIONAL_REGISTER_NAMES): Use defines instead
      	of numerical constants.
      	* config/i386/i386.c (regclass_map): Remove fpsr register.
      	(dbx_register_map): Ditto.
      	(dbx64_register_map): Ditto.
      	(svr4_dbx_register_map): Ditto.
      	(print_reg): Do not handle FPCR_REG.
      
      testsuite/ChangeLog:
      
      	* gcc.dg/rtl/x86_64/dfinit.c: Update scan-rtl-dump string.
      	* gcc.dg/rtl/x86_64/times-two.c.before-df.c: Ditto.
      	* gcc.target/i386/pr79804.c (foo): Use register "19", not "20".
      
      From-SVN: r264676
      Uros Bizjak committed