S/390: Fix mode iterators vmal, vmah, and vmalh.
authorAndreas Krebbel <krebbel@linux.vnet.ibm.com>
Thu, 10 Sep 2015 14:02:34 +0000 (14:02 +0000)
committerAndreas Krebbel <krebbel@gcc.gnu.org>
Thu, 10 Sep 2015 14:02:34 +0000 (14:02 +0000)
gcc/ChangeLog:

2015-09-10  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>

* config/s390/vx-builtins.md ("vec_vmal<mode>", "vec_vmah<mode>")
("vec_vmalh<mode>"): Change mode iterator from VI_HW to VI_HW_QHS.

From-SVN: r227636

gcc/ChangeLog
gcc/config/s390/vx-builtins.md

index e882ec35df54fcfc92a6f0952250c879efc4414b..aff3fd976a2da3d1337ed276eeab5b8fa47bdc68 100644 (file)
@@ -1,3 +1,8 @@
+2015-09-10  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
+
+       * config/s390/vx-builtins.md ("vec_vmal<mode>", "vec_vmah<mode>")
+       ("vec_vmalh<mode>"): Change mode iterator from VI_HW to VI_HW_QHS.
+
 2015-09-10  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
 
        * config/s390/s390.c: Add V1TImode to constant pool modes.
index 35ada1371ff468f14e70f6f5a15542155691e27c..7e20d2b69865527d03cd8ce4d712ab7b1ac790f4 100644 (file)
 ; vec_mladd -> vec_vmal
 ; vmalb, vmalh, vmalf, vmalg
 (define_insn "vec_vmal<mode>"
-  [(set (match_operand:VI_HW 0 "register_operand" "=v")
-       (unspec:VI_HW [(match_operand:VI_HW 1 "register_operand" "v")
-                      (match_operand:VI_HW 2 "register_operand" "v")
-                      (match_operand:VI_HW 3 "register_operand" "v")]
-                     UNSPEC_VEC_VMAL))]
+  [(set (match_operand:VI_HW_QHS 0 "register_operand" "=v")
+       (unspec:VI_HW_QHS [(match_operand:VI_HW_QHS 1 "register_operand" "v")
+                          (match_operand:VI_HW_QHS 2 "register_operand" "v")
+                          (match_operand:VI_HW_QHS 3 "register_operand" "v")]
+                         UNSPEC_VEC_VMAL))]
   "TARGET_VX"
   "vmal<bhfgq><w>\t%v0,%v1,%v2,%v3"
   [(set_attr "op_type" "VRR")])
 
 ; vmahb; vmahh, vmahf, vmahg
 (define_insn "vec_vmah<mode>"
-  [(set (match_operand:VI_HW 0 "register_operand" "=v")
-       (unspec:VI_HW [(match_operand:VI_HW 1 "register_operand" "v")
-                      (match_operand:VI_HW 2 "register_operand" "v")
-                      (match_operand:VI_HW 3 "register_operand" "v")]
-                     UNSPEC_VEC_VMAH))]
+  [(set (match_operand:VI_HW_QHS 0 "register_operand" "=v")
+       (unspec:VI_HW_QHS [(match_operand:VI_HW_QHS 1 "register_operand" "v")
+                          (match_operand:VI_HW_QHS 2 "register_operand" "v")
+                          (match_operand:VI_HW_QHS 3 "register_operand" "v")]
+                         UNSPEC_VEC_VMAH))]
   "TARGET_VX"
   "vmah<bhfgq>\t%v0,%v1,%v2,%v3"
   [(set_attr "op_type" "VRR")])
 
 ; vmalhb; vmalhh, vmalhf, vmalhg
 (define_insn "vec_vmalh<mode>"
-  [(set (match_operand:VI_HW 0 "register_operand" "=v")
-       (unspec:VI_HW [(match_operand:VI_HW 1 "register_operand" "v")
-                      (match_operand:VI_HW 2 "register_operand" "v")
-                      (match_operand:VI_HW 3 "register_operand" "v")]
-                     UNSPEC_VEC_VMALH))]
+  [(set (match_operand:VI_HW_QHS 0 "register_operand" "=v")
+       (unspec:VI_HW_QHS [(match_operand:VI_HW_QHS 1 "register_operand" "v")
+                          (match_operand:VI_HW_QHS 2 "register_operand" "v")
+                          (match_operand:VI_HW_QHS 3 "register_operand" "v")]
+                         UNSPEC_VEC_VMALH))]
   "TARGET_VX"
   "vmalh<bhfgq>\t%v0,%v1,%v2,%v3"
   [(set_attr "op_type" "VRR")])