Commit b15d92bf by Uros Bizjak

re PR target/60909 (ICE: in extract_insn, at recog.c:2202 (unrecognizable insn)…

re PR target/60909 (ICE: in extract_insn, at recog.c:2202 (unrecognizable insn) with -mrdrnd and __builtin_ia32_rdrand32_step())

	PR target/60909
	* config/i386/i386.c (ix86_expand_builtin)
	<case IX86_BUILTIN_RDRAND{16,32,64}_STEP>: Use temporary
	register for target RTX.
	<case IX86_BUILTIN_RDSEED{16,32,64}_STEP>: Ditto.

Testsuite/ChangeLog:

	PR target/60909
	* gcc.target/i386/pr60909-1.c: New test.
	* gcc.target/i386/pr60909-2.c: Ditto.

From-SVN: r209545
parent 4e4c8692
2014-04-21 Uros Bizjak <ubizjak@gmail.com>
PR target/60909
* config/i386/i386.c (ix86_expand_builtin)
<case IX86_BUILTIN_RDRAND{16,32,64}_STEP>: Use temporary
register for target RTX.
<case IX86_BUILTIN_RDSEED{16,32,64}_STEP>: Ditto.
2014-04-18 Cong Hou <congh@google.com> 2014-04-18 Cong Hou <congh@google.com>
* tree-vect-patterns.c (vect_recog_widen_mult_pattern): Enhance * tree-vect-patterns.c (vect_recog_widen_mult_pattern): Enhance
the widen-mult pattern by handling two operands with different the widen-mult pattern by handling two operands with different sizes,
sizes, and operands whose size is smaller than half of the result and operands whose size is smaller than half of the result type.
type.
2014-04-18 Jan Hubicka <hubicka@ucw.cz> 2014-04-18 Jan Hubicka <hubicka@ucw.cz>
...@@ -11,8 +18,7 @@ ...@@ -11,8 +18,7 @@
* ipa-inline-analysis.c (dump_inline_hints): Dump it. * ipa-inline-analysis.c (dump_inline_hints): Dump it.
(do_estimate_edge_time): Compute it. (do_estimate_edge_time): Compute it.
* ipa-inline.c (want_inline_small_function_p): Bypass * ipa-inline.c (want_inline_small_function_p): Bypass
INLINE_INSNS_AUTO/SINGLE limits for calls that are known INLINE_INSNS_AUTO/SINGLE limits for calls that are known to be hot.
to be hot.
2014-04-18 Jan Hubicka <hubicka@ucw.cz> 2014-04-18 Jan Hubicka <hubicka@ucw.cz>
...@@ -27,16 +33,14 @@ ...@@ -27,16 +33,14 @@
2014-04-18 Bill Schmidt <wschmidt@linux.vnet.ibm.com> 2014-04-18 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
* config/rs6000/vsx.md (vsx_xxmrghw_<mode>): Adjust for * config/rs6000/vsx.md (vsx_xxmrghw_<mode>): Adjust for little-endian.
little-endian.
(vsx_xxmrglw_<mode>): Likewise. (vsx_xxmrglw_<mode>): Likewise.
2014-04-17 Michael Meissner <meissner@linux.vnet.ibm.com> 2014-04-17 Michael Meissner <meissner@linux.vnet.ibm.com>
PR target/60876 PR target/60876
* config/rs6000/rs6000.c (rs6000_setup_reg_addr_masks): Make sure * config/rs6000/rs6000.c (rs6000_setup_reg_addr_masks): Make sure
GET_MODE_SIZE gets passed an enum machine_mode type and not GET_MODE_SIZE gets passed an enum machine_mode type and not integer.
integer.
(rs6000_init_hard_regno_mode_ok): Likewise. (rs6000_init_hard_regno_mode_ok): Likewise.
2014-04-17 Jan Hubicka <hubicka@ucw.cz> 2014-04-17 Jan Hubicka <hubicka@ucw.cz>
...@@ -186,7 +190,7 @@ ...@@ -186,7 +190,7 @@
* configure: Regenerate. * configure: Regenerate.
2014-04-17 Trevor Saunders <tsaunders@mozilla.com> 2014-04-17 Trevor Saunders <tsaunders@mozilla.com>
* passes.c (dump_one_pass): don't check pass->has_gate. * passes.c (dump_one_pass): don't check pass->has_gate.
(execute_ipa_summary_passes): Likewise. (execute_ipa_summary_passes): Likewise.
(execute_one_pass): Likewise. (execute_one_pass): Likewise.
...@@ -230,7 +234,8 @@ ...@@ -230,7 +234,8 @@
2014-04-17 Trevor Saunders <tsaunders@mozilla.com> 2014-04-17 Trevor Saunders <tsaunders@mozilla.com>
* pass_manager.h (pass_manager::register_dump_files_1): Remove declaration. * pass_manager.h (pass_manager::register_dump_files_1): Remove
declaration.
* passes.c (pass_manager::register_dump_files_1): Merge into * passes.c (pass_manager::register_dump_files_1): Merge into
(pass_manager::register_dump_files): this, and remove its handling of (pass_manager::register_dump_files): this, and remove its handling of
properties since the pass always has the properties anyway. properties since the pass always has the properties anyway.
...@@ -330,8 +335,7 @@ ...@@ -330,8 +335,7 @@
(record_target_from_binfo): Add bases_to_consider array; (record_target_from_binfo): Add bases_to_consider array;
record bases for types w/o instances and skip CXX destructor. record bases for types w/o instances and skip CXX destructor.
(possible_polymorphic_call_targets_1): Add bases_to_consider (possible_polymorphic_call_targets_1): Add bases_to_consider
and consider_construction parameters; check if type may and consider_construction parameters; check if type may have instance.
have instance.
(get_polymorphic_call_info): Set maybe_in_construction to true (get_polymorphic_call_info): Set maybe_in_construction to true
when we know nothing. when we know nothing.
(record_targets_from_bases): Skip CXX destructors; they are (record_targets_from_bases): Skip CXX destructors; they are
...@@ -348,7 +352,7 @@ ...@@ -348,7 +352,7 @@
2014-04-16 Andrew Pinski <apinski@cavium.com> 2014-04-16 Andrew Pinski <apinski@cavium.com>
* config/host-linux.c (TRY_EMPTY_VM_SPACE): Change aarch64 ilp32 * config/host-linux.c (TRY_EMPTY_VM_SPACE): Change aarch64 ilp32
definition. definition.
2014-04-16 Eric Botcazou <ebotcazou@adacore.com> 2014-04-16 Eric Botcazou <ebotcazou@adacore.com>
...@@ -640,7 +644,7 @@ ...@@ -640,7 +644,7 @@
2014-04-14 Christian Bruel <christian.bruel@st.com> 2014-04-14 Christian Bruel <christian.bruel@st.com>
* config/sh/sh-mem.cc (sh_expand_strlen): Unroll last word. * config/sh/sh-mem.cc (sh_expand_strlen): Unroll last word.
2014-04-14 Christian Bruel <christian.bruel@st.com> 2014-04-14 Christian Bruel <christian.bruel@st.com>
...@@ -949,21 +953,21 @@ ...@@ -949,21 +953,21 @@
2014-04-04 Martin Jambor <mjambor@suse.cz> 2014-04-04 Martin Jambor <mjambor@suse.cz>
PR ipa/60640 PR ipa/60640
* cgraph.h (cgraph_clone_node): New parameter added to declaration. * cgraph.h (cgraph_clone_node): New parameter added to declaration.
Adjust all callers. Adjust all callers.
* cgraph.c (clone_of_p): Also return true if thunks match. * cgraph.c (clone_of_p): Also return true if thunks match.
(verify_edge_corresponds_to_fndecl): Removed extraneous call to (verify_edge_corresponds_to_fndecl): Removed extraneous call to
cgraph_function_or_thunk_node and an obsolete comment. cgraph_function_or_thunk_node and an obsolete comment.
* cgraphclones.c (build_function_type_skip_args): Moved upwards in the * cgraphclones.c (build_function_type_skip_args): Moved upwards in the
file. file.
(build_function_decl_skip_args): Likewise. (build_function_decl_skip_args): Likewise.
(set_new_clone_decl_and_node_flags): New function. (set_new_clone_decl_and_node_flags): New function.
(duplicate_thunk_for_node): Likewise. (duplicate_thunk_for_node): Likewise.
(redirect_edge_duplicating_thunks): Likewise. (redirect_edge_duplicating_thunks): Likewise.
(cgraph_clone_node): New parameter args_to_skip, pass it to (cgraph_clone_node): New parameter args_to_skip, pass it to
redirect_edge_duplicating_thunks which is called instead of redirect_edge_duplicating_thunks which is called instead of
cgraph_redirect_edge_callee. cgraph_redirect_edge_callee.
(cgraph_create_virtual_clone): Pass args_to_skip to cgraph_clone_node, (cgraph_create_virtual_clone): Pass args_to_skip to cgraph_clone_node,
moved setting of a lot of flags to set_new_clone_decl_and_node_flags. moved setting of a lot of flags to set_new_clone_decl_and_node_flags.
2014-04-04 Jeff Law <law@redhat.com> 2014-04-04 Jeff Law <law@redhat.com>
...@@ -1046,24 +1050,6 @@ ...@@ -1046,24 +1050,6 @@
(Weffc++): Remove Scott's numbering, merge lists and reference (Weffc++): Remove Scott's numbering, merge lists and reference
Wnon-virtual-dtor. Wnon-virtual-dtor.
c-family/
cp/
* class.c (accessible_nvdtor_p): New.
(check_bases): Don't check base destructor here ...
(check_bases_and_members): ... check them here. Trigger on
Wnon-virtual-dtor flag.
(finish_struct_1): Use accessible_nvdtor_p.
testsuite/
* g++.dg/warn/Wnvdtor.C: Add non-polymorphic case.
* g++.dg/warn/Wnvdtor-2.C: New.
* g++.dg/warn/Wnvdtor-3.C: New.
* g++.dg/warn/Wnvdtor-4.C: New.
* g++.dg/warn/Weff1.C: Delete.
* g++.old-deja/g++.benjamin/15309-1.C: Delete.
* g++.old-deja/g++.benjamin/15309-2.C: Delete.
2014-04-03 Nick Clifton <nickc@redhat.com> 2014-04-03 Nick Clifton <nickc@redhat.com>
* config/rl78/rl78-expand.md (movqi): Handle (SUBREG (SYMBOL_REF)) * config/rl78/rl78-expand.md (movqi): Handle (SUBREG (SYMBOL_REF))
......
...@@ -35400,7 +35400,8 @@ rdrand_step: ...@@ -35400,7 +35400,8 @@ rdrand_step:
else else
op2 = gen_rtx_SUBREG (SImode, op0, 0); op2 = gen_rtx_SUBREG (SImode, op0, 0);
if (target == 0) if (target == 0
|| !register_operand (target, SImode))
target = gen_reg_rtx (SImode); target = gen_reg_rtx (SImode);
pat = gen_rtx_GEU (VOIDmode, gen_rtx_REG (CCCmode, FLAGS_REG), pat = gen_rtx_GEU (VOIDmode, gen_rtx_REG (CCCmode, FLAGS_REG),
...@@ -35442,7 +35443,8 @@ rdseed_step: ...@@ -35442,7 +35443,8 @@ rdseed_step:
const0_rtx); const0_rtx);
emit_insn (gen_rtx_SET (VOIDmode, op2, pat)); emit_insn (gen_rtx_SET (VOIDmode, op2, pat));
if (target == 0) if (target == 0
|| !register_operand (target, SImode))
target = gen_reg_rtx (SImode); target = gen_reg_rtx (SImode);
emit_insn (gen_zero_extendqisi2 (target, op2)); emit_insn (gen_zero_extendqisi2 (target, op2));
2014-04-21 Uros Bizjak <ubizjak@gmail.com>
PR target/60909
* gcc.target/i386/pr60909-1.c: New test.
* gcc.target/i386/pr60909-2.c: Ditto.
2014-04-18 Cong Hou <congh@google.com> 2014-04-18 Cong Hou <congh@google.com>
* gcc.dg/vect/vect-widen-mult-u8-s16-s32.c: New test. * gcc.dg/vect/vect-widen-mult-u8-s16-s32.c: New test.
...@@ -157,7 +163,7 @@ ...@@ -157,7 +163,7 @@
* gcc.dg/lto/pr55113_0.c: Skip on i?86-*-solaris2.1[0-1]*. * gcc.dg/lto/pr55113_0.c: Skip on i?86-*-solaris2.1[0-1]*.
2014-04-14 Richard Biener <rguenther@suse.de> 2014-04-14 Richard Biener <rguenther@suse.de>
Marc Glisse <marc.glisse@inria.fr> Marc Glisse <marc.glisse@inria.fr>
PR c/60819 PR c/60819
* gcc.target/i386/vec-may_alias.c: New testcase. * gcc.target/i386/vec-may_alias.c: New testcase.
...@@ -334,8 +340,7 @@ ...@@ -334,8 +340,7 @@
2014-04-08 Jason Merrill <jason@redhat.com> 2014-04-08 Jason Merrill <jason@redhat.com>
* lib/gcc-dg.exp (dg-build-dso): Reset dg-do-what-default to * lib/gcc-dg.exp (dg-build-dso): Reset dg-do-what-default to compile.
compile.
2014-04-08 Andreas Krebbel <Andreas.Krebbel@de.ibm.com> 2014-04-08 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
...@@ -455,10 +460,10 @@ ...@@ -455,10 +460,10 @@
2014-04-04 Martin Jambor <mjambor@suse.cz> 2014-04-04 Martin Jambor <mjambor@suse.cz>
PR ipa/60640 PR ipa/60640
* g++.dg/ipa/pr60640-1.C: New test. * g++.dg/ipa/pr60640-1.C: New test.
* g++.dg/ipa/pr60640-2.C: Likewise. * g++.dg/ipa/pr60640-2.C: Likewise.
* g++.dg/ipa/pr60640-3.C: Likewise. * g++.dg/ipa/pr60640-3.C: Likewise.
* g++.dg/ipa/pr60640-4.C: Likewise. * g++.dg/ipa/pr60640-4.C: Likewise.
2014-04-04 Jeff Law <law@redhat.com> 2014-04-04 Jeff Law <law@redhat.com>
...@@ -570,7 +575,7 @@ ...@@ -570,7 +575,7 @@
2014-04-01 Fabien Chêne <fabien@gcc.gnu.org> 2014-04-01 Fabien Chêne <fabien@gcc.gnu.org>
* g++.dg/init/ctor4.C: Adjust. * g++.dg/init/ctor4.C: Adjust.
* g++.dg/init/ctor4-1.C: New. * g++.dg/init/ctor4-1.C: New.
* g++.dg/cpp0x/defaulted2.C: Adjust. * g++.dg/cpp0x/defaulted2.C: Adjust.
...@@ -658,8 +663,8 @@ ...@@ -658,8 +663,8 @@
2014-03-27 Jeff Law <law@redhat.com> 2014-03-27 Jeff Law <law@redhat.com>
PR target/60648 PR target/60648
* g++.dg/pr60648.C: New test. * g++.dg/pr60648.C: New test.
2014-03-28 Adam Butcher <adam@jessamine.co.uk> 2014-03-28 Adam Butcher <adam@jessamine.co.uk>
...@@ -692,14 +697,13 @@ ...@@ -692,14 +697,13 @@
2014-03-28 Andreas Krebbel <Andreas.Krebbel@de.ibm.com> 2014-03-28 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
* gcc.dg/tree-ssa/ssa-dom-thread-4.c: Remove s390 special * gcc.dg/tree-ssa/ssa-dom-thread-4.c: Remove s390 special option.
option.
* lib/target-supports.exp: Return true for s390 * lib/target-supports.exp: Return true for s390
in check_effective_logical_op_short_circuit. in check_effective_logical_op_short_circuit.
2014-03-28 Kirill Yukhin <kirill.yukhin@intel.com> 2014-03-28 Kirill Yukhin <kirill.yukhin@intel.com>
* gcc.target/i386/avx512f-vshuff32x4-2.c: Fix initialization * gcc.target/i386/avx512f-vshuff32x4-2.c: Fix initialization
of second source operand. of second source operand.
* gcc.target/i386/avx512f-vshuff64x2-2.c: Ditto. * gcc.target/i386/avx512f-vshuff64x2-2.c: Ditto.
* gcc.target/i386/avx512f-vshufi32x4-2.c: Ditto. * gcc.target/i386/avx512f-vshufi32x4-2.c: Ditto.
...@@ -834,8 +838,8 @@ ...@@ -834,8 +838,8 @@
2014-03-24 Marek Polacek <polacek@redhat.com> 2014-03-24 Marek Polacek <polacek@redhat.com>
* c-c++-common/ubsan/div-by-zero-4.c: Don't include limits.h. Define * c-c++-common/ubsan/div-by-zero-4.c: Don't include limits.h.
INT_MIN. Define INT_MIN.
* c-c++-common/ubsan/overflow-1.c: Check for unwanted output. * c-c++-common/ubsan/overflow-1.c: Check for unwanted output.
* c-c++-common/ubsan/overflow-add-1.c: Likewise. * c-c++-common/ubsan/overflow-add-1.c: Likewise.
* c-c++-common/ubsan/overflow-mul-1.c: Likewise. * c-c++-common/ubsan/overflow-mul-1.c: Likewise.
...@@ -920,8 +924,7 @@ ...@@ -920,8 +924,7 @@
2014-03-21 Tobias Burnus <burnus@net-b.de> 2014-03-21 Tobias Burnus <burnus@net-b.de>
PR fortran/60599 PR fortran/60599
* lib/gcc-dg.exp (scan-module): Uncompress .mod files for * lib/gcc-dg.exp (scan-module): Uncompress .mod files for reading.
reading.
2014-03-20 Jakub Jelinek <jakub@redhat.com> 2014-03-20 Jakub Jelinek <jakub@redhat.com>
......
/* { dg-do compile } */
/* { dg-options "-mrdrnd" } */
extern void bar (int);
void
foo (unsigned *u)
{
int i = __builtin_ia32_rdrand32_step (u);
bar (i);
}
/* { dg-do compile } */
/* { dg-options "-mrdseed" } */
extern void bar (int);
void
foo (unsigned *u)
{
int i = __builtin_ia32_rdseed_si_step (u);
bar (i);
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment