[llvm-dev] Help: How to define vector element type bool (v8i1) in C builtin function
liuyu11@ict.ac.cn via llvm-dev
llvm-dev at lists.llvm.org
Tue Apr 24 00:45:58 PDT 2018
Help: How to define vector element type bool (v8i1) in C builtin function
hello everyone,I have defined intrinsic function like this:
def int_mips_add_32 : GCCBuiltin<"__builtin_dongxin_add_32">, Intrinsic<[llvm_v4i32_ty], [llvm_v4i32_ty, llvm_v4i32_ty,llvm_v8i1_ty]>;
Then I write a test code :
typedef int v4i32 __attribute__ ((vector_size(16)));
typedef bool v8i1 __attribute__ ((vector_size(1)));
void foo() {
v4i32 v4i32_r1,v4i32_r2,v4i32_r3;
v8i1 vm_1;
v4i32_r1 = __builtin_dongxin_add_32(v4i32_r2,v4i32_r2,vm_1);
}
but when I compile : clang -cc1 -triple mipsel-unknown-linux-gnu -emit-llvm intrinstest.c -o test.ll
I got the error:
intrinstest.c:4:9: error: unknown type name 'bool'
typedef bool v8i1 __attribute__ ((vector_size(1)));
^
intrinstest.c:4:36: error: vector size not an integral multiple of component size
typedef bool v8i1 __attribute__ ((vector_size(1)));
^ ~
intrinstest.c:9:57: error: passing 'v8i1' (aka 'int') to parameter of incompatible type '__attribute__((__vector_size__(8 * sizeof(_Bool)))) _Bool' (vector of 8 '_Bool' values)
v4i32_r1 = __builtin_dongxin_add_32(v4i32_r2,v4i32_r2,vm_1);
I searched online ,bool is sizeof 1 byte,and Bool size is also bigger than 1bit. Is there a way I can define a variable which type is v8i1 .
Thanks
YuLiu
liuyu11 at ict.ac.cn
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20180424/68242f46/attachment-0001.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: bg.jpg
Type: image/jpeg
Size: 25008 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20180424/68242f46/attachment-0001.jpg>
More information about the llvm-dev
mailing list