Ira Rosen <ira.ro...@linaro.org> wrote: > (define_insn "neon_vzip<mode>_internal" > [(set (match_operand:VDQW 0 "s_register_operand" "=w") > (unspec:VDQW [(match_operand:VDQW 1 "s_register_operand" "0")] > UNSPEC_VZIP1)) > (set (match_operand:VDQW 2 "s_register_operand" "=w") > (unspec:VDQW [(match_operand:VDQW 3 "s_register_operand" "2")] > UNSPEC_VZIP2))] > "TARGET_NEON" > "vzip.<V_sz_elem>\t%<V_reg>0, %<V_reg>2" > [(set (attr "neon_type") > (if_then_else (ne (symbol_ref "<Is_d_reg>") (const_int 0)) > (const_string "neon_bp_simple") > (const_string "neon_bp_3cycle")))] > ) > > Is there a way to properly mark the dependence?
I guess you need to make sure the UNSPEC_VZIP forms both explicitly depend on both input operands. This can be a bit tricky due to various reload constraints on how matching constraints and/or match_dup can be used, but I think something along the following lines should work: [(set (match_operand:VDQW 0 "s_register_operand" "=w") (unspec:VDQW [(match_operand:VDQW 1 "s_register_operand" "0") (match_operand:VDQW 2 "s_register_operand" "w")] UNSPEC_VZIP1)) (set (match_operand:VDQW 3 "s_register_operand" "=2") (unspec:VDQW [(match_dup 1) (match_dup 2)] UNSPEC_VZIP2))] Mit freundlichen Gruessen / Best Regards Ulrich Weigand -- Dr. Ulrich Weigand | Phone: +49-7031/16-3727 STSM, GNU compiler and toolchain for Linux on System z and Cell/B.E. IBM Deutschland Research & Development GmbH Vorsitzender des Aufsichtsrats: Martin Jetter | Geschäftsführung: Dirk Wittkopp Sitz der Gesellschaft: Böblingen | Registergericht: Amtsgericht Stuttgart, HRB 243294 _______________________________________________ linaro-toolchain mailing list linaro-toolchain@lists.linaro.org http://lists.linaro.org/mailman/listinfo/linaro-toolchain