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>
...@@ -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
...@@ -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.
...@@ -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>
...@@ -692,8 +697,7 @@ ...@@ -692,8 +697,7 @@
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.
...@@ -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