On Friday 11 May 2007, Dave Korn wrote: > On 11 May 2007 19:27, Paul Brook wrote: > >>> > result = __macf(operand1, operand2, operand3); > >> After the builtin i want to have the following operations also to > >> carried out operand3 = result ; > > > > Why do you want this to happen? > > I think what he means is he wants operand 3 and operand zero to be placed > in the same register, hence the "0" constraint. As to quite why it's not > working, I don't know. A very similar pattern, only with "=&" modifiers on > operand zero, works fine for me under 3.4.4.
That's an implementation detail of the RTL patterns. It should not effect the semantics of the C builtin function. For example the x86 MME/SSE instructions are two-operand instructions (ie the first instruction operand is overwritten with the result). However the builtins are still expressed as a function that reads two values and returns a third independent value. Paul