Displaying 3 results from an estimated 3 matches for "float2_align2".
2008 Jul 18
2
[LLVMdev] Alignment of vectors
Consider the following C code:
typedef __attribute__(( ext_vector_type(2) )) float float2;
typedef __attribute__(( ext_vector_type(2) )) __attribute__(( aligned(4) ))
float float2_align2;
void foo(void)
{
const float * p;
size_t offset;
float2 tmp = *((float2_align2 *)(p+offset));
}
When compiled with clang emit-llvm I get:
define void @foo() {
entry:
%p = alloca float*, align 4 ; <float**> [#uses=1]
%offset = alloca i32, align 4 ; <i32*>...
2008 Jul 18
0
[LLVMdev] Alignment of vectors
...bute doesn't do anything on a typedef of
anything other than a struct/union type in either gcc or clang. It
would be possible to implement something like this, but someone would
need to spec out exactly what it would do in various situations and
send the proposal past the gcc devs.
> float float2_align2;
>
> void foo(void)
> {
> const float * p;
> size_t offset;
> float2 tmp = *((float2_align2 *)(p+offset));
> }
>
> When compiled with clang —emit-llvm I get:
>
> define void @foo() {
> entry:
> %p = alloca float*, align 4 ; <float**> [#u...
2008 Jul 18
1
[LLVMdev] Alignment of vectors
...other than a struct/union type in either gcc or clang. It
> would be possible to implement something like this, but someone would
> need to spec out exactly what it would do in various situations and
> send the proposal past the gcc devs.
>
[bg] Thanks, I missed that.
>> float float2_align2;
>>
>> void foo(void)
>> {
>> const float * p;
>> size_t offset;
>> float2 tmp = *((float2_align2 *)(p+offset));
>> }
>>
>> When compiled with clang emit-llvm I get:
>>
>> define void @foo() {
>> entry:
>> %...