Commit da0b9df9 by Jakub Jelinek Committed by Jakub Jelinek

re PR rtl-optimization/65693 (ICE in assign_by_spills, at lra-assigns.c:1419)

	PR target/65693
	* config/i386/i386.md (*udivmod<mode>4_pow2): Allow
	any pow2 integer in between 2 and 0x80000000U inclusive.

	* gcc.target/i386/pr65693.c: New test.

From-SVN: r221942
parent 9a165842
2015-04-09 Jakub Jelinek <jakub@redhat.com>
PR target/65693
* config/i386/i386.md (*udivmod<mode>4_pow2): Allow
any pow2 integer in between 2 and 0x80000000U inclusive.
2015-04-08 Segher Boessenkool <segher@kernel.crashing.org>
PR rtl-optimization/65693
......
......@@ -7340,7 +7340,7 @@
(set (match_operand:SWI48 1 "register_operand" "=r")
(umod:SWI48 (match_dup 2) (match_dup 3)))
(clobber (reg:CC FLAGS_REG))]
"UINTVAL (operands[3]) - 2 < <MODE_SIZE> * BITS_PER_UNIT
"IN_RANGE (INTVAL (operands[3]), 2, HOST_WIDE_INT_UC (0x80000000))
&& (UINTVAL (operands[3]) & (UINTVAL (operands[3]) - 1)) == 0"
"#"
"&& 1"
......
2015-04-09 Jakub Jelinek <jakub@redhat.com>
PR target/65693
* gcc.target/i386/pr65693.c: New test.
2015-04-08 Ilya Enkovich <ilya.enkovich@intel.com>
* gcc.dg/lto/chkp-static-bounds_0.c: New.
......
/* PR target/65693 */
/* { dg-do compile } */
/* { dg-options "-O2" } */
int a;
void
foo (int (*fn) (int, int, int), unsigned int b)
{
unsigned long *c = (unsigned long *) __builtin_alloca (b);
a = *c;
register int d asm ("edx") = fn (0, 0, d);
}
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