This is the mail archive of the mailing list for the GCC project.

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: combination of read/write and earlyclobber constraint modifier

On 02-07-14 08:23, Marc Glisse wrote:
In the first example you gave, looking at the pattern (no match_dup, setting the
full register), it seems that it may have wanted "=&" instead of "+&".

[ move discussion from gcc ml to gcc-patches ml ]


The +& constraint on operand 0 of vec_unpack_trunc_<mode> seems wrong, since the template does not use the operand as input.

This patch fixes that.

OK for trunk if aarch64 build & regtest succeeds ?

- Tom

2014-07-02  Tom de Vries  <>

	* config/aarch64/
	(define_insn "vec_unpack_trunc_<mode>"): Fix constraint.

diff --git a/gcc/config/aarch64/ b/gcc/config/aarch64/
index 1c32f0c..0377de4 100644
--- a/gcc/config/aarch64/
+++ b/gcc/config/aarch64/
@@ -1018,7 +1018,7 @@
 ;; For quads.
 (define_insn "vec_pack_trunc_<mode>"
- [(set (match_operand:<VNARROWQ2> 0 "register_operand" "+&w")
+ [(set (match_operand:<VNARROWQ2> 0 "register_operand" "=&w")
 	 (truncate:<VNARROWQ> (match_operand:VQN 1 "register_operand" "w"))
 	 (truncate:<VNARROWQ> (match_operand:VQN 2 "register_operand" "w"))))]

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]