From d4042feb2d3d06b92f378b31e791dd7fdf70832d Mon Sep 17 00:00:00 2001
From: Ben Barsdell <bbarsdell@nvidia.com>
Date: Mon, 1 Jun 2020 16:38:55 +1000
Subject: [PATCH] Re-enable __builtin_expect when building with NVCC

- NVCC supports this construct as of CUDA 9.0
---
 tensorflow/core/platform/macros.h | 6 +-----
 1 file changed, 1 insertion(+), 5 deletions(-)

diff --git a/tensorflow/core/platform/macros.h b/tensorflow/core/platform/macros.h
index 62e5e01b3cc..57773c54e3e 100644
--- a/tensorflow/core/platform/macros.h
+++ b/tensorflow/core/platform/macros.h
@@ -79,11 +79,7 @@ limitations under the License.
 // analysis. Giving it this information can help it optimize for the
 // common case in the absence of better information (ie.
 // -fprofile-arcs).
-//
-// We need to disable this for GPU builds, though, since nvcc8 and older
-// don't recognize `__builtin_expect` as a builtin, and fail compilation.
-#if (!defined(__NVCC__)) && \
-    (TF_HAS_BUILTIN(__builtin_expect) || (defined(__GNUC__) && __GNUC__ >= 3))
+#if TF_HAS_BUILTIN(__builtin_expect) || (defined(__GNUC__) && __GNUC__ >= 3)
 #define TF_PREDICT_FALSE(x) (__builtin_expect(x, 0))
 #define TF_PREDICT_TRUE(x) (__builtin_expect(!!(x), 1))
 #else