This is the mail archive of the gcc@gcc.gnu.org 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: store double-cvtd-to-int to memory



On Thursday, March 13, 2003, at 02:32 PM, Richard Henderson wrote:


On Wed, Mar 12, 2003 at 05:45:36PM -0800, Dale Johannesen wrote:
  [(set (match_operand:SI 0 "memory_operand" "=m")
        (fix:SI (match_operand:DF 1 "gpc_reg_operand" "f")))
   (clobber (match_operand:DI 2 "gpc_reg_operand" "=f"))
   (clobber (match_operand:DI 3 "memory_operand" "=o"))]

where op3 is a stack temp.

Do you actually need the stack temp? I understood you that you didn't need it, because you had an instruction for this directly. If not, just leave it out.

Thanks.
For this case, where the result goes in memory, you don't need a stack temp.
For the case where it goes in a register, however, you do. (It looks like
this is not so on Alpha?) So removing op3 from the above pattern results
in another pattern that combine won't generate, because the original
fix_truncdfsi2 pattern does have the temp, and needs it.



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