summaryrefslogtreecommitdiff
path: root/gcc/testsuite/gcc.dg/vmx/gcc-bug-c.c
blob: 33fed4bd9c14971cbdf1f37f8357383d6ca06f74 (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
/* { dg-do compile } */
#include <altivec.h>
vector signed short s16ss() { vector signed short a; return vec_subs(a,a); }
vector signed short s16s() { vector signed short a; return vec_sub(a,a); }
vector signed short s16x() { vector signed short a; return vec_xor(a,a); }
vector signed short s16a() { vector signed short a; return vec_andc(a,a); }
vector unsigned char u8;
vector signed short s16;
vector bool int b32;
vector float f32;
vector pixel p16;
void x()
{
  u8 = ((vector unsigned char){3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3});
  s16 = ((vector signed short){-7,-7,-7,-7,-7,-7,-7,-7});
  b32 = ((vector bool int) {10,20,30,40});
  f32 = ((vector float) {2,4,6,8});
  p16 = ((vector pixel){23,23,23,23,23,23,23,23});
}
vector unsigned int a;
vector unsigned int b;
void f(void) {
  a = ((vector unsigned int){1,1,1,1});
  b = ((vector unsigned int){1,2,3,4});
}