This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
[PATCH, i386, AVX-512] Fix operands in mask unpack[si|di] patterns.
- From: Kirill Yukhin <kirill dot yukhin at gmail dot com>
- To: Uros Bizjak <ubizjak at gmail dot com>
- Cc: GCC Patches <gcc-patches at gcc dot gnu dot org>
- Date: Mon, 21 Sep 2015 17:27:07 +0300
- Subject: [PATCH, i386, AVX-512] Fix operands in mask unpack[si|di] patterns.
- Authentication-results: sourceware.org; auth=none
Hello,
This patch fixes operands in kunpck[hi|si|di] insn patterns.
Bootstrapped (regtesting in progress).
gcc/
* gcc/config/i386/i386.md (define_insn "kunpckhi"): Fix
operand in pattern.
(define_insn "kunpcksi"): Ditto.
(define_insn "kunpckdi"): Ditto.
Is it ok for trunk and gcc-5-branch if testing pass?
--
Thanks, K
commit 433bd69b29c62d0c65e5a0772d564b0d930ee8c5
Author: Kirill Yukhin <kirill.yukhin@intel.com>
Date: Fri Sep 18 13:51:26 2015 +0300
AVX-512. Fix patterns for kunpck insns.
diff --git a/gcc/config/i386/i386.md b/gcc/config/i386/i386.md
index f7230f0..2f8cdb2 100644
--- a/gcc/config/i386/i386.md
+++ b/gcc/config/i386/i386.md
@@ -8603,7 +8603,7 @@
[(set (match_operand:HI 0 "register_operand" "=k")
(ior:HI
(ashift:HI
- (match_operand:HI 1 "register_operand" "k")
+ (zero_extend:HI (match_operand:QI 1 "register_operand" "k"))
(const_int 8))
(zero_extend:HI (match_operand:QI 2 "register_operand" "k"))))]
"TARGET_AVX512F"
@@ -8616,9 +8616,9 @@
[(set (match_operand:SI 0 "register_operand" "=k")
(ior:SI
(ashift:SI
- (match_operand:SI 1 "register_operand" "k")
+ (zero_extend:SI (match_operand:HI 1 "register_operand" "k"))
(const_int 16))
- (zero_extend:SI (subreg:HI (match_operand:SI 2 "register_operand" "k") 0))))]
+ (zero_extend:SI (match_operand:HI 2 "register_operand" "k"))))]
"TARGET_AVX512BW"
"kunpckwd\t{%2, %1, %0|%0, %1, %2}"
[(set_attr "mode" "SI")])
@@ -8627,9 +8627,9 @@
[(set (match_operand:DI 0 "register_operand" "=k")
(ior:DI
(ashift:DI
- (match_operand:DI 1 "register_operand" "k")
+ (zero_extend:DI (match_operand:SI 1 "register_operand" "k"))
(const_int 32))
- (zero_extend:DI (subreg:SI (match_operand:DI 2 "register_operand" "k") 0))))]
+ (zero_extend:DI (match_operand:SI 2 "register_operand" "k"))))]
"TARGET_AVX512BW"
"kunpckdq\t{%2, %1, %0|%0, %1, %2}"
[(set_attr "mode" "DI")])