summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorkyukhin <kyukhin@138bc75d-0d04-0410-961f-82ee72b054a4>2015-09-22 09:49:20 +0000
committerkyukhin <kyukhin@138bc75d-0d04-0410-961f-82ee72b054a4>2015-09-22 09:49:20 +0000
commitd55ab4fbb19203c14ed2592d54db67929797ccff (patch)
tree129b9b013a5fbad4d85e407c5ea59cbcde3ece4e
parent408af7c634c646d399c5f99b85f9eb1c3849dd07 (diff)
downloadgcc-d55ab4fbb19203c14ed2592d54db67929797ccff.tar.gz
AVX-512. Fix patterns for kunpck insns.
gcc/ * gcc/config/i386/i386.md (define_insn "kunpckhi"): Fix operand in pattern. (define_insn "kunpcksi"): Ditto. (define_insn "kunpckdi"): Ditto. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/gcc-5-branch@228007 138bc75d-0d04-0410-961f-82ee72b054a4
-rw-r--r--gcc/ChangeLog7
-rw-r--r--gcc/config/i386/i386.md10
2 files changed, 12 insertions, 5 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 51e40dc8385..b3c1ceb459b 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,5 +1,12 @@
2015-09-22 Kirill Yukhin <kirill.yukhin@intel.com>
+ * gcc/config/i386/i386.md (define_insn "kunpckhi"): Fix
+ operand in pattern.
+ (define_insn "kunpcksi"): Ditto.
+ (define_insn "kunpckdi"): Ditto.
+
+2015-09-22 Kirill Yukhin <kirill.yukhin@intel.com>
+
* gcc/config/i386/i386.md (define_split not/xor SWI1248x): Use
iterator instead of fixed modes.
diff --git a/gcc/config/i386/i386.md b/gcc/config/i386/i386.md
index 597695708e4..e0ab116af74 100644
--- a/gcc/config/i386/i386.md
+++ b/gcc/config/i386/i386.md
@@ -8515,7 +8515,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"
@@ -8528,9 +8528,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")])
@@ -8539,9 +8539,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")])