#pragma omp parallel for for( ; dsvc < dsvc_end; ++dsvc, ++ssvc ) { if ( ! *dsvc ) *dsvc = *ssvc; } #### /* Do it. */ #pragma omp parallel for for( o = 0; o < len; ++o ) { if ( ! *( dsvc + o ) ) *(dsvc+o) = *(ssvc+o); } #### Rate moritz_inplace dio_openmp swap dio_noopenmp avar_tye_c_inplace avar_c_inplace dio_c moritz_inplace 1948/s -- -64% -66% -68% -69% -73% -83% dio_openmp 5344/s 174% -- -7% -13% -15% -26% -54% swap 5745/s 195% 8% -- -6% -9% -20% -50% dio_noopenmp 6124/s 214% 15% 7% -- -3% -15% -47% avar_tye_c_inplace 6286/s 223% 18% 9% 3% -- -12% -45% avar_c_inplace 7178/s 269% 34% 25% 17% 14% -- -38% dio_c 11495/s 490% 115% 100% 88% 83% 60% --