Mercurial > hg > CbC > CbC_gcc
view gcc/testsuite/c-c++-common/cilk-plus/AN/conditional.c @ 111:04ced10e8804
gcc 7
author | kono |
---|---|
date | Fri, 27 Oct 2017 22:46:09 +0900 |
parents | |
children |
line wrap: on
line source
/* { dg-do run } */ /* { dg-options "-fcilkplus" } */ #include <stdlib.h> int main(void) { int argc = 1; short array[1000], array2[1000], *array3, cond[1000], ii = 0; __asm volatile ("" : "+r" (argc)); for (ii = 0; ii < 1000; ii++) { cond[ii] = 1; array[ii] = 1000; array2[ii] = 2000; } array2[:] = cond[:] ? array[:] : array2[:]; for (ii = 0; ii < 1000; ii++) { if (array2[ii] != 1000) return 1; } array2[0:500:2] = cond[0:500] ? array[0:500:1] : array2[0:500:2]; for (ii = 0; ii < 1000; ii++) { if (array2[ii] != 1000) return 2; } for (ii = 0; ii < 1000; ii++) { cond[ii] = ii % 2; /* This should give 0, 1, 0, 1, 0, 1, 0,... */ array2[ii] = 5; array[ii] = 3; } array3 = (short *) malloc (sizeof (short) * 1000); array3[0:1000:argc] = cond[:] ? array[0:(argc * 1000)] : array2[argc-1:1000]; for (ii = 0; ii < 1000; ii++) { if ((cond[ii] == 0 && array3[ii] != 5) || (cond[ii] == 1 && array3[ii] != 3)) return 3; } return 0; }