// RUN: %libomptarget-compilexx-run-and-check-generic | |
#include <algorithm> | |
extern "C" int printf(const char *, ...); | |
// std::equal is lowered to libc function memcmp. | |
void test_memcpy() { | |
#pragma omp target | |
{ | |
int x[2] = {0, 0}; | |
int y[2] = {0, 0}; | |
int z[2] = {0, 1}; | |
bool eq1 = std::equal(x, x + 2, y); | |
bool eq2 = std::equal(x, x + 2, z); | |
bool r = eq1 && !eq2; | |
printf("memcmp: %s\n", r ? "PASS" : "FAIL"); | |
} | |
} | |
int main(int argc, char *argv[]) { | |
test_memcpy(); | |
return 0; | |
} | |
// CHECK: memcmp: PASS |