Displaying 3 results from an estimated 3 matches for "interval_t".
Did you mean:
interval
2008 Jul 29
1
[LLVMdev] Vector types as function arguments and interfacing with C
...%result = add <2 x double> %a, %b
ret <2 x double> %result
}
compiles to (under the latest 2.4svn)
_add:
fadd f2, f2, f4
fadd f1, f1, f3
blr
which means that LLVM very sensibly passes the doubles in registers
f1, f2, f3, f4. However, on the C end, GCC compiles
typedef double interval_t __attribute__ ((__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 f1...
2008 Jul 29
0
[LLVMdev] Vector types as function arguments and interfacing with C
Hi,
> I want to be able to write a function like this
>
> define <2 x double> @add(<2 x double> %a, <2 x double> %b) nounwind {
> %c = add <2 x double> %a, %b
> ret <2 x double> %c
> }
>
> and then call it from C code. What is the appropriate translation of
> the <2 x double> vector type into C? I've tried packed structs
2008 Jul 29
2
[LLVMdev] Vector types as function arguments and interfacing with C
Hi,
I want to be able to write a function like this
define <2 x double> @add(<2 x double> %a, <2 x double> %b) nounwind {
%c = add <2 x double> %a, %b
ret <2 x double> %c
}
and then call it from C code. What is the appropriate translation of
the <2 x double> vector type into C? I've tried packed structs and
"typedef double vec_double