This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug target/70014] New: [ARM] Predicate does not match constraint (*subsi3_carryin_const)
- From: "michael.collison at linaro dot org" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: Mon, 29 Feb 2016 06:59:31 +0000
- Subject: [Bug target/70014] New: [ARM] Predicate does not match constraint (*subsi3_carryin_const)
- Auto-submitted: auto-generated
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70014
Bug ID: 70014
Summary: [ARM] Predicate does not match constraint
(*subsi3_carryin_const)
Product: gcc
Version: 6.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: target
Assignee: unassigned at gcc dot gnu.org
Reporter: michael.collison at linaro dot org
Target Milestone: ---
The predicate of operand 1 of the "*subsi3_carryin_const" pattern:
(define_insn "*subsi3_carryin_const"
[(set (match_operand:SI 0 "s_register_operand" "=r")
(minus:SI (plus:SI (match_operand:SI 1 "reg_or_int_operand" "r")
(match_operand:SI 2 "arm_not_operand" "K"))
(ltu:SI (reg:CC_C CC_REGNUM) (const_int 0))))]
allows for const_int but the constraint only allows for registers. The solution
is to change the predicate to disallow const_int operands. I will post a patch
upstream after testing is complete.