[Bug target/89434] [7/8/9 Regression] wrong code with -Og and __builtin_mul_overflow()
jakub at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Mon Feb 25 10:33:00 GMT 2019
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=89434
--- Comment #6 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
Author: jakub
Date: Mon Feb 25 10:32:38 2019
New Revision: 269186
URL: https://gcc.gnu.org/viewcvs?rev=269186&root=gcc&view=rev
Log:
PR target/89434
* config/arm/arm.md (*subsi3_carryin_const): Use
arm_neg_immediate_operand predicate instead of
arm_not_immediate_operand, "L" constraint instead of "K" and
print it using %n2 instead of %B2.
(*subsi3_carryin_const0): New define_insn.
(*subsi3_carryin_compare_const): Use const_int_I_operand predicate
instead of arm_not_operand and "I" constraint instead of "K" and
print it using %n3 instead of %B2. Instead of using match_dup 2 add
another match_operand and in the condition check that it is negation
of operands[2].
(*subsi3_carryin_compare_const0): New define_ins.
(*subdi_di_zesidi): Adjust to use *subsi3_carryin_const0 instead of
*subsi3_carryin_const.
(*arm_cmpdi_insn): Fix splitting into *subsi3_carryin_compare_const,
split into *subsi3_carryin_compare_const0 if the highpart is zero.
* gcc.c-torture/execute/pr89434.c: New test.
Added:
trunk/gcc/testsuite/gcc.c-torture/execute/pr89434.c
trunk/gcc/testsuite/gcc.dg/pr89434.c
Modified:
trunk/gcc/ChangeLog
trunk/gcc/config/arm/arm.md
trunk/gcc/testsuite/ChangeLog
More information about the Gcc-bugs
mailing list