On Thu, Jan 22, 2015 at 3:41 PM, Uros Bizjak <[email protected]> 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.
--cut here--
Index: config/i386/sse.md
===================================================================
--- config/i386/sse.md (revision 220004)
+++ config/i386/sse.md (working copy)
@@ -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"
--cut here--
Sorry for the breakage, will be fixed ASAP.
Uros.