On Thu, Jan 22, 2015 at 7:37 PM, Uros Bizjak <ubiz...@gmail.com> wrote:

>> Attached patch fixes PR 64688. Operand constraints were wrong for
>> reg-to-vec targets.
>>
>> The patch also fixes PR 64477.
>
> Whoops, I have regtested wrong compiler. The patch introduced some
> AVX2 regressions. Following patch is also needed, otherwise vec_dup
> post-reload splitter creates invalid pattern that involves general reg
> for reg-to-vec targets.

Now fixed, attached is the complete patch.

2015-22-01  Uros Bizjak  <ubiz...@gmail.com>

    PR target/64688
    PR target/64477
    * config/i386/sse.md (vec_set<mode>_0): Use (Yi/r/C) constraints
    for alternative 3.
    (*vec_dup<mode>): Use (Yi/$r) constraints for alternative 1.

Bootstrapped and regression tested on x86_64-linux-gnu {,-m32}.

Committed to mainline SVN.

Uros.
Index: config/i386/sse.md
===================================================================
--- config/i386/sse.md  (revision 219987)
+++ config/i386/sse.md  (working copy)
@@ -6391,11 +6391,11 @@
 ;; see comment above inline_secondary_memory_needed function in i386.c
 (define_insn "vec_set<mode>_0"
   [(set (match_operand:VI4F_128 0 "nonimmediate_operand"
-         "=Yr,*v,v,v ,x,x,v,Yr ,*x ,x  ,m ,m   ,m")
+         "=Yr,*v,v,Yi,x,x,v,Yr ,*x ,x  ,m ,m   ,m")
        (vec_merge:VI4F_128
          (vec_duplicate:VI4F_128
            (match_operand:<ssescalarmode> 2 "general_operand"
-         " Yr,*v,m,*r,m,x,v,*rm,*rm,*rm,!x,!*re,!*fF"))
+         " Yr,*v,m,r ,m,x,v,*rm,*rm,*rm,!x,!*re,!*fF"))
          (match_operand:VI4F_128 1 "vector_move_operand"
          " C , C,C,C ,C,0,v,0  ,0  ,x  ,0 ,0   ,0")
          (const_int 1)))]
@@ -16711,7 +16711,7 @@
   [V32QI V16QI V16HI V8HI V8SI V4SI])
 
 (define_insn "*vec_dup<mode>"
-  [(set (match_operand:AVX2_VEC_DUP_MODE 0 "register_operand" "=x,x,x")
+  [(set (match_operand:AVX2_VEC_DUP_MODE 0 "register_operand" "=x,x,Yi")
        (vec_duplicate:AVX2_VEC_DUP_MODE
          (match_operand:<ssescalarmode> 1 "nonimmediate_operand" "m,x,$r")))]
   "TARGET_AVX2"

Reply via email to