Displaying 8 results from an estimated 8 matches for "getshiftamountty".
2015 Aug 19
3
[RFC] Improving integer divide optimization (related to D12082)
Hello LLVM, A recent commit creates the isIntDivCheap() target query.
http://reviews.llvm.org/D12082
The current approach has a couple shortcomings.
First, when targets decide divide is cheap, the DAGCombiner ignores
obvious power-of-2 optimizations. In the targets I know, shifts are
cheaper than divides in both speed and size. The target cannot see
the value in the isIntDivCheap() call, so
2009 Dec 22
2
[LLVMdev] LegalizeDAG Error?
...:
case ISD::BSWAP: {
unsigned DiffBits = NVT.getSizeInBits() - OVT.getSizeInBits();
Tmp1 = DAG.getNode(ISD::ZERO_EXTEND, dl, NVT, Tmp1);
Tmp1 = DAG.getNode(ISD::BSWAP, dl, NVT, Tmp1);
Tmp1 = DAG.getNode(ISD::SRL, dl, NVT, Tmp1,
DAG.getConstant(DiffBits, TLI.getShiftAmountTy()));
Results.push_back(Tmp1);
break;
}
Notice the first DAG.getNode() call. It's using "Tmp1", which at this point isn't initialized. What should it be instead?
-bw
2015 Aug 20
2
[RFC] Improving integer divide optimization (related to D12082)
...than one instruction. The generic implementation is this:
>
> // Splat the sign bit into the register
> SDValue SGN =
> DAG.getNode(ISD::SRA, DL, VT, N0,
> DAG.getConstant(VT.getScalarSizeInBits() - 1, DL,
> getShiftAmountTy(N0.getValueType())));
> AddToWorklist(SGN.getNode());
>
> // Add (N0 < 0) ? abs2 - 1 : 0;
> SDValue SRL =
> DAG.getNode(ISD::SRL, DL, VT, SGN,
> DAG.getConstant(VT.getScalarSizeInBits() - lg2, DL,
>...
2009 Dec 22
0
[LLVMdev] LegalizeDAG Error?
...; unsigned DiffBits = NVT.getSizeInBits() - OVT.getSizeInBits();
> Tmp1 = DAG.getNode(ISD::ZERO_EXTEND, dl, NVT, Tmp1);
> Tmp1 = DAG.getNode(ISD::BSWAP, dl, NVT, Tmp1);
> Tmp1 = DAG.getNode(ISD::SRL, dl, NVT, Tmp1,
> DAG.getConstant(DiffBits,
> TLI.getShiftAmountTy()));
> Results.push_back(Tmp1);
> break;
> }
>
> Notice the first DAG.getNode() call. It's using "Tmp1", which at
> this point isn't initialized. What should it be instead?
Node->getOperand(0) , probably, try it. Nice catch.
2010 Aug 25
1
[LLVMdev] [Patch] Fix for ExpandShiftWithUnknownAmountBit when shift amount is zero
Hello,
A while back I submitted a patch for this function. The patch, added in revision 90482, left the case of a shift by zero undefined. Attached is another patch to deal with that condition.
Thanks,
Javier
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20100824/a66bd3d8/attachment.html>
--------------
2009 May 21
0
[LLVMdev] [PATCH] Add new phase to legalization to handle vector operations
On Wed, May 20, 2009 at 4:55 PM, Dan Gohman <gohman at apple.com> wrote:
> Can you explain why you chose the approach of using a new pass?
> I pictured removing LegalizeDAG's type legalization code would
> mostly consist of finding all the places that use TLI.getTypeAction
> and just deleting code for handling its Expand and Promote. Are you
> anticipating something more
2009 May 20
2
[LLVMdev] [PATCH] Add new phase to legalization to handle vector operations
On May 20, 2009, at 1:34 PM, Eli Friedman wrote:
> On Wed, May 20, 2009 at 1:19 PM, Eli Friedman
> <eli.friedman at gmail.com> wrote:
>
>> Per subject, this patch adding an additional pass to handle vector
>>
>> operations; the idea is that this allows removing the code from
>>
>> LegalizeDAG that handles illegal types, which should be a significant
2009 May 21
2
[LLVMdev] [PATCH] Add new phase to legalization to handle vector operations
...if (cast<ConstantSDNode>(Node->getOperand(1))->getZExtValue()) {
- // 1 -> Hi
- Result = DAG.getNode(ISD::SRL, dl, OpTy, Node->getOperand(0),
- DAG.getConstant(OpTy.getSizeInBits()/2,
- TLI.getShiftAmountTy()));
- Result = DAG.getNode(ISD::TRUNCATE, dl, Node->getValueType(0), Result);
- } else {
- // 0 -> Lo
- Result = DAG.getNode(ISD::TRUNCATE, dl, Node->getValueType(0),
- Node->getOperand(0));
- }
- break;
- case Expand:...