Displaying 20 results from an estimated 39 matches for "p0i32".
2011 Oct 06
2
[LLVMdev] A potential bug
...d ...
9. %tmp50 = load i64* %2, align 8 //
eliminated ...
10. store i64 %tmp50, i64* %3, align 8 //
eliminated ...
11. %tv_sec = getelementptr inbounds %struct.timeval* %agg.tmp, i32 0, i32
0
12. %tv_sec.safe_r = call i32* @llvm.guard.load.p0i32(i32* %tv_sec) //
intrinsic function call inserted by me
13. %tmp15 = load i32* %tv_sec.safe_r, align 4, !tbaa
!4 // this loads the value stored at line 6
14. %tv_usec = getelementptr inbounds %struct.timeval* %agg.tmp, i32 0, i32
1
15. %tv_usec.safe_r = call i32* @llvm.gua...
2011 Oct 06
2
[LLVMdev] A potential bug
... //
>> eliminated ...
>> 10. store i64 %tmp50, i64* %3, align 8 //
>> eliminated ...
>> 11. %tv_sec = getelementptr inbounds %struct.timeval* %agg.tmp, i32 0, i32
>> 0
>> 12. %tv_sec.safe_r = call i32* @llvm.guard.load.p0i32(i32* %tv_sec) //
>> intrinsic function call inserted by me
>> 13. %tmp15 = load i32* %tv_sec.safe_r, align 4, !tbaa
>> !4 // this loads the value stored at line 6
>> 14. %tv_usec = getelementptr inbounds %struct.timeval* %agg.tmp, i32 0, i32
>>...
2011 Oct 06
0
[LLVMdev] A potential bug
...2, align 8 //
> eliminated ...
> 10. store i64 %tmp50, i64* %3, align 8 //
> eliminated ...
> 11. %tv_sec = getelementptr inbounds %struct.timeval* %agg.tmp, i32 0, i32
> 0
> 12. %tv_sec.safe_r = call i32* @llvm.guard.load.p0i32(i32* %tv_sec) //
> intrinsic function call inserted by me
> 13. %tmp15 = load i32* %tv_sec.safe_r, align 4, !tbaa
> !4 // this loads the value stored at line 6
> 14. %tv_usec = getelementptr inbounds %struct.timeval* %agg.tmp, i32 0, i32
> 1
> 15. %tv_use...
2010 May 05
2
[LLVMdev] Why llvm function name is different with . and ..
declare i8 @llvm.atomic.load.max.i8.p0i8( i8* <ptr>, i8 <delta> )
declare i16 @llvm.atomic.load.max.i16.p0i16( i16* <ptr>, i16 <delta> )
declare i32 @llvm.atomic.load.max.i32.p0i32( i32* <ptr>, i32 <delta> )
declare i64 @llvm.atomic.load.max.i64.p0i64( i64* <ptr>, i64 <delta> )
declare i8 @llvm.atomic.load.min.i8.p0i8( i8* <ptr>, i8 <delta> )
declare i16 @llvm.atomic.load.min.i16.p0i16( i16* <ptr>, i16 <delta> )
declare...
2011 Oct 06
0
[LLVMdev] A potential bug
...liminated ...
> >> 10. store i64 %tmp50, i64* %3, align 8 //
> >> eliminated ...
> >> 11. %tv_sec = getelementptr inbounds %struct.timeval* %agg.tmp, i32 0,
> i32
> >> 0
> >> 12. %tv_sec.safe_r = call i32* @llvm.guard.load.p0i32(i32* %tv_sec)
> //
> >> intrinsic function call inserted by me
> >> 13. %tmp15 = load i32* %tv_sec.safe_r, align 4, !tbaa
> >> !4 // this loads the value stored at line 6
> >> 14. %tv_usec = getelementptr inbounds %struct.timeval* %agg.t...
2011 Oct 06
1
[LLVMdev] A potential bug
...0. store i64 %tmp50, i64* %3, align 8 //
>> >> eliminated ...
>> >> 11. %tv_sec = getelementptr inbounds %struct.timeval* %agg.tmp, i32 0,
>> >> i32
>> >> 0
>> >> 12. %tv_sec.safe_r = call i32* @llvm.guard.load.p0i32(i32* %tv_sec)
>> >> //
>> >> intrinsic function call inserted by me
>> >> 13. %tmp15 = load i32* %tv_sec.safe_r, align 4, !tbaa
>> >> !4 // this loads the value stored at line 6
>> >> 14. %tv_usec = getelementptr inb...
2008 Jul 07
0
[LLVMdev] addrspace attribute and intrisics
Hi,
Great I look forward to the patch!
One comment I had was on the name of the overloaded intrinsics. In
your example you resolve the atomic.load.add to:
@llvm.atomic.load.add.p0i32 // i32 ptr to default address space
@llvm.atomic.load.add.p11i32 // i32 ptr to address space 11
and I was wondering could they instead be named:
@llvm.atomic.load.add.p0.i32 // i32 ptr to default address space
@llvm.atomic.load.add.p11.i32 // i32 ptr to address space 11
For me thi...
2008 Jul 05
3
[LLVMdev] addrspace attribute and intrisics
...th an
address qualified pointer. This will change the name of the
intrinsics. When I talked to Dan about this, we thought it made sense
to add a pointer qualifier to the name. For example, the name of the
atomic add will change from @llvm.atomic.load.add.i32 to
@llvm.atomic.load.add.p0i32 // i32 ptr to default address space
@llvm.atomic.load.add.p11i32 // i32 ptr to address space 11
This means we will auto convert the old names to the new one. I'm
also planning to change clang to generate an error if the compiler
implicitly cast a pointer between two different a...
2008 Jul 07
2
[LLVMdev] addrspace attribute and intrisics
Hi,
I should double check this but I viewed the "." as being useful to
separate different parameter types in case we need to overload on
multiple parameters. I think of p0i32 as the type of a single
parameter. If we had multiple parameters with complex types, I think
it might become harder to read if we separated each component, .e.g.,
a hypothetical intrinsic that takes a vector of 4 of pointers to i32
and vector of 4 of pointers to i64 would look either like...
2010 May 05
0
[LLVMdev] Why llvm function name is different with . and ..
...give an explain?
2010/5/5, 罗勇刚(Yonggang Luo) <luoyonggang at gmail.com>:
> declare i8 @llvm.atomic.load.max.i8.p0i8( i8* <ptr>, i8 <delta> )
> declare i16 @llvm.atomic.load.max.i16.p0i16( i16* <ptr>, i16 <delta> )
> declare i32 @llvm.atomic.load.max.i32.p0i32( i32* <ptr>, i32 <delta> )
> declare i64 @llvm.atomic.load.max.i64.p0i64( i64* <ptr>, i64 <delta> )
> declare i8 @llvm.atomic.load.min.i8.p0i8( i8* <ptr>, i8 <delta> )
> declare i16 @llvm.atomic.load.min.i16.p0i16( i16* <ptr>, i16 <delta&g...
2008 Jul 07
0
[LLVMdev] addrspace attribute and intrisics
On Mon, 7 Jul 2008, Mon P Wang wrote:
> I should double check this but I viewed the "." as being useful to
> separate different parameter types in case we need to overload on
> multiple parameters. I think of p0i32 as the type of a single
> parameter. If we had multiple parameters with complex types, I think
> it might become harder to read if we separated each component, .e.g.,
> a hypothetical intrinsic that takes a vector of 4 of pointers to i32
> and vector of 4 of pointers to i64 would look...
2018 Jan 30
2
llvm.memcpy for struct copy
...@llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %7, i8* align 4 %8,
>> i64 8, i1 false)
>>
>
> also since the dst and src are 4 byte align , can we use the IR below:
>
> %7 = bitcast %struct.X* %6 to i32*
>
> %8 = bitcast %struct.X* %5 to i32*
>
> call void @llvm.memcpy.p0i32.p0i32.i64(i32* align 4 %7, i32* align 4 %8,
> i64 8, i1 false)
>
>
>> ret void
>> }
>>
>> how can I transform the llvm.memcpy into data move loop IR and eliminate
>> the bitcast instruction ?
>>
>> Regards
>> Jun
>>
>>
>>...
2014 Oct 26
2
[LLVMdev] Masked vector intrinsics and name mangling
Hal, thank you for your opinion.
I just was confused when I saw so long name " llvm.masked.load.v16i32.p0i32.v16i32.i32.v16i1" .
If we stay with a short name, we do a step towards instruction form.
- Elena
-----Original Message-----
From: Hal Finkel [mailto:hfinkel at anl.gov]
Sent: Sunday, October 26, 2014 17:06
To: Demikhovsky, Elena
Cc: llvmdev at cs.uiuc.edu
Subject: Re: [LLVMdev] Masked v...
2018 Jan 30
0
llvm.memcpy for struct copy
...itcast %struct.X* %5 to i8*
> call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %7, i8* align 4 %8, i64
> 8, i1 false)
>
also since the dst and src are 4 byte align , can we use the IR below:
%7 = bitcast %struct.X* %6 to i32*
%8 = bitcast %struct.X* %5 to i32*
call void @llvm.memcpy.p0i32.p0i32.i64(i32* align 4 %7, i32* align 4 %8, i64
8, i1 false)
> ret void
> }
>
> how can I transform the llvm.memcpy into data move loop IR and eliminate
> the bitcast instruction ?
>
> Regards
> Jun
>
>
> 2018-01-30 15:24 GMT+08:00 Craig Topper <craig.toppe...
2014 Oct 26
2
[LLVMdev] Masked vector intrinsics and name mangling
Hi,
The proposed masked vector intrinsics are overloaded - one intrinsic ID for multiple types.
After name mangling it will look like:
%res = call <16 x i32> @llvm.masked.load.v16i32.p0i32.v16i32.i32.v16i1(i32* %addr, <16 x i32>%passthru, i32 4, <16 x i1> %mask)
6 types x 3 vector sizes = 18 names for one operation
I propose to remove name mangling from these intrinsics:
%res = call <16 x i32> @llvm.masked.load (i32* %addr, <16 x i32>%passthru, i32 4, <16...
2018 Jan 30
2
llvm.memcpy for struct copy
Hi
Thanks !
so for this example
void foo(X &src, X &dst) {
dst = src;
}
and the IR:
define void @foo(X&, X&)(%struct.X* dereferenceable(8), %struct.X*
dereferenceable(8)) #0 {
%3 = alloca %struct.X*, align 8
%4 = alloca %struct.X*, align 8
store %struct.X* %0, %struct.X** %3, align 8
store %struct.X* %1, %struct.X** %4, align 8
%5 = load %struct.X*,
2015 May 05
2
[LLVMdev] [AArch64] Should we restrict to the pointer type used in ldN/stN intrinsics?
....v4i32.p0f32(float*)
It can pass and generate ld2 with "llc -march=aarch64 < ld2.ll".
I just think it's strange that the pointer has no relationship with the
returned type. Currently there are IR regression test cases using different
kinds of pointers like 'xx.ld2.v4i32.p0i32', 'xx.ld2.v4i32.p0v4i32' or
'xx.ld2.v4i32.p0i8', which looks confusing. Should we modify the definition
of such intrinsics and restrict the pointer type?
If you agree with me, I suggest to use a pointer type to the vector element.
Because the 'arm_neon.h' declare the...
2008 Jul 07
2
[LLVMdev] addrspace attribute and intrisics
On 2008-07-07, at 05:40, Benedict Gaster wrote:
> %r1 = call i32 @llvm.atomic.load.add.p0i32( i32 addrspace(0)*
> %ptr0, i32 4)
> %r2 = call i32 @llvm.atomic.load.add.p11i32( i32 addrspace(11)*
> %ptr11, i32 4)
> call void @llvm.memory.barrier(i1 true, i1 true, i1 false, i1 false,
> i32 11, i1 false) ; force read-modify-write %ptr11 to complete
>
> A problem with thi...
2014 Oct 26
2
[LLVMdev] Masked vector intrinsics and name mangling
...Cc: llvmdev at cs.uiuc.edu
>> Sent: Sunday, October 26, 2014 10:17:49 AM
>> Subject: RE: [LLVMdev] Masked vector intrinsics and name mangling
>>
>> Hal, thank you for your opinion.
>> I just was confused when I saw so long name "
>> llvm.masked.load.v16i32.p0i32.v16i32.i32.v16i1" .
>> If we stay with a short name, we do a step towards instruction form.
>
> I completely understand, I just don't think it matters all that much, and the logic necessary to handle it will just become a source of bugs (and thus a distraction). You don't...
2012 May 22
4
[LLVMdev] How to get llvm bitcode executed
...ZSt17__throw_bad_allocv() noreturn
declare noalias i8* @_Znwm(i64)
declare void @llvm.memcpy.p0i8.p0i8.i64(i8* nocapture, i8* nocapture, i64, i32, i1) nounwind
declare void @llvm.memmove.p0i8.p0i8.i64(i8* nocapture, i8* nocapture, i64, i32, i1) nounwind
declare i32 @llvm.atomic.load.add.i32.p0i32(i32* nocapture, i32) nounwind
declare void @llvm.memory.barrier(i1, i1, i1, i1, i1) nounwind
declare void @_ZSt20__throw_out_of_rangePKc(i8*) noreturn
declare i64 @strlen(i8*)
declare void @abort()
Xiaolong