Fix PR68497 (ICE with -fno-checking)
gcc/ PR target/68497 * config/i386/i386.c (output_387_binary_op): Fix assertion for -fno-checking case. gcc/testsuite/ PR target/68497 * gcc.target/i386/pr68497.c: New test. From-SVN: r230803
This commit is contained in:
parent
5205ae6e27
commit
db92ed3685
@ -1,3 +1,9 @@
|
||||
2015-11-24 Mikhail Maltsev <maltsevm@gmail.com>
|
||||
|
||||
PR target/68497
|
||||
* config/i386/i386.c (output_387_binary_op): Fix assertion for
|
||||
-fno-checking case.
|
||||
|
||||
2015-11-24 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
|
||||
|
||||
* tree-ssa-uncprop.c (struct val_ssa_equiv_hash_traits): Remove.
|
||||
|
@ -17675,18 +17675,20 @@ output_387_binary_op (rtx insn, rtx *operands)
|
||||
|
||||
/* Even if we do not want to check the inputs, this documents input
|
||||
constraints. Which helps in understanding the following code. */
|
||||
if (flag_checking
|
||||
&& STACK_REG_P (operands[0])
|
||||
&& ((REG_P (operands[1])
|
||||
&& REGNO (operands[0]) == REGNO (operands[1])
|
||||
&& (STACK_REG_P (operands[2]) || MEM_P (operands[2])))
|
||||
|| (REG_P (operands[2])
|
||||
&& REGNO (operands[0]) == REGNO (operands[2])
|
||||
&& (STACK_REG_P (operands[1]) || MEM_P (operands[1]))))
|
||||
&& (STACK_TOP_P (operands[1]) || STACK_TOP_P (operands[2])))
|
||||
; /* ok */
|
||||
else
|
||||
gcc_checking_assert (is_sse);
|
||||
if (flag_checking)
|
||||
{
|
||||
if (STACK_REG_P (operands[0])
|
||||
&& ((REG_P (operands[1])
|
||||
&& REGNO (operands[0]) == REGNO (operands[1])
|
||||
&& (STACK_REG_P (operands[2]) || MEM_P (operands[2])))
|
||||
|| (REG_P (operands[2])
|
||||
&& REGNO (operands[0]) == REGNO (operands[2])
|
||||
&& (STACK_REG_P (operands[1]) || MEM_P (operands[1]))))
|
||||
&& (STACK_TOP_P (operands[1]) || STACK_TOP_P (operands[2])))
|
||||
; /* ok */
|
||||
else
|
||||
gcc_assert (is_sse);
|
||||
}
|
||||
|
||||
switch (GET_CODE (operands[3]))
|
||||
{
|
||||
|
@ -1,3 +1,8 @@
|
||||
2015-11-24 Mikhail Maltsev <maltsevm@gmail.com>
|
||||
|
||||
PR target/68497
|
||||
* gcc.target/i386/pr68497.c: New test.
|
||||
|
||||
2015-11-24 Bilyan Borisov <bilyan.borisov@arm.com>
|
||||
|
||||
* gcc.target/aarch64/advsimd-intrinsics/vmulx_lane_f32_indices_1.c:
|
||||
|
8
gcc/testsuite/gcc.target/i386/pr68497.c
Normal file
8
gcc/testsuite/gcc.target/i386/pr68497.c
Normal file
@ -0,0 +1,8 @@
|
||||
/* { dg-do compile } */
|
||||
/* { dg-options "-fno-checking" } */
|
||||
|
||||
long double
|
||||
foo (long double x, long double y)
|
||||
{
|
||||
return x + y;
|
||||
}
|
Loading…
Reference in New Issue
Block a user