[llvm-commits] [llvm] r60915 - in /llvm/trunk/lib: CodeGen/SelectionDAG/DAGCombiner.cpp Target/X86/X86ISelLowering.cpp Target/X86/X86ISelLowering.h Target/X86/X86Instr64bit.td Target/X86/X86InstrInfo.td

Evan Cheng echeng at apple.com
Fri Dec 12 08:41:44 PST 2008


That's not what I asked. If you look at X86GenInstrInfo.inc, you will  
see:

   { 41, 3,      1,      0,      "ADD32rr", 0| 
(1<<TID::ConvertibleTo3Addr)|(1<<TID::Commutable), 0|3|(1<<24), NULL,  
ImplicitList1, Barriers1, OperandInfo9 },  // Inst #41 = ADD32rr
   { 67, 3,      1,      0,      "ADDOvf32rr", 0| 
(1<<TID::ConvertibleTo3Addr)|(1<<TID::Commutable), 0|3|(1<<24), NULL,  
ImplicitList1, Barriers1, OperandInfo9 },  // Inst #67 = ADDOvf32rr

Apart from opcode number, these two instructions are identical. There  
is no reason to have a separate ADDOvf32rr instruction. You can have  
multiple patterns matching the same instruction.

Evan

On Dec 12, 2008, at 12:18 AM, Bill Wendling wrote:

> On Dec 11, 2008, at 11:05 PM, Evan Cheng wrote:
>
>> Do we really need different instructions? How us ADD32rr different
>> from ADDvfo32er? Both implicitly define EFLAGS.
>>
> ADDOvf32rr matches on X86ISD::ADD.
>
> -bw
>
> _______________________________________________
> llvm-commits mailing list
> llvm-commits at cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits




More information about the llvm-commits mailing list