aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorUros Bizjak <ubizjak@gmail.com>2013-10-21 13:11:14 +0200
committerUros Bizjak <uros@gcc.gnu.org>2013-10-21 13:11:14 +0200
commit54f9aba03140c7cdace8ff3c6847af855764656f (patch)
tree35bc2937347977887a0561da34b5fbf991be4f04 /gcc
parentd6c6ba3c3e3a66fa934d0ef509ebea327f801e34 (diff)
downloadgcc-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/ChangeLog4
-rw-r--r--gcc/config/i386/i386.md19
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)