This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[Bug target/70014] New: [ARM] Predicate does not match constraint (*subsi3_carryin_const)


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.

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]