117706Sjulian/* $NetBSD: unordtf2.c,v 1.1 2014/01/30 19:06:54 matt Exp $ */ 217706Sjulian 317706Sjulian/* 417706Sjulian * Written by Richard Earnshaw, 2003. This file is in the Public Domain. 517706Sjulian */ 617706Sjulian 717706Sjulian#include "softfloat-for-gcc.h" 817706Sjulian#include "milieu.h" 917706Sjulian#include "softfloat.h" 1017706Sjulian 1117706Sjulian#include <sys/cdefs.h> 1217706Sjulian#if defined(LIBC_SCCS) && !defined(lint) 1317706Sjulian__RCSID("$NetBSD: unordtf2.c,v 1.1 2014/01/30 19:06:54 matt Exp $"); 1417706Sjulian#endif /* LIBC_SCCS and not lint */ 1517706Sjulian 1617706Sjulian#ifdef FLOAT128 1717706Sjulian 1817706Sjulianflag __unordtf2(float128, float128); 1917706Sjulian 2017706Sjulianflag 2117706Sjulian__unordtf2(float128 a, float128 b) 2217706Sjulian{ 2317706Sjulian /* 2417706Sjulian * The comparison is unordered if either input is a NaN. 2517706Sjulian * Test for this by comparing each operand with itself. 2617706Sjulian * We must perform both comparisons to correctly check for 2717706Sjulian * signalling NaNs. 2817706Sjulian */ 2917706Sjulian return 1 ^ (float128_eq(a, a) & float128_eq(b, b)); 3017706Sjulian} 3150476Speter 3218480Swosch#endif /* FLOAT128 */ 3317706Sjulian