Index: f95-lang.c
===================================================================
--- f95-lang.c	(revision 215540)
+++ f95-lang.c	(working copy)
@@ -960,6 +960,10 @@ gfc_init_builtin_functions (void)
                                     void_type_node, NULL_TREE);
   gfc_define_builtin ("__builtin_isnan", ftype, BUILT_IN_ISNAN,
 		      "__builtin_isnan", ATTR_CONST_NOTHROW_LEAF_LIST);
+  gfc_define_builtin ("__builtin_isfinite", ftype, BUILT_IN_ISFINITE,
+		      "__builtin_isfinite", ATTR_CONST_NOTHROW_LEAF_LIST);
+  gfc_define_builtin ("__builtin_isnormal", ftype, BUILT_IN_ISNORMAL,
+		      "__builtin_isnormal", ATTR_CONST_NOTHROW_LEAF_LIST);
 
 #define DEF_PRIMITIVE_TYPE(ENUM, VALUE) \
   builtin_types[(int) ENUM] = VALUE;
Index: trans-intrinsic.c
===================================================================
--- trans-intrinsic.c	(revision 215540)
+++ trans-intrinsic.c	(working copy)
@@ -5290,7 +5290,7 @@ gfc_conv_intrinsic_isnan (gfc_se * se, g
 
   gfc_conv_intrinsic_function_args (se, expr, &arg, 1);
   se->expr = build_call_expr_loc (input_location,
-				  builtin_decl_explicit (BUILT_IN_ISNAN),
+				  builtin_decl_explicit (BUILT_IN_ISFINITE),
 				  1, arg);
   STRIP_TYPE_NOPS (se->expr);
   se->expr = fold_convert (gfc_typenode_for_spec (&expr->ts), se->expr);
