aboutsummaryrefslogtreecommitdiffstats
path: root/gcc-4.9/gcc/testsuite/gcc.target/powerpc/altivec-types-1.c
blob: 9096892ee6ad15a6fed4fc2c676cd8eea6dc2c9d (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
/* { dg-do compile { target powerpc*-*-linux* } } */
/* { dg-require-effective-target powerpc_altivec_ok } */
/* { dg-options "-maltivec -mno-vsx" } */

/* Valid AltiVec vector types should be accepted with no warnings.  */

__vector char vc;
__vector unsigned char vuc;
__vector signed char vsc;
__vector __bool char vbc;
__vector short vh;
__vector signed short vsh;
__vector unsigned short vuh;
__vector short int vhi;
__vector signed short int vshi;
__vector unsigned short int vuhi;
__vector __bool short vbh;
__vector __bool short int vbhi;
__vector int vi;
__vector unsigned int vui;
__vector signed int vsi;
__vector __bool int vbi;
__vector unsigned vuj;
__vector signed vsj;
__vector __bool vbj;
__vector float vf;
__vector _Bool vb;

/* These should be rejected as invalid AltiVec types.  */

__vector long long vll;			/* { dg-error "AltiVec types" "" } */
__vector unsigned long long vull;	/* { dg-error "AltiVec types" "" } */
__vector signed long long vsll;		/* { dg-error "AltiVec types" "" } */
__vector __bool long long vbll;		/* { dg-error "AltiVec types" "" } */
__vector long long int vlli;		/* { dg-error "AltiVec types" "" } */
__vector unsigned long long int vulli;	/* { dg-error "AltiVec types" "" } */
__vector signed long long int vslli;	/* { dg-error "AltiVec types" "" } */
__vector __bool long long int vblli;	/* { dg-error "AltiVec types" "" } */
__vector double vd1;			/* { dg-error "AltiVec types" "" } */
__vector long double vld;		/* { dg-error "AltiVec types" "" } */
__vector _Complex float vcf;		/* { dg-error "AltiVec types" "" } */
__vector _Complex double vcd;		/* { dg-error "AltiVec types" "" } */
__vector _Complex long double vcld;	/* { dg-error "AltiVec types" "" } */
__vector _Complex signed char vcsc;	/* { dg-error "AltiVec types" "" } */
__vector _Complex unsigned char vcuc;	/* { dg-error "AltiVec types" "" } */
__vector _Complex short vcss;		/* { dg-error "AltiVec types" "" } */
__vector _Complex unsigned short vcus;	/* { dg-error "AltiVec types" "" } */
__vector _Complex int vcsi;		/* { dg-error "AltiVec types" "" } */
__vector _Complex unsigned int vcui;	/* { dg-error "AltiVec types" "" } */
__vector _Complex long vcsl;		/* { dg-error "AltiVec types" "" } */
__vector _Complex unsigned long vcul;	/* { dg-error "AltiVec types" "" } */
__vector _Complex long long vcsll;	/* { dg-error "AltiVec types" "" } */
__vector _Complex unsigned long long vcull; /* { dg-error "AltiVec types" "" } */
__vector __complex float v_cf;		/* { dg-error "AltiVec types" "" } */
__vector __complex double v_cd;		/* { dg-error "AltiVec types" "" } */
__vector __complex long double v_cld;	/* { dg-error "AltiVec types" "" } */
__vector __complex signed char v_csc;	/* { dg-error "AltiVec types" "" } */
__vector __complex unsigned char v_cuc;	/* { dg-error "AltiVec types" "" } */
__vector __complex short v_css;		/* { dg-error "AltiVec types" "" } */
__vector __complex unsigned short v_cus; /* { dg-error "AltiVec types" "" } */
__vector __complex int v_csi;		/* { dg-error "AltiVec types" "" } */
__vector __complex unsigned int v_cui;	/* { dg-error "AltiVec types" "" } */
__vector __complex long v_csl;		/* { dg-error "AltiVec types" "" } */
__vector __complex unsigned long v_cul;	/* { dg-error "AltiVec types" "" } */
__vector __complex long long v_csll;	/* { dg-error "AltiVec types" "" } */
__vector __complex unsigned long long v_cull; /* { dg-error "AltiVec types" "" } */

/* These should be rejected because the component types are invalid.  We
   don't care about the actual error messages here.  */

__vector __bool unsigned char vbuc;	/* { dg-error "" "" } */
__vector __bool signed char vbsc;	/* { dg-error "" "" } */
__vector __bool unsigned short vbuh;	/* { dg-error "" "" } */
__vector __bool signed short vbsh;	/* { dg-error "" "" } */
__vector __bool unsigned int vbui;	/* { dg-error "" "" } */
__vector __bool signed int vbsi;	/* { dg-error "" "" } */
__vector __bool unsigned vbuj;		/* { dg-error "" "" } */
__vector __bool signed vbsj;		/* { dg-error "" "" } */
__vector signed float vsf;		/* { dg-error "" "" } */
__vector unsigned float vuf;		/* { dg-error "" "" } */
__vector short float vsf;		/* { dg-error "" "" } */
__vector signed double vsd;		/* { dg-error "" "" } */
__vector unsigned double vud;		/* { dg-error "" "" } */
__vector short double vsd;		/* { dg-error "" "" } */
__vector __bool float vbf;		/* { dg-error "" "" } */
__vector __bool double vbd;		/* { dg-error "" "" } */
__vector __bool short float blf;	/* { dg-error "" "" } */
__vector __bool short double vlbd;	/* { dg-error "" "" } */

/* { dg-message "note: previous" "prev vsf" { target *-*-* } 79 } */
/* { dg-message "note: previous" "prev vsd" { target *-*-* } 82 } */