On Thu, Mar 3, 2011 at 3:29 PM, Uros Bizjak <ubiz...@gmail.com> wrote:

>> When I read sse.md, I find there is a type error in vpmaddubsw
>> define_insn pattern.
>> Attached is the patch that fix the type error.
>> Is it OK to commit to 4.6 trunk?
>
> The same problem is with ssse3_pmadddubsw128 pattern.  Can you also
> provide the ChangeLog for the patch and how you test the change?

Attached patch fixes all problems found with the mode of VEC_SELECT
RTXes in pmaddubsw patterns.

2011-03-03  Uros Bizjak  <ubiz...@gmail.com>

        * config/i386/sse.md (*avx_pmaddubsw128): Fix mode of VEC_SELECT RTX.
        (ssse3_pmaddubsw128): Ditto.
        (ssse3_pmaddubsw): Ditto.

Patch was bootstrapped and regression tested on x86_64-pc-linux-gnu
{,-m32} and will be committed to 4.6, 4.5 and 4.4 branches.

Thanks,
Uros.
Index: sse.md
===================================================================
--- sse.md      (revision 170658)
+++ sse.md      (working copy)
@@ -8885,7 +8885,7 @@
        (ss_plus:V8HI
          (mult:V8HI
            (zero_extend:V8HI
-             (vec_select:V4QI
+             (vec_select:V8QI
                (match_operand:V16QI 1 "register_operand" "x")
                (parallel [(const_int 0)
                           (const_int 2)
@@ -8908,7 +8908,7 @@
                           (const_int 14)]))))
          (mult:V8HI
            (zero_extend:V8HI
-             (vec_select:V16QI (match_dup 1)
+             (vec_select:V8QI (match_dup 1)
                (parallel [(const_int 1)
                           (const_int 3)
                           (const_int 5)
@@ -8918,7 +8918,7 @@
                           (const_int 13)
                           (const_int 15)])))
            (sign_extend:V8HI
-             (vec_select:V16QI (match_dup 2)
+             (vec_select:V8QI (match_dup 2)
                (parallel [(const_int 1)
                           (const_int 3)
                           (const_int 5)
@@ -8939,7 +8939,7 @@
        (ss_plus:V8HI
          (mult:V8HI
            (zero_extend:V8HI
-             (vec_select:V4QI
+             (vec_select:V8QI
                (match_operand:V16QI 1 "register_operand" "0")
                (parallel [(const_int 0)
                           (const_int 2)
@@ -8962,7 +8962,7 @@
                           (const_int 14)]))))
          (mult:V8HI
            (zero_extend:V8HI
-             (vec_select:V16QI (match_dup 1)
+             (vec_select:V8QI (match_dup 1)
                (parallel [(const_int 1)
                           (const_int 3)
                           (const_int 5)
@@ -8972,7 +8972,7 @@
                           (const_int 13)
                           (const_int 15)])))
            (sign_extend:V8HI
-             (vec_select:V16QI (match_dup 2)
+             (vec_select:V8QI (match_dup 2)
                (parallel [(const_int 1)
                           (const_int 3)
                           (const_int 5)
@@ -9009,13 +9009,13 @@
                           (const_int 6)]))))
          (mult:V4HI
            (zero_extend:V4HI
-             (vec_select:V8QI (match_dup 1)
+             (vec_select:V4QI (match_dup 1)
                (parallel [(const_int 1)
                           (const_int 3)
                           (const_int 5)
                           (const_int 7)])))
            (sign_extend:V4HI
-             (vec_select:V8QI (match_dup 2)
+             (vec_select:V4QI (match_dup 2)
                (parallel [(const_int 1)
                           (const_int 3)
                           (const_int 5)

Reply via email to