Displaying 20 results from an estimated 2000 matches similar to: "[LLVMdev] Invalid comparison instruction generation"
2008 Nov 11
0
[LLVMdev] Invalid comparison instruction generation
On Mon, Nov 10, 2008 at 3:06 PM, Villmow, Micah <Micah.Villmow at amd.com> wrote:
> With the above kernel run through llc with -march=x86
> -view-dag-combine1-dags I still see the ogt as the comparison operation, but
> when I run it with llc -march=x86 -view-legalize-dags the ogt node has been
> transformed into a ule.
Okay... I can see that in the attached graph.
> So, my
2008 Nov 11
4
[LLVMdev] Invalid comparison instruction generation
Eli,
Using the variables from the original IR,
assuming tmp == tmp1 and assume the value is not nan
ogt(tmp, tmp1) is !isnan(tmp) && !isnan(tmp1) && tmp > tmp1, or false
ule(tmp, tmp1) is isnan(tmp) || isnan(tmp1) || tmp <= tmp1, or true
So, this is invalid, or am I misunderstanding what ogt and ule stand
for?
Assuming this is valid, why convert comparison instructions
2008 Nov 11
0
[LLVMdev] Invalid comparison instruction generation
On Mon, Nov 10, 2008 at 5:00 PM, Villmow, Micah <Micah.Villmow at amd.com> wrote:
> Eli,
> Using the variables from the original IR,
> assuming tmp == tmp1 and assume the value is not nan
> ogt(tmp, tmp1) is !isnan(tmp) && !isnan(tmp1) && tmp > tmp1, or false
> ule(tmp, tmp1) is isnan(tmp) || isnan(tmp1) || tmp <= tmp1, or true
Correct; in fact, ogt and
2008 Sep 10
2
[LLVMdev] Custom Lowering and fneg
So, I have this small test program that I figured would cause no
problems but want to test all the various data types and operations with
my modified sparc backend. I've been working on LLVM for about 3 days
now, so this might be a problem with not knowing enough yet, so thanks
for bearing with me.
The code that I based my example off of is compiled to LLVM-IR from:
void
2008 Sep 10
0
[LLVMdev] Custom Lowering and fneg
On Wed, Sep 10, 2008 at 2:35 PM, Villmow, Micah <Micah.Villmow at amd.com> wrote:
> Generating the following LLVM IR:
>
> define void @test_unary_op_anegate(float %x, float addrspace(11)* %result)
> nounwind {
> entry:
> %neg = sub float -0.000000e+000, %x ; <float> [#uses=1]
> store float %neg, float addrspace(11)* %result
>
2008 Sep 10
3
[LLVMdev] Custom Lowering and fneg
-----Original Message-----
From: llvmdev-bounces at cs.uiuc.edu [mailto:llvmdev-bounces at cs.uiuc.edu]
On Behalf Of Eli Friedman
Sent: Wednesday, September 10, 2008 3:30 PM
To: LLVM Developers Mailing List
Subject: Re: [LLVMdev] Custom Lowering and fneg
On Wed, Sep 10, 2008 at 2:35 PM, Villmow, Micah <Micah.Villmow at amd.com>
wrote:
> Generating the following LLVM IR:
>
> define
2015 Nov 02
2
[StructurizeCFG] Trouble with branches out of a loop
Hi,
I've been investigating the StructurizeCFG pass, and it looks like it has
trouble handling CFG edges that break out of a loop and go directly to the
function exit. Am I running up against a bug in the structurizer, or a
general limitation of the algorithm used? As an aside, is there any
documentation for the algorithm used? Is it based on a published paper?
The input IR I have is the
2008 Jul 24
3
[LLVMdev] Irreducible CFG from tail duplication
It seems that tail duplication can make a reducible CFG irreducible
(example below). Is that intentional? Are there other optimizations
that have that property?
Is irreducibility a problem for existing LLVM passes? It looks like
there was once an open project for a pass to make irreducible graphs
reducible. Was that ever implemented?
- Mark
; "opt -inline -tailduplicate" makes an
2012 Apr 17
1
[LLVMdev] some thoughts on the semantics of !fpmath
On Apr 16, 2012, at 11:50 PM, Duncan Sands <baldrick at free.fr> wrote:
> Hi Dan,
>
>> I realize that some of these thoughts apply equally to the
>> prior !fpaccuracy metadata that's been around a while, but I
>> hadn't looked at it closely until now.
>>
>> The !fpmath metadata violates the original spirit of
>> metadata, which is that
2008 Feb 07
1
rsync error: protocol incompatibility (code 2) at rsync.c, using --iconv=. and (code 2) and rsync-3.0.0pre8
Dear List,
Running rsync on our intradisk Xscale Arm BigEndian MiniServer (NAS)
System is causing some problems running
on special character files and crashing.
Rsync is syncing running on a mounted samba share, syncing to the local
disk. It is started with the parameters
--iconv=. what I suggest is the solution for syncing the attached file.
log output in /var/log/messages
received request to
2011 Oct 19
2
[LLVMdev] Error when cond of select instruction is a vector
Hi LLVMdev,
In the specification of llvm ir, the select operation can takes a condition
of vector type,
'select' Instruction Syntax:
<result> = select *selty* <cond>, <ty> <val1>, <ty> <val2>
*; yields ty*
*selty* is either i1 or {<N x i1>}
Overview:
The 'select' instruction is used to choose one value based on a condition,
2012 Sep 02
2
[LLVMdev] branch on vector compare?
Hi all, llvm newbie here.
I'm trying to branch based on a vector compare. I've found a slow way (below)
which goes through memory. Is there some idiom I'm missing so that it would use
for instance movmsk for SSE or vcmpgt & cr6 for altivec?
Or do I need to resort to calling the intrinsic directly?
Thanks,
Stephen.
%16 = fcmp ogt <4 x float> %15, %cr
%17 =
2008 Sep 27
2
[LLVMdev] SwitchInstr::removeCase() doesn't remove PHINodes' predecessors
Hi,
I've been writing an optimization pass (described on the ML previously).
Sometimes this pass removes some case entries from switch instructions,
which cause an abort because removeCase() doesn't fix the PHINodes
predecessors when needed.
e.g.:
define i32 @foo() nounwind {
ifthen:
%call = call i32 @bar()
switch i32 %call, label %myphi [
i32 0, label %ifelse
i32 1, label
2008 Oct 06
3
[LLVMdev] Address calculation
I am attempting to get indexing code generation working with my backend.
However, it seems that the addresses being calculated is being
multiplied by the width of the data type.
define void @ test_input_index_constant_int(i32 addrspace(11)* %input,
i32 addrspace(11)* %result) {
entry:
%input.addr = alloca i32 addrspace(11)* ; <i32
addrspace(11)**> [#uses=2]
2012 Sep 04
0
[LLVMdev] branch on vector compare?
Am 04.09.2012 00:08, schrieb Stephen:
>>> which goes through memory. Is there some idiom I'm missing so that it would
> use
>>> for instance movmsk for SSE or vcmpgt & cr6 for altivec?
>>
>> I don't think you are missing anything: LLVM IR has no support for horizontal
>> operations like or'ing the elements of a vector of boolean together.
2016 Sep 23
2
Runtime error
Hi Developer,
I have wrote simple program called test.c as follows.
*int a, b;int main() {a=10;b=10;return a+b;}*
Compiled with clang command to produce test.ll file which is attached below,
*$clang -cc1 test.c -emit-llvm*
Now If I want to run with my own target for selection with *llc* with
command as follow getting error,
*COMMAND:$ ./llc -view-dag-combine1-dags -march=toy
2012 Sep 04
2
[LLVMdev] branch on vector compare?
Roland Scheidegger <sroland <at> vmware.com> writes:
> This looks quite similar to something I filed a bug on (12312). Michael
> Liao submitted fixes for this, so I think
> if you change it to
> %16 = fcmp ogt <4 x float> %15, %cr
> %17 = sext <4 x i1> %16 to <4 x i32>
> %18 = bitcast <4 x i32> %17 to i128
> %19 = icmp ne i128 %18, 0
2010 Jan 05
5
[LLVMdev] [Help] How can we call an object's virtual function inside IR?
Dear experts,
I am learning llvm by reading documents and have a question to ask.
The following is the example of code generation that I created.
[[a [10.00]] > [3.00]]
; ModuleID = 'ExprF'
define i1 @expr(double* %record) {
entry:
%0 = getelementptr double* %record, i32 0 ;
<double*> [#uses=1]
%1 = load double* %0 ; <double>
2012 May 24
3
[LLVMdev] make check-lit + grep escape characters
I just want to update test/Transforms/LowerSwitch/feature.ll that
already uses grep.
It uses grep + count, probably due to shorter construction.
-Stepan.
Eric Christopher wrote:
>
> On May 24, 2012, at 12:12 AM, Stepan Dyatkovskiy wrote:
>
>> Hi all. I found that if you want to use grep with escape characters in
>> lit, you should pass it within the double slash (\\). Since
2007 Oct 17
4
RELENG_7 jerky mouse and skipping sound
I just updated to RELENG_7 from 6.2 and I'm running into some really
annoying issues with jerky mouse movement and skipping sound. This
seems to be similar to:
Re: SCHED_4BSD in RELENG_7 disturbs workflow
This happens both with 4BSD and ULE.
I seems to happen when I'm compiling ports and a new cc/bzip2/sh
process fires off (I'm just watching top), I'll get the
skip/freezeup.