c-pragma.c (c_pp_lookup_pragma): Handle PRAGMA_CILK_SIMD.

* c-pragma.c (c_pp_lookup_pragma): Handle PRAGMA_CILK_SIMD.
	(init_pragma): Call cpp_register_deferred_pragma for PRAGMA_CILK_SIMD
	even when flag_preprocess_only.

	* c-c++-common/cilk-plus/PS/vectorlength-2.c: New test.
	* c-c++-common/cilk-plus/PS/vectorlength-3.c: New test.

From-SVN: r208268
This commit is contained in:
Jakub Jelinek 2014-03-03 08:27:46 +01:00 committed by Jakub Jelinek
parent 79c7fda6d5
commit b3bdf019b7
5 changed files with 45 additions and 1 deletions

View File

@ -1,3 +1,9 @@
2014-03-03 Jakub Jelinek <jakub@redhat.com>
* c-pragma.c (c_pp_lookup_pragma): Handle PRAGMA_CILK_SIMD.
(init_pragma): Call cpp_register_deferred_pragma for PRAGMA_CILK_SIMD
even when flag_preprocess_only.
2014-02-26 Jason Merrill <jason@redhat.com>
PR c++/59231

View File

@ -1221,6 +1221,13 @@ c_pp_lookup_pragma (unsigned int id, const char **space, const char **name)
return;
}
if (id == PRAGMA_CILK_SIMD)
{
*space = NULL;
*name = "simd";
return;
}
if (id >= PRAGMA_FIRST_EXTERNAL
&& (id < PRAGMA_FIRST_EXTERNAL + registered_pp_pragmas.length ()))
{
@ -1384,7 +1391,7 @@ init_pragma (void)
omp_pragmas_simd[i].id, true, true);
}
if (flag_cilkplus && !flag_preprocess_only)
if (flag_cilkplus)
cpp_register_deferred_pragma (parse_in, NULL, "simd", PRAGMA_CILK_SIMD,
true, false);

View File

@ -1,3 +1,8 @@
2014-03-03 Jakub Jelinek <jakub@redhat.com>
* c-c++-common/cilk-plus/PS/vectorlength-2.c: New test.
* c-c++-common/cilk-plus/PS/vectorlength-3.c: New test.
2014-03-02 Jan Hubicka <hubicka@ucw.cz>
PR ipa/60150

View File

@ -0,0 +1,12 @@
/* { dg-do compile } */
/* { dg-options "-O2 -fcilkplus" } */
#define vl(n) vectorlength(2*n)
void
foo (int *a, int *b, int *c)
{
int i;
#pragma simd vl(4)
for (i = 0; i < 64; i++)
a[i] = b[i] * c[i];
}

View File

@ -0,0 +1,14 @@
/* { dg-do compile } */
/* { dg-options "-O2 -fcilkplus -save-temps" } */
#define vl(n) vectorlength(2*n)
void
foo (int *a, int *b, int *c)
{
int i;
#pragma simd vl(4)
for (i = 0; i < 64; i++)
a[i] = b[i] * c[i];
}
/* { dg-final { cleanup-saved-temps } } */