https://gcc.gnu.org/bugzilla/show_bug.cgi?id=100880

            Bug ID: 100880
           Summary: The build should error out for define_insn without
                    insn template
           Product: gcc
           Version: 12.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: middle-end
          Assignee: unassigned at gcc dot gnu.org
          Reporter: ubizjak at gmail dot com
  Target Milestone: ---

Currently, the build allows define_insn RTX without insn template. It would be
nice to detect this invalid RTX and error out during build. This would help to
avoid thinkos like:

-(define_insn "abs<mode>2"
+(define_expand "abs<mode>2"
   [(set (match_operand:MMXMODEI 0 "register_operand")
        (abs:MMXMODEI
          (match_operand:MMXMODEI 1 "register_operand")))]
   "TARGET_MMX_WITH_SSE && TARGET_SSSE3")

which worked only by luck due to the shadowing of the insn above this one.

The documentation does not say that insn template can be optional in the
define_insn RTX.

Reply via email to