[RISCV][VLOPT] Add vector narrowing integer right shift instructions to isSupportedIn...
[llvm-project.git] / openmp / runtime / test / misc_bugs / teams-no-par.c
blob0ef8d9ac9667aaf86cde92af0b67709a79d3095f
1 // RUN: %libomp-compile-and-run
2 //
3 // The test checks the teams construct pseudocode executed on host
4 //
6 #include <stdio.h>
7 #include <omp.h>
9 #ifndef N_TEAMS
10 #define N_TEAMS 4
11 #endif
12 #ifndef N_THR
13 #define N_THR 3
14 #endif
16 static int err = 0;
18 // Internal library staff to emulate compiler's code generation:
19 #ifdef __cplusplus
20 extern "C" {
21 #endif
23 typedef struct {
24 int reserved_1;
25 int flags;
26 int reserved_2;
27 int reserved_3;
28 char *psource;
29 } ident_t;
31 static ident_t dummy_loc = {0, 2, 0, 0, ";dummyFile;dummyFunc;0;0;;"};
33 int __kmpc_global_thread_num(void*);
34 void __kmpc_push_num_teams(ident_t const*, int, int, int);
35 void __kmpc_fork_teams(ident_t const*, int argc, void *microtask, ...);
37 #ifdef __cplusplus
39 #endif
41 // Outlined entry point:
42 void foo(int *gtid, int *tid, int *nt)
43 { // start "serial" execution by master threads of each team
44 if ( nt ) {
45 printf(" team %d, param %d\n", omp_get_team_num(), *nt);
46 } else {
47 printf("ERROR: teams before parallel: gtid, tid: %d %d, bad pointer: %p\n", *gtid, *tid, nt);
48 err++;
49 return;
53 int main()
55 int nt = 4;
56 int th = __kmpc_global_thread_num(NULL); // registers initial thread
57 __kmpc_push_num_teams(&dummy_loc, th, N_TEAMS, N_THR);
58 __kmpc_fork_teams(&dummy_loc, 1, &foo, &nt); // pass 1 shared parameter "nt"
59 if (err)
60 printf("failed with %d errors\n",err);
61 else
62 printf("passed\n");
63 return err;