search for: sra_i64

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::...