[OpenMP] Support `std::complex` math functions in target regions

Authored by jdoerfert on Aug 6 2020, 1:46 PM.


[OpenMP] Support std::complex math functions in target regions

The last (big) missing piece to get "math" working in OpenMP target
regions (that I know of) was complex math functions, e.g.,
std::sin(std::complex<double>). With this patch we overload the system
template functions for these operations with versions that have been
distilled from libcxx/include/complex. We use the same

`omp begin/end declare variant`

mechanism we use for other math functions before, except that we this
time overload templates (via D85735).

Reviewed By: JonChesterfield

Differential Revision: https://reviews.llvm.org/D85777