diff options
author | Uros Bizjak <ubizjak@gmail.com> | 2015-04-29 20:58:25 +0000 |
---|---|---|
committer | Uros Bizjak <ubizjak@gmail.com> | 2015-04-29 20:58:25 +0000 |
commit | 6745b82c9814acfb0013a1750d9f1aab2e6f99af (patch) | |
tree | 8ad54ca6c0726a88af895221f33a0b6fc7107f25 /gcc/config/i386 | |
parent | 06344d82945d2ee3f7c3f1f196f6f0291a161e7b (diff) |
PR target/65871
* config/i386/i386.md (*bmi_bextr_<mode>_cczonly): New pattern.
(*bmi2_bzhi_<mode>3_1_cczonly): Ditto.
(setcc+movzbl peephole2): Check also clobbered reg.
(setcc+andl peephole2): Ditto.
git-svn-id: https://gcc.gnu.org/svn/gcc/trunk@222592 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/config/i386')
-rw-r--r-- | gcc/config/i386/i386.md | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/gcc/config/i386/i386.md b/gcc/config/i386/i386.md index 060ffa8ab84..5cac713e5a3 100644 --- a/gcc/config/i386/i386.md +++ b/gcc/config/i386/i386.md @@ -11567,7 +11567,9 @@ (zero_extend (match_dup 1)))] "(peep2_reg_dead_p (3, operands[1]) || operands_match_p (operands[1], operands[3])) - && ! reg_overlap_mentioned_p (operands[3], operands[0])" + && ! reg_overlap_mentioned_p (operands[3], operands[0]) + && ! (GET_CODE (operands[4]) == CLOBBER + && reg_mentioned_p (operands[3], operands[4]))" [(parallel [(set (match_dup 5) (match_dup 0)) (match_dup 4)]) (set (strict_low_part (match_dup 6)) @@ -11610,7 +11612,9 @@ (clobber (reg:CC FLAGS_REG))])] "(peep2_reg_dead_p (3, operands[1]) || operands_match_p (operands[1], operands[3])) - && ! reg_overlap_mentioned_p (operands[3], operands[0])" + && ! reg_overlap_mentioned_p (operands[3], operands[0]) + && ! (GET_CODE (operands[4]) == CLOBBER + && reg_mentioned_p (operands[3], operands[4]))" [(parallel [(set (match_dup 5) (match_dup 0)) (match_dup 4)]) (set (strict_low_part (match_dup 6)) |