From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-wm1-x334.google.com (mail-wm1-x334.google.com [IPv6:2a00:1450:4864:20::334]) by sourceware.org (Postfix) with ESMTPS id 374CF3858D38; Tue, 6 Jun 2023 19:29:36 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 374CF3858D38 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-wm1-x334.google.com with SMTP id 5b1f17b1804b1-3f778c50d64so5327305e9.0; Tue, 06 Jun 2023 12:29:36 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20221208; t=1686079774; x=1688671774; h=to:cc:date:message-id:subject:mime-version:from:from:to:cc:subject :date:message-id:reply-to; bh=Tuq1V6GUjogwv2vL7GkfzlmrEAsunv/CpbAJkq0GAmY=; b=UtTkVBJv67ciOgkYX7aezGorp21SCxeLOH5BJGnnnA6B4TbjA3ak+TduMW1QktkQ+C 6N3g5VDuR0hrxgNSREtqeataxj6D/tdSmBeZBFAYvKGjBzoMeFa/FOfRt7OSaX+obdOE OiJ5oJ660mivsdsoIzsNU8DY2Bhrl9jSiasqAmU5rjhPIuu00VUFT3dhzF9vD4PvaHIh Kg31HAWdZJaLF1kmeleQKsyfTUzhhIvFD0eCvWcp3Ic8lHO0L8e6tEcOLQLtn1hSP8h1 OxyWntD9N9dnlFnmRnhKtBs397RQ0sXMji5b3lU0tAjZzJpQqbL8MT6QVeUW1eBA+0qb jdhw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1686079774; x=1688671774; h=to:cc:date:message-id:subject:mime-version:from:x-gm-message-state :from:to:cc:subject:date:message-id:reply-to; bh=Tuq1V6GUjogwv2vL7GkfzlmrEAsunv/CpbAJkq0GAmY=; b=PwTeSnx/Ji51DNa5O0b4OftOFVKMEgoTBfDTcuLGXRt3FaT4LEV2UjIiYuaWAJ8hpT 81dvC/niyJtwxKwqm0fEhlRDrGphDghUWQqHOo+hAJNtJbIXU3LPWcOaOywlrZO7xLK5 iVkixuEI9ATAjOD8FjYypMajJNEt3J4EB+8tlVpgrfDrbSIgvtd9GLQnK20E2Vw6l2T5 wR15luV4rl7yfQlQv+lVYTZBU9I+Fr+o5stXJHqGktBc4MpPPXjLqr8LDS5H5yKVrU3s X/AVsWwrFrHkz1r+XCs3ZKIStTRl6rzJF37beSpbNLGdFYsHfGw/CRjf/6Xd6GAZb9A7 2oag== X-Gm-Message-State: AC+VfDzgarL03XxgSozh1EkkdJnKnWfFrckl5DiZGJb65/6ib9RiJ8Qf c2PTWrpUCA1C5wZyaHsoeB3a6HM1FTobpA== X-Google-Smtp-Source: ACHHUZ5VVIr44rU8TSXDXkhEQHtIyQbfNWhiRCISXT2ShduPrnTOn92dytcrzMxVbyJMZaFtTa9sqw== X-Received: by 2002:a05:600c:8610:b0:3f6:c88:c318 with SMTP id ha16-20020a05600c861000b003f60c88c318mr3855799wmb.4.1686079774038; Tue, 06 Jun 2023 12:29:34 -0700 (PDT) Received: from smtpclient.apple ([2a01:e34:ec56:2a80:45fb:d04e:c5d3:cd4c]) by smtp.gmail.com with ESMTPSA id l16-20020a7bc450000000b003f7eeec829asm462397wmi.10.2023.06.06.12.29.33 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Tue, 06 Jun 2023 12:29:33 -0700 (PDT) From: FX Coudert Content-Type: multipart/mixed; boundary="Apple-Mail=_913C54FB-D885-425A-9C58-C293890B3B15" Mime-Version: 1.0 (Mac OS X Mail 16.0 \(3731.600.7\)) Subject: [PATCH] Fortran: add IEEE_QUIET_* and IEEE_SIGNALING_* comparisons Message-Id: Date: Tue, 6 Jun 2023 21:29:23 +0200 Cc: gcc-patches@gcc.gnu.org To: fortran@gcc.gnu.org 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=_913C54FB-D885-425A-9C58-C293890B3B15 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset=us-ascii Hi, This is a repost of the patch at = https://gcc.gnu.org/pipermail/gcc-patches/2022-September/600887.html which never really got green light, but I stopped pushing because stage = 1 was closing and I was out of time. It depends on a middle-end patch adding a type-generic = __builtin_iseqsig(), which I posted for review at: = https://gcc.gnu.org/pipermail/gcc-patches/2023-June/620801.html Bootstrapped and regtested on x86_64-pc-linux-gnu, OK to commit (once = the middle-end patch is accepted)? FX --Apple-Mail=_913C54FB-D885-425A-9C58-C293890B3B15 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=2082742a558fbb4df6be5b0275e4d0d4ce54f51390=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=0A= libgfortran/=0A=09*=20ieee/ieee_arithmetic.F90:=20Add=20IEEE_QUIET_*=20= and=0A=09IEEE_SIGNALING_*=20functions.=0A---=0A=20= gcc/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= libgfortran/ieee/ieee_arithmetic.F90=20=20=20=20=20=20=20=20=20=20|=20=20= 69=20+++++=0A=205=20files=20changed,=20725=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=0Adiff=20--git=20= a/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..aa082e368c1=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=20::=20rnan,=20rinf=0A+=20=20=20= double=20precision=20::=20dnan,=20dinf=0A+=20=20=20real(kind=3Dlarge)=20= ::=20lnan,=20linf=0A+=0A+=20=20=20rinf=20=3D=20ieee_value(0.,=20= ieee_positive_inf)=0A+=20=20=20rnan=20=3D=20ieee_value(0.,=20= ieee_quiet_nan)=0A+=0A+=20=20=20dinf=20=3D=20ieee_value(0.d0,=20= ieee_positive_inf)=0A+=20=20=20dnan=20=3D=20ieee_value(0.d0,=20= ieee_quiet_nan)=0A+=0A+=20=20=20linf=20=3D=20ieee_value(0._large,=20= ieee_positive_inf)=0A+=20=20=20lnan=20=3D=20ieee_value(0._large,=20= ieee_quiet_nan)=0A+=0A+=20=20=20if=20(.not.=20ieee_quiet_eq=20(0.,=20= 0.))=20stop=201=0A+=20=20=20if=20(.not.=20ieee_quiet_eq=20(0.,=20-0.))=20= stop=202=0A+=20=20=20if=20(.not.=20ieee_quiet_eq=20(1.,=201.))=20stop=20= 3=0A+=20=20=20if=20(.not.=20ieee_quiet_eq=20(rinf,=20rinf))=20stop=204=0A= +=20=20=20if=20(.not.=20ieee_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..131b334f605=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=20::=20rnan,=20rinf=0A+=20=20=20= double=20precision=20::=20dnan,=20dinf=0A+=20=20=20real(kind=3Dlarge)=20= ::=20lnan,=20linf=0A+=0A+=20=20=20rinf=20=3D=20ieee_value(0.,=20= ieee_positive_inf)=0A+=20=20=20rnan=20=3D=20ieee_value(0.,=20= ieee_quiet_nan)=0A+=0A+=20=20=20dinf=20=3D=20ieee_value(0.d0,=20= ieee_positive_inf)=0A+=20=20=20dnan=20=3D=20ieee_value(0.d0,=20= ieee_quiet_nan)=0A+=0A+=20=20=20linf=20=3D=20ieee_value(0._large,=20= ieee_positive_inf)=0A+=20=20=20lnan=20=3D=20ieee_value(0._large,=20= ieee_quiet_nan)=0A+=0A+=20=20=20if=20(.not.=20ieee_signaling_eq=20(0.,=20= 0.))=20stop=201=0A+=20=20=20if=20(.not.=20ieee_signaling_eq=20(0.,=20= -0.))=20stop=202=0A+=20=20=20if=20(.not.=20ieee_signaling_eq=20(1.,=20= 1.))=20stop=203=0A+=20=20=20if=20(.not.=20ieee_signaling_eq=20(rinf,=20= rinf))=20stop=204=0A+=20=20=20if=20(.not.=20ieee_signaling_eq=20(-rinf,=20= -rinf))=20stop=205=0A+=20=20=20if=20(ieee_signaling_eq=20(rnan,=20rnan))=20= stop=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=20= if=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=20a/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=_913C54FB-D885-425A-9C58-C293890B3B15--