[llvm-commits] [llvm] r59025 - in /llvm/trunk: include/llvm/CodeGen/SelectionDAGNodes.h lib/CodeGen/SelectionDAG/LegalizeIntegerTypes.cpp lib/CodeGen/SelectionDAG/LegalizeTypes.h

Mon Ping Wang wangmp at apple.com
Sun Nov 16 16:43:17 PST 2008


Hi Duncan,

Thanks for pointing this out.  I fixed the result promotion and added  
the operand promotion version.

-- Mon Ping

On Nov 12, 2008, at 12:26 AM, Duncan Sands wrote:

> Hi,
>
>> I'm probably misunderstanding the design.  PromoteIntRes will just
>> promote the result.   PromoteIntOp promotes an operand.  An operation
>> that can have an integer result will need a PromteIntRes routine and
>> any operation that can take an integer input will need a
>> PromoteIntOp.  The only cases where PromoteIntRes routine will look  
>> at
>> is operand is to know how to promote the result correctly. (e.g.,   
>> bit
>> convert  needs to know what the input operand is to know what to
>> generate).
>
> exactly.  So why does PromoteIntRes_CONVERT_RNDSAT look at the  
> operand?
> And why did you remove the operand promotion version?
>
>> I didn't do the sign extensions or zero extensions because how these
>> convert operate.  If the convert is i8 to a float, it will do the
>> operation on the lower 8 bits and ignore the rest so having junk up
>> there is fine.  The issue is that I shouldn't look at the promoted
>> value.
>
> OK.
>
> Ciao,
>
> Duncan.




More information about the llvm-commits mailing list