re PR target/79197 (ICE in extract_insn in gcc/recog.c:2311)

PR target/79197
	* config/rs6000/rs6000.md (*fixuns_trunc<mode>di2_fctiduz): Rename to ...
	(fixuns_trunc<mode>di2): ... this, remove previous expander.  Put all
	conditions on a single line.

	* gcc.target/powerpc/pr79197.c: New test.
	* gcc.c-torture/compile/pr79197.c: New test.

From-SVN: r245120
This commit is contained in:
Jakub Jelinek 2017-02-02 11:05:26 +01:00 committed by Jakub Jelinek
parent 0966167499
commit 9f11a4a76f
5 changed files with 36 additions and 9 deletions

View File

@ -1,3 +1,10 @@
2017-02-02 Jakub Jelinek <jakub@redhat.com>
PR target/79197
* config/rs6000/rs6000.md (*fixuns_trunc<mode>di2_fctiduz): Rename to ...
(fixuns_trunc<mode>di2): ... this, remove previous expander. Put all
conditions on a single line.
2017-02-02 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
* config/s390/s390-c.c (s390_cpu_cpp_builtins_internal): Rename

View File

@ -5739,17 +5739,10 @@
[(set_attr "length" "12")
(set_attr "type" "fp")])
(define_expand "fixuns_trunc<mode>di2"
[(set (match_operand:DI 0 "register_operand" "")
(unsigned_fix:DI (match_operand:SFDF 1 "register_operand" "")))]
"TARGET_HARD_FLOAT && (TARGET_FCTIDUZ || VECTOR_UNIT_VSX_P (<MODE>mode))"
"")
(define_insn "*fixuns_trunc<mode>di2_fctiduz"
(define_insn "fixuns_trunc<mode>di2"
[(set (match_operand:DI 0 "gpc_reg_operand" "=d,wi")
(unsigned_fix:DI (match_operand:SFDF 1 "gpc_reg_operand" "<Ff>,<Fv>")))]
"TARGET_HARD_FLOAT && TARGET_DOUBLE_FLOAT && TARGET_FPRS
&& TARGET_FCTIDUZ"
"TARGET_HARD_FLOAT && TARGET_DOUBLE_FLOAT && TARGET_FPRS && TARGET_FCTIDUZ"
"@
fctiduz %0,%1
xscvdpuxds %x0,%x1"

View File

@ -1,3 +1,9 @@
2017-02-02 Jakub Jelinek <jakub@redhat.com>
PR target/79197
* gcc.target/powerpc/pr79197.c: New test.
* gcc.c-torture/compile/pr79197.c: New test.
2017-02-02 Richard Biener <rguenther@suse.de>
* gcc.dg/tree-ssa/pr71078-3.c: Do not rely on math.h.

View File

@ -0,0 +1,10 @@
/* PR target/79197 */
unsigned long b;
unsigned long
foo (float *a, float *x)
{
__builtin_memcpy (a, x, sizeof (float));
return *a;
}

View File

@ -0,0 +1,11 @@
/* PR target/79197 */
/* { dg-do compile } */
/* { dg-options "-O0 -mno-popcntd" } */
unsigned a;
void
foo (void)
{
a = *(double *) (__UINTPTR_TYPE__) 0x400000;
}