[OpenMP] Overload `std::isnan` and friends multiple times for the GPU

Authored by jdoerfert on Aug 12 2020, 2:45 PM.


[OpenMP] Overload std::isnan and friends multiple times for the GPU

std::isnan and friends can be found in two variants in the wild, one
returns bool, as the standard defines it, one returns int, as the C
macros do. So far we kinda hoped the system versions of these functions
will work for people, e.g. they are definitions that can be compiled for
the target. We know that is not the case always so we leverage the
disable_implicit_base OpenMP context extension to specialize both
versions of these functions without causing an invalid redeclaration.

Reviewed By: JonChesterfield, tra

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