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>
* tree-vect-patterns.c (vect_recog_widen_mult_pattern): Enhance
the widen-mult pattern by handling two operands with different
sizes, and operands whose size is smaller than half of the result
type.
the widen-mult pattern by handling two operands with different sizes,
and operands whose size is smaller than half of the result type.
2014-04-18 Jan Hubicka <hubicka@ucw.cz>
......@@ -11,8 +18,7 @@
* ipa-inline-analysis.c (dump_inline_hints): Dump it.
(do_estimate_edge_time): Compute it.
* ipa-inline.c (want_inline_small_function_p): Bypass
INLINE_INSNS_AUTO/SINGLE limits for calls that are known
to be hot.
INLINE_INSNS_AUTO/SINGLE limits for calls that are known to be hot.
2014-04-18 Jan Hubicka <hubicka@ucw.cz>
......@@ -27,16 +33,14 @@
2014-04-18 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
* config/rs6000/vsx.md (vsx_xxmrghw_<mode>): Adjust for
little-endian.
* config/rs6000/vsx.md (vsx_xxmrghw_<mode>): Adjust for little-endian.
(vsx_xxmrglw_<mode>): Likewise.
2014-04-17 Michael Meissner <meissner@linux.vnet.ibm.com>
PR target/60876
* config/rs6000/rs6000.c (rs6000_setup_reg_addr_masks): Make sure
GET_MODE_SIZE gets passed an enum machine_mode type and not
integer.
GET_MODE_SIZE gets passed an enum machine_mode type and not integer.
(rs6000_init_hard_regno_mode_ok): Likewise.
2014-04-17 Jan Hubicka <hubicka@ucw.cz>
......@@ -230,7 +234,8 @@
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
(pass_manager::register_dump_files): this, and remove its handling of
properties since the pass always has the properties anyway.
......@@ -330,8 +335,7 @@
(record_target_from_binfo): Add bases_to_consider array;
record bases for types w/o instances and skip CXX destructor.
(possible_polymorphic_call_targets_1): Add bases_to_consider
and consider_construction parameters; check if type may
have instance.
and consider_construction parameters; check if type may have instance.
(get_polymorphic_call_info): Set maybe_in_construction to true
when we know nothing.
(record_targets_from_bases): Skip CXX destructors; they are
......@@ -1046,24 +1050,6 @@
(Weffc++): Remove Scott's numbering, merge lists and reference
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>
* config/rl78/rl78-expand.md (movqi): Handle (SUBREG (SYMBOL_REF))
......
......@@ -35400,7 +35400,8 @@ rdrand_step:
else
op2 = gen_rtx_SUBREG (SImode, op0, 0);
if (target == 0)
if (target == 0
|| !register_operand (target, SImode))
target = gen_reg_rtx (SImode);
pat = gen_rtx_GEU (VOIDmode, gen_rtx_REG (CCCmode, FLAGS_REG),
......@@ -35442,7 +35443,8 @@ rdseed_step:
const0_rtx);
emit_insn (gen_rtx_SET (VOIDmode, op2, pat));
if (target == 0)
if (target == 0
|| !register_operand (target, SImode))
target = gen_reg_rtx (SImode);
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>
* gcc.dg/vect/vect-widen-mult-u8-s16-s32.c: New test.
......@@ -334,8 +340,7 @@
2014-04-08 Jason Merrill <jason@redhat.com>
* lib/gcc-dg.exp (dg-build-dso): Reset dg-do-what-default to
compile.
* lib/gcc-dg.exp (dg-build-dso): Reset dg-do-what-default to compile.
2014-04-08 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
......@@ -692,8 +697,7 @@
2014-03-28 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
* gcc.dg/tree-ssa/ssa-dom-thread-4.c: Remove s390 special
option.
* gcc.dg/tree-ssa/ssa-dom-thread-4.c: Remove s390 special option.
* lib/target-supports.exp: Return true for s390
in check_effective_logical_op_short_circuit.
......@@ -834,8 +838,8 @@
2014-03-24 Marek Polacek <polacek@redhat.com>
* c-c++-common/ubsan/div-by-zero-4.c: Don't include limits.h. Define
INT_MIN.
* c-c++-common/ubsan/div-by-zero-4.c: Don't include limits.h.
Define INT_MIN.
* 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-mul-1.c: Likewise.
......@@ -920,8 +924,7 @@
2014-03-21 Tobias Burnus <burnus@net-b.de>
PR fortran/60599
* lib/gcc-dg.exp (scan-module): Uncompress .mod files for
reading.
* lib/gcc-dg.exp (scan-module): Uncompress .mod files for reading.
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