Displaying 3 results from an estimated 3 matches for "selectthumb2shifteroperandreg".
2009 Jun 26
0
[LLVMdev] bitwise AND selector node not commutative?
...:i32 t2_so_reg:i32:$rhs, (imm:i32)
<<P:Predicate_immAllOnes>>), GPR:i32:$lhs)
// Emits: (t2BICrs:i32 GPR:i32:$lhs, t2_so_reg:i32:$rhs)
// Pattern complexity = 19 cost = 1 size = 0
{
...
}
The second one is the commuted version. Looks like the issue is in
SelectThumb2ShifterOperandReg.
Evan
>
> David
>
> <RM_20_BIC.ll>
> <RM_112_ORN.ll>
>
> _______________________________________________
> LLVM Developers mailing list
> LLVMdev at cs.uiuc.edu http://llvm.cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev
--------...
2009 Jun 26
1
[LLVMdev] bitwise AND selector node not commutative?
...; <<P:Predicate_immAllOnes>>), GPR:i32:$lhs)
> // Emits: (t2BICrs:i32 GPR:i32:$lhs, t2_so_reg:i32:$rhs)
> // Pattern complexity = 19 cost = 1 size = 0
> {
> ...
> }
>
> The second one is the commuted version. Looks like the issue is in
> SelectThumb2ShifterOperandReg.
Ugh. It should try to match t2BICrr. But someone tblgen is not
generating the commuted version. Very strange. I'm take a look.
Evan
>
> Evan
>
>
>>
>> David
>>
>> <RM_20_BIC.ll>
>> <RM_112_ORN.ll>
>>
>> ____________________...
2009 Jun 25
2
[LLVMdev] bitwise AND selector node not commutative?
Using the Thumb-2 target we see that ORN ( a | ^b) and BIC (a & ^b)
have similar patterns, as we would expect:
defm t2BIC : T2I_bin_irs<"bic", BinOpFrag<(and node:$LHS, (not node:
$RHS))>>;
defm t2ORN : T2I_bin_irs<"orn", BinOpFrag<(or node:$LHS, (not node:
$RHS))>>;
Compiling the following three works as expected:
%tmp1 = xor i32