Many thanks to Uros for spotting that I'd forgotten to add constraints
to the new define_insn_and_split *andn<dwi>_doubleword_bmi when moving it
from pre-reload to post-reload.  I've pushed this obvious fix after a
make bootstrap on x86_64-pc-linux-gnu.  Sorry for the inconvenience to
anyone building the tree with a non-default architecture that enables
BMI.


2022-07-01  Roger Sayle  <ro...@nextmovesoftware.com>
            Uroš Bizjak  <ubiz...@gmail.com>

gcc/ChangeLog
        * config/i386/i386.md (*andn<mode>3_doubleword_bmi): Add constraints
        to post-reload define_insn_and_split.


Roger
--

diff --git a/gcc/config/i386/i386.md b/gcc/config/i386/i386.md
index 3401814..352a21c 100644
--- a/gcc/config/i386/i386.md
+++ b/gcc/config/i386/i386.md
@@ -10405,10 +10405,10 @@
 })
 
 (define_insn_and_split "*andn<mode>3_doubleword_bmi"
-  [(set (match_operand:<DWI> 0 "register_operand")
+  [(set (match_operand:<DWI> 0 "register_operand" "=r")
        (and:<DWI>
-         (not:<DWI> (match_operand:<DWI> 1 "register_operand"))
-         (match_operand:<DWI> 2 "nonimmediate_operand")))
+         (not:<DWI> (match_operand:<DWI> 1 "register_operand" "0"))
+         (match_operand:<DWI> 2 "nonimmediate_operand" "ro")))
    (clobber (reg:CC FLAGS_REG))]
   "TARGET_BMI"
   "#"

Reply via email to