From: Alexander Ivchenko Date: Thu, 25 Sep 2014 08:25:56 +0000 (+0000) Subject: AVX-512. Extend `perm' insn patterns. X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=e2a2165dea147cca592fe30911ff92a8cb74fbd7;p=gcc.git AVX-512. Extend `perm' insn patterns. gcc/ * config/i386/sse.md (define_expand "_perm"): Rename to ... (define_expand "_perm"): ... this. (define_expand "avx512f_perm_mask"): Rename to ... (define_expand "_perm_mask"): ... this. Use VI8F_256_512 mode iterator. (define_insn "_perm_1"): Rename to ... (define_insn "_perm_1"): ... this. Co-Authored-By: Andrey Turetskiy Co-Authored-By: Anna Tikhonova Co-Authored-By: Ilya Tocar Co-Authored-By: Ilya Verbin Co-Authored-By: Kirill Yukhin Co-Authored-By: Maxim Kuznetsov Co-Authored-By: Michael Zolotukhin From-SVN: r215590 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 8e357ac0733..06c4f0a4519 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,21 @@ +2014-09-25 Alexander Ivchenko + Maxim Kuznetsov + Anna Tikhonova + Ilya Tocar + Andrey Turetskiy + Ilya Verbin + Kirill Yukhin + Michael Zolotukhin + + * config/i386/sse.md + (define_expand "_perm"): Rename to ... + (define_expand "_perm"): ... this. + (define_expand "avx512f_perm_mask"): Rename to ... + (define_expand "_perm_mask"): ... this. + Use VI8F_256_512 mode iterator. + (define_insn "_perm_1"): Rename to ... + (define_insn "_perm_1"): ... this. + 2014-09-25 Alexander Ivchenko Maxim Kuznetsov Anna Tikhonova diff --git a/gcc/config/i386/sse.md b/gcc/config/i386/sse.md index 0ed93335871..e7646d77753 100644 --- a/gcc/config/i386/sse.md +++ b/gcc/config/i386/sse.md @@ -15921,14 +15921,14 @@ (set_attr "prefix" "") (set_attr "mode" "")]) -(define_expand "_perm" +(define_expand "_perm" [(match_operand:VI8F_256_512 0 "register_operand") (match_operand:VI8F_256_512 1 "nonimmediate_operand") (match_operand:SI 2 "const_0_to_255_operand")] "TARGET_AVX2" { int mask = INTVAL (operands[2]); - emit_insn (gen__perm_1 (operands[0], operands[1], + emit_insn (gen__perm_1 (operands[0], operands[1], GEN_INT ((mask >> 0) & 3), GEN_INT ((mask >> 2) & 3), GEN_INT ((mask >> 4) & 3), @@ -15936,16 +15936,16 @@ DONE; }) -(define_expand "avx512f_perm_mask" - [(match_operand:V8FI 0 "register_operand") - (match_operand:V8FI 1 "nonimmediate_operand") +(define_expand "_perm_mask" + [(match_operand:VI8F_256_512 0 "register_operand") + (match_operand:VI8F_256_512 1 "nonimmediate_operand") (match_operand:SI 2 "const_0_to_255_operand") - (match_operand:V8FI 3 "vector_move_operand") + (match_operand:VI8F_256_512 3 "vector_move_operand") (match_operand: 4 "register_operand")] "TARGET_AVX512F" { int mask = INTVAL (operands[2]); - emit_insn (gen__perm_1_mask (operands[0], operands[1], + emit_insn (gen__perm_1_mask (operands[0], operands[1], GEN_INT ((mask >> 0) & 3), GEN_INT ((mask >> 2) & 3), GEN_INT ((mask >> 4) & 3), @@ -15954,7 +15954,7 @@ DONE; }) -(define_insn "_perm_1" +(define_insn "_perm_1" [(set (match_operand:VI8F_256_512 0 "register_operand" "=v") (vec_select:VI8F_256_512 (match_operand:VI8F_256_512 1 "nonimmediate_operand" "vm")