From 682abf8d15c091b67158a8eee5b93a14b9b9740b Mon Sep 17 00:00:00 2001 From: Wei Xiao Date: Mon, 12 Nov 2018 08:52:37 +0000 Subject: [PATCH] sse.md: Combine VFIXUPIMM* patterns 2018-11-12 Wei Xiao * config/i386/sse.md: Combine VFIXUPIMM* patterns (_fixupimm_maskz): Update. (_fixupimm): Update. (_fixupimm_mask): Remove. (avx512f_sfixupimm_maskz): Update. (avx512f_sfixupimm): Update. (avx512f_sfixupimm_mask): Remove. From-SVN: r266026 --- gcc/ChangeLog | 10 ++++++++++ gcc/config/i386/sse.md | 42 ++++++------------------------------------ 2 files changed, 16 insertions(+), 36 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 07661bbe7c5..b12964f6d20 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,13 @@ +2018-11-12 Wei Xiao + + * config/i386/sse.md: Combine VFIXUPIMM* patterns + (_fixupimm_maskz): Update. + (_fixupimm): Update. + (_fixupimm_mask): Remove. + (avx512f_sfixupimm_maskz): Update. + (avx512f_sfixupimm): Update. + (avx512f_sfixupimm_mask): Remove. + 2018-11-11 Sandra Loosemore PR c/69502 diff --git a/gcc/config/i386/sse.md b/gcc/config/i386/sse.md index f6ef71f4c51..5020c058d64 100644 --- a/gcc/config/i386/sse.md +++ b/gcc/config/i386/sse.md @@ -8817,14 +8817,14 @@ (match_operand: 4 "register_operand")] "TARGET_AVX512F" { - emit_insn (gen__fixupimm_maskz_1 ( + emit_insn (gen__fixupimm_mask ( operands[0], operands[1], operands[2], operands[3], CONST0_RTX (mode), operands[4] )); DONE; }) -(define_insn "_fixupimm" +(define_insn "_fixupimm" [(set (match_operand:VF_AVX512VL 0 "register_operand" "=v") (unspec:VF_AVX512VL [(match_operand:VF_AVX512VL 1 "register_operand" "v") @@ -8832,22 +8832,7 @@ (match_operand:SI 3 "const_0_to_255_operand")] UNSPEC_FIXUPIMM))] "TARGET_AVX512F" - "vfixupimm\t{%3, %2, %1, %0|%0, %1, %2, %3}"; - [(set_attr "prefix" "evex") - (set_attr "mode" "")]) - -(define_insn "_fixupimm_mask" - [(set (match_operand:VF_AVX512VL 0 "register_operand" "=v") - (vec_merge:VF_AVX512VL - (unspec:VF_AVX512VL - [(match_operand:VF_AVX512VL 1 "register_operand" "v") - (match_operand: 2 "nonimmediate_operand" "") - (match_operand:SI 3 "const_0_to_255_operand")] - UNSPEC_FIXUPIMM) - (match_operand:VF_AVX512VL 4 "register_operand" "0") - (match_operand: 5 "register_operand" "Yk")))] - "TARGET_AVX512F" - "vfixupimm\t{%3, %2, %1, %0%{%5%}|%0%{%5%}, %1, %2, %3}"; + "vfixupimm\t{%3, %2, %1, %0|%0, %1, %2, %3}"; [(set_attr "prefix" "evex") (set_attr "mode" "")]) @@ -8859,14 +8844,14 @@ (match_operand: 4 "register_operand")] "TARGET_AVX512F" { - emit_insn (gen_avx512f_sfixupimm_maskz_1 ( + emit_insn (gen_avx512f_sfixupimm_mask ( operands[0], operands[1], operands[2], operands[3], CONST0_RTX (mode), operands[4] )); DONE; }) -(define_insn "avx512f_sfixupimm" +(define_insn "avx512f_sfixupimm" [(set (match_operand:VF_128 0 "register_operand" "=v") (unspec:VF_128 [(match_operand:VF_128 1 "register_operand" "v") @@ -8874,22 +8859,7 @@ (match_operand:SI 3 "const_0_to_255_operand")] UNSPEC_FIXUPIMM))] "TARGET_AVX512F" - "vfixupimm\t{%3, %2, %1, %0|%0, %1, %2, %3}"; - [(set_attr "prefix" "evex") - (set_attr "mode" "")]) - -(define_insn "avx512f_sfixupimm_mask" - [(set (match_operand:VF_128 0 "register_operand" "=v") - (vec_merge:VF_128 - (unspec:VF_128 - [(match_operand:VF_128 1 "register_operand" "v") - (match_operand: 2 "" "") - (match_operand:SI 3 "const_0_to_255_operand")] - UNSPEC_FIXUPIMM) - (match_operand:VF_128 4 "register_operand" "0") - (match_operand: 5 "register_operand" "Yk")))] - "TARGET_AVX512F" - "vfixupimm\t{%3, %2, %1, %0%{%5%}|%0%{%5%}, %1, %2, %3}"; + "vfixupimm\t{%3, %2, %1, %0|%0, %1, %2, %3}"; [(set_attr "prefix" "evex") (set_attr "mode" "")]) -- 2.30.2