Hi! When looking for constraints that only have x's and not v's, these useless constraints caught my search too. In define_expand, constraints aren't really needed, they are needed only on define_insn* etc.
So, I'd like to kill these. Bootstrapped/regtested on x86_64-linux and i686-linux, ok for trunk? 2016-05-04 Jakub Jelinek <ja...@redhat.com> * config/i386/sse.md (vec_interleave_highv8sf, vec_interleave_lowv8sf, vec_interleave_highv4df, vec_interleave_lowv4df): Remove constraints from expanders. --- gcc/config/i386/sse.md.jj 2016-05-04 14:36:08.000000000 +0200 +++ gcc/config/i386/sse.md 2016-05-04 15:16:44.180894303 +0200 @@ -5851,8 +5851,8 @@ (define_expand "vec_interleave_highv8sf" [(set (match_dup 3) (vec_select:V8SF (vec_concat:V16SF - (match_operand:V8SF 1 "register_operand" "x") - (match_operand:V8SF 2 "nonimmediate_operand" "xm")) + (match_operand:V8SF 1 "register_operand") + (match_operand:V8SF 2 "nonimmediate_operand")) (parallel [(const_int 0) (const_int 8) (const_int 1) (const_int 9) (const_int 4) (const_int 12) @@ -5956,8 +5956,8 @@ (define_expand "vec_interleave_lowv8sf" [(set (match_dup 3) (vec_select:V8SF (vec_concat:V16SF - (match_operand:V8SF 1 "register_operand" "x") - (match_operand:V8SF 2 "nonimmediate_operand" "xm")) + (match_operand:V8SF 1 "register_operand") + (match_operand:V8SF 2 "nonimmediate_operand")) (parallel [(const_int 0) (const_int 8) (const_int 1) (const_int 9) (const_int 4) (const_int 12) @@ -7424,8 +7438,8 @@ (define_expand "vec_interleave_highv4df" [(set (match_dup 3) (vec_select:V4DF (vec_concat:V8DF - (match_operand:V4DF 1 "register_operand" "x") - (match_operand:V4DF 2 "nonimmediate_operand" "xm")) + (match_operand:V4DF 1 "register_operand") + (match_operand:V4DF 2 "nonimmediate_operand")) (parallel [(const_int 0) (const_int 4) (const_int 2) (const_int 6)]))) (set (match_dup 4) @@ -7584,8 +7598,8 @@ (define_expand "vec_interleave_lowv4df" [(set (match_dup 3) (vec_select:V4DF (vec_concat:V8DF - (match_operand:V4DF 1 "register_operand" "x") - (match_operand:V4DF 2 "nonimmediate_operand" "xm")) + (match_operand:V4DF 1 "register_operand") + (match_operand:V4DF 2 "nonimmediate_operand")) (parallel [(const_int 0) (const_int 4) (const_int 2) (const_int 6)]))) (set (match_dup 4) Jakub