summaryrefslogtreecommitdiffstats
path: root/clang/test/CodeGen/x86_32-align-linux.c
blob: 5fce3f5f295c76bc7fa103bf06da159c4e104229 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
// RUN: %clang_cc1 -w -fblocks -ffreestanding -triple i386-pc-linux-gnu -emit-llvm -o %t %s
// RUN: FileCheck < %t %s

#include <immintrin.h>

typedef union {
        int d[4];
        __m128 m;
} M128;

extern void foo(int, ...);

M128 a;

// CHECK-LABEL: define void @test
// CHECK: entry:
// CHECK: call void (i32, ...) @foo(i32 1, %union.M128* byval align 16
// CHECK: call void (i32, ...) @foo(i32 1, <4 x float>

void test(void)
{
  foo(1, a);
  foo(1, a.m);
}

OpenPOWER on IntegriCloud