[Committed] Add constraints to new andn<dwi>_doubleword_bmi pattern in i386.md.
Commit Message
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 <roger@nextmovesoftware.com>
Uroš Bizjak <ubizjak@gmail.com>
gcc/ChangeLog
* config/i386/i386.md (*andn<mode>3_doubleword_bmi): Add constraints
to post-reload define_insn_and_split.
Roger
--
Comments
On Fri, Jul 1, 2022 at 12:17 PM Roger Sayle <roger@nextmovesoftware.com> wrote:
>
>
> 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 <roger@nextmovesoftware.com>
> Uroš Bizjak <ubizjak@gmail.com>
>
> gcc/ChangeLog
> * config/i386/i386.md (*andn<mode>3_doubleword_bmi): Add constraints
> to post-reload define_insn_and_split.
- (not:<DWI> (match_operand:<DWI> 1 "register_operand"))
- (match_operand:<DWI> 2 "nonimmediate_operand")))
+ (not:<DWI> (match_operand:<DWI> 1 "register_operand" "0"))
This constraint can be "r", ANDN is not destructive.
+ (match_operand:<DWI> 2 "nonimmediate_operand" "ro")))
Uros.
@@ -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"
"#"