search for: p0i32

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