From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-io1-xd30.google.com (mail-io1-xd30.google.com [IPv6:2607:f8b0:4864:20::d30]) by sourceware.org (Postfix) with ESMTPS id 06378385841B; Sat, 10 Jun 2023 15:21:42 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 06378385841B Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=gmail.com Received: by mail-io1-xd30.google.com with SMTP id ca18e2360f4ac-777abee746cso14905439f.0; Sat, 10 Jun 2023 08:21:41 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20221208; t=1686410501; x=1689002501; h=references:to:cc:in-reply-to:date:subject:mime-version:message-id :from:from:to:cc:subject:date:message-id:reply-to; bh=OJ6XEdfG/WJVgO5LqsupAU69a6EL1sQVW8xEj93psCQ=; b=jfR0Ek7kW4t21hcBPMjHoYU8pYdL+GrGMkdRPIL+fJSsL2+OZGC0HkvtV15zT1eZ2e 5sSMbrYn38+Ne6k9cntOpRCy6s7NEot4QxV+ZS/3uBCIRjGrYxxETAVpmA/bnvyu6liV Knh4DxXy4IhbDVOZTCfMI7oRGBQXnp+dfPyfqmWu9Lua0stKZTcWneVGy8wL65VLGWm1 rm7bImcicgyR/xR6yQ6yP9tebklSc1d4adVBEjchWbEaIRH85rQWXznuoQHAqbbRYeN9 mrqptX/gXtjwEXK4gZrXXU8W2QzSLH1Fn/NuUbcudjzOahGECi7cHRJvOcJZ4xXoRMNO fiXg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1686410501; x=1689002501; h=references:to:cc:in-reply-to:date:subject:mime-version:message-id :from:x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=OJ6XEdfG/WJVgO5LqsupAU69a6EL1sQVW8xEj93psCQ=; b=CAh3n8JUVfSdDlsBT2oHPvrCSXTHTgZXKvTZqZdFCNNfJSO9bY6O21qbQFGhQ+Qr4X KXavkce+AUkqwbJkBCFnLip0VwvfHwKvFuacG3N9Ori50ffMCyQF6kR+bvWSEL/OoEIo SiBK4jfoHje7GNmbAwX+OGYOLj71VY2IYZjLbN4c6or9o5udlramzLljw7eooKnGDxZZ i8TXQvu2SmTqZzSPQVVcy+xc5KcoyVXWBOWfblJSu+N1YgBPyi9McrkKGobVKcBr+oCZ fywatGjqB36bfg/KV7YMIGUnlI+46arOiMbfND6MYlNPgSa7G06STNhmzrFGHcmzoijf QcBg== X-Gm-Message-State: AC+VfDwQf9D0U2FVVnznnIyW3aBCzi6NAnNz7dlz0Sq0h3rG+wtZFXOQ R0RIjJymLLw7ggAtQlIWGeU= X-Google-Smtp-Source: ACHHUZ4en9Rsj5ia3pynuUw3WzfW8yxKn27UQ9w10aVeSO7cQKPsq6h/oIP4Mo0DfApNzvMuztDPUA== X-Received: by 2002:a05:6602:1545:b0:774:93a3:f163 with SMTP id h5-20020a056602154500b0077493a3f163mr3211469iow.0.1686410501053; Sat, 10 Jun 2023 08:21:41 -0700 (PDT) Received: from smtpclient.apple ([208.103.177.80]) by smtp.gmail.com with ESMTPSA id em18-20020a0566384db200b00411b4acc990sm1591961jab.7.2023.06.10.08.21.40 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Sat, 10 Jun 2023 08:21:40 -0700 (PDT) From: FX Coudert Message-Id: Content-Type: multipart/mixed; boundary="Apple-Mail=_37C4D926-BF10-4E38-9956-B9E004C047D9" Mime-Version: 1.0 (Mac OS X Mail 16.0 \(3731.600.7\)) Subject: Re: [PATCH] Fortran: add IEEE_QUIET_* and IEEE_SIGNALING_* comparisons Date: Sat, 10 Jun 2023 17:21:29 +0200 In-Reply-To: <8d3773e6-58a4-ec38-cfd1-f4fb7666e7e3@gmx.de> Cc: Harald Anlauf via Fortran , gcc-patches@gcc.gnu.org To: Harald Anlauf References: <8d3773e6-58a4-ec38-cfd1-f4fb7666e7e3@gmx.de> X-Mailer: Apple Mail (2.3731.600.7) X-Spam-Status: No, score=-1.7 required=5.0 tests=BAYES_00,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,FREEMAIL_FROM,KAM_SHORT,RCVD_IN_DNSWL_NONE,SPF_HELO_NONE,SPF_PASS,TXREP,T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org List-Id: --Apple-Mail=_37C4D926-BF10-4E38-9956-B9E004C047D9 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset=us-ascii Hi Harald, > I just looked at that thread. I guess if you answer Mikael's > questions at > https://gcc.gnu.org/pipermail/gcc-patches/2022-September/601744.html > the patch will be fine. Amended patch, adding the required testing of signalling vs. quiet = behaviour. I still need to get an OK on the middle-end part first, but I consider = the Fortran part approved. Thanks, FX --Apple-Mail=_37C4D926-BF10-4E38-9956-B9E004C047D9 Content-Disposition: attachment; filename=0001-Add-__builtin_iseqsig.patch Content-Type: application/octet-stream; x-unix-mode=0644; name="0001-Add-__builtin_iseqsig.patch" Content-Transfer-Encoding: quoted-printable =46rom=2046833574721f363cbbde032dcf8205340eeae468=20Mon=20Sep=2017=20= 00:00:00=202001=0AFrom:=20Francois-Xavier=20Coudert=20= =0ADate:=20Thu,=201=20Sep=202022=2022:49:49=20= +0200=0ASubject:=20[PATCH=201/2]=20Add=20__builtin_iseqsig()=0A=0A= iseqsig()=20is=20a=20C2x=20library=20function,=20for=20signaling=20= floating-point=0Aequality=20checks.=20=20Provide=20a=20GCC-builtin=20for=20= it,=20which=20is=20folded=20to=0Aa=20series=20of=20comparisons.=0A=0A= 2022-09-01=20=20Francois-Xavier=20Coudert=20=20=0A= =0A=09PR=20middle-end/77928=0A=0Agcc/=0A=09*=20doc/extend.texi:=20= Document=20iseqsig=20builtin.=0A=09*=20builtins.cc=20= (fold_builtin_iseqsig):=20New=20function.=0A=09(fold_builtin_2):=20= Handle=20BUILT_IN_ISEQSIG.=0A=09(is_inexpensive_builtin):=20Handle=20= BUILT_IN_ISEQSIG.=0A=09*=20builtins.def=20(BUILT_IN_ISEQSIG):=20New=20= built-in.=0A=0Agcc/c-family/=0A=09*=20c-common.cc=20= (check_builtin_function_arguments):=0A=09Handle=20BUILT_IN_ISEQSIG.=0A=0A= gcc/testsuite/=0A=09*=20gcc.dg/torture/builtin-iseqsig-1.c:=20New=20= test.=0A=09*=20gcc.dg/torture/builtin-iseqsig-2.c:=20New=20test.=0A=09*=20= gcc.dg/torture/builtin-iseqsig-3.c:=20New=20test.=0A---=0A=20= gcc/builtins.cc=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20|=20=2041=20+++++++=0A=20= gcc/builtins.def=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20|=20=20=201=20+=0A=20= gcc/c-family/c-common.cc=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20|=20=20=201=20+=0A=20gcc/doc/extend.texi=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20|=20=20=20= 7=20+-=0A=20.../gcc.dg/torture/builtin-iseqsig-1.c=20=20=20=20=20=20=20=20= |=20113=20++++++++++++++++++=0A=20.../gcc.dg/torture/builtin-iseqsig-2.c=20= =20=20=20=20=20=20=20|=20113=20++++++++++++++++++=0A=20= .../gcc.dg/torture/builtin-iseqsig-3.c=20=20=20=20=20=20=20=20|=20113=20= ++++++++++++++++++=0A=207=20files=20changed,=20386=20insertions(+),=203=20= deletions(-)=0A=20create=20mode=20100644=20= gcc/testsuite/gcc.dg/torture/builtin-iseqsig-1.c=0A=20create=20mode=20= 100644=20gcc/testsuite/gcc.dg/torture/builtin-iseqsig-2.c=0A=20create=20= mode=20100644=20gcc/testsuite/gcc.dg/torture/builtin-iseqsig-3.c=0A=0A= diff=20--git=20a/gcc/builtins.cc=20b/gcc/builtins.cc=0Aindex=20= 8400adaf5b4..9fd44cf7fcd=20100644=0A---=20a/gcc/builtins.cc=0A+++=20= b/gcc/builtins.cc=0A@@=20-171,6=20+171,7=20@@=20static=20tree=20= fold_builtin_fabs=20(location_t,=20tree,=20tree);=0A=20static=20tree=20= fold_builtin_abs=20(location_t,=20tree,=20tree);=0A=20static=20tree=20= fold_builtin_unordered_cmp=20(location_t,=20tree,=20tree,=20tree,=20enum=20= tree_code,=0A=20=09=09=09=09=09enum=20tree_code);=0A+static=20tree=20= fold_builtin_iseqsig=20(location_t,=20tree,=20tree);=0A=20static=20tree=20= fold_builtin_varargs=20(location_t,=20tree,=20tree*,=20int);=0A=20=0A=20= static=20tree=20fold_builtin_strpbrk=20(location_t,=20tree,=20tree,=20= tree,=20tree);=0A@@=20-9445,6=20+9446,42=20@@=20= fold_builtin_unordered_cmp=20(location_t=20loc,=20tree=20fndecl,=20tree=20= arg0,=20tree=20arg1,=0A=20=09=09=20=20=20=20=20=20fold_build2_loc=20= (loc,=20code,=20type,=20arg0,=20arg1));=0A=20}=0A=20=0A+/*=20Fold=20a=20= call=20to=20__builtin_iseqsig().=20=20ARG0=20and=20ARG1=20are=20the=20= arguments.=0A+=20=20=20After=20choosing=20the=20wider=20floating-point=20= type=20for=20the=20comparison,=0A+=20=20=20the=20code=20is=20folded=20= to:=0A+=20=20=20=20=20SAVE_EXPR=20>=3D=20SAVE_EXPR=20&&=20= SAVE_EXPR=20<=3D=20SAVE_EXPR=20=20*/=0A+=0A+static=20tree=0A= +fold_builtin_iseqsig=20(location_t=20loc,=20tree=20arg0,=20tree=20arg1)=0A= +{=0A+=20=20tree=20type0,=20type1;=0A+=20=20enum=20tree_code=20code0,=20= code1;=0A+=20=20tree=20cmp1,=20cmp2,=20cmp_type=20=3D=20NULL_TREE;=0A+=0A= +=20=20type0=20=3D=20TREE_TYPE=20(arg0);=0A+=20=20type1=20=3D=20= TREE_TYPE=20(arg1);=0A+=0A+=20=20code0=20=3D=20TREE_CODE=20(type0);=0A+=20= =20code1=20=3D=20TREE_CODE=20(type1);=0A+=0A+=20=20if=20(code0=20=3D=3D=20= REAL_TYPE=20&&=20code1=20=3D=3D=20REAL_TYPE)=0A+=20=20=20=20/*=20Choose=20= the=20wider=20of=20two=20real=20types.=20=20*/=0A+=20=20=20=20cmp_type=20= =3D=20TYPE_PRECISION=20(type0)=20>=3D=20TYPE_PRECISION=20(type1)=0A+=20=20= =20=20=20=20?=20type0=20:=20type1;=0A+=20=20else=20if=20(code0=20=3D=3D=20= REAL_TYPE=20&&=20code1=20=3D=3D=20INTEGER_TYPE)=0A+=20=20=20=20cmp_type=20= =3D=20type0;=0A+=20=20else=20if=20(code0=20=3D=3D=20INTEGER_TYPE=20&&=20= code1=20=3D=3D=20REAL_TYPE)=0A+=20=20=20=20cmp_type=20=3D=20type1;=0A+=0A= +=20=20arg0=20=3D=20builtin_save_expr=20(fold_convert_loc=20(loc,=20= cmp_type,=20arg0));=0A+=20=20arg1=20=3D=20builtin_save_expr=20= (fold_convert_loc=20(loc,=20cmp_type,=20arg1));=0A+=0A+=20=20cmp1=20=3D=20= fold_build2_loc=20(loc,=20GE_EXPR,=20integer_type_node,=20arg0,=20arg1);=0A= +=20=20cmp2=20=3D=20fold_build2_loc=20(loc,=20LE_EXPR,=20= integer_type_node,=20arg0,=20arg1);=0A+=0A+=20=20return=20= fold_build2_loc=20(loc,=20TRUTH_AND_EXPR,=20integer_type_node,=20cmp1,=20= cmp2);=0A+}=0A+=0A=20/*=20Fold=20= __builtin_{,s,u}{add,sub,mul}{,l,ll}_overflow,=20either=20into=20normal=0A= =20=20=20=20arithmetics=20if=20it=20can=20never=20overflow,=20or=20into=20= internal=20functions=20that=0A=20=20=20=20return=20both=20result=20of=20= arithmetics=20and=20overflowed=20boolean=20flag=20in=0A@@=20-9833,6=20= +9870,9=20@@=20fold_builtin_2=20(location_t=20loc,=20tree=20expr,=20tree=20= fndecl,=20tree=20arg0,=20tree=20arg1)=0A=20=09=09=09=09=09=20arg0,=20= arg1,=20UNORDERED_EXPR,=0A=20=09=09=09=09=09=20NOP_EXPR);=0A=20=0A+=20=20= =20=20case=20BUILT_IN_ISEQSIG:=0A+=20=20=20=20=20=20return=20= fold_builtin_iseqsig=20(loc,=20arg0,=20arg1);=0A+=0A=20=20=20=20=20=20=20= /*=20We=20do=20the=20folding=20for=20va_start=20in=20the=20expander.=20=20= */=0A=20=20=20=20=20case=20BUILT_IN_VA_START:=0A=20=20=20=20=20=20=20= break;=0A@@=20-11343,6=20+11383,7=20@@=20is_inexpensive_builtin=20(tree=20= decl)=0A=20=20=20=20=20=20=20case=20BUILT_IN_ISLESSEQUAL:=0A=20=20=20=20=20= =20=20case=20BUILT_IN_ISLESSGREATER:=0A=20=20=20=20=20=20=20case=20= BUILT_IN_ISUNORDERED:=0A+=20=20=20=20=20=20case=20BUILT_IN_ISEQSIG:=0A=20= =20=20=20=20=20=20case=20BUILT_IN_VA_ARG_PACK:=0A=20=20=20=20=20=20=20= case=20BUILT_IN_VA_ARG_PACK_LEN:=0A=20=20=20=20=20=20=20case=20= BUILT_IN_VA_COPY:=0Adiff=20--git=20a/gcc/builtins.def=20= b/gcc/builtins.def=0Aindex=204ad95a12f83..8cc282c1b87=20100644=0A---=20= a/gcc/builtins.def=0A+++=20b/gcc/builtins.def=0A@@=20-1023,6=20+1023,7=20= @@=20DEF_GCC_BUILTIN=20=20=20=20=20=20=20=20(BUILT_IN_ISLESS,=20= "isless",=20BT_FN_INT_VAR,=20ATTR_CONST_NOT=0A=20DEF_GCC_BUILTIN=20=20=20= =20=20=20=20=20(BUILT_IN_ISLESSEQUAL,=20"islessequal",=20BT_FN_INT_VAR,=20= ATTR_CONST_NOTHROW_TYPEGENERIC_LEAF)=0A=20DEF_GCC_BUILTIN=20=20=20=20=20=20= =20=20(BUILT_IN_ISLESSGREATER,=20"islessgreater",=20BT_FN_INT_VAR,=20= ATTR_CONST_NOTHROW_TYPEGENERIC_LEAF)=0A=20DEF_GCC_BUILTIN=20=20=20=20=20=20= =20=20(BUILT_IN_ISUNORDERED,=20"isunordered",=20BT_FN_INT_VAR,=20= ATTR_CONST_NOTHROW_TYPEGENERIC_LEAF)=0A+DEF_GCC_BUILTIN=20=20=20=20=20=20= =20=20(BUILT_IN_ISEQSIG,=20"iseqsig",=20BT_FN_INT_VAR,=20= ATTR_CONST_NOTHROW_TYPEGENERIC_LEAF)=0A=20DEF_GCC_BUILTIN=20=20=20=20=20=20= =20=20(BUILT_IN_ISSIGNALING,=20"issignaling",=20BT_FN_INT_VAR,=20= ATTR_CONST_NOTHROW_TYPEGENERIC_LEAF)=0A=20DEF_LIB_BUILTIN=20=20=20=20=20=20= =20=20(BUILT_IN_LABS,=20"labs",=20BT_FN_LONG_LONG,=20= ATTR_CONST_NOTHROW_LEAF_LIST)=0A=20DEF_C99_BUILTIN=20=20=20=20=20=20=20=20= (BUILT_IN_LLABS,=20"llabs",=20BT_FN_LONGLONG_LONGLONG,=20= ATTR_CONST_NOTHROW_LEAF_LIST)=0Adiff=20--git=20= a/gcc/c-family/c-common.cc=20b/gcc/c-family/c-common.cc=0Aindex=20= 9c8eed5442a..9e1ce2a2bc9=20100644=0A---=20a/gcc/c-family/c-common.cc=0A= +++=20b/gcc/c-family/c-common.cc=0A@@=20-6330,6=20+6330,7=20@@=20= check_builtin_function_arguments=20(location_t=20loc,=20vec=20= arg_loc,=0A=20=20=20=20=20case=20BUILT_IN_ISLESSEQUAL:=0A=20=20=20=20=20= case=20BUILT_IN_ISLESSGREATER:=0A=20=20=20=20=20case=20= BUILT_IN_ISUNORDERED:=0A+=20=20=20=20case=20BUILT_IN_ISEQSIG:=0A=20=20=20= =20=20=20=20if=20(builtin_function_validate_nargs=20(loc,=20fndecl,=20= nargs,=202))=0A=20=09{=0A=20=09=20=20enum=20tree_code=20code0,=20code1;=0A= diff=20--git=20a/gcc/doc/extend.texi=20b/gcc/doc/extend.texi=0Aindex=20= cdbd4b34a35..360389df9dc=20100644=0A---=20a/gcc/doc/extend.texi=0A+++=20= b/gcc/doc/extend.texi=0A@@=20-13017,6=20+13017,7=20@@=20is=20called=20= and=20the=20@var{flag}=20argument=20passed=20to=20it.=0A=20@node=20Other=20= Builtins=0A=20@section=20Other=20Built-in=20Functions=20Provided=20by=20= GCC=0A=20@cindex=20built-in=20functions=0A+@findex=20__builtin_iseqsig=0A= =20@findex=20__builtin_isfinite=0A=20@findex=20__builtin_isnormal=0A=20= @findex=20__builtin_isgreater=0A@@=20-13568,9=20+13569,9=20@@=20the=20= same=20names=20as=20the=20standard=20macros=20(=20@code{isgreater},=0A=20= @code{islessgreater},=20and=20@code{isunordered})=20,=20with=20= @code{__builtin_}=0A=20prefixed.=20=20We=20intend=20for=20a=20library=20= implementor=20to=20be=20able=20to=20simply=0A=20@code{#define}=20each=20= standard=20macro=20to=20its=20built-in=20equivalent.=0A-In=20the=20same=20= fashion,=20GCC=20provides=20@code{fpclassify},=20@code{isfinite},=0A= -@code{isinf_sign},=20@code{isnormal}=20and=20@code{signbit}=20built-ins=20= used=20with=0A-@code{__builtin_}=20prefixed.=20=20The=20@code{isinf}=20= and=20@code{isnan}=0A+In=20the=20same=20fashion,=20GCC=20provides=20= @code{fpclassify},=20@code{iseqsig},=0A+@code{isfinite},=20= @code{isinf_sign},=20@code{isnormal}=20and=20@code{signbit}=20built-ins=0A= +used=20with=20@code{__builtin_}=20prefixed.=20=20The=20@code{isinf}=20= and=20@code{isnan}=0A=20built-in=20functions=20appear=20both=20with=20= and=20without=20the=20@code{__builtin_}=20prefix.=0A=20With=20= @code{-ffinite-math-only}=20option=20the=20@code{isinf}=20and=20= @code{isnan}=0A=20built-in=20functions=20will=20always=20return=200.=0A= diff=20--git=20a/gcc/testsuite/gcc.dg/torture/builtin-iseqsig-1.c=20= b/gcc/testsuite/gcc.dg/torture/builtin-iseqsig-1.c=0Anew=20file=20mode=20= 100644=0Aindex=2000000000000..c66431fff1c=0A---=20/dev/null=0A+++=20= b/gcc/testsuite/gcc.dg/torture/builtin-iseqsig-1.c=0A@@=20-0,0=20+1,113=20= @@=0A+/*=20{=20dg-do=20run=20{=20xfail=20powerpc*-*-*=20}=20}=20*/=0A+/*=20= remove=20the=20xfail=20for=20powerpc=20when=20pr58684=20is=20fixed=20*/=0A= +/*=20{=20dg-add-options=20ieee=20}=20*/=0A+/*=20{=20= dg-additional-options=20"-fsignaling-nans"=20}=20*/=0A+/*=20{=20= dg-require-effective-target=20fenv_exceptions=20}=20*/=0A+=0A+#include=20= =0A+=0A+void=0A+ftrue=20(float=20x,=20float=20y)=0A+{=0A+=20=20= if=20(!__builtin_iseqsig=20(x,=20y))=0A+=20=20=20=20__builtin_abort=20= ();=0A+}=0A+=0A+void=0A+ffalse=20(float=20x,=20float=20y)=0A+{=0A+=20=20= if=20(__builtin_iseqsig=20(x,=20y))=0A+=20=20=20=20__builtin_abort=20();=0A= +}=0A+=0A+int=0A+main=20()=0A+{=0A+=20=20volatile=20float=20f1,=20f2;=0A= +=0A+=20=20f1=20=3D=200.f;=20f2=20=3D=200.f;=0A+=20=20ftrue=20(f1,=20= f2);=0A+=20=20if=20(fetestexcept=20(FE_INVALID))=20__builtin_abort=20();=0A= +=0A+=20=20f1=20=3D=200.f;=20f2=20=3D=20-0.f;=0A+=20=20ftrue=20(f1,=20= f2);=0A+=20=20if=20(fetestexcept=20(FE_INVALID))=20__builtin_abort=20();=0A= +=0A+=20=20f1=20=3D=200.f;=20f2=20=3D=201.f;=0A+=20=20ffalse=20(f1,=20= f2);=0A+=20=20if=20(fetestexcept=20(FE_INVALID))=20__builtin_abort=20();=0A= +=0A+=20=20f1=20=3D=20-0.f;=20f2=20=3D=201.f;=0A+=20=20ffalse=20(f1,=20= f2);=0A+=20=20if=20(fetestexcept=20(FE_INVALID))=20__builtin_abort=20();=0A= +=0A+=20=20f1=20=3D=200.f;=20f2=20=3D=20__builtin_inff();=0A+=20=20= ffalse=20(f1,=20f2);=0A+=20=20if=20(fetestexcept=20(FE_INVALID))=20= __builtin_abort=20();=0A+=0A+=20=20f1=20=3D=20-0.f;=20f2=20=3D=20= __builtin_inff();=0A+=20=20ffalse=20(f1,=20f2);=0A+=20=20if=20= (fetestexcept=20(FE_INVALID))=20__builtin_abort=20();=0A+=0A+=20=20f1=20= =3D=200.f;=20f2=20=3D=20__builtin_nanf("");=0A+=20=20ffalse=20(f1,=20= f2);=0A+=20=20if=20(!fetestexcept=20(FE_INVALID))=20__builtin_abort=20= ();=0A+=20=20feclearexcept=20(FE_INVALID);=0A+=0A+=20=20f1=20=3D=20-0.f;=20= f2=20=3D=20__builtin_nanf("");=0A+=20=20ffalse=20(f1,=20f2);=0A+=20=20if=20= (!fetestexcept=20(FE_INVALID))=20__builtin_abort=20();=0A+=20=20= feclearexcept=20(FE_INVALID);=0A+=0A+=20=20f1=20=3D=201.f;=20f2=20=3D=20= 1.f;=0A+=20=20ftrue=20(f1,=20f2);=0A+=20=20if=20(fetestexcept=20= (FE_INVALID))=20__builtin_abort=20();=0A+=0A+=20=20f1=20=3D=201.f;=20f2=20= =3D=200.f;=0A+=20=20ffalse=20(f1,=20f2);=0A+=20=20if=20(fetestexcept=20= (FE_INVALID))=20__builtin_abort=20();=0A+=0A+=20=20f1=20=3D=201.f;=20f2=20= =3D=20-0.f;=0A+=20=20ffalse=20(f1,=20f2);=0A+=20=20if=20(fetestexcept=20= (FE_INVALID))=20__builtin_abort=20();=0A+=0A+=20=20f1=20=3D=201.f;=20f2=20= =3D=20__builtin_inff();=0A+=20=20ffalse=20(f1,=20f2);=0A+=20=20if=20= (fetestexcept=20(FE_INVALID))=20__builtin_abort=20();=0A+=0A+=20=20f1=20= =3D=201.f;=20f2=20=3D=20__builtin_nanf("");=0A+=20=20ffalse=20(f1,=20= f2);=0A+=20=20if=20(!fetestexcept=20(FE_INVALID))=20__builtin_abort=20= ();=0A+=20=20feclearexcept=20(FE_INVALID);=0A+=0A+=20=20f1=20=3D=20= __builtin_inff();=20f2=20=3D=20__builtin_inff();=0A+=20=20ftrue=20(f1,=20= f2);=0A+=20=20if=20(fetestexcept=20(FE_INVALID))=20__builtin_abort=20();=0A= +=0A+=20=20f1=20=3D=20__builtin_inff();=20f2=20=3D=20__builtin_nanf("");=0A= +=20=20ffalse=20(f1,=20f2);=0A+=20=20if=20(!fetestexcept=20(FE_INVALID))=20= __builtin_abort=20();=0A+=20=20feclearexcept=20(FE_INVALID);=0A+=0A+=20=20= f1=20=3D=20__builtin_nanf("");=20f2=20=3D=20__builtin_nanf("");=0A+=20=20= ffalse=20(f1,=20f2);=0A+=20=20if=20(!fetestexcept=20(FE_INVALID))=20= __builtin_abort=20();=0A+=20=20feclearexcept=20(FE_INVALID);=0A+=0A+=20=20= f1=20=3D=20__builtin_nansf("");=20f2=20=3D=201.f;=0A+=20=20ffalse=20(f1,=20= f2);=0A+=20=20if=20(!fetestexcept=20(FE_INVALID))=20__builtin_abort=20= ();=0A+=20=20feclearexcept=20(FE_INVALID);=0A+=0A+=20=20f1=20=3D=201.f;=20= f2=20=3D=20__builtin_nansf("");=0A+=20=20ffalse=20(f1,=20f2);=0A+=20=20= if=20(!fetestexcept=20(FE_INVALID))=20__builtin_abort=20();=0A+=20=20= feclearexcept=20(FE_INVALID);=0A+=0A+=20=20f1=20=3D=20= __builtin_nansf("");=20f2=20=3D=20__builtin_nansf("");=0A+=20=20ffalse=20= (f1,=20f2);=0A+=20=20if=20(!fetestexcept=20(FE_INVALID))=20= __builtin_abort=20();=0A+=20=20feclearexcept=20(FE_INVALID);=0A+=0A+=20=20= return=200;=0A+}=0Adiff=20--git=20= a/gcc/testsuite/gcc.dg/torture/builtin-iseqsig-2.c=20= b/gcc/testsuite/gcc.dg/torture/builtin-iseqsig-2.c=0Anew=20file=20mode=20= 100644=0Aindex=2000000000000..03625b07e6f=0A---=20/dev/null=0A+++=20= b/gcc/testsuite/gcc.dg/torture/builtin-iseqsig-2.c=0A@@=20-0,0=20+1,113=20= @@=0A+/*=20{=20dg-do=20run=20{=20xfail=20powerpc*-*-*=20}=20}=20*/=0A+/*=20= remove=20the=20xfail=20for=20powerpc=20when=20pr58684=20is=20fixed=20*/=0A= +/*=20{=20dg-add-options=20ieee=20}=20*/=0A+/*=20{=20= dg-additional-options=20"-fsignaling-nans"=20}=20*/=0A+/*=20{=20= dg-require-effective-target=20fenv_exceptions_double=20}=20*/=0A+=0A= +#include=20=0A+=0A+void=0A+ftrue=20(double=20x,=20double=20y)=0A= +{=0A+=20=20if=20(!__builtin_iseqsig=20(x,=20y))=0A+=20=20=20=20= __builtin_abort=20();=0A+}=0A+=0A+void=0A+ffalse=20(double=20x,=20double=20= y)=0A+{=0A+=20=20if=20(__builtin_iseqsig=20(x,=20y))=0A+=20=20=20=20= __builtin_abort=20();=0A+}=0A+=0A+int=0A+main=20()=0A+{=0A+=20=20= volatile=20double=20f1,=20f2;=0A+=0A+=20=20f1=20=3D=200.;=20f2=20=3D=20= 0.;=0A+=20=20ftrue=20(f1,=20f2);=0A+=20=20if=20(fetestexcept=20= (FE_INVALID))=20__builtin_abort=20();=0A+=0A+=20=20f1=20=3D=200.;=20f2=20= =3D=20-0.;=0A+=20=20ftrue=20(f1,=20f2);=0A+=20=20if=20(fetestexcept=20= (FE_INVALID))=20__builtin_abort=20();=0A+=0A+=20=20f1=20=3D=200.;=20f2=20= =3D=201.;=0A+=20=20ffalse=20(f1,=20f2);=0A+=20=20if=20(fetestexcept=20= (FE_INVALID))=20__builtin_abort=20();=0A+=0A+=20=20f1=20=3D=20-0.;=20f2=20= =3D=201.;=0A+=20=20ffalse=20(f1,=20f2);=0A+=20=20if=20(fetestexcept=20= (FE_INVALID))=20__builtin_abort=20();=0A+=0A+=20=20f1=20=3D=200.;=20f2=20= =3D=20__builtin_inf();=0A+=20=20ffalse=20(f1,=20f2);=0A+=20=20if=20= (fetestexcept=20(FE_INVALID))=20__builtin_abort=20();=0A+=0A+=20=20f1=20= =3D=20-0.;=20f2=20=3D=20__builtin_inf();=0A+=20=20ffalse=20(f1,=20f2);=0A= +=20=20if=20(fetestexcept=20(FE_INVALID))=20__builtin_abort=20();=0A+=0A= +=20=20f1=20=3D=200.;=20f2=20=3D=20__builtin_nan("");=0A+=20=20ffalse=20= (f1,=20f2);=0A+=20=20if=20(!fetestexcept=20(FE_INVALID))=20= __builtin_abort=20();=0A+=20=20feclearexcept=20(FE_INVALID);=0A+=0A+=20=20= f1=20=3D=20-0.;=20f2=20=3D=20__builtin_nan("");=0A+=20=20ffalse=20(f1,=20= f2);=0A+=20=20if=20(!fetestexcept=20(FE_INVALID))=20__builtin_abort=20= ();=0A+=20=20feclearexcept=20(FE_INVALID);=0A+=0A+=20=20f1=20=3D=201.;=20= f2=20=3D=201.;=0A+=20=20ftrue=20(f1,=20f2);=0A+=20=20if=20(fetestexcept=20= (FE_INVALID))=20__builtin_abort=20();=0A+=0A+=20=20f1=20=3D=201.;=20f2=20= =3D=200.;=0A+=20=20ffalse=20(f1,=20f2);=0A+=20=20if=20(fetestexcept=20= (FE_INVALID))=20__builtin_abort=20();=0A+=0A+=20=20f1=20=3D=201.;=20f2=20= =3D=20-0.;=0A+=20=20ffalse=20(f1,=20f2);=0A+=20=20if=20(fetestexcept=20= (FE_INVALID))=20__builtin_abort=20();=0A+=0A+=20=20f1=20=3D=201.;=20f2=20= =3D=20__builtin_inf();=0A+=20=20ffalse=20(f1,=20f2);=0A+=20=20if=20= (fetestexcept=20(FE_INVALID))=20__builtin_abort=20();=0A+=0A+=20=20f1=20= =3D=201.;=20f2=20=3D=20__builtin_nan("");=0A+=20=20ffalse=20(f1,=20f2);=0A= +=20=20if=20(!fetestexcept=20(FE_INVALID))=20__builtin_abort=20();=0A+=20= =20feclearexcept=20(FE_INVALID);=0A+=0A+=20=20f1=20=3D=20= __builtin_inf();=20f2=20=3D=20__builtin_inf();=0A+=20=20ftrue=20(f1,=20= f2);=0A+=20=20if=20(fetestexcept=20(FE_INVALID))=20__builtin_abort=20();=0A= +=0A+=20=20f1=20=3D=20__builtin_inf();=20f2=20=3D=20__builtin_nan("");=0A= +=20=20ffalse=20(f1,=20f2);=0A+=20=20if=20(!fetestexcept=20(FE_INVALID))=20= __builtin_abort=20();=0A+=20=20feclearexcept=20(FE_INVALID);=0A+=0A+=20=20= f1=20=3D=20__builtin_nan("");=20f2=20=3D=20__builtin_nan("");=0A+=20=20= ffalse=20(f1,=20f2);=0A+=20=20if=20(!fetestexcept=20(FE_INVALID))=20= __builtin_abort=20();=0A+=20=20feclearexcept=20(FE_INVALID);=0A+=0A+=20=20= f1=20=3D=20__builtin_nans("");=20f2=20=3D=201.;=0A+=20=20ffalse=20(f1,=20= f2);=0A+=20=20if=20(!fetestexcept=20(FE_INVALID))=20__builtin_abort=20= ();=0A+=20=20feclearexcept=20(FE_INVALID);=0A+=0A+=20=20f1=20=3D=201.;=20= f2=20=3D=20__builtin_nans("");=0A+=20=20ffalse=20(f1,=20f2);=0A+=20=20if=20= (!fetestexcept=20(FE_INVALID))=20__builtin_abort=20();=0A+=20=20= feclearexcept=20(FE_INVALID);=0A+=0A+=20=20f1=20=3D=20= __builtin_nans("");=20f2=20=3D=20__builtin_nans("");=0A+=20=20ffalse=20= (f1,=20f2);=0A+=20=20if=20(!fetestexcept=20(FE_INVALID))=20= __builtin_abort=20();=0A+=20=20feclearexcept=20(FE_INVALID);=0A+=0A+=20=20= return=200;=0A+}=0Adiff=20--git=20= a/gcc/testsuite/gcc.dg/torture/builtin-iseqsig-3.c=20= b/gcc/testsuite/gcc.dg/torture/builtin-iseqsig-3.c=0Anew=20file=20mode=20= 100644=0Aindex=2000000000000..ed24035264a=0A---=20/dev/null=0A+++=20= b/gcc/testsuite/gcc.dg/torture/builtin-iseqsig-3.c=0A@@=20-0,0=20+1,113=20= @@=0A+/*=20{=20dg-do=20run=20{=20xfail=20powerpc*-*-*=20}=20}=20*/=0A+/*=20= remove=20the=20xfail=20for=20powerpc=20when=20pr58684=20is=20fixed=20*/=0A= +/*=20{=20dg-add-options=20ieee=20}=20*/=0A+/*=20{=20= dg-additional-options=20"-fsignaling-nans"=20}=20*/=0A+/*=20{=20= dg-require-effective-target=20fenv_exceptions_long_double=20}=20*/=0A+=0A= +#include=20=0A+=0A+void=0A+ftrue=20(long=20double=20x,=20long=20= double=20y)=0A+{=0A+=20=20if=20(!__builtin_iseqsig=20(x,=20y))=0A+=20=20=20= =20__builtin_abort=20();=0A+}=0A+=0A+void=0A+ffalse=20(long=20double=20= x,=20long=20double=20y)=0A+{=0A+=20=20if=20(__builtin_iseqsig=20(x,=20= y))=0A+=20=20=20=20__builtin_abort=20();=0A+}=0A+=0A+int=0A+main=20()=0A= +{=0A+=20=20volatile=20long=20double=20f1,=20f2;=0A+=0A+=20=20f1=20=3D=20= 0.L;=20f2=20=3D=200.f;=0A+=20=20ftrue=20(f1,=20f2);=0A+=20=20if=20= (fetestexcept=20(FE_INVALID))=20__builtin_abort=20();=0A+=0A+=20=20f1=20= =3D=200.L;=20f2=20=3D=20-0.f;=0A+=20=20ftrue=20(f1,=20f2);=0A+=20=20if=20= (fetestexcept=20(FE_INVALID))=20__builtin_abort=20();=0A+=0A+=20=20f1=20= =3D=200.L;=20f2=20=3D=201.f;=0A+=20=20ffalse=20(f1,=20f2);=0A+=20=20if=20= (fetestexcept=20(FE_INVALID))=20__builtin_abort=20();=0A+=0A+=20=20f1=20= =3D=20-0.L;=20f2=20=3D=201.f;=0A+=20=20ffalse=20(f1,=20f2);=0A+=20=20if=20= (fetestexcept=20(FE_INVALID))=20__builtin_abort=20();=0A+=0A+=20=20f1=20= =3D=200.L;=20f2=20=3D=20__builtin_infl();=0A+=20=20ffalse=20(f1,=20f2);=0A= +=20=20if=20(fetestexcept=20(FE_INVALID))=20__builtin_abort=20();=0A+=0A= +=20=20f1=20=3D=20-0.L;=20f2=20=3D=20__builtin_infl();=0A+=20=20ffalse=20= (f1,=20f2);=0A+=20=20if=20(fetestexcept=20(FE_INVALID))=20= __builtin_abort=20();=0A+=0A+=20=20f1=20=3D=200.L;=20f2=20=3D=20= __builtin_nanl("");=0A+=20=20ffalse=20(f1,=20f2);=0A+=20=20if=20= (!fetestexcept=20(FE_INVALID))=20__builtin_abort=20();=0A+=20=20= feclearexcept=20(FE_INVALID);=0A+=0A+=20=20f1=20=3D=20-0.L;=20f2=20=3D=20= __builtin_nanl("");=0A+=20=20ffalse=20(f1,=20f2);=0A+=20=20if=20= (!fetestexcept=20(FE_INVALID))=20__builtin_abort=20();=0A+=20=20= feclearexcept=20(FE_INVALID);=0A+=0A+=20=20f1=20=3D=201.L;=20f2=20=3D=20= 1.f;=0A+=20=20ftrue=20(f1,=20f2);=0A+=20=20if=20(fetestexcept=20= (FE_INVALID))=20__builtin_abort=20();=0A+=0A+=20=20f1=20=3D=201.L;=20f2=20= =3D=200.f;=0A+=20=20ffalse=20(f1,=20f2);=0A+=20=20if=20(fetestexcept=20= (FE_INVALID))=20__builtin_abort=20();=0A+=0A+=20=20f1=20=3D=201.L;=20f2=20= =3D=20-0.f;=0A+=20=20ffalse=20(f1,=20f2);=0A+=20=20if=20(fetestexcept=20= (FE_INVALID))=20__builtin_abort=20();=0A+=0A+=20=20f1=20=3D=201.L;=20f2=20= =3D=20__builtin_infl();=0A+=20=20ffalse=20(f1,=20f2);=0A+=20=20if=20= (fetestexcept=20(FE_INVALID))=20__builtin_abort=20();=0A+=0A+=20=20f1=20= =3D=201.L;=20f2=20=3D=20__builtin_nanl("");=0A+=20=20ffalse=20(f1,=20= f2);=0A+=20=20if=20(!fetestexcept=20(FE_INVALID))=20__builtin_abort=20= ();=0A+=20=20feclearexcept=20(FE_INVALID);=0A+=0A+=20=20f1=20=3D=20= __builtin_infl();=20f2=20=3D=20__builtin_infl();=0A+=20=20ftrue=20(f1,=20= f2);=0A+=20=20if=20(fetestexcept=20(FE_INVALID))=20__builtin_abort=20();=0A= +=0A+=20=20f1=20=3D=20__builtin_infl();=20f2=20=3D=20__builtin_nanl("");=0A= +=20=20ffalse=20(f1,=20f2);=0A+=20=20if=20(!fetestexcept=20(FE_INVALID))=20= __builtin_abort=20();=0A+=20=20feclearexcept=20(FE_INVALID);=0A+=0A+=20=20= f1=20=3D=20__builtin_nanl("");=20f2=20=3D=20__builtin_nanl("");=0A+=20=20= ffalse=20(f1,=20f2);=0A+=20=20if=20(!fetestexcept=20(FE_INVALID))=20= __builtin_abort=20();=0A+=20=20feclearexcept=20(FE_INVALID);=0A+=0A+=20=20= f1=20=3D=20__builtin_nansl("");=20f2=20=3D=201.L;=0A+=20=20ffalse=20(f1,=20= f2);=0A+=20=20if=20(!fetestexcept=20(FE_INVALID))=20__builtin_abort=20= ();=0A+=20=20feclearexcept=20(FE_INVALID);=0A+=0A+=20=20f1=20=3D=201.L;=20= f2=20=3D=20__builtin_nansl("");=0A+=20=20ffalse=20(f1,=20f2);=0A+=20=20= if=20(!fetestexcept=20(FE_INVALID))=20__builtin_abort=20();=0A+=20=20= feclearexcept=20(FE_INVALID);=0A+=0A+=20=20f1=20=3D=20= __builtin_nansl("");=20f2=20=3D=20__builtin_nansl("");=0A+=20=20ffalse=20= (f1,=20f2);=0A+=20=20if=20(!fetestexcept=20(FE_INVALID))=20= __builtin_abort=20();=0A+=20=20feclearexcept=20(FE_INVALID);=0A+=0A+=20=20= return=200;=0A+}=0A--=20=0A2.34.1=0A=0A= --Apple-Mail=_37C4D926-BF10-4E38-9956-B9E004C047D9 Content-Disposition: attachment; filename=0002-Fortran-add-IEEE_QUIET_-and-IEEE_SIGNALING_-comparis.patch Content-Type: application/octet-stream; x-unix-mode=0644; name="0002-Fortran-add-IEEE_QUIET_-and-IEEE_SIGNALING_-comparis.patch" Content-Transfer-Encoding: quoted-printable =46rom=20f6e11ea2402004df57f6997c63913252d67e8355=20Mon=20Sep=2017=20= 00:00:00=202001=0AFrom:=20Francois-Xavier=20Coudert=20= =0ADate:=20Fri,=202=20Sep=202022=2013:27:38=20= +0200=0ASubject:=20[PATCH=202/2]=20Fortran:=20add=20IEEE_QUIET_*=20and=20= IEEE_SIGNALING_*=0A=20comparisons=0A=0AThose=20operations=20were=20added=20= to=20Fortran=202018,=20and=20correspond=20to=0Awell-defined=20IEEE=20= comparison=20operations,=20with=20defined=20signaling=0Asemantics=20for=20= NaNs.=20All=20are=20implemented=20in=20terms=20of=20GCC=20expressions=20= and=0Abuilt-ins,=20with=20no=20library=20support=20needed.=0A=0A= gcc/fortran/=0A=0A=09*=20f95-lang.cc=20(gfc_init_builtin_functions):=20= Add=20__builtin_iseqsig.=0A=09*=20trans-intrinsic.cc=20= (conv_intrinsic_ieee_comparison):=20New=0A=09function.=0A=09= (gfc_conv_ieee_arithmetic_function):=20Handle=20IEEE=20comparisons.=0A=0A= gcc/testsuite/=0A=0A=09*=20gfortran.dg/ieee/comparisons_1.f90:=20New=20= test.=0A=09*=20gfortran.dg/ieee/comparisons_2.f90:=20New=20test.=0A=09*=20= gfortran.dg/ieee/comparisons_3.F90:=20New=20test.=0A=0Alibgfortran/=0A=09= *=20ieee/ieee_arithmetic.F90:=20Add=20IEEE_QUIET_*=20and=0A=09= IEEE_SIGNALING_*=20functions.=0A---=0A=20gcc/fortran/f95-lang.cc=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20|=20=20=202=20= +=0A=20gcc/fortran/trans-intrinsic.cc=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20|=20=2090=20++++=0A=20.../gfortran.dg/ieee/comparisons_1.f90=20= =20=20=20=20=20=20=20|=20282=20++++++++++=0A=20= .../gfortran.dg/ieee/comparisons_2.f90=20=20=20=20=20=20=20=20|=20282=20= ++++++++++=0A=20.../gfortran.dg/ieee/comparisons_3.F90=20=20=20=20=20=20=20= =20|=20487=20++++++++++++++++++=0A=20= libgfortran/ieee/ieee_arithmetic.F90=20=20=20=20=20=20=20=20=20=20|=20=20= 69=20+++=0A=206=20files=20changed,=201212=20insertions(+)=0A=20create=20= mode=20100644=20gcc/testsuite/gfortran.dg/ieee/comparisons_1.f90=0A=20= create=20mode=20100644=20= gcc/testsuite/gfortran.dg/ieee/comparisons_2.f90=0A=20create=20mode=20= 100644=20gcc/testsuite/gfortran.dg/ieee/comparisons_3.F90=0A=0Adiff=20= --git=20a/gcc/fortran/f95-lang.cc=20b/gcc/fortran/f95-lang.cc=0Aindex=20= 9684f1d4921..56722567662=20100644=0A---=20a/gcc/fortran/f95-lang.cc=0A= +++=20b/gcc/fortran/f95-lang.cc=0A@@=20-1033,6=20+1033,8=20@@=20= gfc_init_builtin_functions=20(void)=0A=20=09=09=20=20=20=20=20=20= ATTR_CONST_NOTHROW_LEAF_LIST);=0A=20=20=20gfc_define_builtin=20= ("__builtin_isunordered",=20ftype,=20BUILT_IN_ISUNORDERED,=0A=20=09=09=20= =20=20=20=20=20"__builtin_isunordered",=20ATTR_CONST_NOTHROW_LEAF_LIST);=0A= +=20=20gfc_define_builtin=20("__builtin_iseqsig",=20ftype,=20= BUILT_IN_ISEQSIG,=0A+=09=09=20=20=20=20=20=20"__builtin_iseqsig",=20= ATTR_CONST_NOTHROW_LEAF_LIST);=0A=20=0A=20=0A=20#define=20= DEF_PRIMITIVE_TYPE(ENUM,=20VALUE)=20\=0Adiff=20--git=20= a/gcc/fortran/trans-intrinsic.cc=20b/gcc/fortran/trans-intrinsic.cc=0A= index=20a0e1110c5e0..39f9deacaca=20100644=0A---=20= a/gcc/fortran/trans-intrinsic.cc=0A+++=20= b/gcc/fortran/trans-intrinsic.cc=0A@@=20-10263,6=20+10263,92=20@@=20= conv_intrinsic_ieee_fma=20(gfc_se=20*=20se,=20gfc_expr=20*=20expr)=0A=20= }=0A=20=0A=20=0A+/*=20Generate=20code=20for=20comparison=20functions=20= IEEE_QUIET_*=20and=0A+=20=20=20IEEE_SIGNALING_*.=20=20*/=0A+=0A+static=20= void=0A+conv_intrinsic_ieee_comparison=20(gfc_se=20*=20se,=20gfc_expr=20= *=20expr,=20int=20signaling,=0A+=09=09=09=09const=20char=20*name)=0A+{=0A= +=20=20tree=20args[2];=0A+=20=20tree=20arg1,=20arg2,=20res;=0A+=0A+=20=20= /*=20Evaluate=20arguments=20only=20once.=20=20*/=0A+=20=20= conv_ieee_function_args=20(se,=20expr,=20args,=202);=0A+=20=20arg1=20=3D=20= gfc_evaluate_now=20(args[0],=20&se->pre);=0A+=20=20arg2=20=3D=20= gfc_evaluate_now=20(args[1],=20&se->pre);=0A+=0A+=20=20if=20(startswith=20= (name,=20"eq"))=0A+=20=20=20=20{=0A+=20=20=20=20=20=20if=20(signaling)=0A= +=09res=20=3D=20build_call_expr_loc=20(input_location,=0A+=09=09=09=09=20= =20=20builtin_decl_explicit=20(BUILT_IN_ISEQSIG),=0A+=09=09=09=09=20=20=20= 2,=20arg1,=20arg2);=0A+=20=20=20=20=20=20else=0A+=09res=20=3D=20= fold_build2_loc=20(input_location,=20EQ_EXPR,=20logical_type_node,=0A+=09= =09=09=20=20=20=20=20=20=20arg1,=20arg2);=0A+=20=20=20=20}=0A+=20=20else=20= if=20(startswith=20(name,=20"ne"))=0A+=20=20=20=20{=0A+=20=20=20=20=20=20= if=20(signaling)=0A+=09{=0A+=09=20=20res=20=3D=20build_call_expr_loc=20= (input_location,=0A+=09=09=09=09=20=20=20=20=20builtin_decl_explicit=20= (BUILT_IN_ISEQSIG),=0A+=09=09=09=09=20=20=20=20=202,=20arg1,=20arg2);=0A= +=09=20=20res=20=3D=20fold_build1_loc=20(input_location,=20= TRUTH_NOT_EXPR,=0A+=09=09=09=09=20logical_type_node,=20res);=0A+=09}=0A+=20= =20=20=20=20=20else=0A+=09res=20=3D=20fold_build2_loc=20(input_location,=20= NE_EXPR,=20logical_type_node,=0A+=09=09=09=20=20=20=20=20=20=20arg1,=20= arg2);=0A+=20=20=20=20}=0A+=20=20else=20if=20(startswith=20(name,=20= "ge"))=0A+=20=20=20=20{=0A+=20=20=20=20=20=20if=20(signaling)=0A+=09res=20= =3D=20fold_build2_loc=20(input_location,=20GE_EXPR,=20logical_type_node,=0A= +=09=09=09=20=20=20=20=20=20=20arg1,=20arg2);=0A+=20=20=20=20=20=20else=0A= +=09res=20=3D=20build_call_expr_loc=20(input_location,=0A+=09=09=09=09=20= =20=20builtin_decl_explicit=20(BUILT_IN_ISGREATEREQUAL),=0A+=09=09=09=09=20= =20=202,=20arg1,=20arg2);=0A+=20=20=20=20}=0A+=20=20else=20if=20= (startswith=20(name,=20"gt"))=0A+=20=20=20=20{=0A+=20=20=20=20=20=20if=20= (signaling)=0A+=09res=20=3D=20fold_build2_loc=20(input_location,=20= GT_EXPR,=20logical_type_node,=0A+=09=09=09=20=20=20=20=20=20=20arg1,=20= arg2);=0A+=20=20=20=20=20=20else=0A+=09res=20=3D=20build_call_expr_loc=20= (input_location,=0A+=09=09=09=09=20=20=20builtin_decl_explicit=20= (BUILT_IN_ISGREATER),=0A+=09=09=09=09=20=20=202,=20arg1,=20arg2);=0A+=20=20= =20=20}=0A+=20=20else=20if=20(startswith=20(name,=20"le"))=0A+=20=20=20=20= {=0A+=20=20=20=20=20=20if=20(signaling)=0A+=09res=20=3D=20= fold_build2_loc=20(input_location,=20LE_EXPR,=20logical_type_node,=0A+=09= =09=09=20=20=20=20=20=20=20arg1,=20arg2);=0A+=20=20=20=20=20=20else=0A+=09= res=20=3D=20build_call_expr_loc=20(input_location,=0A+=09=09=09=09=20=20=20= builtin_decl_explicit=20(BUILT_IN_ISLESSEQUAL),=0A+=09=09=09=09=20=20=20= 2,=20arg1,=20arg2);=0A+=20=20=20=20}=0A+=20=20else=20if=20(startswith=20= (name,=20"lt"))=0A+=20=20=20=20{=0A+=20=20=20=20=20=20if=20(signaling)=0A= +=09res=20=3D=20fold_build2_loc=20(input_location,=20LT_EXPR,=20= logical_type_node,=0A+=09=09=09=20=20=20=20=20=20=20arg1,=20arg2);=0A+=20= =20=20=20=20=20else=0A+=09res=20=3D=20build_call_expr_loc=20= (input_location,=0A+=09=09=09=09=20=20=20builtin_decl_explicit=20= (BUILT_IN_ISLESS),=0A+=09=09=09=09=20=20=202,=20arg1,=20arg2);=0A+=20=20=20= =20}=0A+=20=20else=0A+=20=20=20=20gcc_unreachable=20();=0A+=0A+=20=20= se->expr=20=3D=20fold_convert=20(gfc_typenode_for_spec=20(&expr->ts),=20= res);=0A+}=0A+=0A+=0A=20/*=20Generate=20code=20for=20an=20intrinsic=20= function=20from=20the=20IEEE_ARITHMETIC=0A=20=20=20=20module.=20=20*/=0A=20= =0A@@=20-10301,6=20+10387,10=20@@=20gfc_conv_ieee_arithmetic_function=20= (gfc_se=20*=20se,=20gfc_expr=20*=20expr)=0A=20=20=20=20=20= conv_intrinsic_ieee_value=20(se,=20expr);=0A=20=20=20else=20if=20= (startswith=20(name,=20"_gfortran_ieee_fma"))=0A=20=20=20=20=20= conv_intrinsic_ieee_fma=20(se,=20expr);=0A+=20=20else=20if=20(startswith=20= (name,=20"_gfortran_ieee_quiet_"))=0A+=20=20=20=20= conv_intrinsic_ieee_comparison=20(se,=20expr,=200,=20name=20+=2021);=0A+=20= =20else=20if=20(startswith=20(name,=20"_gfortran_ieee_signaling_"))=0A+=20= =20=20=20conv_intrinsic_ieee_comparison=20(se,=20expr,=201,=20name=20+=20= 25);=0A=20=20=20else=0A=20=20=20=20=20/*=20It=20is=20not=20among=20the=20= functions=20we=20translate=20directly.=20=20We=20return=0A=20=20=20=20=20= =20=20=20false,=20so=20a=20library=20function=20call=20is=20emitted.=20=20= */=0Adiff=20--git=20a/gcc/testsuite/gfortran.dg/ieee/comparisons_1.f90=20= b/gcc/testsuite/gfortran.dg/ieee/comparisons_1.f90=0Anew=20file=20mode=20= 100644=0Aindex=2000000000000..39a8abdef69=0A---=20/dev/null=0A+++=20= b/gcc/testsuite/gfortran.dg/ieee/comparisons_1.f90=0A@@=20-0,0=20+1,282=20= @@=0A+!=20{=20dg-do=20run=20}=0A+program=20foo=0A+=20=20=20use=20= ieee_arithmetic=0A+=20=20=20use=20iso_fortran_env=0A+=20=20=20implicit=20= none=0A+=0A+=20=20=20!=20This=20allows=20us=20to=20test=20REAL128=20if=20= it=20exists,=20and=20still=20compile=0A+=20=20=20!=20on=20platforms=20= were=20it=20is=20not=20present=0A+=20=20=20!=20= https://gcc.gnu.org/bugzilla/show_bug.cgi?id=3D89639=0A+=20=20=20= integer,=20parameter=20::=20large=20=3D=20merge(real128,=20real64,=20= real128=20>=200)=0A+=0A+=20=20=20real,=20volatile=20::=20rnan,=20rinf=0A= +=20=20=20double=20precision,=20volatile=20::=20dnan,=20dinf=0A+=20=20=20= real(kind=3Dlarge),=20volatile=20::=20lnan,=20linf=0A+=0A+=20=20=20rinf=20= =3D=20ieee_value(0.,=20ieee_positive_inf)=0A+=20=20=20rnan=20=3D=20= ieee_value(0.,=20ieee_quiet_nan)=0A+=0A+=20=20=20dinf=20=3D=20= ieee_value(0.d0,=20ieee_positive_inf)=0A+=20=20=20dnan=20=3D=20= ieee_value(0.d0,=20ieee_quiet_nan)=0A+=0A+=20=20=20linf=20=3D=20= ieee_value(0._large,=20ieee_positive_inf)=0A+=20=20=20lnan=20=3D=20= ieee_value(0._large,=20ieee_quiet_nan)=0A+=0A+=20=20=20if=20(.not.=20= ieee_quiet_eq=20(0.,=200.))=20stop=201=0A+=20=20=20if=20(.not.=20= ieee_quiet_eq=20(0.,=20-0.))=20stop=202=0A+=20=20=20if=20(.not.=20= ieee_quiet_eq=20(1.,=201.))=20stop=203=0A+=20=20=20if=20(.not.=20= ieee_quiet_eq=20(rinf,=20rinf))=20stop=204=0A+=20=20=20if=20(.not.=20= ieee_quiet_eq=20(-rinf,=20-rinf))=20stop=205=0A+=20=20=20if=20= (ieee_quiet_eq=20(rnan,=20rnan))=20stop=206=0A+=20=20=20if=20= (ieee_quiet_eq=20(0.,=201.))=20stop=207=0A+=20=20=20if=20(ieee_quiet_eq=20= (0.,=20-1.))=20stop=208=0A+=20=20=20if=20(ieee_quiet_eq=20(0.,=20rnan))=20= stop=209=0A+=20=20=20if=20(ieee_quiet_eq=20(1.,=20rnan))=20stop=2010=0A+=20= =20=20if=20(ieee_quiet_eq=20(0.,=20rinf))=20stop=2011=0A+=20=20=20if=20= (ieee_quiet_eq=20(1.,=20rinf))=20stop=2012=0A+=20=20=20if=20= (ieee_quiet_eq=20(rinf,=20rnan))=20stop=2013=0A+=0A+=20=20=20if=20(.not.=20= ieee_quiet_eq=20(0.d0,=200.d0))=20stop=2014=0A+=20=20=20if=20(.not.=20= ieee_quiet_eq=20(0.d0,=20-0.d0))=20stop=2015=0A+=20=20=20if=20(.not.=20= ieee_quiet_eq=20(1.d0,=201.d0))=20stop=2016=0A+=20=20=20if=20(.not.=20= ieee_quiet_eq=20(dinf,=20dinf))=20stop=2017=0A+=20=20=20if=20(.not.=20= ieee_quiet_eq=20(-dinf,=20-dinf))=20stop=2018=0A+=20=20=20if=20= (ieee_quiet_eq=20(dnan,=20dnan))=20stop=2019=0A+=20=20=20if=20= (ieee_quiet_eq=20(0.d0,=201.d0))=20stop=2020=0A+=20=20=20if=20= (ieee_quiet_eq=20(0.d0,=20-1.d0))=20stop=2021=0A+=20=20=20if=20= (ieee_quiet_eq=20(0.d0,=20dnan))=20stop=2022=0A+=20=20=20if=20= (ieee_quiet_eq=20(1.d0,=20dnan))=20stop=2023=0A+=20=20=20if=20= (ieee_quiet_eq=20(0.d0,=20dinf))=20stop=2024=0A+=20=20=20if=20= (ieee_quiet_eq=20(1.d0,=20dinf))=20stop=2025=0A+=20=20=20if=20= (ieee_quiet_eq=20(dinf,=20dnan))=20stop=2026=0A+=0A+=20=20=20if=20(.not.=20= ieee_quiet_eq=20(0._large,=200._large))=20stop=2027=0A+=20=20=20if=20= (.not.=20ieee_quiet_eq=20(0._large,=20-0._large))=20stop=2028=0A+=20=20=20= if=20(.not.=20ieee_quiet_eq=20(1._large,=201._large))=20stop=2029=0A+=20=20= =20if=20(.not.=20ieee_quiet_eq=20(linf,=20linf))=20stop=2030=0A+=20=20=20= if=20(.not.=20ieee_quiet_eq=20(-linf,=20-linf))=20stop=2031=0A+=20=20=20= if=20(ieee_quiet_eq=20(lnan,=20lnan))=20stop=2032=0A+=20=20=20if=20= (ieee_quiet_eq=20(0._large,=201._large))=20stop=2033=0A+=20=20=20if=20= (ieee_quiet_eq=20(0._large,=20-1._large))=20stop=2034=0A+=20=20=20if=20= (ieee_quiet_eq=20(0._large,=20lnan))=20stop=2035=0A+=20=20=20if=20= (ieee_quiet_eq=20(1._large,=20lnan))=20stop=2036=0A+=20=20=20if=20= (ieee_quiet_eq=20(0._large,=20linf))=20stop=2037=0A+=20=20=20if=20= (ieee_quiet_eq=20(1._large,=20linf))=20stop=2038=0A+=20=20=20if=20= (ieee_quiet_eq=20(linf,=20lnan))=20stop=2039=0A+=0A+=0A+=20=20=20if=20= (ieee_quiet_ne=20(0.,=200.))=20stop=2040=0A+=20=20=20if=20(ieee_quiet_ne=20= (0.,=20-0.))=20stop=2041=0A+=20=20=20if=20(ieee_quiet_ne=20(1.,=201.))=20= stop=2042=0A+=20=20=20if=20(ieee_quiet_ne=20(rinf,=20rinf))=20stop=2043=0A= +=20=20=20if=20(ieee_quiet_ne=20(-rinf,=20-rinf))=20stop=2044=0A+=20=20=20= if=20(.not.=20ieee_quiet_ne=20(rnan,=20rnan))=20stop=2045=0A+=20=20=20if=20= (.not.=20ieee_quiet_ne=20(0.,=201.))=20stop=2046=0A+=20=20=20if=20(.not.=20= ieee_quiet_ne=20(0.,=20-1.))=20stop=2047=0A+=20=20=20if=20(.not.=20= ieee_quiet_ne=20(0.,=20rnan))=20stop=2048=0A+=20=20=20if=20(.not.=20= ieee_quiet_ne=20(1.,=20rnan))=20stop=2049=0A+=20=20=20if=20(.not.=20= ieee_quiet_ne=20(0.,=20rinf))=20stop=2050=0A+=20=20=20if=20(.not.=20= ieee_quiet_ne=20(1.,=20rinf))=20stop=2051=0A+=20=20=20if=20(.not.=20= ieee_quiet_ne=20(rinf,=20rnan))=20stop=2052=0A+=0A+=20=20=20if=20= (ieee_quiet_ne=20(0.d0,=200.d0))=20stop=2053=0A+=20=20=20if=20= (ieee_quiet_ne=20(0.d0,=20-0.d0))=20stop=2054=0A+=20=20=20if=20= (ieee_quiet_ne=20(1.d0,=201.d0))=20stop=2055=0A+=20=20=20if=20= (ieee_quiet_ne=20(dinf,=20dinf))=20stop=2056=0A+=20=20=20if=20= (ieee_quiet_ne=20(-dinf,=20-dinf))=20stop=2057=0A+=20=20=20if=20(.not.=20= ieee_quiet_ne=20(dnan,=20dnan))=20stop=2058=0A+=20=20=20if=20(.not.=20= ieee_quiet_ne=20(0.d0,=201.d0))=20stop=2059=0A+=20=20=20if=20(.not.=20= ieee_quiet_ne=20(0.d0,=20-1.d0))=20stop=2060=0A+=20=20=20if=20(.not.=20= ieee_quiet_ne=20(0.d0,=20dnan))=20stop=2061=0A+=20=20=20if=20(.not.=20= ieee_quiet_ne=20(1.d0,=20dnan))=20stop=2062=0A+=20=20=20if=20(.not.=20= ieee_quiet_ne=20(0.d0,=20dinf))=20stop=2063=0A+=20=20=20if=20(.not.=20= ieee_quiet_ne=20(1.d0,=20dinf))=20stop=2064=0A+=20=20=20if=20(.not.=20= ieee_quiet_ne=20(dinf,=20dnan))=20stop=2065=0A+=0A+=20=20=20if=20= (ieee_quiet_ne=20(0._large,=200._large))=20stop=2066=0A+=20=20=20if=20= (ieee_quiet_ne=20(0._large,=20-0._large))=20stop=2067=0A+=20=20=20if=20= (ieee_quiet_ne=20(1._large,=201._large))=20stop=2068=0A+=20=20=20if=20= (ieee_quiet_ne=20(linf,=20linf))=20stop=2069=0A+=20=20=20if=20= (ieee_quiet_ne=20(-linf,=20-linf))=20stop=2070=0A+=20=20=20if=20(.not.=20= ieee_quiet_ne=20(lnan,=20lnan))=20stop=2071=0A+=20=20=20if=20(.not.=20= ieee_quiet_ne=20(0._large,=201._large))=20stop=2072=0A+=20=20=20if=20= (.not.=20ieee_quiet_ne=20(0._large,=20-1._large))=20stop=2073=0A+=20=20=20= if=20(.not.=20ieee_quiet_ne=20(0._large,=20lnan))=20stop=2074=0A+=20=20=20= if=20(.not.=20ieee_quiet_ne=20(1._large,=20lnan))=20stop=2075=0A+=20=20=20= if=20(.not.=20ieee_quiet_ne=20(0._large,=20linf))=20stop=2076=0A+=20=20=20= if=20(.not.=20ieee_quiet_ne=20(1._large,=20linf))=20stop=2077=0A+=20=20=20= if=20(.not.=20ieee_quiet_ne=20(linf,=20lnan))=20stop=2078=0A+=0A+=0A+=20=20= =20if=20(.not.=20ieee_quiet_le=20(0.,=200.))=20stop=2079=0A+=20=20=20if=20= (.not.=20ieee_quiet_le=20(0.,=20-0.))=20stop=2080=0A+=20=20=20if=20= (.not.=20ieee_quiet_le=20(1.,=201.))=20stop=2081=0A+=20=20=20if=20(.not.=20= ieee_quiet_le=20(rinf,=20rinf))=20stop=2082=0A+=20=20=20if=20(.not.=20= ieee_quiet_le=20(-rinf,=20-rinf))=20stop=2083=0A+=20=20=20if=20= (ieee_quiet_le=20(rnan,=20rnan))=20stop=2084=0A+=20=20=20if=20(.not.=20= ieee_quiet_le=20(0.,=201.))=20stop=2085=0A+=20=20=20if=20(ieee_quiet_le=20= (0.,=20-1.))=20stop=2086=0A+=20=20=20if=20(ieee_quiet_le=20(0.,=20rnan))=20= stop=2087=0A+=20=20=20if=20(ieee_quiet_le=20(1.,=20rnan))=20stop=2088=0A= +=20=20=20if=20(.not.=20ieee_quiet_le=20(0.,=20rinf))=20stop=2089=0A+=20=20= =20if=20(.not.=20ieee_quiet_le=20(1.,=20rinf))=20stop=2090=0A+=20=20=20= if=20(ieee_quiet_le=20(rinf,=20rnan))=20stop=2091=0A+=0A+=20=20=20if=20= (.not.=20ieee_quiet_le=20(0.d0,=200.d0))=20stop=2092=0A+=20=20=20if=20= (.not.=20ieee_quiet_le=20(0.d0,=20-0.d0))=20stop=2093=0A+=20=20=20if=20= (.not.=20ieee_quiet_le=20(1.d0,=201.d0))=20stop=2094=0A+=20=20=20if=20= (.not.=20ieee_quiet_le=20(dinf,=20dinf))=20stop=2095=0A+=20=20=20if=20= (.not.=20ieee_quiet_le=20(-dinf,=20-dinf))=20stop=2096=0A+=20=20=20if=20= (ieee_quiet_le=20(dnan,=20dnan))=20stop=2097=0A+=20=20=20if=20(.not.=20= ieee_quiet_le=20(0.d0,=201.d0))=20stop=2098=0A+=20=20=20if=20= (ieee_quiet_le=20(0.d0,=20-1.d0))=20stop=2099=0A+=20=20=20if=20= (ieee_quiet_le=20(0.d0,=20dnan))=20stop=20100=0A+=20=20=20if=20= (ieee_quiet_le=20(1.d0,=20dnan))=20stop=20101=0A+=20=20=20if=20(.not.=20= ieee_quiet_le=20(0.d0,=20dinf))=20stop=20102=0A+=20=20=20if=20(.not.=20= ieee_quiet_le=20(1.d0,=20dinf))=20stop=20103=0A+=20=20=20if=20= (ieee_quiet_le=20(dinf,=20dnan))=20stop=20104=0A+=0A+=20=20=20if=20= (.not.=20ieee_quiet_le=20(0._large,=200._large))=20stop=20105=0A+=20=20=20= if=20(.not.=20ieee_quiet_le=20(0._large,=20-0._large))=20stop=20106=0A+=20= =20=20if=20(.not.=20ieee_quiet_le=20(1._large,=201._large))=20stop=20107=0A= +=20=20=20if=20(.not.=20ieee_quiet_le=20(linf,=20linf))=20stop=20108=0A+=20= =20=20if=20(.not.=20ieee_quiet_le=20(-linf,=20-linf))=20stop=20109=0A+=20= =20=20if=20(ieee_quiet_le=20(lnan,=20lnan))=20stop=20110=0A+=20=20=20if=20= (.not.=20ieee_quiet_le=20(0._large,=201._large))=20stop=20111=0A+=20=20=20= if=20(ieee_quiet_le=20(0._large,=20-1._large))=20stop=20112=0A+=20=20=20= if=20(ieee_quiet_le=20(0._large,=20lnan))=20stop=20113=0A+=20=20=20if=20= (ieee_quiet_le=20(1._large,=20lnan))=20stop=20114=0A+=20=20=20if=20= (.not.=20ieee_quiet_le=20(0._large,=20linf))=20stop=20115=0A+=20=20=20if=20= (.not.=20ieee_quiet_le=20(1._large,=20linf))=20stop=20116=0A+=20=20=20if=20= (ieee_quiet_le=20(linf,=20lnan))=20stop=20117=0A+=0A+=0A+=20=20=20if=20= (.not.=20ieee_quiet_ge=20(0.,=200.))=20stop=20118=0A+=20=20=20if=20= (.not.=20ieee_quiet_ge=20(0.,=20-0.))=20stop=20119=0A+=20=20=20if=20= (.not.=20ieee_quiet_ge=20(1.,=201.))=20stop=20120=0A+=20=20=20if=20= (.not.=20ieee_quiet_ge=20(rinf,=20rinf))=20stop=20121=0A+=20=20=20if=20= (.not.=20ieee_quiet_ge=20(-rinf,=20-rinf))=20stop=20122=0A+=20=20=20if=20= (ieee_quiet_ge=20(rnan,=20rnan))=20stop=20123=0A+=20=20=20if=20= (ieee_quiet_ge=20(0.,=201.))=20stop=20124=0A+=20=20=20if=20(.not.=20= ieee_quiet_ge=20(0.,=20-1.))=20stop=20125=0A+=20=20=20if=20= (ieee_quiet_ge=20(0.,=20rnan))=20stop=20126=0A+=20=20=20if=20= (ieee_quiet_ge=20(1.,=20rnan))=20stop=20127=0A+=20=20=20if=20= (ieee_quiet_ge=20(0.,=20rinf))=20stop=20128=0A+=20=20=20if=20= (ieee_quiet_ge=20(1.,=20rinf))=20stop=20129=0A+=20=20=20if=20= (ieee_quiet_ge=20(rinf,=20rnan))=20stop=20130=0A+=0A+=20=20=20if=20= (.not.=20ieee_quiet_ge=20(0.d0,=200.d0))=20stop=20131=0A+=20=20=20if=20= (.not.=20ieee_quiet_ge=20(0.d0,=20-0.d0))=20stop=20132=0A+=20=20=20if=20= (.not.=20ieee_quiet_ge=20(1.d0,=201.d0))=20stop=20133=0A+=20=20=20if=20= (.not.=20ieee_quiet_ge=20(dinf,=20dinf))=20stop=20134=0A+=20=20=20if=20= (.not.=20ieee_quiet_ge=20(-dinf,=20-dinf))=20stop=20135=0A+=20=20=20if=20= (ieee_quiet_ge=20(dnan,=20dnan))=20stop=20136=0A+=20=20=20if=20= (ieee_quiet_ge=20(0.d0,=201.d0))=20stop=20137=0A+=20=20=20if=20(.not.=20= ieee_quiet_ge=20(0.d0,=20-1.d0))=20stop=20138=0A+=20=20=20if=20= (ieee_quiet_ge=20(0.d0,=20dnan))=20stop=20139=0A+=20=20=20if=20= (ieee_quiet_ge=20(1.d0,=20dnan))=20stop=20140=0A+=20=20=20if=20= (ieee_quiet_ge=20(0.d0,=20dinf))=20stop=20141=0A+=20=20=20if=20= (ieee_quiet_ge=20(1.d0,=20dinf))=20stop=20142=0A+=20=20=20if=20= (ieee_quiet_ge=20(dinf,=20dnan))=20stop=20143=0A+=0A+=20=20=20if=20= (.not.=20ieee_quiet_ge=20(0._large,=200._large))=20stop=20144=0A+=20=20=20= if=20(.not.=20ieee_quiet_ge=20(0._large,=20-0._large))=20stop=20145=0A+=20= =20=20if=20(.not.=20ieee_quiet_ge=20(1._large,=201._large))=20stop=20146=0A= +=20=20=20if=20(.not.=20ieee_quiet_ge=20(linf,=20linf))=20stop=20147=0A+=20= =20=20if=20(.not.=20ieee_quiet_ge=20(-linf,=20-linf))=20stop=20148=0A+=20= =20=20if=20(ieee_quiet_ge=20(lnan,=20lnan))=20stop=20149=0A+=20=20=20if=20= (ieee_quiet_ge=20(0._large,=201._large))=20stop=20150=0A+=20=20=20if=20= (.not.=20ieee_quiet_ge=20(0._large,=20-1._large))=20stop=20151=0A+=20=20=20= if=20(ieee_quiet_ge=20(0._large,=20lnan))=20stop=20152=0A+=20=20=20if=20= (ieee_quiet_ge=20(1._large,=20lnan))=20stop=20153=0A+=20=20=20if=20= (ieee_quiet_ge=20(0._large,=20linf))=20stop=20154=0A+=20=20=20if=20= (ieee_quiet_ge=20(1._large,=20linf))=20stop=20155=0A+=20=20=20if=20= (ieee_quiet_ge=20(linf,=20lnan))=20stop=20156=0A+=0A+=0A+=20=20=20if=20= (ieee_quiet_lt=20(0.,=200.))=20stop=20157=0A+=20=20=20if=20= (ieee_quiet_lt=20(0.,=20-0.))=20stop=20158=0A+=20=20=20if=20= (ieee_quiet_lt=20(1.,=201.))=20stop=20159=0A+=20=20=20if=20= (ieee_quiet_lt=20(rinf,=20rinf))=20stop=20160=0A+=20=20=20if=20= (ieee_quiet_lt=20(-rinf,=20-rinf))=20stop=20161=0A+=20=20=20if=20= (ieee_quiet_lt=20(rnan,=20rnan))=20stop=20162=0A+=20=20=20if=20(.not.=20= ieee_quiet_lt=20(0.,=201.))=20stop=20163=0A+=20=20=20if=20(ieee_quiet_lt=20= (0.,=20-1.))=20stop=20164=0A+=20=20=20if=20(ieee_quiet_lt=20(0.,=20= rnan))=20stop=20165=0A+=20=20=20if=20(ieee_quiet_lt=20(1.,=20rnan))=20= stop=20166=0A+=20=20=20if=20(.not.=20ieee_quiet_lt=20(0.,=20rinf))=20= stop=20167=0A+=20=20=20if=20(.not.=20ieee_quiet_lt=20(1.,=20rinf))=20= stop=20168=0A+=20=20=20if=20(ieee_quiet_lt=20(rinf,=20rnan))=20stop=20= 169=0A+=0A+=20=20=20if=20(ieee_quiet_lt=20(0.d0,=200.d0))=20stop=20170=0A= +=20=20=20if=20(ieee_quiet_lt=20(0.d0,=20-0.d0))=20stop=20171=0A+=20=20=20= if=20(ieee_quiet_lt=20(1.d0,=201.d0))=20stop=20172=0A+=20=20=20if=20= (ieee_quiet_lt=20(dinf,=20dinf))=20stop=20173=0A+=20=20=20if=20= (ieee_quiet_lt=20(-dinf,=20-dinf))=20stop=20174=0A+=20=20=20if=20= (ieee_quiet_lt=20(dnan,=20dnan))=20stop=20175=0A+=20=20=20if=20(.not.=20= ieee_quiet_lt=20(0.d0,=201.d0))=20stop=20176=0A+=20=20=20if=20= (ieee_quiet_lt=20(0.d0,=20-1.d0))=20stop=20177=0A+=20=20=20if=20= (ieee_quiet_lt=20(0.d0,=20dnan))=20stop=20178=0A+=20=20=20if=20= (ieee_quiet_lt=20(1.d0,=20dnan))=20stop=20179=0A+=20=20=20if=20(.not.=20= ieee_quiet_lt=20(0.d0,=20dinf))=20stop=20180=0A+=20=20=20if=20(.not.=20= ieee_quiet_lt=20(1.d0,=20dinf))=20stop=20181=0A+=20=20=20if=20= (ieee_quiet_lt=20(dinf,=20dnan))=20stop=20182=0A+=0A+=20=20=20if=20= (ieee_quiet_lt=20(0._large,=200._large))=20stop=20183=0A+=20=20=20if=20= (ieee_quiet_lt=20(0._large,=20-0._large))=20stop=20184=0A+=20=20=20if=20= (ieee_quiet_lt=20(1._large,=201._large))=20stop=20185=0A+=20=20=20if=20= (ieee_quiet_lt=20(linf,=20linf))=20stop=20186=0A+=20=20=20if=20= (ieee_quiet_lt=20(-linf,=20-linf))=20stop=20187=0A+=20=20=20if=20= (ieee_quiet_lt=20(lnan,=20lnan))=20stop=20188=0A+=20=20=20if=20(.not.=20= ieee_quiet_lt=20(0._large,=201._large))=20stop=20189=0A+=20=20=20if=20= (ieee_quiet_lt=20(0._large,=20-1._large))=20stop=20190=0A+=20=20=20if=20= (ieee_quiet_lt=20(0._large,=20lnan))=20stop=20191=0A+=20=20=20if=20= (ieee_quiet_lt=20(1._large,=20lnan))=20stop=20192=0A+=20=20=20if=20= (.not.=20ieee_quiet_lt=20(0._large,=20linf))=20stop=20193=0A+=20=20=20if=20= (.not.=20ieee_quiet_lt=20(1._large,=20linf))=20stop=20194=0A+=20=20=20if=20= (ieee_quiet_lt=20(linf,=20lnan))=20stop=20195=0A+=0A+=0A+=20=20=20if=20= (ieee_quiet_gt=20(0.,=200.))=20stop=20196=0A+=20=20=20if=20= (ieee_quiet_gt=20(0.,=20-0.))=20stop=20197=0A+=20=20=20if=20= (ieee_quiet_gt=20(1.,=201.))=20stop=20198=0A+=20=20=20if=20= (ieee_quiet_gt=20(rinf,=20rinf))=20stop=20199=0A+=20=20=20if=20= (ieee_quiet_gt=20(-rinf,=20-rinf))=20stop=20200=0A+=20=20=20if=20= (ieee_quiet_gt=20(rnan,=20rnan))=20stop=20201=0A+=20=20=20if=20= (ieee_quiet_gt=20(0.,=201.))=20stop=20202=0A+=20=20=20if=20(.not.=20= ieee_quiet_gt=20(0.,=20-1.))=20stop=20203=0A+=20=20=20if=20= (ieee_quiet_gt=20(0.,=20rnan))=20stop=20204=0A+=20=20=20if=20= (ieee_quiet_gt=20(1.,=20rnan))=20stop=20205=0A+=20=20=20if=20= (ieee_quiet_gt=20(0.,=20rinf))=20stop=20206=0A+=20=20=20if=20= (ieee_quiet_gt=20(1.,=20rinf))=20stop=20207=0A+=20=20=20if=20= (ieee_quiet_gt=20(rinf,=20rnan))=20stop=20208=0A+=0A+=20=20=20if=20= (ieee_quiet_gt=20(0.d0,=200.d0))=20stop=20209=0A+=20=20=20if=20= (ieee_quiet_gt=20(0.d0,=20-0.d0))=20stop=20210=0A+=20=20=20if=20= (ieee_quiet_gt=20(1.d0,=201.d0))=20stop=20211=0A+=20=20=20if=20= (ieee_quiet_gt=20(dinf,=20dinf))=20stop=20212=0A+=20=20=20if=20= (ieee_quiet_gt=20(-dinf,=20-dinf))=20stop=20213=0A+=20=20=20if=20= (ieee_quiet_gt=20(dnan,=20dnan))=20stop=20214=0A+=20=20=20if=20= (ieee_quiet_gt=20(0.d0,=201.d0))=20stop=20215=0A+=20=20=20if=20(.not.=20= ieee_quiet_gt=20(0.d0,=20-1.d0))=20stop=20216=0A+=20=20=20if=20= (ieee_quiet_gt=20(0.d0,=20dnan))=20stop=20217=0A+=20=20=20if=20= (ieee_quiet_gt=20(1.d0,=20dnan))=20stop=20218=0A+=20=20=20if=20= (ieee_quiet_gt=20(0.d0,=20dinf))=20stop=20219=0A+=20=20=20if=20= (ieee_quiet_gt=20(1.d0,=20dinf))=20stop=20220=0A+=20=20=20if=20= (ieee_quiet_gt=20(dinf,=20dnan))=20stop=20221=0A+=0A+=20=20=20if=20= (ieee_quiet_gt=20(0._large,=200._large))=20stop=20222=0A+=20=20=20if=20= (ieee_quiet_gt=20(0._large,=20-0._large))=20stop=20223=0A+=20=20=20if=20= (ieee_quiet_gt=20(1._large,=201._large))=20stop=20224=0A+=20=20=20if=20= (ieee_quiet_gt=20(linf,=20linf))=20stop=20225=0A+=20=20=20if=20= (ieee_quiet_gt=20(-linf,=20-linf))=20stop=20226=0A+=20=20=20if=20= (ieee_quiet_gt=20(lnan,=20lnan))=20stop=20227=0A+=20=20=20if=20= (ieee_quiet_gt=20(0._large,=201._large))=20stop=20228=0A+=20=20=20if=20= (.not.=20ieee_quiet_gt=20(0._large,=20-1._large))=20stop=20229=0A+=20=20=20= if=20(ieee_quiet_gt=20(0._large,=20lnan))=20stop=20230=0A+=20=20=20if=20= (ieee_quiet_gt=20(1._large,=20lnan))=20stop=20231=0A+=20=20=20if=20= (ieee_quiet_gt=20(0._large,=20linf))=20stop=20232=0A+=20=20=20if=20= (ieee_quiet_gt=20(1._large,=20linf))=20stop=20233=0A+=20=20=20if=20= (ieee_quiet_gt=20(linf,=20lnan))=20stop=20234=0A+=0A+end=20program=20foo=0A= diff=20--git=20a/gcc/testsuite/gfortran.dg/ieee/comparisons_2.f90=20= b/gcc/testsuite/gfortran.dg/ieee/comparisons_2.f90=0Anew=20file=20mode=20= 100644=0Aindex=2000000000000..35aa1fcba1b=0A---=20/dev/null=0A+++=20= b/gcc/testsuite/gfortran.dg/ieee/comparisons_2.f90=0A@@=20-0,0=20+1,282=20= @@=0A+!=20{=20dg-do=20run=20}=0A+program=20foo=0A+=20=20=20use=20= ieee_arithmetic=0A+=20=20=20use=20iso_fortran_env=0A+=20=20=20implicit=20= none=0A+=0A+=20=20=20!=20This=20allows=20us=20to=20test=20REAL128=20if=20= it=20exists,=20and=20still=20compile=0A+=20=20=20!=20on=20platforms=20= were=20it=20is=20not=20present=0A+=20=20=20!=20= https://gcc.gnu.org/bugzilla/show_bug.cgi?id=3D89639=0A+=20=20=20= integer,=20parameter=20::=20large=20=3D=20merge(real128,=20real64,=20= real128=20>=200)=0A+=0A+=20=20=20real,=20volatile=20::=20rnan,=20rinf=0A= +=20=20=20double=20precision,=20volatile=20::=20dnan,=20dinf=0A+=20=20=20= real(kind=3Dlarge),=20volatile=20::=20lnan,=20linf=0A+=0A+=20=20=20rinf=20= =3D=20ieee_value(0.,=20ieee_positive_inf)=0A+=20=20=20rnan=20=3D=20= ieee_value(0.,=20ieee_quiet_nan)=0A+=0A+=20=20=20dinf=20=3D=20= ieee_value(0.d0,=20ieee_positive_inf)=0A+=20=20=20dnan=20=3D=20= ieee_value(0.d0,=20ieee_quiet_nan)=0A+=0A+=20=20=20linf=20=3D=20= ieee_value(0._large,=20ieee_positive_inf)=0A+=20=20=20lnan=20=3D=20= ieee_value(0._large,=20ieee_quiet_nan)=0A+=0A+=20=20=20if=20(.not.=20= ieee_signaling_eq=20(0.,=200.))=20stop=201=0A+=20=20=20if=20(.not.=20= ieee_signaling_eq=20(0.,=20-0.))=20stop=202=0A+=20=20=20if=20(.not.=20= ieee_signaling_eq=20(1.,=201.))=20stop=203=0A+=20=20=20if=20(.not.=20= ieee_signaling_eq=20(rinf,=20rinf))=20stop=204=0A+=20=20=20if=20(.not.=20= ieee_signaling_eq=20(-rinf,=20-rinf))=20stop=205=0A+=20=20=20if=20= (ieee_signaling_eq=20(rnan,=20rnan))=20stop=206=0A+=20=20=20if=20= (ieee_signaling_eq=20(0.,=201.))=20stop=207=0A+=20=20=20if=20= (ieee_signaling_eq=20(0.,=20-1.))=20stop=208=0A+=20=20=20if=20= (ieee_signaling_eq=20(0.,=20rnan))=20stop=209=0A+=20=20=20if=20= (ieee_signaling_eq=20(1.,=20rnan))=20stop=2010=0A+=20=20=20if=20= (ieee_signaling_eq=20(0.,=20rinf))=20stop=2011=0A+=20=20=20if=20= (ieee_signaling_eq=20(1.,=20rinf))=20stop=2012=0A+=20=20=20if=20= (ieee_signaling_eq=20(rinf,=20rnan))=20stop=2013=0A+=0A+=20=20=20if=20= (.not.=20ieee_signaling_eq=20(0.d0,=200.d0))=20stop=2014=0A+=20=20=20if=20= (.not.=20ieee_signaling_eq=20(0.d0,=20-0.d0))=20stop=2015=0A+=20=20=20if=20= (.not.=20ieee_signaling_eq=20(1.d0,=201.d0))=20stop=2016=0A+=20=20=20if=20= (.not.=20ieee_signaling_eq=20(dinf,=20dinf))=20stop=2017=0A+=20=20=20if=20= (.not.=20ieee_signaling_eq=20(-dinf,=20-dinf))=20stop=2018=0A+=20=20=20= if=20(ieee_signaling_eq=20(dnan,=20dnan))=20stop=2019=0A+=20=20=20if=20= (ieee_signaling_eq=20(0.d0,=201.d0))=20stop=2020=0A+=20=20=20if=20= (ieee_signaling_eq=20(0.d0,=20-1.d0))=20stop=2021=0A+=20=20=20if=20= (ieee_signaling_eq=20(0.d0,=20dnan))=20stop=2022=0A+=20=20=20if=20= (ieee_signaling_eq=20(1.d0,=20dnan))=20stop=2023=0A+=20=20=20if=20= (ieee_signaling_eq=20(0.d0,=20dinf))=20stop=2024=0A+=20=20=20if=20= (ieee_signaling_eq=20(1.d0,=20dinf))=20stop=2025=0A+=20=20=20if=20= (ieee_signaling_eq=20(dinf,=20dnan))=20stop=2026=0A+=0A+=20=20=20if=20= (.not.=20ieee_signaling_eq=20(0._large,=200._large))=20stop=2027=0A+=20=20= =20if=20(.not.=20ieee_signaling_eq=20(0._large,=20-0._large))=20stop=20= 28=0A+=20=20=20if=20(.not.=20ieee_signaling_eq=20(1._large,=201._large))=20= stop=2029=0A+=20=20=20if=20(.not.=20ieee_signaling_eq=20(linf,=20linf))=20= stop=2030=0A+=20=20=20if=20(.not.=20ieee_signaling_eq=20(-linf,=20= -linf))=20stop=2031=0A+=20=20=20if=20(ieee_signaling_eq=20(lnan,=20= lnan))=20stop=2032=0A+=20=20=20if=20(ieee_signaling_eq=20(0._large,=20= 1._large))=20stop=2033=0A+=20=20=20if=20(ieee_signaling_eq=20(0._large,=20= -1._large))=20stop=2034=0A+=20=20=20if=20(ieee_signaling_eq=20(0._large,=20= lnan))=20stop=2035=0A+=20=20=20if=20(ieee_signaling_eq=20(1._large,=20= lnan))=20stop=2036=0A+=20=20=20if=20(ieee_signaling_eq=20(0._large,=20= linf))=20stop=2037=0A+=20=20=20if=20(ieee_signaling_eq=20(1._large,=20= linf))=20stop=2038=0A+=20=20=20if=20(ieee_signaling_eq=20(linf,=20lnan))=20= stop=2039=0A+=0A+=0A+=20=20=20if=20(ieee_signaling_ne=20(0.,=200.))=20= stop=2040=0A+=20=20=20if=20(ieee_signaling_ne=20(0.,=20-0.))=20stop=2041=0A= +=20=20=20if=20(ieee_signaling_ne=20(1.,=201.))=20stop=2042=0A+=20=20=20= if=20(ieee_signaling_ne=20(rinf,=20rinf))=20stop=2043=0A+=20=20=20if=20= (ieee_signaling_ne=20(-rinf,=20-rinf))=20stop=2044=0A+=20=20=20if=20= (.not.=20ieee_signaling_ne=20(rnan,=20rnan))=20stop=2045=0A+=20=20=20if=20= (.not.=20ieee_signaling_ne=20(0.,=201.))=20stop=2046=0A+=20=20=20if=20= (.not.=20ieee_signaling_ne=20(0.,=20-1.))=20stop=2047=0A+=20=20=20if=20= (.not.=20ieee_signaling_ne=20(0.,=20rnan))=20stop=2048=0A+=20=20=20if=20= (.not.=20ieee_signaling_ne=20(1.,=20rnan))=20stop=2049=0A+=20=20=20if=20= (.not.=20ieee_signaling_ne=20(0.,=20rinf))=20stop=2050=0A+=20=20=20if=20= (.not.=20ieee_signaling_ne=20(1.,=20rinf))=20stop=2051=0A+=20=20=20if=20= (.not.=20ieee_signaling_ne=20(rinf,=20rnan))=20stop=2052=0A+=0A+=20=20=20= if=20(ieee_signaling_ne=20(0.d0,=200.d0))=20stop=2053=0A+=20=20=20if=20= (ieee_signaling_ne=20(0.d0,=20-0.d0))=20stop=2054=0A+=20=20=20if=20= (ieee_signaling_ne=20(1.d0,=201.d0))=20stop=2055=0A+=20=20=20if=20= (ieee_signaling_ne=20(dinf,=20dinf))=20stop=2056=0A+=20=20=20if=20= (ieee_signaling_ne=20(-dinf,=20-dinf))=20stop=2057=0A+=20=20=20if=20= (.not.=20ieee_signaling_ne=20(dnan,=20dnan))=20stop=2058=0A+=20=20=20if=20= (.not.=20ieee_signaling_ne=20(0.d0,=201.d0))=20stop=2059=0A+=20=20=20if=20= (.not.=20ieee_signaling_ne=20(0.d0,=20-1.d0))=20stop=2060=0A+=20=20=20if=20= (.not.=20ieee_signaling_ne=20(0.d0,=20dnan))=20stop=2061=0A+=20=20=20if=20= (.not.=20ieee_signaling_ne=20(1.d0,=20dnan))=20stop=2062=0A+=20=20=20if=20= (.not.=20ieee_signaling_ne=20(0.d0,=20dinf))=20stop=2063=0A+=20=20=20if=20= (.not.=20ieee_signaling_ne=20(1.d0,=20dinf))=20stop=2064=0A+=20=20=20if=20= (.not.=20ieee_signaling_ne=20(dinf,=20dnan))=20stop=2065=0A+=0A+=20=20=20= if=20(ieee_signaling_ne=20(0._large,=200._large))=20stop=2066=0A+=20=20=20= if=20(ieee_signaling_ne=20(0._large,=20-0._large))=20stop=2067=0A+=20=20=20= if=20(ieee_signaling_ne=20(1._large,=201._large))=20stop=2068=0A+=20=20=20= if=20(ieee_signaling_ne=20(linf,=20linf))=20stop=2069=0A+=20=20=20if=20= (ieee_signaling_ne=20(-linf,=20-linf))=20stop=2070=0A+=20=20=20if=20= (.not.=20ieee_signaling_ne=20(lnan,=20lnan))=20stop=2071=0A+=20=20=20if=20= (.not.=20ieee_signaling_ne=20(0._large,=201._large))=20stop=2072=0A+=20=20= =20if=20(.not.=20ieee_signaling_ne=20(0._large,=20-1._large))=20stop=20= 73=0A+=20=20=20if=20(.not.=20ieee_signaling_ne=20(0._large,=20lnan))=20= stop=2074=0A+=20=20=20if=20(.not.=20ieee_signaling_ne=20(1._large,=20= lnan))=20stop=2075=0A+=20=20=20if=20(.not.=20ieee_signaling_ne=20= (0._large,=20linf))=20stop=2076=0A+=20=20=20if=20(.not.=20= ieee_signaling_ne=20(1._large,=20linf))=20stop=2077=0A+=20=20=20if=20= (.not.=20ieee_signaling_ne=20(linf,=20lnan))=20stop=2078=0A+=0A+=0A+=20=20= =20if=20(.not.=20ieee_signaling_le=20(0.,=200.))=20stop=2079=0A+=20=20=20= if=20(.not.=20ieee_signaling_le=20(0.,=20-0.))=20stop=2080=0A+=20=20=20= if=20(.not.=20ieee_signaling_le=20(1.,=201.))=20stop=2081=0A+=20=20=20if=20= (.not.=20ieee_signaling_le=20(rinf,=20rinf))=20stop=2082=0A+=20=20=20if=20= (.not.=20ieee_signaling_le=20(-rinf,=20-rinf))=20stop=2083=0A+=20=20=20= if=20(ieee_signaling_le=20(rnan,=20rnan))=20stop=2084=0A+=20=20=20if=20= (.not.=20ieee_signaling_le=20(0.,=201.))=20stop=2085=0A+=20=20=20if=20= (ieee_signaling_le=20(0.,=20-1.))=20stop=2086=0A+=20=20=20if=20= (ieee_signaling_le=20(0.,=20rnan))=20stop=2087=0A+=20=20=20if=20= (ieee_signaling_le=20(1.,=20rnan))=20stop=2088=0A+=20=20=20if=20(.not.=20= ieee_signaling_le=20(0.,=20rinf))=20stop=2089=0A+=20=20=20if=20(.not.=20= ieee_signaling_le=20(1.,=20rinf))=20stop=2090=0A+=20=20=20if=20= (ieee_signaling_le=20(rinf,=20rnan))=20stop=2091=0A+=0A+=20=20=20if=20= (.not.=20ieee_signaling_le=20(0.d0,=200.d0))=20stop=2092=0A+=20=20=20if=20= (.not.=20ieee_signaling_le=20(0.d0,=20-0.d0))=20stop=2093=0A+=20=20=20if=20= (.not.=20ieee_signaling_le=20(1.d0,=201.d0))=20stop=2094=0A+=20=20=20if=20= (.not.=20ieee_signaling_le=20(dinf,=20dinf))=20stop=2095=0A+=20=20=20if=20= (.not.=20ieee_signaling_le=20(-dinf,=20-dinf))=20stop=2096=0A+=20=20=20= if=20(ieee_signaling_le=20(dnan,=20dnan))=20stop=2097=0A+=20=20=20if=20= (.not.=20ieee_signaling_le=20(0.d0,=201.d0))=20stop=2098=0A+=20=20=20if=20= (ieee_signaling_le=20(0.d0,=20-1.d0))=20stop=2099=0A+=20=20=20if=20= (ieee_signaling_le=20(0.d0,=20dnan))=20stop=20100=0A+=20=20=20if=20= (ieee_signaling_le=20(1.d0,=20dnan))=20stop=20101=0A+=20=20=20if=20= (.not.=20ieee_signaling_le=20(0.d0,=20dinf))=20stop=20102=0A+=20=20=20if=20= (.not.=20ieee_signaling_le=20(1.d0,=20dinf))=20stop=20103=0A+=20=20=20if=20= (ieee_signaling_le=20(dinf,=20dnan))=20stop=20104=0A+=0A+=20=20=20if=20= (.not.=20ieee_signaling_le=20(0._large,=200._large))=20stop=20105=0A+=20=20= =20if=20(.not.=20ieee_signaling_le=20(0._large,=20-0._large))=20stop=20= 106=0A+=20=20=20if=20(.not.=20ieee_signaling_le=20(1._large,=20= 1._large))=20stop=20107=0A+=20=20=20if=20(.not.=20ieee_signaling_le=20= (linf,=20linf))=20stop=20108=0A+=20=20=20if=20(.not.=20ieee_signaling_le=20= (-linf,=20-linf))=20stop=20109=0A+=20=20=20if=20(ieee_signaling_le=20= (lnan,=20lnan))=20stop=20110=0A+=20=20=20if=20(.not.=20ieee_signaling_le=20= (0._large,=201._large))=20stop=20111=0A+=20=20=20if=20(ieee_signaling_le=20= (0._large,=20-1._large))=20stop=20112=0A+=20=20=20if=20= (ieee_signaling_le=20(0._large,=20lnan))=20stop=20113=0A+=20=20=20if=20= (ieee_signaling_le=20(1._large,=20lnan))=20stop=20114=0A+=20=20=20if=20= (.not.=20ieee_signaling_le=20(0._large,=20linf))=20stop=20115=0A+=20=20=20= if=20(.not.=20ieee_signaling_le=20(1._large,=20linf))=20stop=20116=0A+=20= =20=20if=20(ieee_signaling_le=20(linf,=20lnan))=20stop=20117=0A+=0A+=0A+=20= =20=20if=20(.not.=20ieee_signaling_ge=20(0.,=200.))=20stop=20118=0A+=20=20= =20if=20(.not.=20ieee_signaling_ge=20(0.,=20-0.))=20stop=20119=0A+=20=20=20= if=20(.not.=20ieee_signaling_ge=20(1.,=201.))=20stop=20120=0A+=20=20=20= if=20(.not.=20ieee_signaling_ge=20(rinf,=20rinf))=20stop=20121=0A+=20=20=20= if=20(.not.=20ieee_signaling_ge=20(-rinf,=20-rinf))=20stop=20122=0A+=20=20= =20if=20(ieee_signaling_ge=20(rnan,=20rnan))=20stop=20123=0A+=20=20=20if=20= (ieee_signaling_ge=20(0.,=201.))=20stop=20124=0A+=20=20=20if=20(.not.=20= ieee_signaling_ge=20(0.,=20-1.))=20stop=20125=0A+=20=20=20if=20= (ieee_signaling_ge=20(0.,=20rnan))=20stop=20126=0A+=20=20=20if=20= (ieee_signaling_ge=20(1.,=20rnan))=20stop=20127=0A+=20=20=20if=20= (ieee_signaling_ge=20(0.,=20rinf))=20stop=20128=0A+=20=20=20if=20= (ieee_signaling_ge=20(1.,=20rinf))=20stop=20129=0A+=20=20=20if=20= (ieee_signaling_ge=20(rinf,=20rnan))=20stop=20130=0A+=0A+=20=20=20if=20= (.not.=20ieee_signaling_ge=20(0.d0,=200.d0))=20stop=20131=0A+=20=20=20if=20= (.not.=20ieee_signaling_ge=20(0.d0,=20-0.d0))=20stop=20132=0A+=20=20=20= if=20(.not.=20ieee_signaling_ge=20(1.d0,=201.d0))=20stop=20133=0A+=20=20=20= if=20(.not.=20ieee_signaling_ge=20(dinf,=20dinf))=20stop=20134=0A+=20=20=20= if=20(.not.=20ieee_signaling_ge=20(-dinf,=20-dinf))=20stop=20135=0A+=20=20= =20if=20(ieee_signaling_ge=20(dnan,=20dnan))=20stop=20136=0A+=20=20=20if=20= (ieee_signaling_ge=20(0.d0,=201.d0))=20stop=20137=0A+=20=20=20if=20= (.not.=20ieee_signaling_ge=20(0.d0,=20-1.d0))=20stop=20138=0A+=20=20=20= if=20(ieee_signaling_ge=20(0.d0,=20dnan))=20stop=20139=0A+=20=20=20if=20= (ieee_signaling_ge=20(1.d0,=20dnan))=20stop=20140=0A+=20=20=20if=20= (ieee_signaling_ge=20(0.d0,=20dinf))=20stop=20141=0A+=20=20=20if=20= (ieee_signaling_ge=20(1.d0,=20dinf))=20stop=20142=0A+=20=20=20if=20= (ieee_signaling_ge=20(dinf,=20dnan))=20stop=20143=0A+=0A+=20=20=20if=20= (.not.=20ieee_signaling_ge=20(0._large,=200._large))=20stop=20144=0A+=20=20= =20if=20(.not.=20ieee_signaling_ge=20(0._large,=20-0._large))=20stop=20= 145=0A+=20=20=20if=20(.not.=20ieee_signaling_ge=20(1._large,=20= 1._large))=20stop=20146=0A+=20=20=20if=20(.not.=20ieee_signaling_ge=20= (linf,=20linf))=20stop=20147=0A+=20=20=20if=20(.not.=20ieee_signaling_ge=20= (-linf,=20-linf))=20stop=20148=0A+=20=20=20if=20(ieee_signaling_ge=20= (lnan,=20lnan))=20stop=20149=0A+=20=20=20if=20(ieee_signaling_ge=20= (0._large,=201._large))=20stop=20150=0A+=20=20=20if=20(.not.=20= ieee_signaling_ge=20(0._large,=20-1._large))=20stop=20151=0A+=20=20=20if=20= (ieee_signaling_ge=20(0._large,=20lnan))=20stop=20152=0A+=20=20=20if=20= (ieee_signaling_ge=20(1._large,=20lnan))=20stop=20153=0A+=20=20=20if=20= (ieee_signaling_ge=20(0._large,=20linf))=20stop=20154=0A+=20=20=20if=20= (ieee_signaling_ge=20(1._large,=20linf))=20stop=20155=0A+=20=20=20if=20= (ieee_signaling_ge=20(linf,=20lnan))=20stop=20156=0A+=0A+=0A+=20=20=20if=20= (ieee_signaling_lt=20(0.,=200.))=20stop=20157=0A+=20=20=20if=20= (ieee_signaling_lt=20(0.,=20-0.))=20stop=20158=0A+=20=20=20if=20= (ieee_signaling_lt=20(1.,=201.))=20stop=20159=0A+=20=20=20if=20= (ieee_signaling_lt=20(rinf,=20rinf))=20stop=20160=0A+=20=20=20if=20= (ieee_signaling_lt=20(-rinf,=20-rinf))=20stop=20161=0A+=20=20=20if=20= (ieee_signaling_lt=20(rnan,=20rnan))=20stop=20162=0A+=20=20=20if=20= (.not.=20ieee_signaling_lt=20(0.,=201.))=20stop=20163=0A+=20=20=20if=20= (ieee_signaling_lt=20(0.,=20-1.))=20stop=20164=0A+=20=20=20if=20= (ieee_signaling_lt=20(0.,=20rnan))=20stop=20165=0A+=20=20=20if=20= (ieee_signaling_lt=20(1.,=20rnan))=20stop=20166=0A+=20=20=20if=20(.not.=20= ieee_signaling_lt=20(0.,=20rinf))=20stop=20167=0A+=20=20=20if=20(.not.=20= ieee_signaling_lt=20(1.,=20rinf))=20stop=20168=0A+=20=20=20if=20= (ieee_signaling_lt=20(rinf,=20rnan))=20stop=20169=0A+=0A+=20=20=20if=20= (ieee_signaling_lt=20(0.d0,=200.d0))=20stop=20170=0A+=20=20=20if=20= (ieee_signaling_lt=20(0.d0,=20-0.d0))=20stop=20171=0A+=20=20=20if=20= (ieee_signaling_lt=20(1.d0,=201.d0))=20stop=20172=0A+=20=20=20if=20= (ieee_signaling_lt=20(dinf,=20dinf))=20stop=20173=0A+=20=20=20if=20= (ieee_signaling_lt=20(-dinf,=20-dinf))=20stop=20174=0A+=20=20=20if=20= (ieee_signaling_lt=20(dnan,=20dnan))=20stop=20175=0A+=20=20=20if=20= (.not.=20ieee_signaling_lt=20(0.d0,=201.d0))=20stop=20176=0A+=20=20=20if=20= (ieee_signaling_lt=20(0.d0,=20-1.d0))=20stop=20177=0A+=20=20=20if=20= (ieee_signaling_lt=20(0.d0,=20dnan))=20stop=20178=0A+=20=20=20if=20= (ieee_signaling_lt=20(1.d0,=20dnan))=20stop=20179=0A+=20=20=20if=20= (.not.=20ieee_signaling_lt=20(0.d0,=20dinf))=20stop=20180=0A+=20=20=20if=20= (.not.=20ieee_signaling_lt=20(1.d0,=20dinf))=20stop=20181=0A+=20=20=20if=20= (ieee_signaling_lt=20(dinf,=20dnan))=20stop=20182=0A+=0A+=20=20=20if=20= (ieee_signaling_lt=20(0._large,=200._large))=20stop=20183=0A+=20=20=20if=20= (ieee_signaling_lt=20(0._large,=20-0._large))=20stop=20184=0A+=20=20=20= if=20(ieee_signaling_lt=20(1._large,=201._large))=20stop=20185=0A+=20=20=20= if=20(ieee_signaling_lt=20(linf,=20linf))=20stop=20186=0A+=20=20=20if=20= (ieee_signaling_lt=20(-linf,=20-linf))=20stop=20187=0A+=20=20=20if=20= (ieee_signaling_lt=20(lnan,=20lnan))=20stop=20188=0A+=20=20=20if=20= (.not.=20ieee_signaling_lt=20(0._large,=201._large))=20stop=20189=0A+=20=20= =20if=20(ieee_signaling_lt=20(0._large,=20-1._large))=20stop=20190=0A+=20= =20=20if=20(ieee_signaling_lt=20(0._large,=20lnan))=20stop=20191=0A+=20=20= =20if=20(ieee_signaling_lt=20(1._large,=20lnan))=20stop=20192=0A+=20=20=20= if=20(.not.=20ieee_signaling_lt=20(0._large,=20linf))=20stop=20193=0A+=20= =20=20if=20(.not.=20ieee_signaling_lt=20(1._large,=20linf))=20stop=20194=0A= +=20=20=20if=20(ieee_signaling_lt=20(linf,=20lnan))=20stop=20195=0A+=0A+=0A= +=20=20=20if=20(ieee_signaling_gt=20(0.,=200.))=20stop=20196=0A+=20=20=20= if=20(ieee_signaling_gt=20(0.,=20-0.))=20stop=20197=0A+=20=20=20if=20= (ieee_signaling_gt=20(1.,=201.))=20stop=20198=0A+=20=20=20if=20= (ieee_signaling_gt=20(rinf,=20rinf))=20stop=20199=0A+=20=20=20if=20= (ieee_signaling_gt=20(-rinf,=20-rinf))=20stop=20200=0A+=20=20=20if=20= (ieee_signaling_gt=20(rnan,=20rnan))=20stop=20201=0A+=20=20=20if=20= (ieee_signaling_gt=20(0.,=201.))=20stop=20202=0A+=20=20=20if=20(.not.=20= ieee_signaling_gt=20(0.,=20-1.))=20stop=20203=0A+=20=20=20if=20= (ieee_signaling_gt=20(0.,=20rnan))=20stop=20204=0A+=20=20=20if=20= (ieee_signaling_gt=20(1.,=20rnan))=20stop=20205=0A+=20=20=20if=20= (ieee_signaling_gt=20(0.,=20rinf))=20stop=20206=0A+=20=20=20if=20= (ieee_signaling_gt=20(1.,=20rinf))=20stop=20207=0A+=20=20=20if=20= (ieee_signaling_gt=20(rinf,=20rnan))=20stop=20208=0A+=0A+=20=20=20if=20= (ieee_signaling_gt=20(0.d0,=200.d0))=20stop=20209=0A+=20=20=20if=20= (ieee_signaling_gt=20(0.d0,=20-0.d0))=20stop=20210=0A+=20=20=20if=20= (ieee_signaling_gt=20(1.d0,=201.d0))=20stop=20211=0A+=20=20=20if=20= (ieee_signaling_gt=20(dinf,=20dinf))=20stop=20212=0A+=20=20=20if=20= (ieee_signaling_gt=20(-dinf,=20-dinf))=20stop=20213=0A+=20=20=20if=20= (ieee_signaling_gt=20(dnan,=20dnan))=20stop=20214=0A+=20=20=20if=20= (ieee_signaling_gt=20(0.d0,=201.d0))=20stop=20215=0A+=20=20=20if=20= (.not.=20ieee_signaling_gt=20(0.d0,=20-1.d0))=20stop=20216=0A+=20=20=20= if=20(ieee_signaling_gt=20(0.d0,=20dnan))=20stop=20217=0A+=20=20=20if=20= (ieee_signaling_gt=20(1.d0,=20dnan))=20stop=20218=0A+=20=20=20if=20= (ieee_signaling_gt=20(0.d0,=20dinf))=20stop=20219=0A+=20=20=20if=20= (ieee_signaling_gt=20(1.d0,=20dinf))=20stop=20220=0A+=20=20=20if=20= (ieee_signaling_gt=20(dinf,=20dnan))=20stop=20221=0A+=0A+=20=20=20if=20= (ieee_signaling_gt=20(0._large,=200._large))=20stop=20222=0A+=20=20=20if=20= (ieee_signaling_gt=20(0._large,=20-0._large))=20stop=20223=0A+=20=20=20= if=20(ieee_signaling_gt=20(1._large,=201._large))=20stop=20224=0A+=20=20=20= if=20(ieee_signaling_gt=20(linf,=20linf))=20stop=20225=0A+=20=20=20if=20= (ieee_signaling_gt=20(-linf,=20-linf))=20stop=20226=0A+=20=20=20if=20= (ieee_signaling_gt=20(lnan,=20lnan))=20stop=20227=0A+=20=20=20if=20= (ieee_signaling_gt=20(0._large,=201._large))=20stop=20228=0A+=20=20=20if=20= (.not.=20ieee_signaling_gt=20(0._large,=20-1._large))=20stop=20229=0A+=20= =20=20if=20(ieee_signaling_gt=20(0._large,=20lnan))=20stop=20230=0A+=20=20= =20if=20(ieee_signaling_gt=20(1._large,=20lnan))=20stop=20231=0A+=20=20=20= if=20(ieee_signaling_gt=20(0._large,=20linf))=20stop=20232=0A+=20=20=20= if=20(ieee_signaling_gt=20(1._large,=20linf))=20stop=20233=0A+=20=20=20= if=20(ieee_signaling_gt=20(linf,=20lnan))=20stop=20234=0A+=0A+end=20= program=20foo=0Adiff=20--git=20= a/gcc/testsuite/gfortran.dg/ieee/comparisons_3.F90=20= b/gcc/testsuite/gfortran.dg/ieee/comparisons_3.F90=0Anew=20file=20mode=20= 100644=0Aindex=2000000000000..c15678fec35=0A---=20/dev/null=0A+++=20= b/gcc/testsuite/gfortran.dg/ieee/comparisons_3.F90=0A@@=20-0,0=20+1,487=20= @@=0A+!=20{=20dg-do=20run=20}=0A+!=20{=20dg-options=20= "-ffree-line-length-none"=20}=0A+program=20foo=0A+=20=20use=20= ieee_arithmetic=0A+=20=20use=20iso_fortran_env=0A+=20=20implicit=20none=0A= +=0A+=20=20!=20This=20allows=20us=20to=20test=20REAL128=20if=20it=20= exists,=20and=20still=20compile=0A+=20=20!=20on=20platforms=20were=20it=20= is=20not=20present=0A+=20=20!=20= https://gcc.gnu.org/bugzilla/show_bug.cgi?id=3D89639=0A+=20=20integer,=20= parameter=20::=20large=20=3D=20merge(real128,=20real64,=20real128=20>=20= 0)=0A+=0A+=20=20real,=20volatile=20::=20rnan,=20rinf=0A+=20=20double=20= precision,=20volatile=20::=20dnan,=20dinf=0A+=20=20real(kind=3Dlarge),=20= volatile=20::=20lnan,=20linf=0A+=0A+=20=20logical=20::=20flag=0A+=0A+=20=20= rinf=20=3D=20ieee_value(0.,=20ieee_positive_inf)=0A+=20=20rnan=20=3D=20= ieee_value(0.,=20ieee_quiet_nan)=0A+=0A+=20=20dinf=20=3D=20= ieee_value(0.d0,=20ieee_positive_inf)=0A+=20=20dnan=20=3D=20= ieee_value(0.d0,=20ieee_quiet_nan)=0A+=0A+=20=20linf=20=3D=20= ieee_value(0._large,=20ieee_positive_inf)=0A+=20=20lnan=20=3D=20= ieee_value(0._large,=20ieee_quiet_nan)=0A+=0A+#define=20= CHECK_INVALID(expected)=20\=0A+=20=20call=20ieee_get_flag(ieee_invalid,=20= flag)=20;=20\=0A+=20=20if=20(flag=20.neqv.=20expected)=20then=20;=20\=0A= +=20=20=20=20write=20(*,*)=20"Check=20failed=20at=20",=20__LINE__=20;=20= \=0A+=20=20=20=20stop=201;=20\=0A+=20=20end=20if=20;=20\=0A+=20=20call=20= ieee_set_flag(ieee_invalid,=20.false.)=0A+=0A+=20=20!!=20REAL=0A+=0A+=20=20= !=20Signaling=20versions=0A+=0A+=20=20CHECK_INVALID(.false.)=0A+=20=20if=20= (.not.=20ieee_signaling_eq=20(0.,=200.))=20stop=2011=0A+=20=20= CHECK_INVALID(.false.)=0A+=20=20if=20(.not.=20ieee_signaling_eq=20(0.,=20= -0.))=20stop=2012=0A+=20=20CHECK_INVALID(.false.)=0A+=20=20if=20= (ieee_signaling_eq=20(0.,=20rnan))=20stop=2013=0A+=20=20= CHECK_INVALID(.true.)=0A+=20=20if=20(ieee_signaling_eq=20(0.,=20rinf))=20= stop=2014=0A+=20=20CHECK_INVALID(.false.)=0A+=20=20if=20= (ieee_signaling_eq=20(rnan,=20rnan))=20stop=2015=0A+=20=20= CHECK_INVALID(.true.)=0A+=0A+=20=20CHECK_INVALID(.false.)=0A+=20=20if=20= (ieee_signaling_ne=20(0.,=200.))=20stop=2011=0A+=20=20= CHECK_INVALID(.false.)=0A+=20=20if=20(ieee_signaling_ne=20(0.,=20-0.))=20= stop=2012=0A+=20=20CHECK_INVALID(.false.)=0A+=20=20if=20(.not.=20= ieee_signaling_ne=20(0.,=20rnan))=20stop=2013=0A+=20=20= CHECK_INVALID(.true.)=0A+=20=20if=20(.not.=20ieee_signaling_ne=20(0.,=20= rinf))=20stop=2014=0A+=20=20CHECK_INVALID(.false.)=0A+=20=20if=20(.not.=20= ieee_signaling_ne=20(rnan,=20rnan))=20stop=2015=0A+=20=20= CHECK_INVALID(.true.)=0A+=0A+=20=20CHECK_INVALID(.false.)=0A+=20=20if=20= (.not.=20ieee_signaling_le=20(0.,=200.))=20stop=2011=0A+=20=20= CHECK_INVALID(.false.)=0A+=20=20if=20(.not.=20ieee_signaling_le=20(0.,=20= -0.))=20stop=2012=0A+=20=20CHECK_INVALID(.false.)=0A+=20=20if=20= (ieee_signaling_le=20(0.,=20rnan))=20stop=2013=0A+=20=20= CHECK_INVALID(.true.)=0A+=20=20if=20(.not.=20ieee_signaling_le=20(0.,=20= rinf))=20stop=2014=0A+=20=20CHECK_INVALID(.false.)=0A+=20=20if=20= (ieee_signaling_le=20(rnan,=20rnan))=20stop=2015=0A+=20=20= CHECK_INVALID(.true.)=0A+=0A+=20=20CHECK_INVALID(.false.)=0A+=20=20if=20= (ieee_signaling_lt=20(0.,=200.))=20stop=2011=0A+=20=20= CHECK_INVALID(.false.)=0A+=20=20if=20(ieee_signaling_lt=20(0.,=20-0.))=20= stop=2012=0A+=20=20CHECK_INVALID(.false.)=0A+=20=20if=20= (ieee_signaling_lt=20(0.,=20rnan))=20stop=2013=0A+=20=20= CHECK_INVALID(.true.)=0A+=20=20if=20(.not.=20ieee_signaling_lt=20(0.,=20= rinf))=20stop=2014=0A+=20=20CHECK_INVALID(.false.)=0A+=20=20if=20= (ieee_signaling_lt=20(rnan,=20rnan))=20stop=2015=0A+=20=20= CHECK_INVALID(.true.)=0A+=0A+=20=20CHECK_INVALID(.false.)=0A+=20=20if=20= (.not.=20ieee_signaling_ge=20(0.,=200.))=20stop=2011=0A+=20=20= CHECK_INVALID(.false.)=0A+=20=20if=20(.not.=20ieee_signaling_ge=20(0.,=20= -0.))=20stop=2012=0A+=20=20CHECK_INVALID(.false.)=0A+=20=20if=20= (ieee_signaling_ge=20(0.,=20rnan))=20stop=2013=0A+=20=20= CHECK_INVALID(.true.)=0A+=20=20if=20(ieee_signaling_ge=20(0.,=20rinf))=20= stop=2014=0A+=20=20CHECK_INVALID(.false.)=0A+=20=20if=20= (ieee_signaling_ge=20(rnan,=20rnan))=20stop=2015=0A+=20=20= CHECK_INVALID(.true.)=0A+=0A+=20=20CHECK_INVALID(.false.)=0A+=20=20if=20= (ieee_signaling_gt=20(0.,=200.))=20stop=2011=0A+=20=20= CHECK_INVALID(.false.)=0A+=20=20if=20(ieee_signaling_gt=20(0.,=20-0.))=20= stop=2012=0A+=20=20CHECK_INVALID(.false.)=0A+=20=20if=20= (ieee_signaling_gt=20(0.,=20rnan))=20stop=2013=0A+=20=20= CHECK_INVALID(.true.)=0A+=20=20if=20(ieee_signaling_gt=20(0.,=20rinf))=20= stop=2014=0A+=20=20CHECK_INVALID(.false.)=0A+=20=20if=20= (ieee_signaling_gt=20(rnan,=20rnan))=20stop=2015=0A+=20=20= CHECK_INVALID(.true.)=0A+=0A+=20=20!=20Quiet=20versions=0A+=0A+=20=20= CHECK_INVALID(.false.)=0A+=20=20if=20(.not.=20ieee_quiet_eq=20(0.,=20= 0.))=20stop=2011=0A+=20=20CHECK_INVALID(.false.)=0A+=20=20if=20(.not.=20= ieee_quiet_eq=20(0.,=20-0.))=20stop=2012=0A+=20=20CHECK_INVALID(.false.)=0A= +=20=20if=20(ieee_quiet_eq=20(0.,=20rnan))=20stop=2013=0A+=20=20= CHECK_INVALID(.false.)=0A+=20=20if=20(ieee_quiet_eq=20(0.,=20rinf))=20= stop=2014=0A+=20=20CHECK_INVALID(.false.)=0A+=20=20if=20(ieee_quiet_eq=20= (rnan,=20rnan))=20stop=2015=0A+=20=20CHECK_INVALID(.false.)=0A+=0A+=20=20= CHECK_INVALID(.false.)=0A+=20=20if=20(ieee_quiet_ne=20(0.,=200.))=20stop=20= 11=0A+=20=20CHECK_INVALID(.false.)=0A+=20=20if=20(ieee_quiet_ne=20(0.,=20= -0.))=20stop=2012=0A+=20=20CHECK_INVALID(.false.)=0A+=20=20if=20(.not.=20= ieee_quiet_ne=20(0.,=20rnan))=20stop=2013=0A+=20=20= CHECK_INVALID(.false.)=0A+=20=20if=20(.not.=20ieee_quiet_ne=20(0.,=20= rinf))=20stop=2014=0A+=20=20CHECK_INVALID(.false.)=0A+=20=20if=20(.not.=20= ieee_quiet_ne=20(rnan,=20rnan))=20stop=2015=0A+=20=20= CHECK_INVALID(.false.)=0A+=0A+=20=20CHECK_INVALID(.false.)=0A+=20=20if=20= (.not.=20ieee_quiet_le=20(0.,=200.))=20stop=2011=0A+=20=20= CHECK_INVALID(.false.)=0A+=20=20if=20(.not.=20ieee_quiet_le=20(0.,=20= -0.))=20stop=2012=0A+=20=20CHECK_INVALID(.false.)=0A+=20=20if=20= (ieee_quiet_le=20(0.,=20rnan))=20stop=2013=0A+=20=20= CHECK_INVALID(.false.)=0A+=20=20if=20(.not.=20ieee_quiet_le=20(0.,=20= rinf))=20stop=2014=0A+=20=20CHECK_INVALID(.false.)=0A+=20=20if=20= (ieee_quiet_le=20(rnan,=20rnan))=20stop=2015=0A+=20=20= CHECK_INVALID(.false.)=0A+=0A+=20=20CHECK_INVALID(.false.)=0A+=20=20if=20= (ieee_quiet_lt=20(0.,=200.))=20stop=2011=0A+=20=20CHECK_INVALID(.false.)=0A= +=20=20if=20(ieee_quiet_lt=20(0.,=20-0.))=20stop=2012=0A+=20=20= CHECK_INVALID(.false.)=0A+=20=20if=20(ieee_quiet_lt=20(0.,=20rnan))=20= stop=2013=0A+=20=20CHECK_INVALID(.false.)=0A+=20=20if=20(.not.=20= ieee_quiet_lt=20(0.,=20rinf))=20stop=2014=0A+=20=20= CHECK_INVALID(.false.)=0A+=20=20if=20(ieee_quiet_lt=20(rnan,=20rnan))=20= stop=2015=0A+=20=20CHECK_INVALID(.false.)=0A+=0A+=20=20= CHECK_INVALID(.false.)=0A+=20=20if=20(.not.=20ieee_quiet_ge=20(0.,=20= 0.))=20stop=2011=0A+=20=20CHECK_INVALID(.false.)=0A+=20=20if=20(.not.=20= ieee_quiet_ge=20(0.,=20-0.))=20stop=2012=0A+=20=20CHECK_INVALID(.false.)=0A= +=20=20if=20(ieee_quiet_ge=20(0.,=20rnan))=20stop=2013=0A+=20=20= CHECK_INVALID(.false.)=0A+=20=20if=20(ieee_quiet_ge=20(0.,=20rinf))=20= stop=2014=0A+=20=20CHECK_INVALID(.false.)=0A+=20=20if=20(ieee_quiet_ge=20= (rnan,=20rnan))=20stop=2015=0A+=20=20CHECK_INVALID(.false.)=0A+=0A+=20=20= CHECK_INVALID(.false.)=0A+=20=20if=20(ieee_quiet_gt=20(0.,=200.))=20stop=20= 11=0A+=20=20CHECK_INVALID(.false.)=0A+=20=20if=20(ieee_quiet_gt=20(0.,=20= -0.))=20stop=2012=0A+=20=20CHECK_INVALID(.false.)=0A+=20=20if=20= (ieee_quiet_gt=20(0.,=20rnan))=20stop=2013=0A+=20=20= CHECK_INVALID(.false.)=0A+=20=20if=20(ieee_quiet_gt=20(0.,=20rinf))=20= stop=2014=0A+=20=20CHECK_INVALID(.false.)=0A+=20=20if=20(ieee_quiet_gt=20= (rnan,=20rnan))=20stop=2015=0A+=20=20CHECK_INVALID(.false.)=0A+=0A+=20=20= !!=20DOUBLE=20PRECISION=0A+=0A+=20=20!=20Signaling=20versions=0A+=0A+=20=20= CHECK_INVALID(.false.)=0A+=20=20if=20(.not.=20ieee_signaling_eq=20(0.d0,=20= 0.d0))=20stop=2011=0A+=20=20CHECK_INVALID(.false.)=0A+=20=20if=20(.not.=20= ieee_signaling_eq=20(0.d0,=20-0.d0))=20stop=2012=0A+=20=20= CHECK_INVALID(.false.)=0A+=20=20if=20(ieee_signaling_eq=20(0.d0,=20= dnan))=20stop=2013=0A+=20=20CHECK_INVALID(.true.)=0A+=20=20if=20= (ieee_signaling_eq=20(0.d0,=20dinf))=20stop=2014=0A+=20=20= CHECK_INVALID(.false.)=0A+=20=20if=20(ieee_signaling_eq=20(dnan,=20= dnan))=20stop=2015=0A+=20=20CHECK_INVALID(.true.)=0A+=0A+=20=20= CHECK_INVALID(.false.)=0A+=20=20if=20(ieee_signaling_ne=20(0.d0,=20= 0.d0))=20stop=2011=0A+=20=20CHECK_INVALID(.false.)=0A+=20=20if=20= (ieee_signaling_ne=20(0.d0,=20-0.d0))=20stop=2012=0A+=20=20= CHECK_INVALID(.false.)=0A+=20=20if=20(.not.=20ieee_signaling_ne=20(0.d0,=20= dnan))=20stop=2013=0A+=20=20CHECK_INVALID(.true.)=0A+=20=20if=20(.not.=20= ieee_signaling_ne=20(0.d0,=20dinf))=20stop=2014=0A+=20=20= CHECK_INVALID(.false.)=0A+=20=20if=20(.not.=20ieee_signaling_ne=20(dnan,=20= dnan))=20stop=2015=0A+=20=20CHECK_INVALID(.true.)=0A+=0A+=20=20= CHECK_INVALID(.false.)=0A+=20=20if=20(.not.=20ieee_signaling_le=20(0.d0,=20= 0.d0))=20stop=2011=0A+=20=20CHECK_INVALID(.false.)=0A+=20=20if=20(.not.=20= ieee_signaling_le=20(0.d0,=20-0.d0))=20stop=2012=0A+=20=20= CHECK_INVALID(.false.)=0A+=20=20if=20(ieee_signaling_le=20(0.d0,=20= dnan))=20stop=2013=0A+=20=20CHECK_INVALID(.true.)=0A+=20=20if=20(.not.=20= ieee_signaling_le=20(0.d0,=20dinf))=20stop=2014=0A+=20=20= CHECK_INVALID(.false.)=0A+=20=20if=20(ieee_signaling_le=20(dnan,=20= dnan))=20stop=2015=0A+=20=20CHECK_INVALID(.true.)=0A+=0A+=20=20= CHECK_INVALID(.false.)=0A+=20=20if=20(ieee_signaling_lt=20(0.d0,=20= 0.d0))=20stop=2011=0A+=20=20CHECK_INVALID(.false.)=0A+=20=20if=20= (ieee_signaling_lt=20(0.d0,=20-0.d0))=20stop=2012=0A+=20=20= CHECK_INVALID(.false.)=0A+=20=20if=20(ieee_signaling_lt=20(0.d0,=20= dnan))=20stop=2013=0A+=20=20CHECK_INVALID(.true.)=0A+=20=20if=20(.not.=20= ieee_signaling_lt=20(0.d0,=20dinf))=20stop=2014=0A+=20=20= CHECK_INVALID(.false.)=0A+=20=20if=20(ieee_signaling_lt=20(dnan,=20= dnan))=20stop=2015=0A+=20=20CHECK_INVALID(.true.)=0A+=0A+=20=20= CHECK_INVALID(.false.)=0A+=20=20if=20(.not.=20ieee_signaling_ge=20(0.d0,=20= 0.d0))=20stop=2011=0A+=20=20CHECK_INVALID(.false.)=0A+=20=20if=20(.not.=20= ieee_signaling_ge=20(0.d0,=20-0.d0))=20stop=2012=0A+=20=20= CHECK_INVALID(.false.)=0A+=20=20if=20(ieee_signaling_ge=20(0.d0,=20= dnan))=20stop=2013=0A+=20=20CHECK_INVALID(.true.)=0A+=20=20if=20= (ieee_signaling_ge=20(0.d0,=20dinf))=20stop=2014=0A+=20=20= CHECK_INVALID(.false.)=0A+=20=20if=20(ieee_signaling_ge=20(dnan,=20= dnan))=20stop=2015=0A+=20=20CHECK_INVALID(.true.)=0A+=0A+=20=20= CHECK_INVALID(.false.)=0A+=20=20if=20(ieee_signaling_gt=20(0.d0,=20= 0.d0))=20stop=2011=0A+=20=20CHECK_INVALID(.false.)=0A+=20=20if=20= (ieee_signaling_gt=20(0.d0,=20-0.d0))=20stop=2012=0A+=20=20= CHECK_INVALID(.false.)=0A+=20=20if=20(ieee_signaling_gt=20(0.d0,=20= dnan))=20stop=2013=0A+=20=20CHECK_INVALID(.true.)=0A+=20=20if=20= (ieee_signaling_gt=20(0.d0,=20dinf))=20stop=2014=0A+=20=20= CHECK_INVALID(.false.)=0A+=20=20if=20(ieee_signaling_gt=20(dnan,=20= dnan))=20stop=2015=0A+=20=20CHECK_INVALID(.true.)=0A+=0A+=20=20!=20Quiet=20= versions=0A+=0A+=20=20CHECK_INVALID(.false.)=0A+=20=20if=20(.not.=20= ieee_quiet_eq=20(0.d0,=200.d0))=20stop=2011=0A+=20=20= CHECK_INVALID(.false.)=0A+=20=20if=20(.not.=20ieee_quiet_eq=20(0.d0,=20= -0.d0))=20stop=2012=0A+=20=20CHECK_INVALID(.false.)=0A+=20=20if=20= (ieee_quiet_eq=20(0.d0,=20dnan))=20stop=2013=0A+=20=20= CHECK_INVALID(.false.)=0A+=20=20if=20(ieee_quiet_eq=20(0.d0,=20dinf))=20= stop=2014=0A+=20=20CHECK_INVALID(.false.)=0A+=20=20if=20(ieee_quiet_eq=20= (dnan,=20dnan))=20stop=2015=0A+=20=20CHECK_INVALID(.false.)=0A+=0A+=20=20= CHECK_INVALID(.false.)=0A+=20=20if=20(ieee_quiet_ne=20(0.d0,=200.d0))=20= stop=2011=0A+=20=20CHECK_INVALID(.false.)=0A+=20=20if=20(ieee_quiet_ne=20= (0.d0,=20-0.d0))=20stop=2012=0A+=20=20CHECK_INVALID(.false.)=0A+=20=20if=20= (.not.=20ieee_quiet_ne=20(0.d0,=20dnan))=20stop=2013=0A+=20=20= CHECK_INVALID(.false.)=0A+=20=20if=20(.not.=20ieee_quiet_ne=20(0.d0,=20= dinf))=20stop=2014=0A+=20=20CHECK_INVALID(.false.)=0A+=20=20if=20(.not.=20= ieee_quiet_ne=20(dnan,=20dnan))=20stop=2015=0A+=20=20= CHECK_INVALID(.false.)=0A+=0A+=20=20CHECK_INVALID(.false.)=0A+=20=20if=20= (.not.=20ieee_quiet_le=20(0.d0,=200.d0))=20stop=2011=0A+=20=20= CHECK_INVALID(.false.)=0A+=20=20if=20(.not.=20ieee_quiet_le=20(0.d0,=20= -0.d0))=20stop=2012=0A+=20=20CHECK_INVALID(.false.)=0A+=20=20if=20= (ieee_quiet_le=20(0.d0,=20dnan))=20stop=2013=0A+=20=20= CHECK_INVALID(.false.)=0A+=20=20if=20(.not.=20ieee_quiet_le=20(0.d0,=20= dinf))=20stop=2014=0A+=20=20CHECK_INVALID(.false.)=0A+=20=20if=20= (ieee_quiet_le=20(dnan,=20dnan))=20stop=2015=0A+=20=20= CHECK_INVALID(.false.)=0A+=0A+=20=20CHECK_INVALID(.false.)=0A+=20=20if=20= (ieee_quiet_lt=20(0.d0,=200.d0))=20stop=2011=0A+=20=20= CHECK_INVALID(.false.)=0A+=20=20if=20(ieee_quiet_lt=20(0.d0,=20-0.d0))=20= stop=2012=0A+=20=20CHECK_INVALID(.false.)=0A+=20=20if=20(ieee_quiet_lt=20= (0.d0,=20dnan))=20stop=2013=0A+=20=20CHECK_INVALID(.false.)=0A+=20=20if=20= (.not.=20ieee_quiet_lt=20(0.d0,=20dinf))=20stop=2014=0A+=20=20= CHECK_INVALID(.false.)=0A+=20=20if=20(ieee_quiet_lt=20(dnan,=20dnan))=20= stop=2015=0A+=20=20CHECK_INVALID(.false.)=0A+=0A+=20=20= CHECK_INVALID(.false.)=0A+=20=20if=20(.not.=20ieee_quiet_ge=20(0.d0,=20= 0.d0))=20stop=2011=0A+=20=20CHECK_INVALID(.false.)=0A+=20=20if=20(.not.=20= ieee_quiet_ge=20(0.d0,=20-0.d0))=20stop=2012=0A+=20=20= CHECK_INVALID(.false.)=0A+=20=20if=20(ieee_quiet_ge=20(0.d0,=20dnan))=20= stop=2013=0A+=20=20CHECK_INVALID(.false.)=0A+=20=20if=20(ieee_quiet_ge=20= (0.d0,=20dinf))=20stop=2014=0A+=20=20CHECK_INVALID(.false.)=0A+=20=20if=20= (ieee_quiet_ge=20(dnan,=20dnan))=20stop=2015=0A+=20=20= CHECK_INVALID(.false.)=0A+=0A+=20=20CHECK_INVALID(.false.)=0A+=20=20if=20= (ieee_quiet_gt=20(0.d0,=200.d0))=20stop=2011=0A+=20=20= CHECK_INVALID(.false.)=0A+=20=20if=20(ieee_quiet_gt=20(0.d0,=20-0.d0))=20= stop=2012=0A+=20=20CHECK_INVALID(.false.)=0A+=20=20if=20(ieee_quiet_gt=20= (0.d0,=20dnan))=20stop=2013=0A+=20=20CHECK_INVALID(.false.)=0A+=20=20if=20= (ieee_quiet_gt=20(0.d0,=20dinf))=20stop=2014=0A+=20=20= CHECK_INVALID(.false.)=0A+=20=20if=20(ieee_quiet_gt=20(dnan,=20dnan))=20= stop=2015=0A+=20=20CHECK_INVALID(.false.)=0A+=0A+=20=20!!=20LARGE=20KIND=0A= +=0A+=20=20!=20Signaling=20versions=0A+=0A+=20=20CHECK_INVALID(.false.)=0A= +=20=20if=20(.not.=20ieee_signaling_eq=20(0._large,=200._large))=20stop=20= 11=0A+=20=20CHECK_INVALID(.false.)=0A+=20=20if=20(.not.=20= ieee_signaling_eq=20(0._large,=20-0._large))=20stop=2012=0A+=20=20= CHECK_INVALID(.false.)=0A+=20=20if=20(ieee_signaling_eq=20(0._large,=20= lnan))=20stop=2013=0A+=20=20CHECK_INVALID(.true.)=0A+=20=20if=20= (ieee_signaling_eq=20(0._large,=20linf))=20stop=2014=0A+=20=20= CHECK_INVALID(.false.)=0A+=20=20if=20(ieee_signaling_eq=20(lnan,=20= lnan))=20stop=2015=0A+=20=20CHECK_INVALID(.true.)=0A+=0A+=20=20= CHECK_INVALID(.false.)=0A+=20=20if=20(ieee_signaling_ne=20(0._large,=20= 0._large))=20stop=2011=0A+=20=20CHECK_INVALID(.false.)=0A+=20=20if=20= (ieee_signaling_ne=20(0._large,=20-0._large))=20stop=2012=0A+=20=20= CHECK_INVALID(.false.)=0A+=20=20if=20(.not.=20ieee_signaling_ne=20= (0._large,=20lnan))=20stop=2013=0A+=20=20CHECK_INVALID(.true.)=0A+=20=20= if=20(.not.=20ieee_signaling_ne=20(0._large,=20linf))=20stop=2014=0A+=20=20= CHECK_INVALID(.false.)=0A+=20=20if=20(.not.=20ieee_signaling_ne=20(lnan,=20= lnan))=20stop=2015=0A+=20=20CHECK_INVALID(.true.)=0A+=0A+=20=20= CHECK_INVALID(.false.)=0A+=20=20if=20(.not.=20ieee_signaling_le=20= (0._large,=200._large))=20stop=2011=0A+=20=20CHECK_INVALID(.false.)=0A+=20= =20if=20(.not.=20ieee_signaling_le=20(0._large,=20-0._large))=20stop=20= 12=0A+=20=20CHECK_INVALID(.false.)=0A+=20=20if=20(ieee_signaling_le=20= (0._large,=20lnan))=20stop=2013=0A+=20=20CHECK_INVALID(.true.)=0A+=20=20= if=20(.not.=20ieee_signaling_le=20(0._large,=20linf))=20stop=2014=0A+=20=20= CHECK_INVALID(.false.)=0A+=20=20if=20(ieee_signaling_le=20(lnan,=20= lnan))=20stop=2015=0A+=20=20CHECK_INVALID(.true.)=0A+=0A+=20=20= CHECK_INVALID(.false.)=0A+=20=20if=20(ieee_signaling_lt=20(0._large,=20= 0._large))=20stop=2011=0A+=20=20CHECK_INVALID(.false.)=0A+=20=20if=20= (ieee_signaling_lt=20(0._large,=20-0._large))=20stop=2012=0A+=20=20= CHECK_INVALID(.false.)=0A+=20=20if=20(ieee_signaling_lt=20(0._large,=20= lnan))=20stop=2013=0A+=20=20CHECK_INVALID(.true.)=0A+=20=20if=20(.not.=20= ieee_signaling_lt=20(0._large,=20linf))=20stop=2014=0A+=20=20= CHECK_INVALID(.false.)=0A+=20=20if=20(ieee_signaling_lt=20(lnan,=20= lnan))=20stop=2015=0A+=20=20CHECK_INVALID(.true.)=0A+=0A+=20=20= CHECK_INVALID(.false.)=0A+=20=20if=20(.not.=20ieee_signaling_ge=20= (0._large,=200._large))=20stop=2011=0A+=20=20CHECK_INVALID(.false.)=0A+=20= =20if=20(.not.=20ieee_signaling_ge=20(0._large,=20-0._large))=20stop=20= 12=0A+=20=20CHECK_INVALID(.false.)=0A+=20=20if=20(ieee_signaling_ge=20= (0._large,=20lnan))=20stop=2013=0A+=20=20CHECK_INVALID(.true.)=0A+=20=20= if=20(ieee_signaling_ge=20(0._large,=20linf))=20stop=2014=0A+=20=20= CHECK_INVALID(.false.)=0A+=20=20if=20(ieee_signaling_ge=20(lnan,=20= lnan))=20stop=2015=0A+=20=20CHECK_INVALID(.true.)=0A+=0A+=20=20= CHECK_INVALID(.false.)=0A+=20=20if=20(ieee_signaling_gt=20(0._large,=20= 0._large))=20stop=2011=0A+=20=20CHECK_INVALID(.false.)=0A+=20=20if=20= (ieee_signaling_gt=20(0._large,=20-0._large))=20stop=2012=0A+=20=20= CHECK_INVALID(.false.)=0A+=20=20if=20(ieee_signaling_gt=20(0._large,=20= lnan))=20stop=2013=0A+=20=20CHECK_INVALID(.true.)=0A+=20=20if=20= (ieee_signaling_gt=20(0._large,=20linf))=20stop=2014=0A+=20=20= CHECK_INVALID(.false.)=0A+=20=20if=20(ieee_signaling_gt=20(lnan,=20= lnan))=20stop=2015=0A+=20=20CHECK_INVALID(.true.)=0A+=0A+=20=20!=20Quiet=20= versions=0A+=0A+=20=20CHECK_INVALID(.false.)=0A+=20=20if=20(.not.=20= ieee_quiet_eq=20(0._large,=200._large))=20stop=2011=0A+=20=20= CHECK_INVALID(.false.)=0A+=20=20if=20(.not.=20ieee_quiet_eq=20(0._large,=20= -0._large))=20stop=2012=0A+=20=20CHECK_INVALID(.false.)=0A+=20=20if=20= (ieee_quiet_eq=20(0._large,=20lnan))=20stop=2013=0A+=20=20= CHECK_INVALID(.false.)=0A+=20=20if=20(ieee_quiet_eq=20(0._large,=20= linf))=20stop=2014=0A+=20=20CHECK_INVALID(.false.)=0A+=20=20if=20= (ieee_quiet_eq=20(lnan,=20lnan))=20stop=2015=0A+=20=20= CHECK_INVALID(.false.)=0A+=0A+=20=20CHECK_INVALID(.false.)=0A+=20=20if=20= (ieee_quiet_ne=20(0._large,=200._large))=20stop=2011=0A+=20=20= CHECK_INVALID(.false.)=0A+=20=20if=20(ieee_quiet_ne=20(0._large,=20= -0._large))=20stop=2012=0A+=20=20CHECK_INVALID(.false.)=0A+=20=20if=20= (.not.=20ieee_quiet_ne=20(0._large,=20lnan))=20stop=2013=0A+=20=20= CHECK_INVALID(.false.)=0A+=20=20if=20(.not.=20ieee_quiet_ne=20(0._large,=20= linf))=20stop=2014=0A+=20=20CHECK_INVALID(.false.)=0A+=20=20if=20(.not.=20= ieee_quiet_ne=20(lnan,=20lnan))=20stop=2015=0A+=20=20= CHECK_INVALID(.false.)=0A+=0A+=20=20CHECK_INVALID(.false.)=0A+=20=20if=20= (.not.=20ieee_quiet_le=20(0._large,=200._large))=20stop=2011=0A+=20=20= CHECK_INVALID(.false.)=0A+=20=20if=20(.not.=20ieee_quiet_le=20(0._large,=20= -0._large))=20stop=2012=0A+=20=20CHECK_INVALID(.false.)=0A+=20=20if=20= (ieee_quiet_le=20(0._large,=20lnan))=20stop=2013=0A+=20=20= CHECK_INVALID(.false.)=0A+=20=20if=20(.not.=20ieee_quiet_le=20(0._large,=20= linf))=20stop=2014=0A+=20=20CHECK_INVALID(.false.)=0A+=20=20if=20= (ieee_quiet_le=20(lnan,=20lnan))=20stop=2015=0A+=20=20= CHECK_INVALID(.false.)=0A+=0A+=20=20CHECK_INVALID(.false.)=0A+=20=20if=20= (ieee_quiet_lt=20(0._large,=200._large))=20stop=2011=0A+=20=20= CHECK_INVALID(.false.)=0A+=20=20if=20(ieee_quiet_lt=20(0._large,=20= -0._large))=20stop=2012=0A+=20=20CHECK_INVALID(.false.)=0A+=20=20if=20= (ieee_quiet_lt=20(0._large,=20lnan))=20stop=2013=0A+=20=20= CHECK_INVALID(.false.)=0A+=20=20if=20(.not.=20ieee_quiet_lt=20(0._large,=20= linf))=20stop=2014=0A+=20=20CHECK_INVALID(.false.)=0A+=20=20if=20= (ieee_quiet_lt=20(lnan,=20lnan))=20stop=2015=0A+=20=20= CHECK_INVALID(.false.)=0A+=0A+=20=20CHECK_INVALID(.false.)=0A+=20=20if=20= (.not.=20ieee_quiet_ge=20(0._large,=200._large))=20stop=2011=0A+=20=20= CHECK_INVALID(.false.)=0A+=20=20if=20(.not.=20ieee_quiet_ge=20(0._large,=20= -0._large))=20stop=2012=0A+=20=20CHECK_INVALID(.false.)=0A+=20=20if=20= (ieee_quiet_ge=20(0._large,=20lnan))=20stop=2013=0A+=20=20= CHECK_INVALID(.false.)=0A+=20=20if=20(ieee_quiet_ge=20(0._large,=20= linf))=20stop=2014=0A+=20=20CHECK_INVALID(.false.)=0A+=20=20if=20= (ieee_quiet_ge=20(lnan,=20lnan))=20stop=2015=0A+=20=20= CHECK_INVALID(.false.)=0A+=0A+=20=20CHECK_INVALID(.false.)=0A+=20=20if=20= (ieee_quiet_gt=20(0._large,=200._large))=20stop=2011=0A+=20=20= CHECK_INVALID(.false.)=0A+=20=20if=20(ieee_quiet_gt=20(0._large,=20= -0._large))=20stop=2012=0A+=20=20CHECK_INVALID(.false.)=0A+=20=20if=20= (ieee_quiet_gt=20(0._large,=20lnan))=20stop=2013=0A+=20=20= CHECK_INVALID(.false.)=0A+=20=20if=20(ieee_quiet_gt=20(0._large,=20= linf))=20stop=2014=0A+=20=20CHECK_INVALID(.false.)=0A+=20=20if=20= (ieee_quiet_gt=20(lnan,=20lnan))=20stop=2015=0A+=20=20= CHECK_INVALID(.false.)=0A+=0A+=0A+end=20program=20foo=0Adiff=20--git=20= a/libgfortran/ieee/ieee_arithmetic.F90=20= b/libgfortran/ieee/ieee_arithmetic.F90=0Aindex=20= 9c0b9f31730..0f6d17cb243=20100644=0A---=20= a/libgfortran/ieee/ieee_arithmetic.F90=0A+++=20= b/libgfortran/ieee/ieee_arithmetic.F90=0A@@=20-378,6=20+378,75=20@@=20= UNORDERED_MACRO(4,4)=0A=20=20=20end=20interface=0A=20=20=20public=20::=20= IEEE_FMA=0A=20=0A+=20=20!=20IEEE_QUIET_*=20and=20IEEE_SIGNALING_*=20= comparison=20functions=0A+=0A+#define=20COMP_MACRO(TYPE,OP,K)=20\=0A+=20=20= elemental=20logical=20function=20\=0A+=20=20=20=20= _gfortran_ieee_/**/TYPE/**/_/**/OP/**/_/**/K=20(X,Y)=20;=20\=0A+=20=20=20= =20=20=20real(kind=20=3D=20K),=20intent(in)=20::=20X=20;=20\=0A+=20=20=20= =20=20=20real(kind=20=3D=20K),=20intent(in)=20::=20Y=20;=20\=0A+=20=20= end=20function=0A+=0A+#ifdef=20HAVE_GFC_REAL_16=0A+#=20=20define=20= EXPAND_COMP_MACRO_16(TYPE,OP)=20COMP_MACRO(TYPE,OP,16)=0A+#else=0A+#=20=20= define=20EXPAND_COMP_MACRO_16(TYPE,OP)=0A+#endif=0A+=0A+#undef=20= EXPAND_MACRO_10=0A+#ifdef=20HAVE_GFC_REAL_10=0A+#=20=20define=20= EXPAND_COMP_MACRO_10(TYPE,OP)=20COMP_MACRO(TYPE,OP,10)=0A+#else=0A+#=20=20= define=20EXPAND_COMP_MACRO_10(TYPE,OP)=0A+#endif=0A+=0A+#define=20= COMP_FUNCTION(TYPE,OP)=20\=0A+=20=20interface=20;=20\=0A+=20=20=20=20= COMP_MACRO(TYPE,OP,4)=20;=20\=0A+=20=20=20=20COMP_MACRO(TYPE,OP,8)=20;=20= \=0A+=20=20=20=20EXPAND_COMP_MACRO_10(TYPE,OP)=20;=20\=0A+=20=20=20=20= EXPAND_COMP_MACRO_16(TYPE,OP)=20;=20\=0A+=20=20end=20interface=0A+=0A= +#ifdef=20HAVE_GFC_REAL_16=0A+#=20=20define=20= EXPAND_INTER_MACRO_16(TYPE,OP)=20= _gfortran_ieee_/**/TYPE/**/_/**/OP/**/_16=0A+#else=0A+#=20=20define=20= EXPAND_INTER_MACRO_16(TYPE,OP)=0A+#endif=0A+=0A+#ifdef=20= HAVE_GFC_REAL_10=0A+#=20=20define=20EXPAND_INTER_MACRO_10(TYPE,OP)=20= _gfortran_ieee_/**/TYPE/**/_/**/OP/**/_10=0A+#else=0A+#=20=20define=20= EXPAND_INTER_MACRO_10(TYPE,OP)=0A+#endif=0A+=0A+#define=20= COMP_INTERFACE(TYPE,OP)=20\=0A+=20=20interface=20= IEEE_/**/TYPE/**/_/**/OP=20;=20\=0A+=20=20=20=20procedure=20\=0A+=20=20=20= =20=20=20EXPAND_INTER_MACRO_16(TYPE,OP)=20,=20\=0A+=20=20=20=20=20=20= EXPAND_INTER_MACRO_10(TYPE,OP)=20,=20\=0A+=20=20=20=20=20=20= _gfortran_ieee_/**/TYPE/**/_/**/OP/**/_8=20,=20\=0A+=20=20=20=20=20=20= _gfortran_ieee_/**/TYPE/**/_/**/OP/**/_4=20;=20\=0A+=20=20end=20= interface=20;=20\=0A+=20=20public=20::=20IEEE_/**/TYPE/**/_/**/OP=0A+=0A= +#define=20IEEE_COMPARISON(TYPE,OP)=20\=0A+=20=20COMP_FUNCTION(TYPE,OP)=20= ;=20\=0A+=20=20COMP_INTERFACE(TYPE,OP)=0A+=0A+=20=20= IEEE_COMPARISON(QUIET,EQ)=0A+=20=20IEEE_COMPARISON(QUIET,GE)=0A+=20=20= IEEE_COMPARISON(QUIET,GT)=0A+=20=20IEEE_COMPARISON(QUIET,LE)=0A+=20=20= IEEE_COMPARISON(QUIET,LT)=0A+=20=20IEEE_COMPARISON(QUIET,NE)=0A+=20=20= IEEE_COMPARISON(SIGNALING,EQ)=0A+=20=20IEEE_COMPARISON(SIGNALING,GE)=0A+=20= =20IEEE_COMPARISON(SIGNALING,GT)=0A+=20=20IEEE_COMPARISON(SIGNALING,LE)=0A= +=20=20IEEE_COMPARISON(SIGNALING,LT)=0A+=20=20= IEEE_COMPARISON(SIGNALING,NE)=0A+=0A=20=20=20!=20IEEE_LOGB=0A=20=0A=20=20= =20interface=0A--=20=0A2.34.1=0A=0A= --Apple-Mail=_37C4D926-BF10-4E38-9956-B9E004C047D9--