Mercurial > hg > CbC > CbC_gcc
view gcc/testsuite/gcc.dg/torture/vector-1.c @ 131:84e7813d76e9
gcc-8.2
author | mir3636 |
---|---|
date | Thu, 25 Oct 2018 07:37:49 +0900 |
parents | 04ced10e8804 |
children |
line wrap: on
line source
/* Check that vector extraction works correctly. */ /* { dg-do run } */ /* { dg-options "-msse" { target { i?86-*-* x86_64-*-* } } } */ /* { dg-require-effective-target sse_runtime { target { i?86-*-* x86_64-*-* } } } */ /* { dg-options "-mabi=altivec" { target { powerpc-*-* powerpc64-*-* } } } */ /* { dg-require-effective-target vmx_hw { target { powerpc-*-* powerpc64--*-* } } } */ #define vector __attribute__((vector_size(16) )) int f0(vector int t) { return ((int*)&t)[0]; } int f1(vector int t) { return ((int*)&t)[1]; } int f2(vector int t) { return ((int*)&t)[2]; } int f3(vector int t) { return ((int*)&t)[3]; } int main(void) { vector int a = {0, 1, 2, 3}; /* Make sure that we have the correct size for the vectors. */ if (sizeof(int) != 4) __builtin_exit (0); if (f0(a) != 0) __builtin_abort (); if (f1(a) != 1) __builtin_abort (); if (f2(a) != 2) __builtin_abort (); if (f3(a) != 3) __builtin_abort (); return 0; }