AVX-512. Fix patterns for kunpck insns.
authorKirill Yukhin <kirill.yukhin@intel.com>
Tue, 22 Sep 2015 09:47:39 +0000 (09:47 +0000)
committerKirill Yukhin <kyukhin@gcc.gnu.org>
Tue, 22 Sep 2015 09:47:39 +0000 (09:47 +0000)
gcc/
* gcc/config/i386/i386.md (define_insn "kunpckhi"): Fix
operand in pattern.
(define_insn "kunpcksi"): Ditto.
(define_insn "kunpckdi"): Ditto.

From-SVN: r228005

gcc/ChangeLog
gcc/config/i386/i386.md

index 62fcf3fd55d760906aece2b6f52ac8f5325d1cbf..13db1c933823c05a675aa2df96d7d27afb2bfd3d 100644 (file)
@@ -1,3 +1,10 @@
+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
index f7230f0593c98a382618444cd4945c5abe2d551a..2f8cdb2c7270a84a6ae5861e45f4190c8265ee7d 100644 (file)
   [(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"
   [(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")])
   [(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")])