Displaying 20 results from an estimated 76 matches for "lwz".
Did you mean:
lwn
2016 Jan 26
2
[v3,11/41] mips: reuse asm-generic/barrier.h
...,
> but your litmus test:
>
> > PPC WRCnf+addrs
> > ""
> > {
> > 0:r2=x; 0:r3=y;
> > 1:r2=x; 1:r3=y;
> > 2:r2=x; 2:r3=y;
> > c=a; d=b; x=c; y=d;
> > }
> > P0 | P1 | P2 ;
> > stw r3,0(r2) | lwz r8,0(r2) | lwz r8,0(r3) ;
> > | stw r2,0(r3) | lwz r9,0(r8) ;
> > exists
> > (1:r8=y /\ 2:r8=x /\ 2:r9=c)
>
> Seems to be missing the address dependency on P1.
You are quite correct! How about the following?
As before, both herd and ppcmem say that the...
2016 Jan 26
2
[v3,11/41] mips: reuse asm-generic/barrier.h
...,
> but your litmus test:
>
> > PPC WRCnf+addrs
> > ""
> > {
> > 0:r2=x; 0:r3=y;
> > 1:r2=x; 1:r3=y;
> > 2:r2=x; 2:r3=y;
> > c=a; d=b; x=c; y=d;
> > }
> > P0 | P1 | P2 ;
> > stw r3,0(r2) | lwz r8,0(r2) | lwz r8,0(r3) ;
> > | stw r2,0(r3) | lwz r9,0(r8) ;
> > exists
> > (1:r8=y /\ 2:r8=x /\ 2:r9=c)
>
> Seems to be missing the address dependency on P1.
You are quite correct! How about the following?
As before, both herd and ppcmem say that the...
2013 Nov 19
2
[LLVMdev] [3.4 branch] PPC64 regressions
...on openSUSE 13.1
PPC64.
Total of 3 failures which seems to be due the same problem (the value in
brackets is the time counter from the build system):
[ 3468s]
/home/abuild/rpmbuild/BUILD/llvm/test/CodeGen/PowerPC/ppc32-vacopy.ll:21:10:
error: expected string not found in input
[ 3468s] ; CHECK: lwz [[REG3:[0-9]+]], {{.*}}
[ 3468s] ^
[ 3468s] <stdin>:15:2: note: scanning from here
[ 3468s] stw 5, 16(1)
[ 3468s] ^
[ 3468s] <stdin>:17:3: note: possible intended match here
[ 3468s] stw 4, 4(7)
[ 3468s] ^
[ 3467s]
/home/abuild/rpmbuild/BUILD/llvm/test/CodeGen/PowerPC/ano...
2016 Jan 26
1
[v3,11/41] mips: reuse asm-generic/barrier.h
...ot;
> > > > {
> > > > 0:r2=x; 0:r3=y;
> > > > 1:r2=x; 1:r3=y;
> > > > 2:r2=x; 2:r3=y;
> > > > c=a; d=b; x=c; y=d;
> > > > }
> > > > P0 | P1 | P2 ;
> > > > stw r3,0(r2) | lwz r8,0(r2) | lwz r8,0(r3) ;
> > > > | stw r2,0(r3) | lwz r9,0(r8) ;
> > > > exists
> > > > (1:r8=y /\ 2:r8=x /\ 2:r9=c)
> > >
> > > Seems to be missing the address dependency on P1.
> >
> > You are quite correct! H...
2016 Jan 26
1
[v3,11/41] mips: reuse asm-generic/barrier.h
...ot;
> > > > {
> > > > 0:r2=x; 0:r3=y;
> > > > 1:r2=x; 1:r3=y;
> > > > 2:r2=x; 2:r3=y;
> > > > c=a; d=b; x=c; y=d;
> > > > }
> > > > P0 | P1 | P2 ;
> > > > stw r3,0(r2) | lwz r8,0(r2) | lwz r8,0(r3) ;
> > > > | stw r2,0(r3) | lwz r9,0(r8) ;
> > > > exists
> > > > (1:r8=y /\ 2:r8=x /\ 2:r9=c)
> > >
> > > Seems to be missing the address dependency on P1.
> >
> > You are quite correct! H...
2016 Jan 15
2
[v3,11/41] mips: reuse asm-generic/barrier.h
...e
benefits of fake dependencies. Why do you ask? ;-)
------------------------------------------------------------------------
PPC WRCnf+addrs
""
{
0:r2=x; 0:r3=y;
1:r2=x; 1:r3=y;
2:r2=x; 2:r3=y;
c=a; d=b; x=c; y=d;
}
P0 | P1 | P2 ;
stw r3,0(r2) | lwz r8,0(r2) | lwz r8,0(r3) ;
| stw r2,0(r3) | lwz r9,0(r8) ;
exists
(1:r8=y /\ 2:r8=x /\ 2:r9=c)
2016 Jan 15
2
[v3,11/41] mips: reuse asm-generic/barrier.h
...e
benefits of fake dependencies. Why do you ask? ;-)
------------------------------------------------------------------------
PPC WRCnf+addrs
""
{
0:r2=x; 0:r3=y;
1:r2=x; 1:r3=y;
2:r2=x; 2:r3=y;
c=a; d=b; x=c; y=d;
}
P0 | P1 | P2 ;
stw r3,0(r2) | lwz r8,0(r2) | lwz r8,0(r3) ;
| stw r2,0(r3) | lwz r9,0(r8) ;
exists
(1:r8=y /\ 2:r8=x /\ 2:r9=c)
2013 Nov 19
0
[LLVMdev] [3.4 branch] PPC64 regressions
...hich seems to be due the same problem (the value
> in brackets is the time counter from the build system):
>
>
>
>
> [ 3468s]
> /home/abuild/rpmbuild/BUILD/llvm/test/CodeGen/PowerPC/ppc32-vacopy.ll:21:10:
> error: expected string not found in input
> [ 3468s] ; CHECK: lwz [[REG3:[0-9]+]], {{.*}}
> [ 3468s] ^
> [ 3468s] <stdin>:15:2: note: scanning from here
> [ 3468s] stw 5, 16(1)
> [ 3468s] ^
> [ 3468s] <stdin>:17:3: note: possible intended match here
> [ 3468s] stw 4, 4(7)
> [ 3468s] ^
>
>
>
> [ 3467s]
> /home/abu...
2008 Jul 29
1
[LLVMdev] Vector types as function arguments and interfacing with C
...e__ ((__vector_size__(16)));
interval_t add(interval_t a, interval_t b) {
return a + b;
}
to the following (under gcc version 4.0.1 (Apple Inc. build 5484))
_add:
lfd f0,80(r1)
lfd f12,64(r1)
lfd f13,72(r1)
fadd f12,f12,f0
lfd f0,88(r1)
fadd f13,f13,f0
stfd f12,-32(r1)
stfd f13,-24(r1)
lwz r3,-32(r1)
lwz r4,-28(r1)
lwz r5,-24(r1)
lwz r6,-20(r1)
blr
which means that GCC is choosing to pass the doubles on the stack
instead of in registers and so I cannot mix the LLVM code with the GCC
code.
Now, I realize that __vector_size__ is a GCC extension and so they're
allowed to...
2009 Jun 30
2
[LLVMdev] modifying llc asm output
...stw 3, 44(1) stw 3, 44(1)
# InlineAsm
Start
--> isync
# InlineAsm
End
lwz 3, 44(1) lwz 3, 44(1)
cmpwi 0, 3, -1 cmpwi 0, 3, -1
I would like to insert Code (like the isync) in the asm output of the llc.
What is the best way, or easiest to do this.
llc -filetype=asm -march=ppc32 -o=test.s test.bc...
2016 Jan 26
0
[v3,11/41] mips: reuse asm-generic/barrier.h
...PPC WRCnf+addrs
> > > ""
> > > {
> > > 0:r2=x; 0:r3=y;
> > > 1:r2=x; 1:r3=y;
> > > 2:r2=x; 2:r3=y;
> > > c=a; d=b; x=c; y=d;
> > > }
> > > P0 | P1 | P2 ;
> > > stw r3,0(r2) | lwz r8,0(r2) | lwz r8,0(r3) ;
> > > | stw r2,0(r3) | lwz r9,0(r8) ;
> > > exists
> > > (1:r8=y /\ 2:r8=x /\ 2:r9=c)
> >
> > Seems to be missing the address dependency on P1.
>
> You are quite correct! How about the following?
I think th...
2016 Mar 15
3
how to type-legalize a dag
...g at 1122
Morphed node: 0x3eaaa58: i32 = ADD 0x3ea7648, 0x3eaa950 [ORD=7]
ISEL: Match complete!
ISEL: Starting pattern match on root node: 0x3ea9288: i32,ch = load
0x3e7e2f0, 0x3eac3b0, 0x3ea45e0<LD4[%b+12]> [ORD=6] [ID=27]
Initial Opcode index to 122
Morphed node: 0x3ea9288: i32,ch = LWZ 0x3ea4b08, 0x3ea8d60,
0x3e7e2f0<Mem:LD4[%b+12]> [ORD=6]
ISEL: Match complete!
ISEL: Starting pattern match on root node: 0x3ea7540: i32,ch = load
0x3e7e2f0, 0x3eaae78, 0x3ea45e0<LD4[%a+12]> [ORD=5] [ID=26]
Initial Opcode index to 122
Morphed node: 0x3ea7540: i32,ch = LWZ 0x3eac3b0...
2007 Nov 21
3
[LLVMdev] Add/sub with carry; widening multiply
I've been playing around with llvm lately and I was wondering something about the bitcode instructions for basic arithmetic. Is there any plan to provide instructions that perform widening multiply, or add with carry? It might be written as:
mulw i32 %lhs %rhs -> i64 ; widening multiply
addw i32 %lhs %rhs -> i33 ; widening add
addc i32 %lhs, i32 %rhs, i1 %c -> i33 ; add with carry
2016 Jan 25
2
[v3,11/41] mips: reuse asm-generic/barrier.h
...;
> {
> 0:r1=1; 0:r2=u; 0:r3=v; 0:r4=x; 0:r5=y; 0:r6=z;
> 1:r1=1; 1:r2=u; 1:r3=v; 1:r4=x; 1:r5=y; 1:r6=z;
> 2:r1=1; 2:r2=u; 2:r3=v; 2:r4=x; 2:r5=y; 2:r6=z;
> 3:r1=1; 3:r2=u; 3:r3=v; 3:r4=x; 3:r5=y; 3:r6=z;
> }
> P0 | P1 | P2 | P3 ;
> lwz r9,0(r4) | lwz r9,0(r5) | lwz r9,0(r6) | stw r1,0(r3) ;
> lwsync | lwsync | lwsync | sync ;
> stw r1,0(r2) | lwz r8,0(r3) | stw r1,0(r7) | lwz r9,0(r2) ;
> lwsync | lwz r7,0(r2) | | ;
> stw r1,0(r5) | lwsync |...
2016 Jan 25
2
[v3,11/41] mips: reuse asm-generic/barrier.h
...;
> {
> 0:r1=1; 0:r2=u; 0:r3=v; 0:r4=x; 0:r5=y; 0:r6=z;
> 1:r1=1; 1:r2=u; 1:r3=v; 1:r4=x; 1:r5=y; 1:r6=z;
> 2:r1=1; 2:r2=u; 2:r3=v; 2:r4=x; 2:r5=y; 2:r6=z;
> 3:r1=1; 3:r2=u; 3:r3=v; 3:r4=x; 3:r5=y; 3:r6=z;
> }
> P0 | P1 | P2 | P3 ;
> lwz r9,0(r4) | lwz r9,0(r5) | lwz r9,0(r6) | stw r1,0(r3) ;
> lwsync | lwsync | lwsync | sync ;
> stw r1,0(r2) | lwz r8,0(r3) | stw r1,0(r7) | lwz r9,0(r2) ;
> lwsync | lwz r7,0(r2) | | ;
> stw r1,0(r5) | lwsync |...
2016 Jan 15
5
[v3,11/41] mips: reuse asm-generic/barrier.h
On Thu, Jan 14, 2016 at 01:29:13PM -0800, Paul E. McKenney wrote:
> So smp_mb() provides transitivity, as do pairs of smp_store_release()
> and smp_read_acquire(),
But they provide different grades of transitivity, which is where all
the confusion lays.
smp_mb() is strongly/globally transitive, all CPUs will agree on the order.
Whereas the RCpc release+acquire is weakly so, only the two
2016 Jan 15
5
[v3,11/41] mips: reuse asm-generic/barrier.h
On Thu, Jan 14, 2016 at 01:29:13PM -0800, Paul E. McKenney wrote:
> So smp_mb() provides transitivity, as do pairs of smp_store_release()
> and smp_read_acquire(),
But they provide different grades of transitivity, which is where all
the confusion lays.
smp_mb() is strongly/globally transitive, all CPUs will agree on the order.
Whereas the RCpc release+acquire is weakly so, only the two
2016 Jan 15
0
[v3,11/41] mips: reuse asm-generic/barrier.h
...------
PPC local-transitive
""
{
0:r1=1; 0:r2=u; 0:r3=v; 0:r4=x; 0:r5=y; 0:r6=z;
1:r1=1; 1:r2=u; 1:r3=v; 1:r4=x; 1:r5=y; 1:r6=z;
2:r1=1; 2:r2=u; 2:r3=v; 2:r4=x; 2:r5=y; 2:r6=z;
3:r1=1; 3:r2=u; 3:r3=v; 3:r4=x; 3:r5=y; 3:r6=z;
}
P0 | P1 | P2 | P3 ;
lwz r9,0(r4) | lwz r9,0(r5) | lwz r9,0(r6) | stw r1,0(r3) ;
lwsync | lwsync | lwsync | sync ;
stw r1,0(r2) | lwz r8,0(r3) | stw r1,0(r7) | lwz r9,0(r2) ;
lwsync | lwz r7,0(r2) | | ;
stw r1,0(r5) | lwsync | | ;...
2016 Jan 26
2
[v3,11/41] mips: reuse asm-generic/barrier.h
...allowed by herd.
> > > > *)
> > > > {
> > > > 0:r1=x; 0:r2=y; 0:r3=z;
> > > > 1:r1=x; 1:r2=y; 1:r3=z; 1:r4=1;
> > > > 2:r1=x; 2:r2=y; 2:r3=z; 2:r4=1; 2:r5=2;
> > > > }
> > > > P0 | P1 | P2 ;
> > > > lwz r6,0(r1) | stw r4,0(r2) | stw r5,0(r3) ;
> > > > xor r7,r6,r6 | lwsync | lwsync ;
> > > > lwzx r7,r7,r2 | stw r4,0(r3) | stw r4,0(r1) ;
> > > > lwz r8,0(r3) | | ;
> > > >
> > > > exists
> > > > (z=2 /\ 0:r6=1 /\ 0:r7=0 /\...
2016 Jan 26
2
[v3,11/41] mips: reuse asm-generic/barrier.h
...allowed by herd.
> > > > *)
> > > > {
> > > > 0:r1=x; 0:r2=y; 0:r3=z;
> > > > 1:r1=x; 1:r2=y; 1:r3=z; 1:r4=1;
> > > > 2:r1=x; 2:r2=y; 2:r3=z; 2:r4=1; 2:r5=2;
> > > > }
> > > > P0 | P1 | P2 ;
> > > > lwz r6,0(r1) | stw r4,0(r2) | stw r5,0(r3) ;
> > > > xor r7,r6,r6 | lwsync | lwsync ;
> > > > lwzx r7,r7,r2 | stw r4,0(r3) | stw r4,0(r1) ;
> > > > lwz r8,0(r3) | | ;
> > > >
> > > > exists
> > > > (z=2 /\ 0:r6=1 /\ 0:r7=0 /\...