+2015-12-19  Sujoy Saraswati  <sujoy.saraswati@hpe.com>
+
+       PR tree-optimization/61441
+       * real.c (real_issignaling_nan): New.
+       * real.h (real_issignaling_nan, REAL_VALUE_ISSIGNALING_NAN): New.
+
 2015-13-18  John David Anglin  <danglin@gcc.gnu.org>
 
        PR target/68729
 
   return (r->cl == rvc_nan);
 }
 
+/* Determine whether a floating-point value X is a signaling NaN.  */ 
+bool real_issignaling_nan (const REAL_VALUE_TYPE *r)
+{
+  return real_isnan (r) && r->signalling;
+}
+
 /* Determine whether a floating-point value X is finite.  */
 
 bool
 
 /* Determine whether a floating-point value X is a NaN.  */
 extern bool real_isnan (const REAL_VALUE_TYPE *);
 
+/* Determine whether a floating-point value X is a signaling NaN.  */
+extern bool real_issignaling_nan (const REAL_VALUE_TYPE *);
+
 /* Determine whether a floating-point value X is finite.  */
 extern bool real_isfinite (const REAL_VALUE_TYPE *);
 
 /* Determine whether a floating-point value X is a NaN.  */
 #define REAL_VALUE_ISNAN(x)            real_isnan (&(x))
 
+/* Determine whether a floating-point value X is a signaling NaN.  */ 
+#define REAL_VALUE_ISSIGNALING_NAN(x)  real_issignaling_nan (&(x))
+
 /* Determine whether a floating-point value X is negative.  */
 #define REAL_VALUE_NEGATIVE(x)         real_isneg (&(x))