aboutsummaryrefslogtreecommitdiffstats
path: root/gcc-4.9/gcc/testsuite/gcc.dg/vmx/spill2.c
blob: 4c7337bd08a76b26e48b63d623634a8e64e8f55d (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
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
#include <altivec.h>
extern vector unsigned char u8(void);
extern vector signed char s8(void);
extern vector bool char b8(void);
extern vector unsigned short u16(void);
extern vector signed short s16(void);
extern vector bool short b16(void);
extern vector unsigned int u32(void);
extern vector signed int s32(void);
extern vector bool int b32(void);
extern vector float f32(void);
extern vector pixel p16(void);
extern double d(void);
extern int i(void);

extern void g(vector unsigned char, ...);

void f()
{
  int i1l = i();
  vector unsigned char u8l = u8();
  vector signed char s8l = s8();
  vector bool char b8l = b8();
  int i2l = i();
  vector unsigned short u16l = u16();
  vector signed short s16l = s16();
  vector bool short b16l = b16();
  int i3l = i();
  vector unsigned int u32l = u32();
  vector signed int s32l = s32();
  vector bool int b32l = b32();
  double d1l = d();
  vector float f32l = f32();
  vector pixel p16l = p16();
  double d2l = d();
  vector unsigned char u8lx = u8();
  vector signed char s8lx = s8();
  vector bool char b8lx = b8();
  vector unsigned short u16lx = u16();
  vector signed short s16lx = s16();
  vector bool short b16lx = b16();
  vector unsigned int u32lx = u32();
  vector signed int s32lx = s32();
  vector bool int b32lx = b32();
  vector float f32lx = f32();
  vector pixel p16lx = p16();

  if (i1l)
    g(u8l, s8l, b8l, u16l, s16l, b16l, u32l, s32l, b32l, f32l, p16l,
      u8lx, s8lx, b8lx, u16lx, s16lx, b16lx, u32lx, s32lx, b32lx, f32lx, p16lx,
      i1l, i2l, i3l, d1l, d2l);
  g(u8l, i1l, i2l, i3l, d1l, d2l);
}

double
d(void)
{
  static double zero;
  return zero;
}

int
i(void)
{
  static int non_zero;
  return ++non_zero;
}

vector unsigned char
u8(void)
{
  static vector unsigned char zero;
  return zero;
}

vector signed char
s8(void)
{
  static vector signed char zero;
  return zero;
}

vector bool char
b8(void)
{
  static vector bool char zero;
  return zero;
}

vector unsigned short
u16(void)
{
  static vector unsigned short zero;
  return zero;
}

vector signed short
s16(void)
{
  static vector signed short zero;
  return zero;
}

vector bool short
b16(void)
{
  static vector bool short zero;
  return zero;
}

vector unsigned int
u32(void)
{
  static vector unsigned int zero;
  return zero;
}

vector signed int
s32(void)
{
  static vector signed int zero;
  return zero;
}

vector bool int
b32(void)
{
  static vector bool int zero;
  return zero;
}

vector float
f32(void)
{
  static vector float zero;
  return zero;
}

vector pixel
p16(void)
{
  static vector pixel zero;
  return zero;
}

void
g(vector unsigned char a, ...)
{
}

int main() 
{
  f();
  return 0;
}