search for: isdopcodes

Displaying 20 results from an estimated 41 matches for "isdopcodes".

2020 Jul 07
3
BUILD_VECTOR disambiguation
Hey devs, >From ISDOpcodes.h... /// BUILD_VECTOR(ELT0, ELT1, ELT2, ELT3,...) - Return a fixed-width vector /// with the specified, possibly variable, elements. The number of elements /// is required to be a power of two. The types of the operands must all be /// the same and must match the vector element type, except that i...
2016 Jun 03
2
Custom assembler subset
...way to look at an associative mapping of LLVM IR > to > > opcode, and/or vice versa? > > There is a mapping of sorts, but, as you saw, it's convoluted: > > - SelectionDAG (optimized instruction selection) has its own set of > opcodes. Some are generic and inspired by IR (ISDOpcodes.h), but some > are target-specific lower level constructs (<target>ISelLowering.h). > Instructions are sometimes associated with these opcodes > (ISDOpcodes.h; look for '[(' in the various <target>Instr*.td files) > > - alternatively, FastISel (fast instruction se...
2012 Jun 20
1
[LLVMdev] Back-end: how to test all lowering condition
...structions generate a Selection DAG for which I am not implementing a proper lowering, thus resulting in the well-known "cannot select" error. > I guess this is because I have not implemented all possible instructions defined in the Selection DAG, those declared in include/llvm/CodeGen/ISDOpcodes.h, which apparently are different from those declared in the IR. > > Problem1: how can I know the complete list of ISD:: instruction (SelectionDAG) I have to implement (either by promoting, customizing and expanding)? > A possible solution is to implement all of them, taking the list defin...
2016 Jun 01
2
Custom assembler subset
Hello all, I would like to restrain the compiler that I build on my local box from picking all but a particular set of opcodes. Is there a way to accomplish this in a straightforward way? I'm pretty sure that there is a list of opcodes to semantics mappings. In addition, is there a way to look at an associative mapping of LLVM IR to opcode, and/or vice versa? -------------- next part
2012 Jun 20
2
[LLVMdev] Back-end: how to test all lowering condition
...IR instructions generate a Selection DAG for which I am not implementing a proper lowering, thus resulting in the well-known "cannot select" error. I guess this is because I have not implemented all possible instructions defined in the Selection DAG, those declared in include/llvm/CodeGen/ISDOpcodes.h, which apparently are different from those declared in the IR. Problem1: how can I know the complete list of ISD:: instruction (SelectionDAG) I have to implement (either by promoting, customizing and expanding)? A possible solution is to implement all of them, taking the list defined in the file...
2012 Jun 20
0
[LLVMdev] Back-end: how to test all lowering condition
...structions generate a Selection DAG for which I am not implementing a proper lowering, thus resulting in the well-known "cannot select" error. > I guess this is because I have not implemented all possible instructions defined in the Selection DAG, those declared in include/llvm/CodeGen/ISDOpcodes.h, which apparently are different from those declared in the IR. > > Problem1: how can I know the complete list of ISD:: instruction (SelectionDAG) I have to implement (either by promoting, customizing and expanding)? > A possible solution is to implement all of them, taking the list defi...
2011 Jan 24
1
[LLVMdev] Question about porting LLVM - code selection without assembler feature
Hello David, Thanks for your example. Is that means that DAG pattern is consist of LLVM IR instruction?? I met an example [(set CPURegs:$dst, (OpNode CPURegs:$b, CPURegs:$c))] of MipsInstrInfo.td, but I can't find correspond LLVM IR instruction of "set" in "LLVM Language Reference Manual". Is that correspond to $dst = op $b, $c?? Would you mind to tell me whether there is
2020 Jul 07
3
BUILD_VECTOR disambiguation
...gt; On Behalf Of Cameron > > McInally via llvm-dev > > Sent: Tuesday, July 7, 2020 9:53 AM > > To: LLVM Developers Mailing List <llvm-dev at lists.llvm.org> > > Subject: [EXT] [llvm-dev] BUILD_VECTOR disambiguation > > > > Hey devs, > > > > From ISDOpcodes.h... > > > > /// BUILD_VECTOR(ELT0, ELT1, ELT2, ELT3,...) - Return a fixed-width vector > > /// with the specified, possibly variable, elements. The number of elements > > /// is required to be a power of two. The types of the operands must all be > > /// the same and...
2019 Nov 28
2
Question on pattern matching extractelt
...def : Pat<(extractelt (v4i16 SingleReg:$v), 1), (SRADd1 SingleReg :$v, (i64 16))>; But for some reason the pattern does not match. It seems to be due to the fact extract_vector_elt's result type is i32 (because i16 is not a legal type on our processor), but according to the comment in ISDOpcodes.h, it is allowed for EXTRACT_VECTOR_ELT to have a result type larger than the element type of the vector, so I would expect to be able to match such pattern. I tried specifying the result type in the pattern: def : Pat<(i32 (extractelt (v4i16 SingleReg:$v), 1)), (SRADd1 SingleReg :$v, (i64 16...
2012 Jul 10
1
[LLVMdev] floating point: seto opcode
Hi, Given the following in ISDOpcodes.h SETO, // 0 1 1 1 True if ordered (no nans) SETUO, // 1 0 0 0 True if unordered: isnan(X) | isnan(Y) Is it safe to assume that SETO is not of SETUO? We have support for setuo in the architecture but not seto. Sirish -------------- nex...
2015 May 12
2
[LLVMdev] how to do make a FP_ROUND need/operattion
Hi Guys, I and trying to covert a float to a f16. calling DAG.getNode(ISD::FP_ROUND, DL, Op->getValueType(0), FloatNode); will get the error message:"Invalid method to make FP_ROUND node" what is the "right" way to make this work? best Kevin -------------- next part -------------- An HTML attachment was scrubbed... URL:
2013 May 06
1
[LLVMdev] Floating-point FABS - supporting
...er way then having a subroutine call go to ISD:FABS, only to come back to a subroutine call? 2- FABS is not in the list of LLVM RTLIB calls, and my hope was to handle everything in the Target generation, rather than change another directory in the: /lib/CodeGen/SelectionDAG or include/llvm/CodeGen/ISDOpcodes.h Is there a good practice I can follow to deal with supporting floating-point with software-only libraries and suggestions? -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20130506/92d4612a/attachment.html&gt...
2016 Nov 07
2
About trigonometric Instructions
HI developers, I want to add trigonometric instructions in my instrinfo.td files how can i directly map these instructions in .td files. Please help me Guys.For Sin, Cos, Tan and Cot Instructions. If I used llvm.sin.* as SDNode Then it is error as llvm variable is not defined SO please Help me. Thanks and Regards Varun -------------- next part -------------- An HTML attachment was scrubbed...
2013 Jun 24
1
[LLVMdev] Matching patterns
I'm trying to create a TableGen pattern to match extract_vector_elt. My pattern looks like this: (set i32:$dest, (extract_vector_elt v16i32:$src, i32:$index)) However, when I compile, I get an error: error: Variable not defined: 'extract_vector_elt' However, if I omit the rule and attempt to compile something that uses this functionality with clang, I get this error, which
2012 Jul 10
2
[LLVMdev] question about Type::canLoslesslyBitCastTo
Hi Akira, > This is the definition of BITCAST in include/llvm/CodeGen/ISDOpcodes.h: > > // BITCAST - This operator converts between integer, vector and FP > // values, as if the value was stored to memory with one type and loaded > // from the same address with the other type (or equivalently for vector > // format conversions, etc). The source and result are re...
2020 Jul 07
2
BUILD_VECTOR disambiguation
...; > Sent: Tuesday, July 7, 2020 9:53 AM > > > > To: LLVM Developers Mailing List <llvm-dev at lists.llvm.org> > > > > Subject: [EXT] [llvm-dev] BUILD_VECTOR disambiguation > > > > > > > > Hey devs, > > > > > > > > From ISDOpcodes.h... > > > > > > > > /// BUILD_VECTOR(ELT0, ELT1, ELT2, ELT3,...) - Return a fixed-width > > > > vector /// with the specified, possibly variable, elements. The > > > > number of elements /// is required to be a power of two. The types > > >...
2014 Mar 08
3
[LLVMdev] Isel DAG documentation?
I'm having a great deal of trouble figuring out how to write instruction patterns which actually match the DAG produced by the compiler. I can't seem to find any documentation on both what the various nodes represent or on what the syntax accepted by TableGen is. The backends I have access to all seem to do this in different (and obscure) ways. And when things go wrong the compiler seems
2016 Feb 18
2
How to interpret Selection DAG error output
On Thu, Feb 18, 2016 at 11:34 AM, Krzysztof Parzyszek < kparzysz at codeaurora.org> wrote: > On 2/18/2016 1:32 PM, Rail Shafigulin wrote: > >> I think this is where I'm loosing the "thread". Based on what I'm seeing >> SET_FLAG has three operands, the first of which is a CopyFromReg. So how >> come the pattern is SET_FLAG %vreg5, 3, 20 and not
2012 Jul 10
0
[LLVMdev] question about Type::canLoslesslyBitCastTo
This is the definition of BITCAST in include/llvm/CodeGen/ISDOpcodes.h: // BITCAST - This operator converts between integer, vector and FP // values, as if the value was stored to memory with one type and loaded // from the same address with the other type (or equivalently for vector // format conversions, etc). The source and result are required to have // the sa...
2016 May 30
0
sum elements in the vector
Suyog, Thanks for the reply. Do you know if it is possible to add a new intrinsic without actually modifying core code (ISDOpcodes.h is an example of core code)? I'd like to add this intrinsic with as little code change as possible. On Fri, May 27, 2016 at 8:59 PM, suyog sarda <sardask01 at gmail.com> wrote: > Hi Rail, > > Below 2 revisions might be of your interest which Detect SAD patterns and > emit...