Displaying 13 results from an estimated 13 matches for "llvm_i1_ty".
Did you mean:
llvm_i16_ty
2016 Jun 13
2
LLVM IR intrinsics placeholder for strings [was Re: Back end with special loop instructions (using LLVM IR intrinsics)]
...icsPowerPC.td, such as:
> // Intrinsics used to generate ctr-based loops. These should only be
> // generated by the PowerPC backend!
> def int_ppc_mtctr : Intrinsic<[], [llvm_anyint_ty], []>;
> def int_ppc_is_decremented_ctr_nonzero : Intrinsic<[llvm_i1_ty], [], []>;
>
> And these intrinsics are instantiated in the LLVM program, for example with the
> following code in PPCCTRLoops.cpp:
> IRBuilder<> CountBuilder(Preheader->getTerminator());
> Module *M = Preheader->getParent()->getParent();
>...
2016 Feb 15
5
Masked intrinsics and non-default address spaces
Masked load/store are overloaded intrinsics, the only generic type is the type of the value being loaded/stored. The signature of the intrinsic is generated based on this type. The type of the pointer argument is generated as a pointer to the return type with default addrspace. E.g.:
declare <8 x i32> @llvm.masked.load.v8i32(<8 x i32>*, i32, <8 x i1>, <8 x i32>)
The
2015 Apr 28
2
[LLVMdev] Lowering intrinsic that return an int1
...all,
I'm playing with intrinsics and I was wondering how to lower an
intrinsic that should return, for example, an int1? More precisely, how
to return the value when working with MachineInst?
First, I have defined an instrinsic in "Intrinsics.td":
_def int_antivm : Intrinsic<[llvm_i1_ty], [], [], "llvm.antivm">;_
Then I want to lower it in the X86 backend, so I defined a pseudo
instruction in "X86InstrCompiler.td":
_let usesCustomInserter = 1, Defs = [EFLAGS] in {_
_def ANTIVM : PseudoI<(outs), (ins), [(int_antivm)]>;_
_}_
I wrote my custom inser...
2016 May 30
1
Back end with special loop instructions
Hi Alex,
You might find it useful to look at how lib/Target/PowerPC/PPCCTRLoops.cpp works.
-Hal
----- Original Message -----
> From: "Alex Susu via llvm-dev" <llvm-dev at lists.llvm.org>
> To: "llvm-dev" <llvm-dev at lists.llvm.org>
> Sent: Monday, May 30, 2016 5:09:37 PM
> Subject: [llvm-dev] Back end with special loop instructions
>
> Hello.
2014 Feb 26
2
[LLVMdev] How to 'define and use' a LOOP intrinsic that takes "iteration count" and the "label" to jump to ?
I have defined the intrinsic as
* def int_loop: Intrinsic<[],[llvm_i8_ty, llvm_empty_ty],[]>;*
and also got the Codegen backend support in Instructioninfo.td file.
Then created a .ll file to test it.
The .ll file is like this
*declare void @llvm.loop(i8, label)define void @fn() nounwind readnone
{entry: ..... ..... call void @llvm.loop(i8 10, label %entry) ret
void}*
But
2016 May 30
2
Back end with special loop instructions
Hello.
I'm writing a back end for my research SIMD processor that has an assembly language
that is blocked structured, with one-level loops. An example program with my assembly
language:
REPEAT_X_TIMES(Param2)
R0 = LS[offset_A];
END_REPEAT;
The LLVM code somewhat equivalent to the above ASM program is:
vector.body:
%index = phi i64 [
2008 Apr 15
0
[LLVMdev] Branch-like intrinsic
On Mon, 14 Apr 2008, Edward Lee wrote:
> On Mon, Apr 14, 2008 at 6:00 PM, Chris Lattner <sabre at nondot.org> wrote:
>> You can change the code generator or not run the block layout pass.
> Ok thanks for the help. I'll try finding where to twiddle this.
> Perhaps explicitly check if the branch's condition is the call to my
> intrinsic.
>
> Or is there another
2008 Apr 14
2
[LLVMdev] Branch-like intrinsic
On Mon, Apr 14, 2008 at 5:02 PM, Bill Wendling <isanbard at gmail.com> wrote:
> Then that flow would be explicit in the CFG, right? Then %F wouldn't
> be dead, I'm assuming.
Right. That's why I used a conditional branch after the intrinsic, but
it sounds like the CFG simplification pass after lowering will
optimize it away and no longer have the flow explicit. (To the
2012 Oct 19
3
[LLVMdev] [cfe-commits] [PATCH] [llvm+clang] memset for non-8-bit bytes
...sics.td, from llvm_i8_ty, to llvm_anyint_ty:
>
> def int_memset : Intrinsic<[],
> - [llvm_anyptr_ty, llvm_i8_ty, llvm_anyint_ty,
> + [llvm_anyptr_ty, llvm_anyint_ty, llvm_anyint_ty,
> llvm_i32_ty, llvm_i1_ty],
>
> IRBuilder.cpp and LangRef.html is updated accordingly.
>
> To use the intrinsic, the declaration,
>
> declare void @llvm.memset.p0i8.i32(i8* <dest>, i8 <val>,
> i32 <len>, i32 <align>, i1 <isvolatile>)...
2015 Aug 14
2
[LLVM RFC] Add llvm.typeid.for intrinsic
...anged, 29 insertions(+)
diff --git a/include/llvm/IR/Intrinsics.td b/include/llvm/IR/Intrinsics.td
index 83cfebe..8ebeb24 100644
--- a/include/llvm/IR/Intrinsics.td
+++ b/include/llvm/IR/Intrinsics.td
@@ -640,6 +640,7 @@ def int_masked_scatter: Intrinsic<[],
def int_bitset_test : Intrinsic<[llvm_i1_ty], [llvm_ptr_ty, llvm_metadata_ty],
[IntrNoMem]>;
+def int_typeid_for : Intrinsic<[llvm_i64_ty], [llvm_any_ty], [IntrNoMem]>;
//===----------------------------------------------------------------------===//
// Target-specific intrinsics
//===-----------...
llvm bpf debug info. Re: [RFC PATCH v4 3/3] bpf: Introduce function for outputing data to perf event
2015 Aug 12
3
llvm bpf debug info. Re: [RFC PATCH v4 3/3] bpf: Introduce function for outputing data to perf event
On 2015/8/12 12:57, Alexei Starovoitov wrote:
> On Wed, Aug 12, 2015 at 10:34:43AM +0800, Wangnan (F) via llvm-dev wrote:
>> Think about a program like this:
>>
>> struct strA { int a; }
>> struct strB { int b; }
>> int func() {
>> struct strA a;
>> struct strB b;
>>
>> a.a = 1;
>> b.b = 2;
>>
2014 Oct 26
2
[LLVMdev] Masked vector intrinsics and name mangling
> On Oct 26, 2014, at 8:22 AM, Hal Finkel <hfinkel at anl.gov> wrote:
>
> ----- Original Message -----
>> From: "Elena Demikhovsky" <elena.demikhovsky at intel.com>
>> To: "Hal Finkel" <hfinkel at anl.gov>
>> Cc: llvmdev at cs.uiuc.edu
>> Sent: Sunday, October 26, 2014 10:17:49 AM
>> Subject: RE: [LLVMdev] Masked vector
2019 May 20
3
[RFC] Intrinsics for Hardware Loops
Hi,
Arm have recently announced the v8.1-M architecture specification for
our next generation microcontrollers. The architecture includes
vector extensions (MVE) and support for low-overhead branches (LoB),
which can be thought of a style of hardware loop. Hardware loops
aren't new to LLVM, other backends (at least Hexagon and PPC that I
know of) also include support. These implementations