search for: lnot

Displaying 19 results from an estimated 19 matches for "lnot".

Did you mean: lno
2015 Jul 16
2
[LLVMdev] Improving loop vectorizer support for loops with a volatile iteration variable
...= y[j] + z[j]; } } } And the underlying reason is the same. The IR at the point in time when the loop vectorizer runs looks like this: define void @foo3(float* noalias %x, float* noalias %y, float* noalias %z) #0 { entry: %call.14 = tail call i32 @done(float* %x, float* %y, float* %z) #1 %lnot.15 = icmp eq i32 %call.14, 0 br i1 %lnot.15, label %for.body.preheader, label %while.end for.body.preheader: ; preds = %entry br label %for.body while.cond.loopexit: ; preds = %for.body %call = tail call i32 @done(float* %x, float* %y, float* %z) #1 %lnot = icmp eq i32 %call, 0 br i1 %lnot...
2015 Jul 16
2
[LLVMdev] Improving loop vectorizer support for loops with a volatile iteration variable
...oint in time > > when the loop vectorizer runs looks like this: > > > define void @foo3(float* noalias %x, float* noalias %y, float* > > noalias %z) #0 { > > > entry: > > > %call.14 = tail call i32 @done(float* %x, float* %y, float* %z) #1 > > > %lnot.15 = icmp eq i32 %call.14, 0 > > > br i1 %lnot.15, label %for.body.preheader, label %while.end > > > for.body.preheader: ; preds = %entry > > > br label %for.body > > > while.cond.loopexit: ; preds = %for.body > > > %call = tail call i32 @done(flo...
2016 Jul 27
2
Remove zext-unfolding from InstCombine
...nnamed_addr #0 { entry: %conv = sext i8 %a to i32 %and = and i32 %conv, 1 %cmp = icmp ne i32 %and, 0 %conv1 = zext i1 %cmp to i32 %conv2 = sext i8 %b to i32 %cmp3 = icmp ne i32 %conv2, 0 %conv4 = zext i1 %cmp3 to i32 %and5 = and i32 %conv1, %conv4 %tobool = icmp ne i32 %and5, 0 %lnot = xor i1 %tobool, true %lnot.ext = zext i1 %lnot to i32 %conv6 = trunc i32 %lnot.ext to i8 ret i8 %conv6 } ``` For both functions, the `icmp` operations will be immediately followed by `zext` instructions, which will directly be optimized away by `transformZExtICmp()`, which is the reason wh...
2012 May 16
2
[LLVMdev] NVPTX: __iAtomicCAS support ?
...try %2 = load i32** %callback.addr, align 8 %3 = bitcast i32* %2 to %struct.kernelgen_callback_t* %lock1 = getelementptr inbounds %struct.kernelgen_callback_t* %3, i32 0, i32 0 %call2 = call ptx_device i32 @_Z12__iAtomicCASPiii(i32* %lock1, i32 1, i32 1) %tobool = icmp ne i32 %call2, 0 %lnot = xor i1 %tobool, true br i1 %lnot, label %while.body, label %while.end while.body: ; preds = %while.cond br label %while.cond while.end: ; preds = %while.cond ret void } declare ptx_device i32 @_Z12__iAtomicCASPi...
2012 May 16
0
[LLVMdev] NVPTX: __iAtomicCAS support ?
...k.addr, align 8 > %3 = bitcast i32* %2 to %struct.kernelgen_callback_t* > %lock1 = getelementptr inbounds %struct.kernelgen_callback_t* %3, i32 0, > i32 0 > %call2 = call ptx_device i32 @_Z12__iAtomicCASPiii(i32* %lock1, i32 1, i32 1) > %tobool = icmp ne i32 %call2, 0 > %lnot = xor i1 %tobool, true > br i1 %lnot, label %while.body, label %while.end > > while.body: ; preds = %while.cond > br label %while.cond > > while.end: ; preds = %while.cond > ret void > } &gt...
2016 Aug 04
2
Remove zext-unfolding from InstCombine
...to i32 > %and = and i32 %conv, 1 > %cmp = icmp ne i32 %and, 0 > %conv1 = zext i1 %cmp to i32 > %conv2 = sext i8 %b to i32 > %cmp3 = icmp ne i32 %conv2, 0 > %conv4 = zext i1 %cmp3 to i32 > %and5 = and i32 %conv1, %conv4 > %tobool = icmp ne i32 %and5, 0 > %lnot = xor i1 %tobool, true > %lnot.ext = zext i1 %lnot to i32 > %conv6 = trunc i32 %lnot.ext to i8 > ret i8 %conv6 > } > ``` > > For both functions, the `icmp` operations will be immediately followed by `zext` instructions, which will directly be optimized away by `transform...
2016 Jul 21
2
Remove zext-unfolding from InstCombine
Hi all, I have a question regarding a transformation that is carried out in InstCombine, which has been introduced by r48715. It unfolds expressions of the form `zext(or(icmp, (icmp)))` to `or(zext(icmp), zext(icmp)))` to expose pairs of `zext(icmp)`. In a subsequent iteration these `zext(icmp)` pairs could then (possibly) be optimized by another optimization (which has already been there before
2015 Jul 15
5
[LLVMdev] Improving loop vectorizer support for loops with a volatile iteration variable
Hi all, I would like to propose an improvement of the “almost dead” block elimination in Transforms/Local.cpp so that it will preserve the canonical loop form for loops with a volatile iteration variable. *** Problem statement Nested loops in LCALS Subset B (https://codesign.llnl.gov/LCALS.php) are not vectorized with LLVM -O3 because the LLVM loop vectorizer fails the test whether the loop
2015 Jul 16
4
[LLVMdev] Improving loop vectorizer support for loops with a volatile iteration variable
..., float* > > > > noalias %z) #0 { > > > > > > > > > > entry: > > > > > > > > > > %call.14 = tail call i32 @done(float* %x, float* %y, float* %z) > > > > #1 > > > > > > > > > > %lnot.15 = icmp eq i32 %call.14, 0 > > > > > > > > > > br i1 %lnot.15, label %for.body.preheader, label %while.end > > > > > > > > > > for.body.preheader: ; preds = %entry > > > > > > > > > > br label %for...
2015 Aug 13
2
[LLVMdev] Improving loop vectorizer support for loops with a volatile iteration variable
...} } } And the > underlying reason is the same. The IR at the point in time when the > loop vectorizer runs looks like this: define void @foo3(float* > noalias %x, float* noalias %y, float* noalias %z) #0 { entry: > %call.14 = tail call i32 @done(float* %x, float* %y, float* %z) #1 > %lnot.15 = icmp eq i32 %call.14, 0 br i1 %lnot.15, label > %for.body.preheader, label %while.end for.body.preheader: ; preds = > %entry br label %for.body while.cond.loopexit: ; preds = %for.body > %call = tail call i32 @done(float* %x, float* %y, float* %z) #1 > %lnot = icmp eq i32 %call, 0...
2015 Oct 26
9
[PATCH 0/7] Hyper-V Synthetic interrupt controller
Hyper-V SynIC (synthetic interrupt controller) device implementation. The implementation contains: * msr's support * irq routing setup * irq injection * irq ack callback registration * event/message pages changes tracking at Hyper-V exit * Hyper-V test device to test SynIC by kvm-unit-tests Andrey Smetanin (7): standard-headers/x86: add Hyper-V SynIC constants target-i386/kvm: Hyper-V
2015 Oct 26
9
[PATCH 0/7] Hyper-V Synthetic interrupt controller
Hyper-V SynIC (synthetic interrupt controller) device implementation. The implementation contains: * msr's support * irq routing setup * irq injection * irq ack callback registration * event/message pages changes tracking at Hyper-V exit * Hyper-V test device to test SynIC by kvm-unit-tests Andrey Smetanin (7): standard-headers/x86: add Hyper-V SynIC constants target-i386/kvm: Hyper-V
2019 Apr 08
0
[PATCH v4 2/7] common: Bundle the libvirt-ocaml library for use by virt-v2v
...macros defined in <libvirt.h>. *) + let use_cpu cpumap cpu = + Bytes.set cpumap (cpu/8) + (Char.chr (Char.code (Bytes.get cpumap (cpu/8)) lor (1 lsl (cpu mod 8)))) + let unuse_cpu cpumap cpu = + Bytes.set cpumap (cpu/8) + (Char.chr (Char.code (Bytes.get cpumap (cpu/8)) land (lnot (1 lsl (cpu mod 8))))) + let cpu_usable cpumaps maplen vcpu cpu = + Char.code (Bytes.get cpumaps (vcpu*maplen + cpu/8)) land (1 lsl (cpu mod 8)) <> 0 + + external set_keep_alive : [>`R] t -> int -> int -> unit = "ocaml_libvirt_connect_set_keep_alive" + + (* Interna...
2019 Dec 16
3
[v2v PATCH 0/2] Move libvirt-ocaml copy to v2v repo
libvirt-ocaml is used only by virt-v2v, so move it to this repository, instead of having it around in the common submodule. The removal from common will happen later. Pino Toscano (2): common: Bundle the libvirt-ocaml library for use by virt-v2v build: switch embedded copy of libvirt-ocaml .gitignore | 2 + 3rdparty/libvirt-ocaml/Makefile.am |
2018 Aug 30
8
[PATCH 0/7] RFC: switch v2v to ocaml-libvirt
Hi, this is a mostly done attempt to switch to ocaml-libvirt, embedding the latest version of it from git. This way, it is possible to improve the way v2v connects to libvirt for both input, and output modules, and interacts with libvirt (e.g. no more virsh calls needed in virt-v2v). As side effect, virt-v2v now requires libvirt, as keeping it optional would create too much burden. I could not
2018 Nov 27
8
[PATCH v2 0/7] RFC: switch v2v to ocaml-libvirt
Hi, this is a mostly done attempt to switch to ocaml-libvirt, embedding the latest version of it from git. This way, it is possible to improve the way v2v connects to libvirt for both input, and output modules, and interacts with libvirt (e.g. no more virsh calls needed in virt-v2v). As side effect, virt-v2v now requires libvirt, as keeping it optional would create too much burden. I could not
2019 Jan 30
8
[PATCH v3 0/7] RFC: switch v2v to ocaml-libvirt
Hi, this is a mostly done attempt to switch to ocaml-libvirt, embedding the latest version of it from git. This way, it is possible to improve the way v2v connects to libvirt for both input, and output modules, and interacts with libvirt (e.g. no more virsh calls needed in virt-v2v). As side effect, virt-v2v now requires libvirt, as keeping it optional would create too much burden. I could not
2019 May 20
8
[PATCH v5 0/7] v2v: switch to ocaml-libvirt
Hi, this series switches virt-2v to ocaml-libvirt, embedding the latest version of it from git. This way, it is possible to improve the way v2v connects to libvirt for both input, and output modules, and interacts with libvirt (e.g. no more virsh calls needed in virt-v2v). As side effect, virt-v2v now requires libvirt, as keeping it optional would create too much burden. I could not test all
2019 Apr 08
12
[PATCH 43 0/7] v2v: switch to ocaml-libvirt
Hi, this series switches virt-2v to ocaml-libvirt, embedding the latest version of it from git. This way, it is possible to improve the way v2v connects to libvirt for both input, and output modules, and interacts with libvirt (e.g. no more virsh calls needed in virt-v2v). As side effect, virt-v2v now requires libvirt, as keeping it optional would create too much burden. I could not test all