2017-09-04 Uros Bizjak <ubiz...@gmail.com> PR target/82098 * config/i386/i386.md (*<btsc><mode>_mask): Add TARGET_USE_BT to insn constraint. (*btr<mode>_mask): Ditto.
Bootstrapped and regression tested on x86_64-linux-gnu {,-m32}. Committed to mainline SVN. Uros.
Index: config/i386/i386.md =================================================================== --- config/i386/i386.md (revision 251662) +++ config/i386/i386.md (working copy) @@ -11033,8 +11033,9 @@ (match_operand:SI 2 "const_int_operand")) 0)) (match_operand:SWI48 3 "register_operand"))) (clobber (reg:CC FLAGS_REG))] - "(INTVAL (operands[2]) & (GET_MODE_BITSIZE (<MODE>mode)-1)) - == GET_MODE_BITSIZE (<MODE>mode)-1 + "TARGET_USE_BT + && (INTVAL (operands[2]) & (GET_MODE_BITSIZE (<MODE>mode)-1)) + == GET_MODE_BITSIZE (<MODE>mode)-1 && can_create_pseudo_p ()" "#" "&& 1" @@ -11073,8 +11074,9 @@ (match_operand:SI 2 "const_int_operand")) 0)) (match_operand:SWI48 3 "register_operand"))) (clobber (reg:CC FLAGS_REG))] - "(INTVAL (operands[2]) & (GET_MODE_BITSIZE (<MODE>mode)-1)) - == GET_MODE_BITSIZE (<MODE>mode)-1 + "TARGET_USE_BT + && (INTVAL (operands[2]) & (GET_MODE_BITSIZE (<MODE>mode)-1)) + == GET_MODE_BITSIZE (<MODE>mode)-1 && can_create_pseudo_p ()" "#" "&& 1"