diff options
author | Uros Bizjak <ubizjak@gmail.com> | 2013-10-21 13:11:14 +0200 |
---|---|---|
committer | Uros Bizjak <uros@gcc.gnu.org> | 2013-10-21 13:11:14 +0200 |
commit | 54f9aba03140c7cdace8ff3c6847af855764656f (patch) | |
tree | 35bc2937347977887a0561da34b5fbf991be4f04 /gcc | |
parent | d6c6ba3c3e3a66fa934d0ef509ebea327f801e34 (diff) | |
download | gcc-54f9aba03140c7cdace8ff3c6847af855764656f.zip gcc-54f9aba03140c7cdace8ff3c6847af855764656f.tar.gz gcc-54f9aba03140c7cdace8ff3c6847af855764656f.tar.bz2 |
i386.md (kxnor<mode>): Add FLAGS_REG clobber.
* config/i386/i386.md (kxnor<mode>): Add FLAGS_REG clobber.
From-SVN: r203889
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 4 | ||||
-rw-r--r-- | gcc/config/i386/i386.md | 19 |
2 files changed, 15 insertions, 8 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index bf54da9..bbcc371 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,7 @@ +2013-10-20 Uros Bizjak <ubizjak@gmail.com> + + * config/i386/i386.md (kxnor<mode>): Add FLAGS_REG clobber. + 2013-10-20 Jan Hubicka <jh@suse.cz> * config/i386/i386-tune.def: Add comment; organize into categories diff --git a/gcc/config/i386/i386.md b/gcc/config/i386/i386.md index ad79589..5413526 100644 --- a/gcc/config/i386/i386.md +++ b/gcc/config/i386/i386.md @@ -2302,9 +2302,12 @@ ;; For loads of Q_REG to NONQ_REG we use full sized moves except for partial ;; register stall machines with, where we use QImode instructions, since ;; partial register stall can be caused there. Then we use movzx. + (define_insn "*movqi_internal" - [(set (match_operand:QI 0 "nonimmediate_operand" "=q,q ,q ,r,r ,?r,m ,Yk,Yk,r") - (match_operand:QI 1 "general_operand" "q ,qn,qm,q,rn,qm,qn,r ,Yk,Yk"))] + [(set (match_operand:QI 0 "nonimmediate_operand" + "=q,q ,q ,r,r ,?r,m ,Yk,Yk,r") + (match_operand:QI 1 "general_operand" + "q ,qn,qm,q,rn,qm,qn,r ,Yk,Yk"))] "!(MEM_P (operands[0]) && MEM_P (operands[1]))" { switch (get_attr_type (insn)) @@ -7828,8 +7831,7 @@ (parallel [(set (match_dup 0) (and:HI (match_dup 0) (match_dup 1))) - (clobber (reg:CC FLAGS_REG))])] - "") + (clobber (reg:CC FLAGS_REG))])]) ;; Turn *anddi_1 into *andsi_1_zext if possible. (define_split @@ -8254,7 +8256,8 @@ (not:SWI12 (xor:SWI12 (match_operand:SWI12 1 "register_operand" "0,Yk") - (match_operand:SWI12 2 "register_operand" "r,Yk"))))] + (match_operand:SWI12 2 "register_operand" "r,Yk")))) + (clobber (reg:CC FLAGS_REG))] "TARGET_AVX512F" "@ # @@ -8268,15 +8271,15 @@ (not:SWI12 (xor:SWI12 (match_dup 0) - (match_operand:SWI12 1 "general_reg_operand"))))] + (match_operand:SWI12 1 "general_reg_operand")))) + (clobber (reg:CC FLAGS_REG))] "TARGET_AVX512F && reload_completed" [(parallel [(set (match_dup 0) (xor:HI (match_dup 0) (match_dup 1))) (clobber (reg:CC FLAGS_REG))]) (set (match_dup 0) - (not:HI (match_dup 0)))] - "") + (not:HI (match_dup 0)))]) (define_insn "kortestzhi" [(set (reg:CCZ FLAGS_REG) |