aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorUros Bizjak <ubizjak@gmail.com>2016-05-06 16:34:58 +0200
committerUros Bizjak <uros@gcc.gnu.org>2016-05-06 16:34:58 +0200
commit9c5e57dfb7524eaa0cc65efd5b71bf4b48b010a1 (patch)
tree2245ccbb9e9f4ab2a2b58a1e6e5ba1fb99745571
parent734c152691823eb7a12855783b67d738bd1cf701 (diff)
downloadgcc-9c5e57dfb7524eaa0cc65efd5b71bf4b48b010a1.zip
gcc-9c5e57dfb7524eaa0cc65efd5b71bf4b48b010a1.tar.gz
gcc-9c5e57dfb7524eaa0cc65efd5b71bf4b48b010a1.tar.bz2
i386.md (int cmove peephole2s): Use general_reg_operand instead of register_and_not_any_fp_reg_operand as...
* config/i386/i386.md (int cmove peephole2s): Use general_reg_operand instead of register_and_not_any_fp_reg_operand as operand 0 predicate. * config/i386/predicates.md (register_and_not_any_fp_reg_operand): Remove unused predicate. (register_and_not_fp_reg_operand): Ditto. From-SVN: r235975
-rw-r--r--gcc/ChangeLog9
-rw-r--r--gcc/config/i386/i386.md6
2 files changed, 12 insertions, 3 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 6593023..4e40912 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,11 @@
+2016-05-06 Uros Bizjak <ubizjak@gmail.com>
+
+ * config/i386/i386.md (int cmove peephole2s): Use general_reg_operand
+ instead of register_and_not_any_fp_reg_operand as operand 0 predicate.
+ * config/i386/predicates.md (register_and_not_any_fp_reg_operand):
+ Remove unused predicate.
+ (register_and_not_fp_reg_operand): Ditto.
+
2016-05-06 Martin Liska <mliska@suse.cz>
* tree-if-conv.c (ifcvt_split_critical_edges): Use auto_vec
@@ -2756,6 +2764,7 @@
(avx512f_<castmode><avxsizesuffix>_<castmode>): Ditto.
(avx512f_<castmode><avxsizesuffix>_256<castmode>): Ditto.
(*sse4_1_extractps): Use lowpart_subreg.
+ * config/i386/i386.md (x87 floatsplitter): Use gen_lowpart.
2016-04-18 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
diff --git a/gcc/config/i386/i386.md b/gcc/config/i386/i386.md
index 0bf01ab..8bebba7 100644
--- a/gcc/config/i386/i386.md
+++ b/gcc/config/i386/i386.md
@@ -5272,7 +5272,7 @@
emit_insn (gen_vec_interleave_lowv4si (operands[3], operands[3],
operands[4]));
- operands[3] = gen_rtx_REG (DImode, REGNO (operands[3]));
+ operands[3] = gen_lowpart (DImode, operands[3]);
})
(define_split
@@ -17211,7 +17211,7 @@
(set_attr "mode" "DF,DF,DI,DI,DI,DI")])
(define_split
- [(set (match_operand:DF 0 "register_and_not_any_fp_reg_operand")
+ [(set (match_operand:DF 0 "general_reg_operand")
(if_then_else:DF (match_operator 1 "fcmov_comparison_operator"
[(reg FLAGS_REG) (const_int 0)])
(match_operand:DF 2 "nonimmediate_operand")
@@ -17267,7 +17267,7 @@
;; Don't do conditional moves with memory inputs
(define_peephole2
[(match_scratch:MODEF 4 "r")
- (set (match_operand:MODEF 0 "register_and_not_any_fp_reg_operand")
+ (set (match_operand:MODEF 0 "general_reg_operand")
(if_then_else:MODEF (match_operator 1 "fcmov_comparison_operator"
[(reg FLAGS_REG) (const_int 0)])
(match_operand:MODEF 2 "nonimmediate_operand")