Displaying 8 results from an estimated 8 matches for "sra_i64".
Did you mean:
s_i64
2019 Jun 10
2
Bug: Library functions for ISD::SRA, ISD::SHL, and ISD::SRL
...Library functions for ISD::SRA ,ISD::SHL, and ISD::SRL, as they are properly defined in RuntimeLibCalls.def.
The library functions defined in RuntimeLibCalls.def (among others) are these:
HANDLE_LIBCALL(SRA_I16, "__ashrhi3")
HANDLE_LIBCALL(SRA_I32, "__ashrsi3")
HANDLE_LIBCALL(SRA_I64, "__ashrdi3")
However, setting
setOperationAction(ISD::SRA, MVT::i16, LibCall);
in the TargetLowering constructor causes LLVM to stop with an assert as the shift instruction can’t be selected.
The problem is in SelectionDAGLegalize::ConvertNodeToLibcall because there’s no switch case...
2019 Jun 10
2
Bug: Library functions for ISD::SRA, ISD::SHL, and ISD::SRL
...,ISD::SHL, and ISD::SRL, as they are properly defined in RuntimeLibCalls.def.
>
> The library functions defined in RuntimeLibCalls.def (among others) are these:
>
> HANDLE_LIBCALL(SRA_I16, "__ashrhi3")
> HANDLE_LIBCALL(SRA_I32, "__ashrsi3")
> HANDLE_LIBCALL(SRA_I64, "__ashrdi3")
>
> However, setting
>
> setOperationAction(ISD::SRA, MVT::i16, LibCall);
>
> in the TargetLowering constructor causes LLVM to stop with an assert as the shift instruction can’t be selected.
>
> The problem is in SelectionDAGLegalize::Convert...
2012 Jan 07
2
[LLVMdev] libcalls for shifts
Hello,
my target has libcall support for long long shifts. I already have the
following lines in my Lowering constructor:
setLibcallName(RTLIB::SHL_I64, "__llshl");
setLibcallName(RTLIB::SRL_I64, "__llshru");
setLibcallName(RTLIB::SRA_I64, "__llshr");
and
setOperationAction(ISD::SHL, MVT::i64, Expand);
setOperationAction(ISD::SRA, MVT::i64, Expand);
setOperationAction(ISD::SRL, MVT::i64, Expand);
But when I try to compile a sample program, I get the error:
NODE: 0x273c850: i64 = shl 0x273b800, 0x273be00
llc: L...
2019 Jun 11
2
Bug: Library functions for ISD::SRA, ISD::SHL, and ISD::SRL
...,ISD::SHL, and ISD::SRL, as they are properly defined in RuntimeLibCalls.def.
>
> The library functions defined in RuntimeLibCalls.def (among others) are these:
>
> HANDLE_LIBCALL(SRA_I16, "__ashrhi3")
> HANDLE_LIBCALL(SRA_I32, "__ashrsi3")
> HANDLE_LIBCALL(SRA_I64, "__ashrdi3")
>
> However, setting
>
> setOperationAction(ISD::SRA, MVT::i16, LibCall);
>
> in the TargetLowering constructor causes LLVM to stop with an assert as the shift instruction can’t be selected.
>
> The problem is in SelectionDAGLegalize::Convert...
2012 Jan 08
0
[LLVMdev] libcalls for shifts
...e:
> Hello,
>
> my target has libcall support for long long shifts. I already have the
> following lines in my Lowering constructor:
>
> setLibcallName(RTLIB::SHL_I64, "__llshl");
> setLibcallName(RTLIB::SRL_I64, "__llshru");
> setLibcallName(RTLIB::SRA_I64, "__llshr");
>
> and
>
> setOperationAction(ISD::SHL, MVT::i64, Expand);
> setOperationAction(ISD::SRA, MVT::i64, Expand);
> setOperationAction(ISD::SRL, MVT::i64, Expand);
>
> But when I try to compile a sample program, I get the error:
> NODE: 0x273c850:...
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
...getLowering::Legal && TLI.isTypeLegal(NVT)) ||
- Action == TargetLowering::Custom) {
- ExpandShiftParts(ISD::SRA_PARTS, Node->getOperand(0),
- ShiftAmt, Lo, Hi, dl);
- break;
- }
-
- // Otherwise, emit a libcall.
- Lo = ExpandLibCall(RTLIB::SRA_I64, Node, true/*ashr is signed*/, Hi);
- break;
- }
-
- case ISD::SRL: {
- // If the target wants custom lowering, do so.
- SDValue ShiftAmt = LegalizeOp(Node->getOperand(1));
- if (TLI.getOperationAction(ISD::SRL, VT) == TargetLowering::Custom) {
- SDValue Op = DAG.getNode(ISD::...