From 021f65807164b2770e8f113b0f85b1bb193020ef Mon Sep 17 00:00:00 2001 From: Ilya Leoshkevich Date: Mon, 30 Sep 2019 17:40:02 +0000 Subject: [PATCH] S/390: Remove code duplication in vec_unordered vec_unordered is vec_ordered plus a negation at the end. Reuse vec_unordered logic. gcc/ChangeLog: 2019-09-30 Ilya Leoshkevich PR target/77918 * config/s390/vector.md (vec_unordered): Call gen_vec_ordered. From-SVN: r276360 --- gcc/ChangeLog | 6 ++++++ gcc/config/s390/vector.md | 14 +++++++------- 2 files changed, 13 insertions(+), 7 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 0d90ef4..28296d5 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2019-09-30 Ilya Leoshkevich + + PR target/77918 + * config/s390/vector.md (vec_unordered): Call + gen_vec_ordered. + 2019-09-30 Yuliang Wang * config/aarch64/aarch64-sve.md (sdiv_pow23): diff --git a/gcc/config/s390/vector.md b/gcc/config/s390/vector.md index 0702e1d..961d2c6 100644 --- a/gcc/config/s390/vector.md +++ b/gcc/config/s390/vector.md @@ -1546,15 +1546,15 @@ ; UNORDERED (a, b): !ORDERED (a, b) (define_expand "vec_unordered" - [(set (match_operand: 0 "register_operand" "=v") - (ge: (match_operand:VFT 1 "register_operand" "v") - (match_operand:VFT 2 "register_operand" "v"))) - (set (match_dup 3) (gt: (match_dup 2) (match_dup 1))) - (set (match_dup 0) (ior: (match_dup 0) (match_dup 3))) - (set (match_dup 0) (not: (match_dup 0)))] + [(match_operand: 0 "register_operand" "=v") + (match_operand:VFT 1 "register_operand" "v") + (match_operand:VFT 2 "register_operand" "v")] "TARGET_VX" { - operands[3] = gen_reg_rtx (mode); + emit_insn (gen_vec_ordered (operands[0], operands[1], operands[2])); + emit_insn (gen_rtx_SET (operands[0], + gen_rtx_NOT (mode, operands[0]))); + DONE; }) (define_expand "vec_unordered" -- 2.7.4