[llvm-commits] [llvm] r74293 - in /llvm/trunk: lib/Target/ARM/ARMInstrThumb2.td test/CodeGen/Thumb2/carry.ll test/CodeGen/Thumb2/thumb2-adc.ll test/CodeGen/Thumb2/thumb2-adc2.ll

Evan Cheng evan.cheng at apple.com
Fri Jun 26 11:49:14 PDT 2009


On Jun 26, 2009, at 11:34 AM, David Goodwin wrote:

> I see, I will fix that. Seems like we need to remove the "s" from the
> shifted-register version.

Yes, please remove that 's'. Thanks.

Evan

>
>
> Index: lib/Target/ARM/ARMInstrThumb2.td
> ===================================================================
> --- lib/Target/ARM/ARMInstrThumb2.td	(revision 74293)
> +++ lib/Target/ARM/ARMInstrThumb2.td	(working copy)
> @@ -236,19 +236,19 @@
>  multiclass T2I_adde_sube_irs<string opc, PatFrag opnode, bit
> Commutable = 0> {
>     // shifted imm
>     def ri : T2sI<(outs GPR:$dst), (ins GPR:$lhs, t2_so_imm:$rhs),
> -                 opc, "s $dst, $lhs, $rhs",
> +                 opc, " $dst, $lhs, $rhs",
>                   [(set GPR:$dst, (opnode GPR:$lhs, t2_so_imm: 
> $rhs))]>,
>                   Requires<[IsThumb, HasThumb2, CarryDefIsUnused]>;
>     // register
>     def rr : T2sI<(outs GPR:$dst), (ins GPR:$lhs, GPR:$rhs),
> -                 opc, "s $dst, $lhs, $rhs",
> +                 opc, " $dst, $lhs, $rhs",
>                   [(set GPR:$dst, (opnode GPR:$lhs, GPR:$rhs))]>,
>                   Requires<[IsThumb, HasThumb2, CarryDefIsUnused]> {
>       let isCommutable = Commutable;
>     }
>     // shifted register
>     def rs : T2sI<(outs GPR:$dst), (ins GPR:$lhs, t2_so_reg:$rhs),
> -                 opc, "s $dst, $lhs, $rhs",
> +                 opc, " $dst, $lhs, $rhs",
>                   [(set GPR:$dst, (opnode GPR:$lhs, t2_so_reg: 
> $rhs))]>,
>                   Requires<[IsThumb, HasThumb2, CarryDefIsUnused]>;
>     // Carry setting variants
>
> David
>
> On Jun 26, 2009, at 11:25 AM, Evan Cheng wrote:
>
>> Hi David,
>>
>> I intentionally split these to two sets. If the carry bit def of adde
>> is not used, it's isel'ed to the non 's' variant.
>>
>> Evan
>>
>> On Jun 26, 2009, at 11:07 AM, David Goodwin <david_goodwin at apple.com>
>> wrote:
>>
>>> Author: david_goodwin
>>> Date: Fri Jun 26 13:07:25 2009
>>> New Revision: 74293
>>>
>>> URL: http://llvm.org/viewvc/llvm-project?rev=74293&view=rev
>>> Log:
>>> ADC used to implement adde should use "adcs" opcode instead of  
>>> "adc".
>>>
>>> Added:
>>>  llvm/trunk/test/CodeGen/Thumb2/thumb2-adc.ll
>>>  llvm/trunk/test/CodeGen/Thumb2/thumb2-adc2.ll
>>> Modified:
>>>  llvm/trunk/lib/Target/ARM/ARMInstrThumb2.td
>>>  llvm/trunk/test/CodeGen/Thumb2/carry.ll
>>>
>>> Modified: llvm/trunk/lib/Target/ARM/ARMInstrThumb2.td
>>> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/ARM/ARMInstrThumb2.td?rev=74293&r1=74292&r2=74293&view=diff
>>>
>>> ===
>>> ===
>>> ===
>>> = 
>>> ====================================================================
>>> --- llvm/trunk/lib/Target/ARM/ARMInstrThumb2.td (original)
>>> +++ llvm/trunk/lib/Target/ARM/ARMInstrThumb2.td Fri Jun 26 13:07:25
>>> 2009
>>> @@ -236,12 +236,12 @@
>>> multiclass T2I_adde_sube_irs<string opc, PatFrag opnode, bit
>>> Commutable = 0> {
>>>  // shifted imm
>>>  def ri : T2sI<(outs GPR:$dst), (ins GPR:$lhs, t2_so_imm:$rhs),
>>> -                 opc, " $dst, $lhs, $rhs",
>>> +                 opc, "s $dst, $lhs, $rhs",
>>>                [(set GPR:$dst, (opnode GPR:$lhs, t2_so_imm:$rhs))]>,
>>>                Requires<[IsThumb, HasThumb2, CarryDefIsUnused]>;
>>>  // register
>>>  def rr : T2sI<(outs GPR:$dst), (ins GPR:$lhs, GPR:$rhs),
>>> -                 opc, " $dst, $lhs, $rhs",
>>> +                 opc, "s $dst, $lhs, $rhs",
>>>                [(set GPR:$dst, (opnode GPR:$lhs, GPR:$rhs))]>,
>>>                Requires<[IsThumb, HasThumb2, CarryDefIsUnused]> {
>>>    let isCommutable = Commutable;
>>>
>>> Modified: llvm/trunk/test/CodeGen/Thumb2/carry.ll
>>> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/Thumb2/carry.ll?rev=74293&r1=74292&r2=74293&view=diff
>>>
>>> ===
>>> ===
>>> ===
>>> = 
>>> ====================================================================
>>> --- llvm/trunk/test/CodeGen/Thumb2/carry.ll (original)
>>> +++ llvm/trunk/test/CodeGen/Thumb2/carry.ll Fri Jun 26 13:07:25 2009
>>> @@ -1,6 +1,6 @@
>>> ; RUN: llvm-as < %s | llc -march=thumb -mattr=+thumb2 | grep "subs
>>> r" | count 2
>>> -; RUN: llvm-as < %s | llc -march=thumb -mattr=+thumb2 | grep "adc  
>>> r"
>>> -; RUN: llvm-as < %s | llc -march=thumb -mattr=+thumb2 | grep "sbc
>>> r"  | count 2
>>> +; RUN: llvm-as < %s | llc -march=thumb -mattr=+thumb2 | grep "adcs
>>> r"
>>> +; RUN: llvm-as < %s | llc -march=thumb -mattr=+thumb2 | grep "sbcs
>>> r"  | count 2
>>>
>>> define i64 @f1(i64 %a, i64 %b) {
>>> entry:
>>>
>>> Added: llvm/trunk/test/CodeGen/Thumb2/thumb2-adc.ll
>>> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/Thumb2/thumb2-adc.ll?rev=74293&view=auto
>>>
>>> ===
>>> ===
>>> ===
>>> = 
>>> ====================================================================
>>> --- llvm/trunk/test/CodeGen/Thumb2/thumb2-adc.ll (added)
>>> +++ llvm/trunk/test/CodeGen/Thumb2/thumb2-adc.ll Fri Jun 26 13:07:25
>>> 2009
>>> @@ -0,0 +1,32 @@
>>> +; RUN: llvm-as < %s | llc -march=thumb -mattr=+thumb2 | grep {adcs\
>>> \W*r\[0-9\],\\W*r\[0-9\],\\W*#\[0-9\]*} | grep {#171\\|#1179666\\|
>>> #872428544\\|#1448498774\\|#66846720} | Count 5
>>> +
>>> +; 734439407617 = 0x000000ab00000001
>>> +define i64 @f1(i64 %a) {
>>> +    %tmp = add i64 %a, 734439407617
>>> +    ret i64 %tmp
>>> +}
>>> +
>>> +; 5066626890203137 = 0x0012001200000001
>>> +define i64 @f2(i64 %a) {
>>> +    %tmp = add i64 %a, 5066626890203137
>>> +    ret i64 %tmp
>>> +}
>>> +
>>> +; 3747052064576897025 = 0x3400340000000001
>>> +define i64 @f3(i64 %a) {
>>> +    %tmp = add i64 %a, 3747052064576897025
>>> +    ret i64 %tmp
>>> +}
>>> +
>>> +; 6221254862626095105 = 0x5656565600000001
>>> +define i64 @f4(i64 %a) {
>>> +    %tmp = add i64 %a, 6221254862626095105
>>> +    ret i64 %tmp
>>> +}
>>> +
>>> +; 287104476244869121 = 0x03fc000000000001
>>> +define i64 @f5(i64 %a) {
>>> +    %tmp = add i64 %a, 287104476244869121
>>> +    ret i64 %tmp
>>> +}
>>> +
>>>
>>> Added: llvm/trunk/test/CodeGen/Thumb2/thumb2-adc2.ll
>>> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/Thumb2/thumb2-adc2.ll?rev=74293&view=auto
>>>
>>> ===
>>> ===
>>> ===
>>> = 
>>> ====================================================================
>>> --- llvm/trunk/test/CodeGen/Thumb2/thumb2-adc2.ll (added)
>>> +++ llvm/trunk/test/CodeGen/Thumb2/thumb2-adc2.ll Fri Jun 26
>>> 13:07:25 2009
>>> @@ -0,0 +1,6 @@
>>> +; RUN: llvm-as < %s | llc -march=thumb -mattr=+thumb2 | grep {adcs\
>>> \W*r\[0-9\],\\W*r\[0-9\],\\W*r\[0-9\]*} | Count 1
>>> +
>>> +define i64 @f1(i64 %a, i64 %b) {
>>> +    %tmp = add i64 %a, %b
>>> +    ret i64 %tmp
>>> +}
>>>
>>>
>>> _______________________________________________
>>> llvm-commits mailing list
>>> llvm-commits at cs.uiuc.edu
>>> http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
>> _______________________________________________
>> llvm-commits mailing list
>> llvm-commits at cs.uiuc.edu
>> http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
>
> _______________________________________________
> 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