search for: uint32x2_t

Displaying 6 results from an estimated 6 matches for "uint32x2_t".

Did you mean: int32x2_t
2010 Sep 28
0
[LLVMdev] Vectors in structures
...what compatibility problems you had with GCC? And that > by using structures in Clang you made it work with armcc? > > Is it just a source code compatibility issue? Yes, there are multiple issues but they all involve source compatibility. Here is an example: #include <arm_neon.h> uint32x2_t test(int32x2_t x) { return vadd_u32(x, x); } This works fine with GCC because int32x2_t and uint32x2_t are built-in vector types and can be implicitly converted. It is not valid if those types are defined as structs, because C/C++ do not allow distinct struct types to be implicitly converted just...
2010 Sep 28
2
[LLVMdev] Vectors in structures
On 27 September 2010 23:45, Bob Wilson <bob.wilson at apple.com> wrote: > An implementation, such as in GCC, that does not use structures is compatible with ARM's specification in only one direction.  GCC will accept any code written for RVCT, but not the other way around.  And, as Al pointed out, there are also compatibility issues with how you can initialize vectors.  (In fact, if
2010 Nov 12
2
[LLVMdev] Simple NEON optimization
Hi folks, me again, So, I want to implement a simple optimization in a NEON case I've seen these days, most as a matter of exercise, but it also simplifies (just a bit) the code generated. The case is simple: uint32x2_t x, res; res = vceq_u32(x, vcreate_u32(0)); This will generate the following code: ; zero d16 vmov.i32 d16, #0x0 ; load a into d17 movw r0, :lower16:a movt r0, :upper16:a vld1.32 {d17}, [r0] ; compare two registers...
2011 Nov 23
4
[LLVMdev] arm neon intrinsics cross compile error on windows system
...ef __attribute__((neon_vector_type(4))) int32_t int32x4_t; ^ d:/llvm_projects/llvm-3.0rc4/bin/../lib/clang/3.0/include\arm_neon.h:49:24: error: invalid vector element type 'uint32_t' (aka 'unsigned long') typedef __attribute__((neon_vector_type(2))) uint32_t uint32x2_t; ^ d:/llvm_projects/llvm-3.0rc4/bin/../lib/clang/3.0/include\arm_neon.h:50:24: error: invalid vector element type 'uint32_t' (aka 'unsigned long') typedef __attribute__((neon_vector_type(4))) uint32_t uint32x4_t; ^ d:/llvm_projects/llvm...
2010 Nov 12
0
[LLVMdev] Simple NEON optimization
...t 7:23 AM, Renato Golin wrote: > Hi folks, me again, > > So, I want to implement a simple optimization in a NEON case I've seen > these days, most as a matter of exercise, but it also simplifies (just > a bit) the code generated. > > The case is simple: > > uint32x2_t x, res; > res = vceq_u32(x, vcreate_u32(0)); > > This will generate the following code: > > ; zero d16 > vmov.i32 d16, #0x0 > ; load a into d17 > movw r0, :lower16:a > movt r0, :upper16:a > vld1.32 {d17},...
2010 Sep 28
2
[LLVMdev] Vectors in structures
...> Yes, there are multiple issues but they all involve source compatibility. Hi Bob, than this is a completely different matter altogether. > I do not have access to ARM's compiler(s) but I'm assuming that the first example will not compile because vadd_u32 expects arguments of type uint32x2_t.  Using structs in llvm does not "fix" a compatibility problem, but it helps our users write NEON code that will work with ARM's compiler. Indeed, the types are different, you will get an incompatible parameter error. > I am getting requests that we do that regardless of ARM'...