summaryrefslogtreecommitdiff
path: root/gcc/testsuite/gcc.dg/torture/pr53144.c
blob: ad94812ad7cedcc774d952238fa3ea9fd3567524 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
/* { dg-do compile } */

typedef unsigned char __attribute__((vector_size(4))) uvec;

int main (int argc, char *argv[]) {
    int i;
    int x = 0;
    uvec uc0 = (uvec) {argc, 1,  2,  10};
    unsigned char uc1[4] = {0, 3, 2, 200};
    signed char ucg[4] = {1, 0, 0, 0 };
    signed char ucl[4] = {0, 1, 0, 1 };

#define uc0_ ((unsigned char *)&uc0)

    for (i = 0; i < 4; i ++) {
	x |= ucg[i] != (uc0_[i] > uc1[i]);
	x |= ucl[i] != (uc0_[i] < uc1[i]);
    }
    return x;
}