On Sat, Apr 14, 2007 at 11:28:59AM -0700, H. J. Lu wrote: > __builtin_ia32_vec_set_v2di will be expanded to > > [(set (match_operand:V2DI 0 "register_operand" "=x") > (vec_merge:V2DI > (vec_duplicate:V2DI > (match_operand:DI 2 "nonimmediate_operand" "rm")) > (match_operand:V2DI 1 "register_operand" "0") > (match_operand:SI 3 "const_pow2_1_to_2_operand" "n")))]
That's irrelevant. You have a function, __builtin_ia32_vec_set_v2di, which you didn't show the type of - but there's probably nothing in the C builtin decl that says it modifies its arguments. If the RTL says that it clobbers its first input, then the RTL register allocator is responsible for handling that. -- Daniel Jacobowitz CodeSourcery