���� JFIF  XX �� �� �     $.' ",#(7),01444'9=82<.342  2!!22222222222222222222222222222222222222222222222222�� ��" �� 4     ��   �� �,�PG"Z_�4�˷����kjز�Z�,F+��_z�,�© �����zh6�٨�ic�fu��� #ډb���_�N� ?� �wQ���5-�~�I���8��� �TK<5o�Iv-� ����k�_U_����� ~b�M��d��� �Ӝ�U�Hh��?]��E�w��Q���k�{��_}qFW7HTՑ��Y��F� ?_�'ϔ��_�Ջt� �=||I �� 6�έ"�����D���/[�k�9�� �Y�8 ds|\���Ҿp6�Ҵ���]��.����6� z<�v��@]�i% �� $j��~ �g��J>��no����pM[me�i$[�� �� s�o�ᘨ�˸ nɜG-�ĨU�ycP� 3.DB�li�;� �hj���x 7Z^�N�h��� ���N3u{�:j �x�힞��#M &��jL P@ _���� P�� &��o8 ������9 �����@Sz 6�t7#O�ߋ � s}Yf�T� ��lmr����Z)'N��k�۞p ����w\�T ȯ?�8` �O��i{wﭹW�[�r�� ��Q4F�׊�� �3m&L�=��h3� ���z~��#� \�l :�F,j@�� ʱ�wQT����8�"kJO��� 6�֚l���� }��� R�>ډK���]��y����&����p�}b�� ;N�1�m�r$� |��7�>e�@ B�TM*-i H��g�D�)� E�m�|�ؘbҗ�a ��Ҿ���� t4��� o���G��*oCN�rP���Q��@z,|?W[0 �����:�n,j WiE��W� �$~/�hp\��?��{(�0���+�Y8rΟ�+����>S-S�� ��VN;� }�s?.����� w �9��˟<���Mq4�Wv' ��{)0�1mB ��V����W[� ����8�/<� �%���wT^�5���b��)iM� p g�N�&ݝ� �VO~� q���u���9� ����!��J27��� �$ O-���! �: �%H��� ـ ����y�ΠM=t{!S�� oK8������ t<����è :a�� ����[���� �ա�H���~��w��Qz`�p o�^ �� ��Q��n�  �,uu�C� $ ^���,� �����8�#��:�6��e�|~� ��!�3� 3.�\0�� q��o�4`.|� ����y�Q�`~;�d�ׯ,��O�Zw�������`73�v�܋�< ���Ȏ�� ـ4k��5�K�a�u�=9Yd��$>x�A�&�� j0� ���vF��� Y� |�y��� ~�6�@c��1vOp �Ig�� ��4��l�OD� ��L����� R���c���j�_�uX 6��3?nk��Wy�f;^*B� ��@ �~a�`��Eu������ +� �� 6�L��.ü>��}y���}_�O�6�͐�:�Yr G�X��kG�� ���l^w�� �~㒶sy� �Iu�!� W ��X��N�7BV��O��!X�2����wvG�R�f�T#�����t�/?���%8�^�W�aT ��G�cL�M���I��(J����1~�8�?aT ���]����AS�E��(��*E}� 2�� #I/�׍qz��^t�̔��� b�Yz4x ���t�){ OH� �+(E��A&�N�������XT��o��"�XC�� '���)}�J�z�p� ��~5�}�^����+�6����w��c��Q�| Lp�d�H��}�(�.|����k��c4^� "�����Z?ȕ ��a< �L�!0 39C� �Eu� C�F�Ew�ç ;�n?�*o���B�8�bʝ���'#Rqf�� �M}7����]��� �s2tcS{�\icTx;�\��7K���P ���ʇ Z O-��~�� c>"��?�� �����P ��E��O�8��@�8��G��Q�g�a�Վ���󁶠 �䧘��_%#r�>� 1�z�a�� eb��qcP ѵ��n���#L��� =��׀t� L�7�` ��V��� A{�C:�g���e@ �w1 Xp 3�c3�ġ���� p��M"'-�@n4���fG� �B3�DJ�8[Jo�ߐ���gK)ƛ��$���� � ��8�3�����+���� �����6�ʻ���� ���S�kI�*KZlT _`�� �?��K� ���QK�d ����B`�s}�>���` ��*�>��,*@J�d�oF*� ���弝��O}�k��s��]��y�ߘ ��c1G�V���<=�7��7����6 �q�PT��tXԀ�!9*4�4Tހ 3XΛex�46�� �Y��D ����� �BdemDa����\�_l,� �G�/���֌7���Y�](�xTt^%�GE�����4�}bT ���ڹ�����; Y)���B�Q��u��>J/J � ⮶.�XԄ��j�ݳ� +E��d ��r�5�_D �1 �� o�� �B�x�΢�#� ��<��W�����8���R6�@ g�M�.��� dr�D��>(otU��@ x=��~v���2� ӣ�d�oBd ��3�eO�6�㣷�� ���ݜ 6��6Y��Qz`�� S��{���\P �~z m5{J/L��1������<�e�ͅPu� b�]�ϔ ���'�� ����f�b� Zpw��c`"��i���BD@:)ִ�:�]��h v�E� w���T�l ��P� ��"Ju�}��وV J��G6��. J/�Qgl߭�e�����@�z�Zev2u� )]կ��� ��7x�� �s�M�-<ɯ�c��r� v�����@��$�ޮ}lk���a�� �'����>x��O\�Z Fu>��� ��ck#��&:��`�$ �ai�>2Δ����l���oF[h� �lE�ܺ�Π k:)���` �� $[6�����9�����kOw�\|��� 8}������ބ:��񶐕� �I�A1/� =�2[�,�!��.}gN#�u����b ��� ~� �݊��}34q��� �d�E��L c��$ ��"�[q�U�硬g^��%B � z���r�p J�ru%v\h 1Y�ne` ǥ:g�� �pQM~�^� Xi� ��`S�:V2 9.�P���V� ?B�k�� AEvw%�_�9C�Q����wKekP ؠ�\� ;Io d�{ ߞo�c1eP��� �\� `����E=���@K<�Y�� �eڼ�J ���w����{av�F�'�M�@ /J��+9p ���|]���� �Iw &` ��8���& M�hg ��[�{ ��Xj�� %��Ӓ� $��(��� �ʹN��� <>�I���RY� ��K2�NPlL�ɀ )��&e� ���B+ь����( � �JTx ���_?EZ� }@ 6�U���뙢ط�z��dWI� n` D����噥�[��uV��"�G& Ú����2 g�}&m� �?ċ �"����Om#� ������� � ��{� ON��"S�X ��Ne��ysQ���@ Fn��Vg��� dX�~nj� ]J�<�K]: ��FW�� b�������62 �=��5f����JKw� �bf�X� 55��~J �%^� ���:�-�QIE��P��v�nZum� z � ~ə ���� ���ة����;�f��\v��� g�8�1��f2 4;�V���ǔ�)��� �9���1\�� c��v�/'Ƞ�w����� ��$�4�R-��t�� �� e�6�/�ġ �̕Ecy�J���u�B���<�W�ַ~�w[B1L۲�-JS΂�{���΃���� ��A��20�c# �� @    0!1@AP"#2Q`$3V�%45a6�FRUq���   � ���^7ׅ,$n� ������+��F�`��2X'��0vM��p�L=������ 5��8������u�p~���.�`r�����\��� O��,ư�0oS ��_�M�����l���4�kv\JSd���x���SW�<��Ae�IX����������$I���w�:S���y���›R��9�Q[���,�5�;�@]�%���u�@ *ro�lbI �� ��+���%m:�͇ZV�����u�̉����θau<�fc�.����{�4Ա� �Q����*�Sm��8\ujqs]{kN���)qO�y�_*dJ�b�7���yQqI&9�ԌK!�M}�R�;�� ����S�T���1���i[U�ɵz�]��U)V�S6���3$K{� ߊ<�(� E]Զ[ǼENg�����'�\?#)Dkf��J���o��v���'�%ƞ�&K�u� !��b�35LX�Ϸ��63$K�a�;�9>,R��W��3�3� d�JeTYE.Mϧ��-�o�j3+y��y^�c�������VO�9NV\nd�1 ��!͕_)a�v;����թ�M�lWR1��)El��P;��yوÏ�u 3�k�5Pr6<�⒲l�!˞*��u־�n�!�l:����UNW ��%��Chx8vL'��X�@��*��)���̮��ˍ��� � ��D-M�+J�U�kvK����+�x8��cY������?�Ԡ��~3mo��|�u@[XeY�C�\Kp�x8�oC�C�&����N�~3-H���� ��MX�s�u<`���~"WL��$8ξ��3���a�)|:@�m�\���^�`�@ҷ)�5p+��6���p�%i)P M���ngc�����#0Aruz���RL+xSS?���ʮ}()#�t��mˇ!��0}}y����<�e� �-ή�Ԩ��X������ MF���ԙ~l L.3���}�V뽺�v��� ��멬��Nl�)�2����^�Iq��a��M��qG��T�����c3#������3U�Ǎ���}��לS�|qa��ڃ�+���-��2�f����/��bz��ڐ�� �ݼ[2�ç����k�X�2�* �Z�d���J�G����M*9W���s{��w���T��x��y,�in�O�v��]���n����P�$� JB@=4�OTI�n��e�22a\����q�d���%�$��(���:���: /*�K[PR�fr\nڙdN���F�n�$�4� [�� U�zƶ����� �mʋ���,�ao�u 3�z� �x��Kn����\[��VFmbE;�_U��&V�Gg�]L�۪&#n%�$ɯ� dG���D�TI=�%+AB�Ru#��b4�1�»x�cs�YzڙJG��f��Il� �d�eF'T� iA��T���uC�$����Y��H?����[!G`}���ͪ� �纤Hv\������j�Ex�K���!���OiƸ�Yj�+u-<���'q����uN�*�r\��+�]���<�wOZ.fp�ێ��,-*)V?j-kÊ#�`�r��dV����(�ݽBk�����G�ƛk�QmUڗe��Z���f}|����8�8��a���i��3'J�����~G_�^���d�8w������ R�`(�~�.��u���l�s+g�bv���W���lGc}��u���afE~1�Ue������Z�0�8�=e�� f@/�jqEKQQ�J� �oN��J���W5~M>$6�Lt�;$ʳ{���^��6�{����v6���ķܰg�V�cnn �~z�x�«�,2�u�?cE+Ș�H؎�%�Za�)���X>uW�Tz�Nyo����s���FQƤ��$��*�&�LLXL)�1�" L��eO��ɟ�9=���:t��Z���c��Ž���Y?�ӭV�wv�~,Y��r�ۗ�|�y��GaF�����C�����.�+� ���v1���fήJ�����]�S��T��B��n5sW}y�$��~z�'�c ��8 ��� ,! �p��VN�S��N�N�q��y8z˱�A��4��*��'������2n<�s���^ǧ˭P�Jޮɏ�U�G�L�J�*#��<�V��t7�8����TĜ>��i}K%,���)[��z�21z ?�N�i�n1?T�I�R#��m-�����������������1����lA�`��fT5+��ܐ�c�q՝��ʐ��,���3�f2U�եmab��#ŠdQ�y>\��)�SLY����w#��.���ʑ�f��� ,"+�w�~�N�'�c�O�3F�������N<���)j��&��,-� �љ���֊�_�zS���TǦ����w�>��?�������n��U仆�V���e�����0���$�C�d���rP �m�׈e�Xm�Vu� �L��.�bֹ��� �[Դaզ���*��\y�8�Է:�Ez\�0�Kq�C b��̘��cө���Q��=0Y��s�N��S.��� 3.���O�o:���#���v7�[#߫ ��5�܎�L���Er4���9n��COWlG�^��0k�%<���ZB���aB_���������'=��{i�v�l�$�uC���mƎҝ{�c㱼�y]���W�i ��ߧc��m�H� m�"�"�����;Y�ߝ�Z�Ǔ�����:S#��|}�y�,/k�Ld� TA�(�AI$+I3��;Y*���Z��}|��ӧO��d�v��..#:n��f>�>���ȶI�TX��� 8��y����"d�R�|�)0���=���n4��6ⲑ�+��r<�O�܂~zh�z����7ܓ�HH�Ga롏���nCo�>������a ���~]���R���̲c?�6(�q�;5%� |�uj�~z8R =X��I�V=�|{v�Gj\gc��q����z�؋%M�ߍ����1y��#��@f^���^�>N��� ��#x#۹��6�Y~�?�dfPO��{��P�4��V��u1E1J �*|���%�� �JN��`eWu�zk M6���q t[�� ��g�G���v��WIG��u_ft����5�j�"�Y�:T��ɐ���*�;� e5���4����q$C��2d�}���� _S�L#m�Yp��O�.�C�;��c����Hi#֩%+) �Ӎ��ƲV���SYź��g |���tj��3�8���r|���V��1#;.SQ�A[���S������#���`n�+���$��$ I �P\[�@�s��(�ED�z���P��])8�G#��0B��[ى��X�II�q<��9�~[Z멜�Z�⊔IWU&A>�P~�#��dp<�?����7���c��'~���5 ��+$���lx@�M�dm��n<=e�dyX��?{�|Aef ,|n3�<~z�ƃ�uۧ�����P��Y,�ӥQ�*g�#먙R�\���;T��i,��[9Qi歉����c>]9�� ��"�c��P�� �Md?٥��If�ت�u��k��/����F��9�c*9��Ǎ:�ØF���z�n*�@|I�ށ9����N3{'��[�'ͬ�Ҳ4��#}��!�V� Fu��,�,mTIk���v C�7v���B�6k�T9��1�*l� '~��ƞF��lU��'�M ����][ΩũJ_�{�i�I�n��$�� �L�� j��O�dx�����kza۪��#�E��Cl����x˘�o�����V���ɞ�ljr��)�/,�߬h�L��#��^��L�ф�,íMƁe�̩�NB�L�����iL����q�}��(��q��6IçJ$�W�E$��:������=#����(�K�B����zђ <��K(�N�۫K�w��^O{!����) �H���>x�������lx�?>Պ�+�>�W���,Ly!_�D���Ō�l���Q�!�[ �S����J��1��Ɛ�Y}��b,+�Lo�x�ɓ)����=�y�oh�@�꥟/��I��ѭ=��P�y9��� �ۍYӘ�e+�p�Jnϱ?V\SO%�(�t� ���=?MR�[Ș�����d�/ ��n�l��B�7j� ��!�;ӥ�/�[-���A�>� dN�sLj ��,ɪv��=1c�.SQ�O3�U���ƀ�ܽ�E����������̻��9G�ϷD�7(�}��Ävӌ\� y�_0[w ���<΍>����a_��[0+�L��F.�޺��f�>oN�T����q;���y\��bՃ��y�jH�<|q-eɏ�_?_9+P���Hp$�����[ux�K w�Mw��N�ی'$Y2�=��q���KB��P��~�� ����Yul:�[<����F1�2�O���5=d����]Y�sw:���Ϯ���E��j,_Q��X��z`H1,#II ��d�wr��P˂@�ZJV����y$�\y�{}��^~���[:N����ߌ�U�������O��d�����ؾe��${p>G��3c���Ė�lʌ�� ת��[��`ϱ�-W����dg�I��ig2��� ��}s ��ؤ(%#sS@���~���3�X�nRG�~\jc3�v��ӍL��M[JB�T��s3}��j�Nʖ��W����;7� �ç?=X�F=-�=����q�ߚ���#���='�c��7���ڑW�I(O+=:uxq�������������e2�zi+�kuG�R��������0�&e�n���iT^J����~\jy���p'dtG��s����O��3����9* �b#Ɋ�� p������[Bws�T�>d4�ۧs���nv�n���U���_�~,�v����ƜJ1��s�� �QIz�� )�(lv8M���U=�;����56��G���s#�K���MP�=��LvyGd��}�VwWBF�'�à �?MH�U�g2�� ����!�p�7Q��j��ڴ����=��j�u��� Jn�A s���uM������e��Ɔ�Ҕ�!) '��8Ϣ�ٔ� �ޝ(��Vp���צ֖d=�IC�J�Ǡ{q������kԭ�߸���i��@K����u�|�p=..�*+����x�����z[Aqġ#s2a�Ɗ���RR�)*HRsi�~�a &f��M��P����-K�L@��Z��Xy�'x�{}��Zm+���:�)�) IJ�-i�u���� ���ܒH��'� L(7�y�GӜq���� j��� 6ߌg1�g�o���,kر���tY�?W,���p���e���f�OQS��!K�۟cҒA�|ս�j�>��=⬒��˧L[�� �߿2JaB~R��u�:��Q�] �0H~���]�7��Ƽ�I���( }��cq '�ήET���q�?f�ab���ӥvr� �)o��-Q��_'����ᴎo��K������;��V���o��%���~OK ����*��b�f:���-ťIR��`B�5!RB@���ï�� �u �̯e\�_U�_������� g�ES��3������� QT��a�� ��x����U<~�c?�*�#]�MW,[8O�a�x��]�1bC|踤�P��lw5V%�)�{t�<��d��5���0i�XSU��m:��Z�┵�i�"��1�^B�-��P�hJ��&)O��*�D��c�W��vM��)����}���P��ܗ-q����\mmζZ-l@�}��a��E�6��F�@��&Sg@���ݚ�M����� ȹ 4����#p�\H����dYDo�H���"��\��..R�B�H�z_�/5˘����6��KhJR��P�mƶi�m���3� ,#c�co��q�a)*P t����R�m�k�7x�D�E�\Y�閣_X�<���~�)���c[[�BP����6�Yq���S��0����%_����;��Àv�~�| VS؇ ��'O0��F0��\���U�-�d@�����7�SJ*z��3n��y��P����O��������� m�~�P�3|Y��ʉr#�C�<�G~�.,! ���bqx���h~0=��!ǫ�jy����l� O,�[B��~��|9��ٱ����Xly�#�i�B��g%�S��������tˋ���e���ې��\[d�t)��.+u�|1 ������#�~Oj����hS�%��i.�~X���I�H�m��0n���c�1uE�q��cF�RF�o���7� �O�ꮧ� ���ۛ{��ʛi5�rw?׌#Qn�TW��~?y$��m\�\o����%W� ?=>S�N@�� �Ʈ���R����N�)�r"C�:��:����� �����#��qb��Y�. �6[��2K����2u�Ǧ�HYR��Q�MV��� �G�$��Q+.>�����nNH��q�^��� ����q��mM��V��D�+�-�#*�U�̒ ���p욳��u:�������IB���m� ��PV@O���r[b= �� ��1U�E��_Nm�yKbN�O���U�}�the�`�|6֮P>�\2�P�V���I�D�i�P�O;�9�r�mAHG�W�S]��J*�_�G��+kP�2����Ka�Z���H�'K�x�W�MZ%�O�YD�Rc+o��?�q��Ghm��d�S�oh�\�D�|:W������UA�Qc yT�q� �����~^�H��/��#p�CZ���T�I�1�ӏT����4��"�ČZ�����}��`w�#�*,ʹ�� ��0�i��課�Om�*�da��^gJ݅{���l�e9uF#T�ֲ��̲�ٞC"�q���ߍ ոޑ�o#�XZTp����@ o�8��(jd��xw�]�,f���`~� |,s��^����f�1���t��|��m�򸄭/ctr��5s��7�9Q�4�H1꠲BB@ l9@���C�����+�wp�xu�£Yc�9��?`@#�o�mH�s2��)�=��2�.�l����jg�9$�Y�S�%*L������R�Y������7Z���,*=�䷘$�������arm�o�ϰ���UW.|�r�uf����IGw�t����Zwo��~5 ��YյhO+=8fF�)�W�7�L9lM�̘·Y���֘YLf�큹�pRF���99.A �"wz��=E\Z���'a� 2��Ǚ�#;�'}�G���*��l��^"q��+2FQ� hj��kŦ��${���ޮ-�T�٭cf�|�3#~�RJ����t��$b�(R��(����r���dx� >U b�&9,>���%E\� Ά�e�$��'�q't��*�א���ެ�b��-|d���SB�O�O��$�R+�H�)�܎�K��1m`;�J�2�Y~9��O�g8=vqD`K[�F)k�[���1m޼c��n���]s�k�z$@��)!I �x՝"v��9=�ZA=`Ɠi �:�E��)` 7��vI��}d�YI�_ �o�:ob���o ���3Q��&D&�2=�� �Ά��;>�h����y.*ⅥS������Ӭ�+q&����j|UƧ��� �}���J0��WW< ۋS�)jQR�j���Ư��rN)�Gű�4Ѷ(�S)Ǣ�8��i��W52���No˓� ۍ%�5brOn�L�;�n��\G����=�^U�dI���8$�&���h��'���+�(������cȁ߫k�l��S^���cƗjԌE�ꭔ��gF���Ȓ��@���}O���*;e�v�WV���YJ\�]X'5��ղ�k�F��b 6R�o՜m��i N�i���� >J����?��lPm�U��}>_Z&�KK��q�r��I�D�Չ~�q�3fL�:S�e>���E���-G���{L�6p�e,8��������QI��h��a�Xa��U�A'���ʂ���s�+טIjP�-��y�8ۈZ?J$��W�P� ��R�s�]��|�l(�ԓ��sƊi��o(��S0 ��Y� 8�T97.�����WiL��c�~�dxc�E|�2!�X�K�Ƙਫ਼�$((�6�~|d9u+�qd�^3�89��Y�6L�.I�����?���iI�q���9�)O/뚅����O���X��X�V��ZF[�یgQ�L��K1���RҖr@v�#��X�l��F���Нy�S�8�7�kF!A��sM���^rkp�jP�DyS$N���q�� nxҍ!U�f�!eh�i�2�m ���`�Y�I�9r�6� �TF���C}/�y�^���Η���5d�'��9A-��J��>{�_l+�`��A���[�'��յ�ϛ#w:݅�%��X�}�&�PSt�Q�"�-��\縵�/����$Ɨh�Xb�*�y��BS����;W�ջ_mc�����vt?2}1�;qS�d�d~u:2k5�2�R�~�z+|HE!)�Ǟl��7`��0�<�,�2*���Hl-��x�^����'_TV�gZA�'j� ^�2Ϊ��N7t�����?w�� �x1��f��Iz�C-Ȗ��K�^q�;���-W�DvT�7��8�Z�������� hK�(P:��Q- �8�n�Z���܃e貾�<�1�YT<�,�����"�6{ / �?�͟��|1�:�#g��W�>$����d��J��d�B�� =��jf[��%rE^��il:��B���x���Sּ�1հ��,�=��*�7 fcG��#q� �eh?��2�7�����,�!7x��6�n�LC�4x��},Geǝ�tC.��vS �F�43��zz\��;QYC,6����~;RYS/6���|2���5���v��T��i����������mlv��������&� �nRh^ejR�LG�f���? �ۉҬܦƩ��|��Ȱ����>3����!v��i�ʯ�>�v��オ�X3e���_1z�Kȗ\<������!�8���V��]��?b�k41�Re��T�q��mz��TiOʦ�Z��Xq���L������q"+���2ۨ��8}�&N7XU7Ap�d�X��~�׿��&4e�o�F��� �H�� ��O���č�c�� 懴�6���͉��+)��v;j��ݷ�� �UV�� i��� j���Y9GdÒJ1��詞�����V?h��l�� ��l�cGs�ځ�������y�Ac���� �\V3�? �� ܙg�>qH�S,�E�W�[�㺨�uch�⍸�O�}���a��>�q�6�n6� ���N6�q�� ���� N    ! 1AQaq�0@����"2BRb�#Pr���3C`��Scst���$4D���%Td��  ? � ��N����a��3��m���C���w��������xA�m�q�m��� m������$����4n淿t'��C"w��zU=D�\R+w�p+Y�T�&�պ@��ƃ��3ޯ?�Aﶂ��aŘ���@-�����Q�=���9D��ռ�ѻ@��M�V��P��܅�G5�f�Y<�u=,EC)�<�Fy'�"�&�չ�X~f��l�KԆV��?�� �W�N����=(� �;���{�r����ٌ�Y���h{�١������jW����P���Tc�����X�K�r��}���w�R��%��?���E��m�� �Y�q|����\lEE4� ��r���}�lsI�Y������f�$�=�d�yO����p�����yBj8jU�o�/�S��?�U��*������ˍ�0����� �u�q�m [�?f����a�� )Q�>����6#������� ?����0UQ����,IX���(6ڵ[�DI�MNލ�c&���υ�j\��X�R|,4��� j������T�hA�e��^���d���b<����n�� �즇�=!���3�^�`j�h�ȓr��jẕ�c�,ٞX����-����a�ﶔ���#�$��]w�O��Ӫ�1y%��L�Y<�wg#�ǝ�̗`�x�xa�t�w��»1���o7o5��>�m뭛C���Uƃߜ}�C���y1Xνm�F8�jI���]����H���ۺиE@I�i;r�8ӭ���� V�F�Շ| ��&?�3|x�B�MuS�Ge�=Ӕ�#BE5G�� ���Y!z��_e��q�р/W>|-�Ci߇�t�1ޯќd�R3�u��g�=0 5��[?�#͏��q�cf���H��{ ?u�=?�?ǯ���}Z��z���hmΔ�BFTW�����<�q� (v� ��!��z���iW]*�J�V�z��gX֧A�q�&��/w���u�gYӘa���; �i=����g:��?2�dž6�ى�k�4�>�Pxs����}������G�9� �3 ���)gG�R<>r h�$��'nc�h�P��Bj��J�ҧH� -��N1���N��?��~��}-q!=��_2hc�M��l�vY%UE�@|�v����M2�.Y[|y�"Eï��K�ZF,�ɯ?,q�?v�M 80jx�"�;�9vk�����+ ֧�� �ȺU��?�%�vcV��mA�6��Qg^M��� �A}�3�nl� QRN�l8�kkn�'�����(��M�7m9و�q���%ޟ���*h$Zk"��$�9��: �?U8�Sl��,,|ɒ��xH(ѷ����Gn�/Q�4�P��G�%��Ա8�N��!� �&�7�;���eKM7�4��9R/%����l�c>�x;������>��C�:�����t��h?aKX�bhe�ᜋ^�$�Iհ �hr7%F$�E��Fd���t��5���+�(M6�t����Ü�UU|zW�=a�Ts�Tg������dqP�Q����b'�m���1{|Y����X�N��b �P~��F^F:����k6�"�j!�� �I�r�`��1&�-$�Bevk:y���#y w��I0��x��=D�4��tU���P�ZH��ڠ底taP��6����b>�xa� ���Q�#� WeF��ŮNj�p�J* mQ�N��� �*I�-*�ȩ�F�g�3 �5��V�ʊ�ɮ�a��5F���O@{���NX��?����H�]3��1�Ri_u��������ѕ�� ����0��� F��~��:60�p�͈�S��qX#a�5>���`�o&+�<2�D����: �������ڝ�$�nP���*)�N�|y�Ej�F�5ټ�e���ihy�Z �>���k�bH�a�v��h�-#���!�Po=@k̆IEN��@��}Ll?j�O������߭�ʞ���Q|A07x���wt!xf���I2?Z��<ץ�T���cU�j��]�� 陎Ltl �}5�ϓ��$�,��O�mˊ�;�@O��jE��j(�ا,��LX���LO���Ц�90�O �.����a��nA���7������j4 ��W��_ٓ���zW�jcB������y՗+EM�)d���N�g6�y1_x��p�$Lv :��9�"z��p���ʙ$��^��JԼ*�ϭ����o���=x�Lj�6�J��u82�A�H�3$�ٕ@�=Vv�]�'�qEz�;I˼��)��=��ɯ���x �/�W(V���p�����$ �m�������u�����񶤑Oqˎ�T����r��㠚x�sr�GC��byp�G��1ߠ�w e�8�$⿄����/�M{*}��W�]˷.�CK\�ުx���/$�WP w���r� |i���&�}�{�X� �>��$-��l���?-z���g����lΆ���(F���h�vS*���b���߲ڡn,|)mrH[���a�3�ר�[1��3o_�U�3�TC�$��(�=�)0�kgP���� ��u�^=��4 �WYCҸ:��vQ�ר�X�à��tk�m,�t*��^�,�}D*� �"(�I��9R����>`�`��[~Q]�#af��i6l��8���6�:,s�s�N6�j"�A4���IuQ��6E,�GnH��zS�HO�uk�5$�I�4��ؤ�Q9�@��C����wp �BGv[]�u�Ov��� 0I4���\��y�����Q�Ѹ��~>Z��8�T��a��q�ޣ;z��a���/��S��I:�ܫ_�|������>=Z����8:�S��U�I�J��"IY���8%b8���H��:�QO�6�;7�I�S��J��ҌAά3��>c���E+&jf$eC+�z�;��V����� �r���ʺ������my�e���aQ�f&��6�ND ��.:��NT�vm�<- u���ǝ\MvZY�N�NT��-A�>jr!S��n�O 1�3�Ns�%�3D@���`������ܟ 1�^c<���� �a�ɽ�̲�Xë#�w�|y�cW�=�9I*H8�p�^(4���՗�k��arOcW�tO�\�ƍR��8����'�K���I�Q�����?5�>[�}��yU�ײ -h��=��% q�ThG�2�)���"ו3]�!kB��*p�FDl�A���,�eEi�H�f�Ps�����5�H:�Փ~�H�0Dت�D�I����h�F3�������c��2���E��9�H��5�zԑ�ʚ�i�X�=:m�xg�hd(�v����׊�9iS��O��d@0ڽ���:�p�5�h-��t�&���X�q�ӕ,��ie�|���7A�2���O%P��E��htj��Y1��w�Ѓ!����  ���� ࢽ��My�7�\�a�@�ţ�J �4�Ȼ�F�@o�̒?4�wx��)��]�P��~�����u�����5�����7X ��9��^ܩ�U;Iꭆ 5 �������eK2�7(�{|��Y׎ �V��\"���Z�1� Z�����}��(�Ǝ"�1S���_�vE30>���p;� ΝD��%x�W�?W?v����o�^V�i�d��r[��/&>�~`�9Wh��y�;���R�� � ;;ɮT��?����r$�g1�K����A��C��c��K��l:�'��3 c�ﳯ*"t8�~l��)���m��+U,z��`( �>yJ�?����h>��]��v��ЍG*�{`��;y]��I�T� ;c��NU�fo¾h���/$���|NS���1�S�"�H��V���T���4��uhǜ�]�v;���5�͠x��'C\�SBpl���h}�N����� A�Bx���%��ޭ�l��/����T��w�ʽ]D�=����K���ž�r㻠l4�S�O?=�k �M:� ��c�C�a�#ha���)�ѐxc�s���gP�iG�� {+���x���Q���I= �� z��ԫ+ �8"�k�ñ�j=|����c ��y��CF��/ ��*9ж�h{ �?4�o� ��k�m�Q�N�x��;�Y��4膚�a�w?�6�> e]�����Q�r�:����g�,i"�����ԩA� *M�<�G��b�if��l^M��5� �Ҩ�{����6J��ZJ�����P�*�����Y���ݛu�_4�9�I8�7���������,^ToR���m4�H��?�N�S�ѕw��/S��甍�@�9H�S�T��t�ƻ���ʒU��*{Xs�@����f��� ��֒Li�K{H�w^���������Ϥm�tq���s� ���ք��f:��o~s��g�r��ט� �S�ѱC�e]�x���a��) ���(b-$(�j>�7q�B?ӕ�F��hV25r[7 Y� }L�R��}����*sg+��x�r�2�U=�*'WS��ZDW]�WǞ�<��叓���{�$�9Ou4��y�90-�1�'*D`�c�^o?(�9��u���ݐ��'PI&� f�Jݮ�������:wS����jfP1F:X �H�9dԯ�� �˝[�_54 �}*;@�ܨ�� ð�yn�T���?�ןd�#���4rG�ͨ��H�1�|-#���Mr�S3��G�3�����)�.᧏3v�z֑��r����$G"�`j �1t��x0<Ɔ�Wh6�y�6��,œ�Ga��gA����y��b��)� �h�D��ß�_�m��ü �gG;��e�v��ݝ�nQ� ��C����-�*��o���y�a��M��I�>�<���]obD��"�:���G�A��-\%LT�8���c�)��+y76���o�Q�#*{�(F�⽕�y����=���rW�\p���۩�c���A���^e6��K������ʐ�cVf5$�'->���ՉN"���F�"�UQ@�f��Gb~��#�&�M=��8�ט�JNu9��D��[̤�s�o�~��� ��� G��9T�tW^g5y$b��Y'��س�Ǵ�=��U-2 #�MC�t(�i� �lj�@Q 5�̣i�*�O����s�x�K�f��}\��M{E�V�{�υ��Ƈ�����);�H����I��fe�Lȣr�2��>��W� I�Ȃ6������i��k�� �5�YOxȺ����>��Y�f5'��|��H+��98pj�n�.O�y�������jY��~��i�w'������l�;�s�2��Y��:'lg�ꥴ)o#'Sa�a�K��Z� �m��}�`169�n���"���x��I ��*+� }F<��cГ���F�P�������ֹ*�PqX�x۩��,� ��N�� �4<-����%����:��7����W���u�`����� $�?�I��&����o��o��`v�>��P��"��l���4��5'�Z�gE���8���?��[�X�7(��.Q�-��*���ތL@̲����v��.5���[��=�t\+�CNܛ��,g�SQnH����}*F�G16���&:�t��4ُ"A��̣��$�b �|����#rs��a�����T�� ]�<�j��B S�('$�ɻ� �wP;�/�n��?�ݜ��x�F��yUn�~mL*-�������Xf�wd^�a�}��f�,=t�׵i�.2/wpN�Ep8�OР���•��R�FJ� 55TZ��T �ɭ�<��]��/�0�r�@�f��V��V����Nz�G��^���7hZi����k��3�,kN�e|�vg�1{9]_i��X5y7� 8e]�U����'�-2,���e"����]ot�I��Y_��n�(JҼ��1�O ]bXc���Nu�No��pS���Q_���_�?i�~�x h5d'�(qw52] ��'ޤ�q��o1�R!���`ywy�A4u���h<קy���\[~�4�\ X�Wt/� 6�����n�F�a8��f���z �3$�t(���q��q�x��^�XWeN'p<-v�!�{�(>ӽDP7��ո0�y)�e$ٕv�Ih'Q�EA�m*�H��RI��=:��� ���4牢) �%_iN�ݧ�l]� �Nt���G��H�L��� ɱ�g<���1V�,�J~�ٹ�"K��Q�� 9�HS�9�?@��k����r�;we݁�]I�!{ �@�G�[�"��`���J:�n]�{�cA�E����V��ʆ���#��U9�6����j�#Y�m\��q�e4h�B�7��C�������d<�?J����1g:ٳ���=Y���D�p�ц� ׈ǔ��1�]26؜oS�'��9�V�FVu�P�h�9�xc�oq�X��p�o�5��Ա5$�9W�V(�[Ak�aY錎qf;�'�[�|���b�6�Ck��)��#a#a˙��8���=äh�4��2��C��4tm^ �n'c� ��]GQ$[Wҿ��i���vN�{Fu ��1�gx��1┷���N�m��{j-,��x�� Ūm�ЧS�[�s���Gna���䑴�� x�p 8<������97�Q���ϴ�v�aϚG��Rt�Һ׈�f^\r��WH�JU�7Z���y)�vg=����n��4�_)y��D'y�6�]�c�5̪ �\� �PF�k����&�c;��cq�$~T�7j ���nç]�<�g ":�to�t}�159�<�/�8������m�b�K#g'I'.W����� 6��I/��>v��\�MN��g���m�A�yQL�4u�Lj�j9��#44�t��l^�}L����n��R��!��t��±]��r��h6ٍ>�yҏ�N��fU�� ���� Fm@�8}�/u��jb9������he:A�y�ծw��GpΧh�5����l}�3p468��)U��d��c����;Us/�֔�YX�1�O2��uq�s��`hwg�r~�{ R��mhN��؎*q 42�*th��>�#���E����#��Hv�O����q�}����� 6�e��\�,Wk�#���X��b>��p}�դ��3���T5��†��6��[��@ �P�y*n��|'f�֧>�lư΂�̺����SU�'*�q�p�_S�����M�� '��c�6��� ��m�� ySʨ;M��r���Ƌ�m�Kxo,���Gm�P��A�G�:��i��w�9�}M(�^�V��$ǒ�ѽ�9���|���� �a����J�SQ�a���r�B;����}���ٻ֢�2�%U���c�#�g���N�a�ݕ�'�v�[�OY'��3L�3�;,p�]@�S��{ls��X�'���c�jw� k'a�.��}�}&�� �dP�*�bK=ɍ!����;3n�gΊU�ߴmt�'*{,=SzfD� A��ko~�G�aoq�_mi}#�m�������P�Xhύ��� �mxǍ�΂���巿zf��Q���c���|kc�����?���W��Y�$���_Lv����l߶��c���`?����l�j�ݲˏ!V��6����U�Ђ(A���4y)H���p�Z_�x��>���e�� R��$�/�`^'3qˏ�-&Q�=?��CFVR �D�fV�9��{�8g�������n�h�(P"��6�[�D���< E�����~0<@�`�G�6����Hг�cc�� �c�K.5��D��d�B���`?�XQ��2��ٿyqo&+�1^� DW�0�ꊩ���G�#��Q�nL3��c���������/��x ��1�1 [y�x�პCW��C�c�UĨ80�m�e�4.{�m��u���I=��f�����0QRls9���f���������9���~f�����Ǩ��a�"@�8���ȁ�Q����#c�ic������G��$���G���r/$W�(��W���V�"��m�7�[m�A�m����bo��D� j����۳� l���^�k�h׽����� ��#� iXn�v��eT�k�a�^Y�4�BN�� ĕ�� 0    !01@Q"2AaPq3BR������ ? � ��@4�Q�����T3,���㺠�W�[=JK�Ϟ���2�r^7��vc�:�9 �E�ߴ�w�S#d���Ix��u��:��Hp��9E!�� V 2;73|F��9Y���*ʬ�F��D����u&���y؟��^EA��A��(ɩ���^��GV:ݜDy�`��Jr29ܾ�㝉��[���E;Fzx��YG��U�e�Y�C���� ����v-tx����I�sם�Ę�q��Eb�+P\ :>�i�C'�;�����k|z�رn�y]�#ǿb��Q��������w�����(�r|ӹs��[�D��2v-%��@;�8<a���[\o[ϧw��I!��*0�krs)�[�J9^��ʜ��p1)� "��/_>��o��<1����A�E�y^�C��`�x1'ܣn�p��s`l���fQ��):�l����b>�Me�jH^?�kl3(�z:���1ŠK&?Q�~�{�ٺ�h�y���/�[��V�|6��}�KbX����mn[-��7�5q�94�������dm���c^���h� X��5��<�eޘ>G���-�}�دB�ޟ� ��|�rt�M��V+�]�c?�-#ڛ��^ǂ}���Lkr���O��u�>�-D�ry� D?:ޞ�U��ǜ�7�V��?瓮�"�#���r��չģVR;�n���/_� ؉v�ݶe5d�b9��/O��009�G���5n�W����JpA�*�r9�>�1��.[t���s�F���nQ� V 77R�]�ɫ8����_0<՜�IF�u(v��4��F�k�3��E)��N:��yڮe��P�`�1}�$WS��J�SQ�N�j �ٺ��޵�#l���ј(�5=��5�lǏmoW�v-�1����v,W�mn��߀$x�<����v�j(����c]��@#��1������Ǔ���o'��u+����;G�#�޸��v-lη��/(`i⣍Pm^� ��ԯ̾9Z��F��������n��1��� ��]�[��)�'������ :�֪�W��FC����� �B9،!?���]��V��A�Վ�M��b�w��G F>_DȬ0¤�#�QR�[V��kz���m�w�"��9ZG�7'[��=�Q����j8R?�zf�\a�=��O�U����*oB�A�|G���2�54 �p��.w7� �� ��&������ξxGHp� B%��$g�����t�Џ򤵍z���HN�u�Я�-�'4��0�� ;_�� 3     !01"@AQa2Pq#3BR������ ? � �ʩca��en��^��8���<�u#��m*08r��y�N"�<�Ѳ0��@\�p��� �����Kv�D��J8�Fҽ� �f�Y��-m�ybX�NP����}�!*8t(�OqѢ��Q�wW�K��ZD��Δ^e��!� ��B�K��p~�����e*l}z#9ң�k���q#�Ft�o��S�R����-�w�!�S���Ӥß|M�l޶V��!eˈ�8Y���c�ЮM2��tk���� ������J�fS����Ö*i/2�����n]�k�\���|4yX�8��U�P.���Ы[���l��@"�t�<������5�lF���vU�����W��W��;�b�cД^6[#7@vU�xgZv��F�6��Q,K�v��� �+Ъ��n��Ǣ��Ft���8��0��c�@�!�Zq s�v�t�;#](B��-�nῃ~���3g������5�J�%���O������n�kB�ĺ�.r��+���#�N$?�q�/�s�6��p��a����a��J/��M�8��6�ܰ"�*������ɗud"\w���aT(����[��F��U՛����RT�b���n�*��6���O��SJ�.�ij<�v�MT��R\c��5l�sZB>F��<7�;EA��{��E���Ö��1U/�#��d1�a�n.1ě����0�ʾR�h��|�R��Ao�3�m3 ��%�� ���28Q� ��y��φ���H�To�7�lW>����#i`�q���c����a��� �m,B�-j����݋�'mR1Ήt�>��V��p���s�0IbI�C.���1R�ea�����]H�6�������� ��4B>��o��](��$B���m�����a�!=� �?�B� K�Ǿ+�Ծ"�n���K��*��+��[T#�{ E�J�S����Q�����s�5�:�U�\wĐ�f�3����܆&�)��� �I���Ԇw��E T�lrTf6Q|R�h:��[K�� �z��c֧�G�C��%\��_�a �84��HcO�bi��ؖV��7H �)*ģK~Xhչ0��4?�0��� �E<���}3���#���u�?�� ��|g�S�6ꊤ�|�I#Hڛ� �ա��w�X��9��7���Ŀ%�SL��y6č��|�F�a 8���b� �$�sק�h���b9RAu7�˨p�Č�_\*w��묦��F ����4D~�f����|(�"m���NK��i�S�>�$d7SlA��/�²����SL��|6N�}���S�˯���g��]6��; �#�.��<���q'Q�1|KQ$�����񛩶"�$r�b:���N8�w@��8$�� �AjfG|~�9F ���Y��ʺ��Bwؒ������M:I岎�G��`s�YV5����6��A �b:�W���G�q%l�����F��H���7�������Fsv7� �k�� 403WebShell
403Webshell
Server IP : 127.0.0.1  /  Your IP : 10.100.1.254
Web Server : Apache/2.4.58 (Win64) OpenSSL/3.1.3 PHP/8.0.30
System : Windows NT WIZC-EXTRANET 10.0 build 19045 (Windows 10) AMD64
User : SYSTEM ( 0)
PHP Version : 8.0.30
Disable Function : NONE
MySQL : OFF  |  cURL : ON  |  WGET : OFF  |  Perl : OFF  |  Python : OFF  |  Sudo : OFF  |  Pkexec : OFF
Directory :  C:/Strawberry/c/lib/python3.9/test/decimaltestdata/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : C:/Strawberry/c/lib/python3.9/test/decimaltestdata/fma.decTest
------------------------------------------------------------------------
-- fma.decTest -- decimal fused multiply add                          --
-- Copyright (c) IBM Corporation, 1981, 2008.  All rights reserved.   --
------------------------------------------------------------------------
-- Please see the document "General Decimal Arithmetic Testcases"     --
-- at http://www2.hursley.ibm.com/decimal for the description of      --
-- these testcases.                                                   --
--                                                                    --
-- These testcases are experimental ('beta' versions), and they       --
-- may contain errors.  They are offered on an as-is basis.  In       --
-- particular, achieving the same results as the tests here is not    --
-- a guarantee that an implementation complies with any Standard      --
-- or specification.  The tests are not exhaustive.                   --
--                                                                    --
-- Please send comments, suggestions, and corrections to the author:  --
--   Mike Cowlishaw, IBM Fellow                                       --
--   IBM UK, PO Box 31, Birmingham Road, Warwick CV34 5JL, UK         --
--   mfc@uk.ibm.com                                                   --
------------------------------------------------------------------------
version: 2.59

extended:    1
precision:   9
rounding:    half_up
maxExponent: 384
minexponent: -383

-- These tests comprise three parts:
--   1. Sanity checks and other three-operand tests (especially those
--      where the fused operation makes a difference)
--   2. Multiply tests (third operand is neutral zero [0E+emax])
--   3. Addition tests (first operand is 1)
-- The multiply and addition tests are extensive because FMA may have
-- its own dedicated multiplication or addition routine(s), and they
-- also inherently check the left-to-right properties.

-- Sanity checks
fmax0001 fma  1   1   1 ->   2
fmax0002 fma  1   1   2 ->   3
fmax0003 fma  2   2   3 ->   7
fmax0004 fma  9   9   9 ->  90
fmax0005 fma -1   1   1 ->   0
fmax0006 fma -1   1   2 ->   1
fmax0007 fma -2   2   3 ->  -1
fmax0008 fma -9   9   9 -> -72
fmax0011 fma  1  -1   1 ->   0
fmax0012 fma  1  -1   2 ->   1
fmax0013 fma  2  -2   3 ->  -1
fmax0014 fma  9  -9   9 -> -72
fmax0015 fma  1   1  -1 ->   0
fmax0016 fma  1   1  -2 ->  -1
fmax0017 fma  2   2  -3 ->   1
fmax0018 fma  9   9  -9 ->  72
fmax0019 fma  3   5   7 ->  22
fmax0029 fma  3  -5   7 ->  -8

-- non-integer exacts
fma0100  fma    25.2   63.6   -438  ->  1164.72
fma0101  fma   0.301  0.380    334  ->  334.114380
fma0102  fma    49.2   -4.8   23.3  ->  -212.86
fma0103  fma    4.22  0.079  -94.6  ->  -94.26662
fma0104  fma     903  0.797  0.887  ->  720.578
fma0105  fma    6.13   -161   65.9  ->  -921.03
fma0106  fma    28.2    727   5.45  ->  20506.85
fma0107  fma       4    605    688  ->  3108
fma0108  fma    93.3   0.19  0.226  ->  17.953
fma0109  fma   0.169   -341   5.61  ->  -52.019
fma0110  fma   -72.2     30  -51.2  ->  -2217.2
fma0111  fma  -0.409     13   20.4  ->  15.083
fma0112  fma     317   77.0   19.0  ->  24428.0
fma0113  fma      47   6.58   1.62  ->  310.88
fma0114  fma    1.36  0.984  0.493  ->  1.83124
fma0115  fma    72.7    274   1.56  ->  19921.36
fma0116  fma     335    847     83  ->  283828
fma0117  fma     666  0.247   25.4  ->  189.902
fma0118  fma   -3.87   3.06   78.0  ->  66.1578
fma0119  fma   0.742    192   35.6  ->  178.064
fma0120  fma   -91.6   5.29  0.153  ->  -484.411

-- cases where result is different from separate multiply + add; each
-- is preceded by the result of unfused multiply and add
-- [this is about 20% of all similar  cases in general]
--               888565290   1557.96930  -86087.7578  -> 1.38435735E+12
fma0201  fma     888565290   1557.96930  -86087.7578  -> 1.38435736E+12  Inexact Rounded
--             -85519342.9    735155419     42010431  -> -6.28700084E+16
fma0205  fma   -85519342.9    735155419     42010431  -> -6.28700083E+16 Inexact Rounded
--                -98025.5  -294603.472   10414348.2  -> 2.88890669E+10
fma0208  fma      -98025.5  -294603.472   10414348.2  -> 2.88890670E+10  Inexact Rounded
--              5967627.39   83526540.6   498494.810  -> 4.98455271E+14
fma0211  fma    5967627.39   83526540.6   498494.810  -> 4.98455272E+14  Inexact Rounded
--               3456.9433    874.39518   197866.615  ->  3220601.18
fma0216  fma     3456.9433    874.39518   197866.615  ->  3220601.17     Inexact Rounded
--              62769.8287   2096.98927    48.420317  ->  131627705
fma0218  fma    62769.8287   2096.98927    48.420317  ->  131627706      Inexact Rounded
--               -68.81500   59961113.9     -8988862  -> -4.13521291E+9
fma0219  fma     -68.81500   59961113.9     -8988862  -> -4.13521292E+9  Inexact Rounded
--              2126341.02   63491.5152    302427455  -> 1.35307040E+11
fma0226  fma    2126341.02   63491.5152    302427455  -> 1.35307041E+11  Inexact Rounded


-- Infinite combinations
fmax0800 fma  Inf   Inf   Inf    ->  Infinity
fmax0801 fma  Inf   Inf  -Inf    ->  NaN Invalid_operation
fmax0802 fma  Inf  -Inf   Inf    ->  NaN Invalid_operation
fmax0803 fma  Inf  -Inf  -Inf    -> -Infinity
fmax0804 fma -Inf   Inf   Inf    ->  NaN Invalid_operation
fmax0805 fma -Inf   Inf  -Inf    -> -Infinity
fmax0806 fma -Inf  -Inf   Inf    ->  Infinity
fmax0807 fma -Inf  -Inf  -Inf    ->  NaN Invalid_operation
fmax0808 fma -Inf   0       1    ->  NaN Invalid_operation
fmax0809 fma -Inf   0     NaN    ->  NaN Invalid_operation

-- Triple NaN propagation
fmax0900 fma  NaN2  NaN3  NaN5   ->  NaN2
fmax0901 fma  0     NaN3  NaN5   ->  NaN3
fmax0902 fma  0     0     NaN5   ->  NaN5
-- first sNaN wins (consider qNaN from earlier sNaN being
-- overridden by an sNaN in third operand)
fmax0903 fma  sNaN1 sNaN2 sNaN3  ->  NaN1 Invalid_operation
fmax0904 fma  0     sNaN2 sNaN3  ->  NaN2 Invalid_operation
fmax0905 fma  0     0     sNaN3  ->  NaN3 Invalid_operation
fmax0906 fma  sNaN1 sNaN2 sNaN3  ->  NaN1 Invalid_operation
fmax0907 fma  NaN7  sNaN2 sNaN3  ->  NaN2 Invalid_operation
fmax0908 fma  NaN7  NaN5  sNaN3  ->  NaN3 Invalid_operation

-- MULTIPLICATION TESTS ------------------------------------------------
-- sanity checks (as base, above)
fmax2000 fma 2      2  0E+999999  -> 4
fmax2001 fma 2      3  0E+999999  -> 6
fmax2002 fma 5      1  0E+999999  -> 5
fmax2003 fma 5      2  0E+999999  -> 10
fmax2004 fma 1.20   2  0E+999999  -> 2.40
fmax2005 fma 1.20   0  0E+999999  -> 0.00
fmax2006 fma 1.20  -2  0E+999999  -> -2.40
fmax2007 fma -1.20  2  0E+999999  -> -2.40
fmax2008 fma -1.20  0  0E+999999  -> 0.00
fmax2009 fma -1.20 -2  0E+999999  -> 2.40
fmax2010 fma 5.09 7.1  0E+999999  -> 36.139
fmax2011 fma 2.5    4  0E+999999  -> 10.0
fmax2012 fma 2.50   4  0E+999999  -> 10.00
fmax2013 fma 1.23456789 1.00000000  0E+999999  -> 1.23456789 Rounded
fmax2014 fma 9.999999999 9.999999999  0E+999999  -> 100.000000 Inexact Rounded
fmax2015 fma 2.50   4  0E+999999  -> 10.00
precision: 6
fmax2016 fma 2.50   4  0E+999999  -> 10.00
fmax2017 fma  9.999999  9.999999  0E+999999  ->  100.000 Inexact Rounded
fmax2018 fma  9.999999 -9.999999  0E+999999  -> -100.000 Inexact Rounded
fmax2019 fma -9.999999  9.999999  0E+999999  -> -100.000 Inexact Rounded
fmax2020 fma -9.999999 -9.999999  0E+999999  ->  100.000 Inexact Rounded

-- 1999.12.21: next one is an edge case if intermediate longs are used
precision: 15
fmax2059 fma 999999999999 9765625  0E+999999  -> 9.76562499999023E+18 Inexact Rounded
precision: 30
fmax2160 fma 999999999999 9765625  0E+999999  -> 9765624999990234375
precision: 9
-----

-- zeros, etc.
fmax2021 fma  0      0      0E+999999  ->  0
fmax2022 fma  0     -0      0E+999999  ->  0
fmax2023 fma -0      0      0E+999999  ->  0
fmax2024 fma -0     -0      0E+999999  ->  0
fmax2025 fma -0.0   -0.0    0E+999999  ->  0.00
fmax2026 fma -0.0   -0.0    0E+999999  ->  0.00
fmax2027 fma -0.0   -0.0    0E+999999  ->  0.00
fmax2028 fma -0.0   -0.0    0E+999999  ->  0.00
fmax2030 fma  5.00   1E-3   0E+999999  ->  0.00500
fmax2031 fma  00.00  0.000  0E+999999  ->  0.00000
fmax2032 fma  00.00  0E-3   0E+999999  ->  0.00000     -- rhs is 0
fmax2033 fma  0E-3   00.00  0E+999999  ->  0.00000     -- lhs is 0
fmax2034 fma -5.00   1E-3   0E+999999  -> -0.00500
fmax2035 fma -00.00  0.000  0E+999999  ->  0.00000
fmax2036 fma -00.00  0E-3   0E+999999  ->  0.00000     -- rhs is 0
fmax2037 fma -0E-3   00.00  0E+999999  ->  0.00000     -- lhs is 0
fmax2038 fma  5.00  -1E-3   0E+999999  -> -0.00500
fmax2039 fma  00.00 -0.000  0E+999999  ->  0.00000
fmax2040 fma  00.00 -0E-3   0E+999999  ->  0.00000     -- rhs is 0
fmax2041 fma  0E-3  -00.00  0E+999999  ->  0.00000     -- lhs is 0
fmax2042 fma -5.00  -1E-3   0E+999999  ->  0.00500
fmax2043 fma -00.00 -0.000  0E+999999  ->  0.00000
fmax2044 fma -00.00 -0E-3   0E+999999  ->  0.00000     -- rhs is 0
fmax2045 fma -0E-3  -00.00  0E+999999  ->  0.00000     -- lhs is 0

-- examples from decarith multiply
fmax2050 fma 1.20 3         0E+999999  -> 3.60
fmax2051 fma 7    3         0E+999999  -> 21
fmax2052 fma 0.9  0.8       0E+999999  -> 0.72
fmax2053 fma 0.9  -0        0E+999999  -> 0.0
fmax2054 fma 654321 654321  0E+999999  -> 4.28135971E+11  Inexact Rounded

fmax2060 fma 123.45 1e7   0E+999999  ->  1.2345E+9
fmax2061 fma 123.45 1e8   0E+999999  ->  1.2345E+10
fmax2062 fma 123.45 1e+9  0E+999999  ->  1.2345E+11
fmax2063 fma 123.45 1e10  0E+999999  ->  1.2345E+12
fmax2064 fma 123.45 1e11  0E+999999  ->  1.2345E+13
fmax2065 fma 123.45 1e12  0E+999999  ->  1.2345E+14
fmax2066 fma 123.45 1e13  0E+999999  ->  1.2345E+15


-- test some intermediate lengths
precision: 9
fmax2080 fma 0.1 123456789           0E+999999  -> 12345678.9
fmax2081 fma 0.1 1234567891          0E+999999  -> 123456789 Inexact Rounded
fmax2082 fma 0.1 12345678912         0E+999999  -> 1.23456789E+9 Inexact Rounded
fmax2083 fma 0.1 12345678912345      0E+999999  -> 1.23456789E+12 Inexact Rounded
fmax2084 fma 0.1 123456789           0E+999999  -> 12345678.9
precision: 8
fmax2085 fma 0.1 12345678912         0E+999999  -> 1.2345679E+9 Inexact Rounded
fmax2086 fma 0.1 12345678912345      0E+999999  -> 1.2345679E+12 Inexact Rounded
precision: 7
fmax2087 fma 0.1 12345678912         0E+999999  -> 1.234568E+9 Inexact Rounded
fmax2088 fma 0.1 12345678912345      0E+999999  -> 1.234568E+12 Inexact Rounded

precision: 9
fmax2090 fma 123456789          0.1  0E+999999  -> 12345678.9
fmax2091 fma 1234567891         0.1  0E+999999  -> 123456789 Inexact Rounded
fmax2092 fma 12345678912        0.1  0E+999999  -> 1.23456789E+9 Inexact Rounded
fmax2093 fma 12345678912345     0.1  0E+999999  -> 1.23456789E+12 Inexact Rounded
fmax2094 fma 123456789          0.1  0E+999999  -> 12345678.9
precision: 8
fmax2095 fma 12345678912        0.1  0E+999999  -> 1.2345679E+9 Inexact Rounded
fmax2096 fma 12345678912345     0.1  0E+999999  -> 1.2345679E+12 Inexact Rounded
precision: 7
fmax2097 fma 12345678912        0.1  0E+999999  -> 1.234568E+9 Inexact Rounded
fmax2098 fma 12345678912345     0.1  0E+999999  -> 1.234568E+12 Inexact Rounded

-- test some more edge cases and carries
maxexponent: 9999
minexponent: -9999
precision: 33
fmax2101 fma 9 9    0E+999999  -> 81
fmax2102 fma 9 90    0E+999999  -> 810
fmax2103 fma 9 900    0E+999999  -> 8100
fmax2104 fma 9 9000    0E+999999  -> 81000
fmax2105 fma 9 90000    0E+999999  -> 810000
fmax2106 fma 9 900000    0E+999999  -> 8100000
fmax2107 fma 9 9000000    0E+999999  -> 81000000
fmax2108 fma 9 90000000    0E+999999  -> 810000000
fmax2109 fma 9 900000000    0E+999999  -> 8100000000
fmax2110 fma 9 9000000000    0E+999999  -> 81000000000
fmax2111 fma 9 90000000000    0E+999999  -> 810000000000
fmax2112 fma 9 900000000000    0E+999999  -> 8100000000000
fmax2113 fma 9 9000000000000    0E+999999  -> 81000000000000
fmax2114 fma 9 90000000000000    0E+999999  -> 810000000000000
fmax2115 fma 9 900000000000000    0E+999999  -> 8100000000000000
fmax2116 fma 9 9000000000000000    0E+999999  -> 81000000000000000
fmax2117 fma 9 90000000000000000    0E+999999  -> 810000000000000000
fmax2118 fma 9 900000000000000000    0E+999999  -> 8100000000000000000
fmax2119 fma 9 9000000000000000000    0E+999999  -> 81000000000000000000
fmax2120 fma 9 90000000000000000000    0E+999999  -> 810000000000000000000
fmax2121 fma 9 900000000000000000000    0E+999999  -> 8100000000000000000000
fmax2122 fma 9 9000000000000000000000    0E+999999  -> 81000000000000000000000
fmax2123 fma 9 90000000000000000000000    0E+999999  -> 810000000000000000000000
-- test some more edge cases without carries
fmax2131 fma 3 3    0E+999999  -> 9
fmax2132 fma 3 30    0E+999999  -> 90
fmax2133 fma 3 300    0E+999999  -> 900
fmax2134 fma 3 3000    0E+999999  -> 9000
fmax2135 fma 3 30000    0E+999999  -> 90000
fmax2136 fma 3 300000    0E+999999  -> 900000
fmax2137 fma 3 3000000    0E+999999  -> 9000000
fmax2138 fma 3 30000000    0E+999999  -> 90000000
fmax2139 fma 3 300000000    0E+999999  -> 900000000
fmax2140 fma 3 3000000000    0E+999999  -> 9000000000
fmax2141 fma 3 30000000000    0E+999999  -> 90000000000
fmax2142 fma 3 300000000000    0E+999999  -> 900000000000
fmax2143 fma 3 3000000000000    0E+999999  -> 9000000000000
fmax2144 fma 3 30000000000000    0E+999999  -> 90000000000000
fmax2145 fma 3 300000000000000    0E+999999  -> 900000000000000
fmax2146 fma 3 3000000000000000    0E+999999  -> 9000000000000000
fmax2147 fma 3 30000000000000000    0E+999999  -> 90000000000000000
fmax2148 fma 3 300000000000000000    0E+999999  -> 900000000000000000
fmax2149 fma 3 3000000000000000000    0E+999999  -> 9000000000000000000
fmax2150 fma 3 30000000000000000000    0E+999999  -> 90000000000000000000
fmax2151 fma 3 300000000000000000000    0E+999999  -> 900000000000000000000
fmax2152 fma 3 3000000000000000000000    0E+999999  -> 9000000000000000000000
fmax2153 fma 3 30000000000000000000000    0E+999999  -> 90000000000000000000000

maxexponent: 999999
minexponent: -999999
precision: 9
-- test some cases that are close to exponent overflow/underflow
fmax2170 fma 1 9e999999     0E+999999  -> 9E+999999
fmax2171 fma 1 9.9e999999   0E+999999  -> 9.9E+999999
fmax2172 fma 1 9.99e999999  0E+999999  -> 9.99E+999999
fmax2173 fma 9e999999    1  0E+999999  -> 9E+999999
fmax2174 fma 9.9e999999  1  0E+999999  -> 9.9E+999999
fmax2176 fma 9.99e999999 1  0E+999999  -> 9.99E+999999
fmax2177 fma 1 9.99999e999999  0E+999999  -> 9.99999E+999999
fmax2178 fma 9.99999e999999 1  0E+999999  -> 9.99999E+999999

fmax2180 fma 0.1 9e-999998    0E+999999  -> 9E-999999
fmax2181 fma 0.1 99e-999998   0E+999999  -> 9.9E-999998
fmax2182 fma 0.1 999e-999998  0E+999999  -> 9.99E-999997

fmax2183 fma 0.1 9e-999998      0E+999999  -> 9E-999999
fmax2184 fma 0.1 99e-999998     0E+999999  -> 9.9E-999998
fmax2185 fma 0.1 999e-999998    0E+999999  -> 9.99E-999997
fmax2186 fma 0.1 999e-999997    0E+999999  -> 9.99E-999996
fmax2187 fma 0.1 9999e-999997   0E+999999  -> 9.999E-999995
fmax2188 fma 0.1 99999e-999997  0E+999999  -> 9.9999E-999994

fmax2190 fma 1 9e-999998    0E+999999  -> 9E-999998
fmax2191 fma 1 99e-999998   0E+999999  -> 9.9E-999997
fmax2192 fma 1 999e-999998  0E+999999  -> 9.99E-999996
fmax2193 fma 9e-999998   1  0E+999999  -> 9E-999998
fmax2194 fma 99e-999998  1  0E+999999  -> 9.9E-999997
fmax2195 fma 999e-999998 1  0E+999999  -> 9.99E-999996

-- long operand triangle
precision: 33
fmax2246 fma 30269.587755640502150977251770554 4.8046009735990873395936309640543  0E+999999  -> 145433.290801193369671916511992830 Inexact Rounded
precision: 32
fmax2247 fma 30269.587755640502150977251770554 4.8046009735990873395936309640543  0E+999999  -> 145433.29080119336967191651199283  Inexact Rounded
precision: 31
fmax2248 fma 30269.587755640502150977251770554 4.8046009735990873395936309640543  0E+999999  -> 145433.2908011933696719165119928   Inexact Rounded
precision: 30
fmax2249 fma 30269.587755640502150977251770554 4.8046009735990873395936309640543  0E+999999  -> 145433.290801193369671916511993    Inexact Rounded
precision: 29
fmax2250 fma 30269.587755640502150977251770554 4.8046009735990873395936309640543  0E+999999  -> 145433.29080119336967191651199     Inexact Rounded
precision: 28
fmax2251 fma 30269.587755640502150977251770554 4.8046009735990873395936309640543  0E+999999  -> 145433.2908011933696719165120      Inexact Rounded
precision: 27
fmax2252 fma 30269.587755640502150977251770554 4.8046009735990873395936309640543  0E+999999  -> 145433.290801193369671916512       Inexact Rounded
precision: 26
fmax2253 fma 30269.587755640502150977251770554 4.8046009735990873395936309640543  0E+999999  -> 145433.29080119336967191651        Inexact Rounded
precision: 25
fmax2254 fma 30269.587755640502150977251770554 4.8046009735990873395936309640543  0E+999999  -> 145433.2908011933696719165         Inexact Rounded
precision: 24
fmax2255 fma 30269.587755640502150977251770554 4.8046009735990873395936309640543  0E+999999  -> 145433.290801193369671917          Inexact Rounded
precision: 23
fmax2256 fma 30269.587755640502150977251770554 4.8046009735990873395936309640543  0E+999999  -> 145433.29080119336967192           Inexact Rounded
precision: 22
fmax2257 fma 30269.587755640502150977251770554 4.8046009735990873395936309640543  0E+999999  -> 145433.2908011933696719            Inexact Rounded
precision: 21
fmax2258 fma 30269.587755640502150977251770554 4.8046009735990873395936309640543  0E+999999  -> 145433.290801193369672             Inexact Rounded
precision: 20
fmax2259 fma 30269.587755640502150977251770554 4.8046009735990873395936309640543  0E+999999  -> 145433.29080119336967              Inexact Rounded
precision: 19
fmax2260 fma 30269.587755640502150977251770554 4.8046009735990873395936309640543  0E+999999  -> 145433.2908011933697               Inexact Rounded
precision: 18
fmax2261 fma 30269.587755640502150977251770554 4.8046009735990873395936309640543  0E+999999  -> 145433.290801193370                Inexact Rounded
precision: 17
fmax2262 fma 30269.587755640502150977251770554 4.8046009735990873395936309640543  0E+999999  -> 145433.29080119337                 Inexact Rounded
precision: 16
fmax2263 fma 30269.587755640502150977251770554 4.8046009735990873395936309640543  0E+999999  -> 145433.2908011934                  Inexact Rounded
precision: 15
fmax2264 fma 30269.587755640502150977251770554 4.8046009735990873395936309640543  0E+999999  -> 145433.290801193                   Inexact Rounded
precision: 14
fmax2265 fma 30269.587755640502150977251770554 4.8046009735990873395936309640543  0E+999999  -> 145433.29080119                    Inexact Rounded
precision: 13
fmax2266 fma 30269.587755640502150977251770554 4.8046009735990873395936309640543  0E+999999  -> 145433.2908012                     Inexact Rounded
precision: 12
fmax2267 fma 30269.587755640502150977251770554 4.8046009735990873395936309640543  0E+999999  -> 145433.290801                      Inexact Rounded
precision: 11
fmax2268 fma 30269.587755640502150977251770554 4.8046009735990873395936309640543  0E+999999  -> 145433.29080                       Inexact Rounded
precision: 10
fmax2269 fma 30269.587755640502150977251770554 4.8046009735990873395936309640543  0E+999999  -> 145433.2908                        Inexact Rounded
precision:  9
fmax2270 fma 30269.587755640502150977251770554 4.8046009735990873395936309640543  0E+999999  -> 145433.291                         Inexact Rounded
precision:  8
fmax2271 fma 30269.587755640502150977251770554 4.8046009735990873395936309640543  0E+999999  -> 145433.29                          Inexact Rounded
precision:  7
fmax2272 fma 30269.587755640502150977251770554 4.8046009735990873395936309640543  0E+999999  -> 145433.3                           Inexact Rounded
precision:  6
fmax2273 fma 30269.587755640502150977251770554 4.8046009735990873395936309640543  0E+999999  -> 145433                            Inexact Rounded
precision:  5
fmax2274 fma 30269.587755640502150977251770554 4.8046009735990873395936309640543  0E+999999  -> 1.4543E+5                         Inexact Rounded
precision:  4
fmax2275 fma 30269.587755640502150977251770554 4.8046009735990873395936309640543  0E+999999  -> 1.454E+5                         Inexact Rounded
precision:  3
fmax2276 fma 30269.587755640502150977251770554 4.8046009735990873395936309640543  0E+999999  -> 1.45E+5                         Inexact Rounded
precision:  2
fmax2277 fma 30269.587755640502150977251770554 4.8046009735990873395936309640543  0E+999999  -> 1.5E+5                         Inexact Rounded
precision:  1
fmax2278 fma 30269.587755640502150977251770554 4.8046009735990873395936309640543  0E+999999  -> 1E+5                          Inexact Rounded

-- test some edge cases with exact rounding
maxexponent: 9999
minexponent: -9999
precision: 9
fmax2301 fma 9 9    0E+999999  -> 81
fmax2302 fma 9 90    0E+999999  -> 810
fmax2303 fma 9 900    0E+999999  -> 8100
fmax2304 fma 9 9000    0E+999999  -> 81000
fmax2305 fma 9 90000    0E+999999  -> 810000
fmax2306 fma 9 900000    0E+999999  -> 8100000
fmax2307 fma 9 9000000    0E+999999  -> 81000000
fmax2308 fma 9 90000000    0E+999999  -> 810000000
fmax2309 fma 9 900000000    0E+999999  -> 8.10000000E+9   Rounded
fmax2310 fma 9 9000000000    0E+999999  -> 8.10000000E+10  Rounded
fmax2311 fma 9 90000000000    0E+999999  -> 8.10000000E+11  Rounded
fmax2312 fma 9 900000000000    0E+999999  -> 8.10000000E+12  Rounded
fmax2313 fma 9 9000000000000    0E+999999  -> 8.10000000E+13  Rounded
fmax2314 fma 9 90000000000000    0E+999999  -> 8.10000000E+14  Rounded
fmax2315 fma 9 900000000000000    0E+999999  -> 8.10000000E+15  Rounded
fmax2316 fma 9 9000000000000000    0E+999999  -> 8.10000000E+16  Rounded
fmax2317 fma 9 90000000000000000    0E+999999  -> 8.10000000E+17  Rounded
fmax2318 fma 9 900000000000000000    0E+999999  -> 8.10000000E+18  Rounded
fmax2319 fma 9 9000000000000000000    0E+999999  -> 8.10000000E+19  Rounded
fmax2320 fma 9 90000000000000000000    0E+999999  -> 8.10000000E+20  Rounded
fmax2321 fma 9 900000000000000000000    0E+999999  -> 8.10000000E+21  Rounded
fmax2322 fma 9 9000000000000000000000    0E+999999  -> 8.10000000E+22  Rounded
fmax2323 fma 9 90000000000000000000000    0E+999999  -> 8.10000000E+23  Rounded

-- fastpath breakers
precision:   29
fmax2330 fma 1.491824697641270317824852952837224 1.105170918075647624811707826490246514675628614562883537345747603  0E+999999  -> 1.6487212707001281468486507878 Inexact Rounded
precision:   55
fmax2331 fma 0.8958341352965282506768545828765117803873717284891040428 0.8958341352965282506768545828765117803873717284891040428  0E+999999  -> 0.8025187979624784829842553829934069955890983696752228299 Inexact Rounded


-- tryzeros cases
precision:   7
rounding:    half_up
maxExponent: 92
minexponent: -92
fmax2504  fma  0E-60 1000E-60   0E+999999  -> 0E-98 Clamped
fmax2505  fma  100E+60 0E+60    0E+999999  -> 0E+92 Clamped

-- mixed with zeros
maxexponent: 999999
minexponent: -999999
precision: 9
fmax2541 fma  0    -1      0E+999999  ->  0
fmax2542 fma -0    -1      0E+999999  ->  0
fmax2543 fma  0     1      0E+999999  ->  0
fmax2544 fma -0     1      0E+999999  ->  0
fmax2545 fma -1     0      0E+999999  ->  0
fmax2546 fma -1    -0      0E+999999  ->  0
fmax2547 fma  1     0      0E+999999  ->  0
fmax2548 fma  1    -0      0E+999999  ->  0

fmax2551 fma  0.0  -1      0E+999999  ->  0.0
fmax2552 fma -0.0  -1      0E+999999  ->  0.0
fmax2553 fma  0.0   1      0E+999999  ->  0.0
fmax2554 fma -0.0   1      0E+999999  ->  0.0
fmax2555 fma -1.0   0      0E+999999  ->  0.0
fmax2556 fma -1.0  -0      0E+999999  ->  0.0
fmax2557 fma  1.0   0      0E+999999  ->  0.0
fmax2558 fma  1.0  -0      0E+999999  ->  0.0

fmax2561 fma  0    -1.0    0E+999999  ->  0.0
fmax2562 fma -0    -1.0    0E+999999  ->  0.0
fmax2563 fma  0     1.0    0E+999999  ->  0.0
fmax2564 fma -0     1.0    0E+999999  ->  0.0
fmax2565 fma -1     0.0    0E+999999  ->  0.0
fmax2566 fma -1    -0.0    0E+999999  ->  0.0
fmax2567 fma  1     0.0    0E+999999  ->  0.0
fmax2568 fma  1    -0.0    0E+999999  ->  0.0

fmax2571 fma  0.0  -1.0    0E+999999  ->  0.00
fmax2572 fma -0.0  -1.0    0E+999999  ->  0.00
fmax2573 fma  0.0   1.0    0E+999999  ->  0.00
fmax2574 fma -0.0   1.0    0E+999999  ->  0.00
fmax2575 fma -1.0   0.0    0E+999999  ->  0.00
fmax2576 fma -1.0  -0.0    0E+999999  ->  0.00
fmax2577 fma  1.0   0.0    0E+999999  ->  0.00
fmax2578 fma  1.0  -0.0    0E+999999  ->  0.00


-- Specials
fmax2580 fma  Inf  -Inf    0E+999999  -> -Infinity
fmax2581 fma  Inf  -1000   0E+999999  -> -Infinity
fmax2582 fma  Inf  -1      0E+999999  -> -Infinity
fmax2583 fma  Inf  -0      0E+999999  ->  NaN  Invalid_operation
fmax2584 fma  Inf   0      0E+999999  ->  NaN  Invalid_operation
fmax2585 fma  Inf   1      0E+999999  ->  Infinity
fmax2586 fma  Inf   1000   0E+999999  ->  Infinity
fmax2587 fma  Inf   Inf    0E+999999  ->  Infinity
fmax2588 fma -1000  Inf    0E+999999  -> -Infinity
fmax2589 fma -Inf   Inf    0E+999999  -> -Infinity
fmax2590 fma -1     Inf    0E+999999  -> -Infinity
fmax2591 fma -0     Inf    0E+999999  ->  NaN  Invalid_operation
fmax2592 fma  0     Inf    0E+999999  ->  NaN  Invalid_operation
fmax2593 fma  1     Inf    0E+999999  ->  Infinity
fmax2594 fma  1000  Inf    0E+999999  ->  Infinity
fmax2595 fma  Inf   Inf    0E+999999  ->  Infinity

fmax2600 fma -Inf  -Inf    0E+999999  ->  Infinity
fmax2601 fma -Inf  -1000   0E+999999  ->  Infinity
fmax2602 fma -Inf  -1      0E+999999  ->  Infinity
fmax2603 fma -Inf  -0      0E+999999  ->  NaN  Invalid_operation
fmax2604 fma -Inf   0      0E+999999  ->  NaN  Invalid_operation
fmax2605 fma -Inf   1      0E+999999  -> -Infinity
fmax2606 fma -Inf   1000   0E+999999  -> -Infinity
fmax2607 fma -Inf   Inf    0E+999999  -> -Infinity
fmax2608 fma -1000  Inf    0E+999999  -> -Infinity
fmax2609 fma -Inf  -Inf    0E+999999  ->  Infinity
fmax2610 fma -1    -Inf    0E+999999  ->  Infinity
fmax2611 fma -0    -Inf    0E+999999  ->  NaN  Invalid_operation
fmax2612 fma  0    -Inf    0E+999999  ->  NaN  Invalid_operation
fmax2613 fma  1    -Inf    0E+999999  -> -Infinity
fmax2614 fma  1000 -Inf    0E+999999  -> -Infinity
fmax2615 fma  Inf  -Inf    0E+999999  -> -Infinity

fmax2621 fma  NaN -Inf     0E+999999  ->  NaN
fmax2622 fma  NaN -1000    0E+999999  ->  NaN
fmax2623 fma  NaN -1       0E+999999  ->  NaN
fmax2624 fma  NaN -0       0E+999999  ->  NaN
fmax2625 fma  NaN  0       0E+999999  ->  NaN
fmax2626 fma  NaN  1       0E+999999  ->  NaN
fmax2627 fma  NaN  1000    0E+999999  ->  NaN
fmax2628 fma  NaN  Inf     0E+999999  ->  NaN
fmax2629 fma  NaN  NaN     0E+999999  ->  NaN
fmax2630 fma -Inf  NaN     0E+999999  ->  NaN
fmax2631 fma -1000 NaN     0E+999999  ->  NaN
fmax2632 fma -1    NaN     0E+999999  ->  NaN
fmax2633 fma -0    NaN     0E+999999  ->  NaN
fmax2634 fma  0    NaN     0E+999999  ->  NaN
fmax2635 fma  1    NaN     0E+999999  ->  NaN
fmax2636 fma  1000 NaN     0E+999999  ->  NaN
fmax2637 fma  Inf  NaN     0E+999999  ->  NaN

fmax2641 fma  sNaN -Inf    0E+999999  ->  NaN  Invalid_operation
fmax2642 fma  sNaN -1000   0E+999999  ->  NaN  Invalid_operation
fmax2643 fma  sNaN -1      0E+999999  ->  NaN  Invalid_operation
fmax2644 fma  sNaN -0      0E+999999  ->  NaN  Invalid_operation
fmax2645 fma  sNaN  0      0E+999999  ->  NaN  Invalid_operation
fmax2646 fma  sNaN  1      0E+999999  ->  NaN  Invalid_operation
fmax2647 fma  sNaN  1000   0E+999999  ->  NaN  Invalid_operation
fmax2648 fma  sNaN  NaN    0E+999999  ->  NaN  Invalid_operation
fmax2649 fma  sNaN sNaN    0E+999999  ->  NaN  Invalid_operation
fmax2650 fma  NaN  sNaN    0E+999999  ->  NaN  Invalid_operation
fmax2651 fma -Inf  sNaN    0E+999999  ->  NaN  Invalid_operation
fmax2652 fma -1000 sNaN    0E+999999  ->  NaN  Invalid_operation
fmax2653 fma -1    sNaN    0E+999999  ->  NaN  Invalid_operation
fmax2654 fma -0    sNaN    0E+999999  ->  NaN  Invalid_operation
fmax2655 fma  0    sNaN    0E+999999  ->  NaN  Invalid_operation
fmax2656 fma  1    sNaN    0E+999999  ->  NaN  Invalid_operation
fmax2657 fma  1000 sNaN    0E+999999  ->  NaN  Invalid_operation
fmax2658 fma  Inf  sNaN    0E+999999  ->  NaN  Invalid_operation
fmax2659 fma  NaN  sNaN    0E+999999  ->  NaN  Invalid_operation

-- propagating NaNs
fmax2661 fma  NaN9 -Inf    0E+999999  ->  NaN9
fmax2662 fma  NaN8  999    0E+999999  ->  NaN8
fmax2663 fma  NaN71 Inf    0E+999999  ->  NaN71
fmax2664 fma  NaN6  NaN5   0E+999999  ->  NaN6
fmax2665 fma -Inf   NaN4   0E+999999  ->  NaN4
fmax2666 fma -999   NaN33  0E+999999  ->  NaN33
fmax2667 fma  Inf   NaN2   0E+999999  ->  NaN2

fmax2671 fma  sNaN99 -Inf     0E+999999  ->  NaN99 Invalid_operation
fmax2672 fma  sNaN98 -11      0E+999999  ->  NaN98 Invalid_operation
fmax2673 fma  sNaN97  NaN     0E+999999  ->  NaN97 Invalid_operation
fmax2674 fma  sNaN16 sNaN94   0E+999999  ->  NaN16 Invalid_operation
fmax2675 fma  NaN95  sNaN93   0E+999999  ->  NaN93 Invalid_operation
fmax2676 fma -Inf    sNaN92   0E+999999  ->  NaN92 Invalid_operation
fmax2677 fma  088    sNaN91   0E+999999  ->  NaN91 Invalid_operation
fmax2678 fma  Inf    sNaN90   0E+999999  ->  NaN90 Invalid_operation
fmax2679 fma  NaN    sNaN89   0E+999999  ->  NaN89 Invalid_operation

fmax2681 fma -NaN9 -Inf    0E+999999  -> -NaN9
fmax2682 fma -NaN8  999    0E+999999  -> -NaN8
fmax2683 fma -NaN71 Inf    0E+999999  -> -NaN71
fmax2684 fma -NaN6 -NaN5   0E+999999  -> -NaN6
fmax2685 fma -Inf  -NaN4   0E+999999  -> -NaN4
fmax2686 fma -999  -NaN33  0E+999999  -> -NaN33
fmax2687 fma  Inf  -NaN2   0E+999999  -> -NaN2

fmax2691 fma -sNaN99 -Inf     0E+999999  -> -NaN99 Invalid_operation
fmax2692 fma -sNaN98 -11      0E+999999  -> -NaN98 Invalid_operation
fmax2693 fma -sNaN97  NaN     0E+999999  -> -NaN97 Invalid_operation
fmax2694 fma -sNaN16 -sNaN94  0E+999999  -> -NaN16 Invalid_operation
fmax2695 fma -NaN95  -sNaN93  0E+999999  -> -NaN93 Invalid_operation
fmax2696 fma -Inf    -sNaN92  0E+999999  -> -NaN92 Invalid_operation
fmax2697 fma  088    -sNaN91  0E+999999  -> -NaN91 Invalid_operation
fmax2698 fma  Inf    -sNaN90  0E+999999  -> -NaN90 Invalid_operation
fmax2699 fma -NaN    -sNaN89  0E+999999  -> -NaN89 Invalid_operation

fmax2701 fma -NaN  -Inf    0E+999999  -> -NaN
fmax2702 fma -NaN   999    0E+999999  -> -NaN
fmax2703 fma -NaN   Inf    0E+999999  -> -NaN
fmax2704 fma -NaN  -NaN    0E+999999  -> -NaN
fmax2705 fma -Inf  -NaN0   0E+999999  -> -NaN
fmax2706 fma -999  -NaN    0E+999999  -> -NaN
fmax2707 fma  Inf  -NaN    0E+999999  -> -NaN

fmax2711 fma -sNaN   -Inf     0E+999999  -> -NaN Invalid_operation
fmax2712 fma -sNaN   -11      0E+999999  -> -NaN Invalid_operation
fmax2713 fma -sNaN00  NaN     0E+999999  -> -NaN Invalid_operation
fmax2714 fma -sNaN   -sNaN    0E+999999  -> -NaN Invalid_operation
fmax2715 fma -NaN    -sNaN    0E+999999  -> -NaN Invalid_operation
fmax2716 fma -Inf    -sNaN    0E+999999  -> -NaN Invalid_operation
fmax2717 fma  088    -sNaN    0E+999999  -> -NaN Invalid_operation
fmax2718 fma  Inf    -sNaN    0E+999999  -> -NaN Invalid_operation
fmax2719 fma -NaN    -sNaN    0E+999999  -> -NaN Invalid_operation

-- overflow and underflow tests .. note subnormal results
maxexponent: 999999
minexponent: -999999
fmax2730 fma +1.23456789012345E-0 9E+999999  0E+999999  -> Infinity Inexact Overflow Rounded
fmax2731 fma 9E+999999 +1.23456789012345E-0  0E+999999  -> Infinity Inexact Overflow Rounded
fmax2732 fma +0.100 9E-999999  0E+999999  -> 9.00E-1000000 Subnormal
fmax2733 fma 9E-999999 +0.100  0E+999999  -> 9.00E-1000000 Subnormal
fmax2735 fma -1.23456789012345E-0 9E+999999  0E+999999  -> -Infinity Inexact Overflow Rounded
fmax2736 fma 9E+999999 -1.23456789012345E-0  0E+999999  -> -Infinity Inexact Overflow Rounded
fmax2737 fma -0.100 9E-999999  0E+999999  -> -9.00E-1000000 Subnormal
fmax2738 fma 9E-999999 -0.100  0E+999999  -> -9.00E-1000000 Subnormal

-- signs
fmax2751 fma  1e+777777  1e+411111  0E+999999  ->  Infinity Overflow Inexact Rounded
fmax2752 fma  1e+777777 -1e+411111  0E+999999  -> -Infinity Overflow Inexact Rounded
fmax2753 fma -1e+777777  1e+411111  0E+999999  -> -Infinity Overflow Inexact Rounded
fmax2754 fma -1e+777777 -1e+411111  0E+999999  ->  Infinity Overflow Inexact Rounded
fmax2755 fma  1e-777777  1e-411111  0E+999999  ->  0E-1000007 Underflow Subnormal Inexact Rounded Clamped
fmax2756 fma  1e-777777 -1e-411111  0E+999999  -> -0E-1000007 Underflow Subnormal Inexact Rounded Clamped
fmax2757 fma -1e-777777  1e-411111  0E+999999  -> -0E-1000007 Underflow Subnormal Inexact Rounded Clamped
fmax2758 fma -1e-777777 -1e-411111  0E+999999  ->  0E-1000007 Underflow Subnormal Inexact Rounded Clamped

-- 'subnormal' boundary (all hard underflow or overflow in base arithmetic)
precision: 9
fmax2760 fma 1e-600000 1e-400001  0E+999999  -> 1E-1000001 Subnormal
fmax2761 fma 1e-600000 1e-400002  0E+999999  -> 1E-1000002 Subnormal
fmax2762 fma 1e-600000 1e-400003  0E+999999  -> 1E-1000003 Subnormal
fmax2763 fma 1e-600000 1e-400004  0E+999999  -> 1E-1000004 Subnormal
fmax2764 fma 1e-600000 1e-400005  0E+999999  -> 1E-1000005 Subnormal
fmax2765 fma 1e-600000 1e-400006  0E+999999  -> 1E-1000006 Subnormal
fmax2766 fma 1e-600000 1e-400007  0E+999999  -> 1E-1000007 Subnormal
fmax2767 fma 1e-600000 1e-400008  0E+999999  -> 0E-1000007 Underflow Subnormal Inexact Rounded Clamped
fmax2768 fma 1e-600000 1e-400009  0E+999999  -> 0E-1000007 Underflow Subnormal Inexact Rounded Clamped
fmax2769 fma 1e-600000 1e-400010  0E+999999  -> 0E-1000007 Underflow Subnormal Inexact Rounded Clamped
-- [no equivalent of 'subnormal' for overflow]
fmax2770 fma 1e+600000 1e+400001  0E+999999  -> Infinity Overflow Inexact Rounded
fmax2771 fma 1e+600000 1e+400002  0E+999999  -> Infinity Overflow Inexact Rounded
fmax2772 fma 1e+600000 1e+400003  0E+999999  -> Infinity Overflow Inexact Rounded
fmax2773 fma 1e+600000 1e+400004  0E+999999  -> Infinity Overflow Inexact Rounded
fmax2774 fma 1e+600000 1e+400005  0E+999999  -> Infinity Overflow Inexact Rounded
fmax2775 fma 1e+600000 1e+400006  0E+999999  -> Infinity Overflow Inexact Rounded
fmax2776 fma 1e+600000 1e+400007  0E+999999  -> Infinity Overflow Inexact Rounded
fmax2777 fma 1e+600000 1e+400008  0E+999999  -> Infinity Overflow Inexact Rounded
fmax2778 fma 1e+600000 1e+400009  0E+999999  -> Infinity Overflow Inexact Rounded
fmax2779 fma 1e+600000 1e+400010  0E+999999  -> Infinity Overflow Inexact Rounded

-- 'subnormal' test edge condition at higher precisions
precision: 99
fmax2780 fma 1e-600000 1e-400007  0E+999999  -> 1E-1000007 Subnormal
fmax2781 fma 1e-600000 1e-400008  0E+999999  -> 1E-1000008 Subnormal
fmax2782 fma 1e-600000 1e-400097  0E+999999  -> 1E-1000097 Subnormal
fmax2783 fma 1e-600000 1e-400098  0E+999999  -> 0E-1000097 Underflow Subnormal Inexact Rounded Clamped
precision: 999
fmax2784 fma 1e-600000 1e-400997  0E+999999  -> 1E-1000997 Subnormal
fmax2785 fma 1e-600000 1e-400998  0E+999999  -> 0E-1000997 Underflow Subnormal Inexact Rounded Clamped

-- test subnormals rounding
precision:   5
maxExponent: 999
minexponent: -999
rounding:    half_even

fmax2801 fma  1.0000E-999  1      0E+999999  -> 1.0000E-999
fmax2802 fma  1.000E-999   1e-1   0E+999999  -> 1.000E-1000 Subnormal
fmax2803 fma  1.00E-999    1e-2   0E+999999  -> 1.00E-1001  Subnormal
fmax2804 fma  1.0E-999     1e-3   0E+999999  -> 1.0E-1002   Subnormal
fmax2805 fma  1.0E-999     1e-4   0E+999999  -> 1E-1003     Subnormal Rounded
fmax2806 fma  1.3E-999     1e-4   0E+999999  -> 1E-1003     Underflow Subnormal Inexact Rounded
fmax2807 fma  1.5E-999     1e-4   0E+999999  -> 2E-1003     Underflow Subnormal Inexact Rounded
fmax2808 fma  1.7E-999     1e-4   0E+999999  -> 2E-1003     Underflow Subnormal Inexact Rounded
fmax2809 fma  2.3E-999     1e-4   0E+999999  -> 2E-1003     Underflow Subnormal Inexact Rounded
fmax2810 fma  2.5E-999     1e-4   0E+999999  -> 2E-1003     Underflow Subnormal Inexact Rounded
fmax2811 fma  2.7E-999     1e-4   0E+999999  -> 3E-1003     Underflow Subnormal Inexact Rounded
fmax2812 fma  1.49E-999    1e-4   0E+999999  -> 1E-1003     Underflow Subnormal Inexact Rounded
fmax2813 fma  1.50E-999    1e-4   0E+999999  -> 2E-1003     Underflow Subnormal Inexact Rounded
fmax2814 fma  1.51E-999    1e-4   0E+999999  -> 2E-1003     Underflow Subnormal Inexact Rounded
fmax2815 fma  2.49E-999    1e-4   0E+999999  -> 2E-1003     Underflow Subnormal Inexact Rounded
fmax2816 fma  2.50E-999    1e-4   0E+999999  -> 2E-1003     Underflow Subnormal Inexact Rounded
fmax2817 fma  2.51E-999    1e-4   0E+999999  -> 3E-1003     Underflow Subnormal Inexact Rounded

fmax2818 fma  1E-999       1e-4   0E+999999  -> 1E-1003     Subnormal
fmax2819 fma  3E-999       1e-5   0E+999999  -> 0E-1003     Underflow Subnormal Inexact Rounded Clamped
fmax2820 fma  5E-999       1e-5   0E+999999  -> 0E-1003     Underflow Subnormal Inexact Rounded Clamped
fmax2821 fma  7E-999       1e-5   0E+999999  -> 1E-1003     Underflow Subnormal Inexact Rounded
fmax2822 fma  9E-999       1e-5   0E+999999  -> 1E-1003     Underflow Subnormal Inexact Rounded
fmax2823 fma  9.9E-999     1e-5   0E+999999  -> 1E-1003     Underflow Subnormal Inexact Rounded

fmax2824 fma  1E-999      -1e-4   0E+999999  -> -1E-1003    Subnormal
fmax2825 fma  3E-999      -1e-5   0E+999999  -> -0E-1003    Underflow Subnormal Inexact Rounded Clamped
fmax2826 fma -5E-999       1e-5   0E+999999  -> -0E-1003    Underflow Subnormal Inexact Rounded Clamped
fmax2827 fma  7E-999      -1e-5   0E+999999  -> -1E-1003    Underflow Subnormal Inexact Rounded
fmax2828 fma -9E-999       1e-5   0E+999999  -> -1E-1003    Underflow Subnormal Inexact Rounded
fmax2829 fma  9.9E-999    -1e-5   0E+999999  -> -1E-1003    Underflow Subnormal Inexact Rounded
fmax2830 fma  3.0E-999    -1e-5   0E+999999  -> -0E-1003    Underflow Subnormal Inexact Rounded Clamped

fmax2831 fma  1.0E-501     1e-501  0E+999999  -> 1.0E-1002   Subnormal
fmax2832 fma  2.0E-501     2e-501  0E+999999  -> 4.0E-1002   Subnormal
fmax2833 fma  4.0E-501     4e-501  0E+999999  -> 1.60E-1001  Subnormal
fmax2834 fma 10.0E-501    10e-501  0E+999999  -> 1.000E-1000 Subnormal
fmax2835 fma 30.0E-501    30e-501  0E+999999  -> 9.000E-1000 Subnormal
fmax2836 fma 40.0E-501    40e-501  0E+999999  -> 1.6000E-999

-- squares
fmax2840 fma  1E-502       1e-502  0E+999999  -> 0E-1003     Underflow Subnormal Inexact Rounded Clamped
fmax2841 fma  1E-501       1e-501  0E+999999  -> 1E-1002     Subnormal
fmax2842 fma  2E-501       2e-501  0E+999999  -> 4E-1002     Subnormal
fmax2843 fma  4E-501       4e-501  0E+999999  -> 1.6E-1001   Subnormal
fmax2844 fma 10E-501      10e-501  0E+999999  -> 1.00E-1000  Subnormal
fmax2845 fma 30E-501      30e-501  0E+999999  -> 9.00E-1000  Subnormal
fmax2846 fma 40E-501      40e-501  0E+999999  -> 1.600E-999

-- cubes
fmax2850 fma  1E-670     1e-335  0E+999999  -> 0E-1003    Underflow Subnormal Inexact Rounded Clamped
fmax2851 fma  1E-668     1e-334  0E+999999  -> 1E-1002    Subnormal
fmax2852 fma  4E-668     2e-334  0E+999999  -> 8E-1002    Subnormal
fmax2853 fma  9E-668     3e-334  0E+999999  -> 2.7E-1001  Subnormal
fmax2854 fma 16E-668     4e-334  0E+999999  -> 6.4E-1001  Subnormal
fmax2855 fma 25E-668     5e-334  0E+999999  -> 1.25E-1000 Subnormal
fmax2856 fma 10E-668   100e-334  0E+999999  -> 1.000E-999

-- test derived from result of 0.099 ** 999 at 15 digits with unlimited exponent
precision: 19
fmax2860 fma  6636851557994578716E-520 6636851557994578716E-520  0E+999999  -> 4.40477986028551E-1003 Underflow Subnormal Inexact Rounded

-- Long operand overflow may be a different path
precision: 3
maxExponent: 999999
minexponent: -999999
fmax2870 fma 1  9.999E+999999    0E+999999  ->  Infinity Inexact Overflow Rounded
fmax2871 fma 1 -9.999E+999999    0E+999999  -> -Infinity Inexact Overflow Rounded
fmax2872 fma    9.999E+999999 1  0E+999999  ->  Infinity Inexact Overflow Rounded
fmax2873 fma   -9.999E+999999 1  0E+999999  -> -Infinity Inexact Overflow Rounded

-- check for double-rounded subnormals
precision:   5
maxexponent: 79
minexponent: -79
fmax2881 fma  1.2347E-40  1.2347E-40   0E+999999  ->  1.524E-80  Inexact Rounded Subnormal Underflow
fmax2882 fma  1.234E-40  1.234E-40     0E+999999  ->  1.523E-80  Inexact Rounded Subnormal Underflow
fmax2883 fma  1.23E-40   1.23E-40      0E+999999  ->  1.513E-80  Inexact Rounded Subnormal Underflow
fmax2884 fma  1.2E-40    1.2E-40       0E+999999  ->  1.44E-80   Subnormal
fmax2885 fma  1.2E-40    1.2E-41       0E+999999  ->  1.44E-81   Subnormal
fmax2886 fma  1.2E-40    1.2E-42       0E+999999  ->  1.4E-82    Subnormal Inexact Rounded Underflow
fmax2887 fma  1.2E-40    1.3E-42       0E+999999  ->  1.6E-82    Subnormal Inexact Rounded Underflow
fmax2888 fma  1.3E-40    1.3E-42       0E+999999  ->  1.7E-82    Subnormal Inexact Rounded Underflow
fmax2889 fma  1.3E-40    1.3E-43       0E+999999  ->    2E-83    Subnormal Inexact Rounded Underflow
fmax2890 fma  1.3E-41    1.3E-43       0E+999999  ->    0E-83    Clamped Subnormal Inexact Rounded Underflow

fmax2891 fma  1.2345E-39   1.234E-40   0E+999999  ->  1.5234E-79 Inexact Rounded
fmax2892 fma  1.23456E-39  1.234E-40   0E+999999  ->  1.5234E-79 Inexact Rounded
fmax2893 fma  1.2345E-40   1.234E-40   0E+999999  ->  1.523E-80  Inexact Rounded Subnormal Underflow
fmax2894 fma  1.23456E-40  1.234E-40   0E+999999  ->  1.523E-80  Inexact Rounded Subnormal Underflow
fmax2895 fma  1.2345E-41   1.234E-40   0E+999999  ->  1.52E-81   Inexact Rounded Subnormal Underflow
fmax2896 fma  1.23456E-41  1.234E-40   0E+999999  ->  1.52E-81   Inexact Rounded Subnormal Underflow

-- Now explore the case where we get a normal result with Underflow
precision:   16
rounding:    half_up
maxExponent: 384
minExponent: -383

fmax2900 fma  0.3000000000E-191 0.3000000000E-191  0E+999999  -> 9.00000000000000E-384 Subnormal Rounded
fmax2901 fma  0.3000000001E-191 0.3000000001E-191  0E+999999  -> 9.00000000600000E-384 Underflow Inexact Subnormal Rounded
fmax2902 fma  9.999999999999999E-383  0.0999999999999          0E+999999  -> 9.99999999999000E-384 Underflow Inexact Subnormal Rounded
fmax2903 fma  9.999999999999999E-383  0.09999999999999         0E+999999  -> 9.99999999999900E-384 Underflow Inexact Subnormal Rounded
fmax2904 fma  9.999999999999999E-383  0.099999999999999        0E+999999  -> 9.99999999999990E-384 Underflow Inexact Subnormal Rounded
fmax2905 fma  9.999999999999999E-383  0.0999999999999999       0E+999999  -> 9.99999999999999E-384 Underflow Inexact Subnormal Rounded
-- prove operands are exact
fmax2906 fma  9.999999999999999E-383  1                        0E+999999  -> 9.999999999999999E-383
fmax2907 fma                       1  0.09999999999999999      0E+999999  -> 0.09999999999999999
-- the next rounds to Nmin
fmax2908 fma  9.999999999999999E-383  0.09999999999999999      0E+999999  -> 1.000000000000000E-383 Underflow Inexact Subnormal Rounded
fmax2909 fma  9.999999999999999E-383  0.099999999999999999     0E+999999  -> 1.000000000000000E-383 Underflow Inexact Subnormal Rounded
fmax2910 fma  9.999999999999999E-383  0.0999999999999999999    0E+999999  -> 1.000000000000000E-383 Underflow Inexact Subnormal Rounded
fmax2911 fma  9.999999999999999E-383  0.09999999999999999999   0E+999999  -> 1.000000000000000E-383 Underflow Inexact Subnormal Rounded

-- Examples from SQL proposal (Krishna Kulkarni)
precision:   34
rounding:    half_up
maxExponent: 6144
minExponent: -6143
fmax2921  fma 130E-2  120E-2  0E+999999  -> 1.5600
fmax2922  fma 130E-2  12E-1   0E+999999  -> 1.560
fmax2923  fma 130E-2  1E0     0E+999999  -> 1.30

-- Null tests
fmax2990 fma  # 10  0E+999999  -> NaN Invalid_operation
fmax2991 fma 10  #  0E+999999  -> NaN Invalid_operation

-- ADDITION TESTS ------------------------------------------------------
precision:   9
rounding:    half_up
maxExponent: 384
minexponent: -383

-- [first group are 'quick confidence check']
fmax3001 fma  1   1       1       ->  2
fmax3002 fma  1   2       3       ->  5
fmax3003 fma  1   '5.75'  '3.3'   ->  9.05
fmax3004 fma  1   '5'     '-3'    ->  2
fmax3005 fma  1   '-5'    '-3'    ->  -8
fmax3006 fma  1   '-7'    '2.5'   ->  -4.5
fmax3007 fma  1   '0.7'   '0.3'   ->  1.0
fmax3008 fma  1   '1.25'  '1.25'  ->  2.50
fmax3009 fma  1   '1.23456789'  '1.00000000' -> '2.23456789'
fmax3010 fma  1   '1.23456789'  '1.00000011' -> '2.23456800'

fmax3011 fma  1   '0.4444444444'  '0.5555555555' -> '1.00000000' Inexact Rounded
fmax3012 fma  1   '0.4444444440'  '0.5555555555' -> '1.00000000' Inexact Rounded
fmax3013 fma  1   '0.4444444444'  '0.5555555550' -> '0.999999999' Inexact Rounded
fmax3014 fma  1   '0.44444444449'    '0' -> '0.444444444' Inexact Rounded
fmax3015 fma  1   '0.444444444499'   '0' -> '0.444444444' Inexact Rounded
fmax3016 fma  1   '0.4444444444999'  '0' -> '0.444444444' Inexact Rounded
fmax3017 fma  1   '0.4444444445000'  '0' -> '0.444444445' Inexact Rounded
fmax3018 fma  1   '0.4444444445001'  '0' -> '0.444444445' Inexact Rounded
fmax3019 fma  1   '0.444444444501'   '0' -> '0.444444445' Inexact Rounded
fmax3020 fma  1   '0.44444444451'    '0' -> '0.444444445' Inexact Rounded

fmax3021 fma  1   0 1 -> 1
fmax3022 fma  1   1 1 -> 2
fmax3023 fma  1   2 1 -> 3
fmax3024 fma  1   3 1 -> 4
fmax3025 fma  1   4 1 -> 5
fmax3026 fma  1   5 1 -> 6
fmax3027 fma  1   6 1 -> 7
fmax3028 fma  1   7 1 -> 8
fmax3029 fma  1   8 1 -> 9
fmax3030 fma  1   9 1 -> 10

-- some carrying effects
fmax3031 fma  1   '0.9998'  '0.0000' -> '0.9998'
fmax3032 fma  1   '0.9998'  '0.0001' -> '0.9999'
fmax3033 fma  1   '0.9998'  '0.0002' -> '1.0000'
fmax3034 fma  1   '0.9998'  '0.0003' -> '1.0001'

fmax3035 fma  1   '70'  '10000e+9' -> '1.00000000E+13' Inexact Rounded
fmax3036 fma  1   '700'  '10000e+9' -> '1.00000000E+13' Inexact Rounded
fmax3037 fma  1   '7000'  '10000e+9' -> '1.00000000E+13' Inexact Rounded
fmax3038 fma  1   '70000'  '10000e+9' -> '1.00000001E+13' Inexact Rounded
fmax3039 fma  1   '700000'  '10000e+9' -> '1.00000007E+13' Rounded

-- symmetry:
fmax3040 fma  1   '10000e+9'  '70' -> '1.00000000E+13' Inexact Rounded
fmax3041 fma  1   '10000e+9'  '700' -> '1.00000000E+13' Inexact Rounded
fmax3042 fma  1   '10000e+9'  '7000' -> '1.00000000E+13' Inexact Rounded
fmax3044 fma  1   '10000e+9'  '70000' -> '1.00000001E+13' Inexact Rounded
fmax3045 fma  1   '10000e+9'  '700000' -> '1.00000007E+13' Rounded

-- same, higher precision
precision: 15
fmax3046 fma  1   '10000e+9'  '7' -> '10000000000007'
fmax3047 fma  1   '10000e+9'  '70' -> '10000000000070'
fmax3048 fma  1   '10000e+9'  '700' -> '10000000000700'
fmax3049 fma  1   '10000e+9'  '7000' -> '10000000007000'
fmax3050 fma  1   '10000e+9'  '70000' -> '10000000070000'
fmax3051 fma  1   '10000e+9'  '700000' -> '10000000700000'
fmax3052 fma  1   '10000e+9'  '7000000' -> '10000007000000'

-- examples from decarith
fmax3053 fma  1   '12' '7.00' -> '19.00'
fmax3054 fma  1   '1.3' '-1.07' -> '0.23'
fmax3055 fma  1   '1.3' '-1.30' -> '0.00'
fmax3056 fma  1   '1.3' '-2.07' -> '-0.77'
fmax3057 fma  1   '1E+2' '1E+4' -> '1.01E+4'

-- zero preservation
precision: 6
fmax3060 fma  1   '10000e+9'  '70000' -> '1.00000E+13' Inexact Rounded
fmax3061 fma  1   1 '0.0001' -> '1.0001'
fmax3062 fma  1   1 '0.00001' -> '1.00001'
fmax3063 fma  1   1 '0.000001' -> '1.00000' Inexact Rounded
fmax3064 fma  1   1 '0.0000001' -> '1.00000' Inexact Rounded
fmax3065 fma  1   1 '0.00000001' -> '1.00000' Inexact Rounded

-- some funny zeros [in case of bad signum]
fmax3070 fma  1   1  0    -> 1
fmax3071 fma  1   1 0.    -> 1
fmax3072 fma  1   1  .0   -> 1.0
fmax3073 fma  1   1 0.0   -> 1.0
fmax3074 fma  1   1 0.00  -> 1.00
fmax3075 fma  1    0  1   -> 1
fmax3076 fma  1   0.  1   -> 1
fmax3077 fma  1    .0 1   -> 1.0
fmax3078 fma  1   0.0 1   -> 1.0
fmax3079 fma  1   0.00 1  -> 1.00

precision: 9

-- some carries
fmax3080 fma  1   999999998 1  -> 999999999
fmax3081 fma  1   999999999 1  -> 1.00000000E+9 Rounded
fmax3082 fma  1    99999999 1  -> 100000000
fmax3083 fma  1     9999999 1  -> 10000000
fmax3084 fma  1      999999 1  -> 1000000
fmax3085 fma  1       99999 1  -> 100000
fmax3086 fma  1        9999 1  -> 10000
fmax3087 fma  1         999 1  -> 1000
fmax3088 fma  1          99 1  -> 100
fmax3089 fma  1           9 1  -> 10


-- more LHS swaps
fmax3090 fma  1   '-56267E-10'   0 ->  '-0.0000056267'
fmax3091 fma  1   '-56267E-6'    0 ->  '-0.056267'
fmax3092 fma  1   '-56267E-5'    0 ->  '-0.56267'
fmax3093 fma  1   '-56267E-4'    0 ->  '-5.6267'
fmax3094 fma  1   '-56267E-3'    0 ->  '-56.267'
fmax3095 fma  1   '-56267E-2'    0 ->  '-562.67'
fmax3096 fma  1   '-56267E-1'    0 ->  '-5626.7'
fmax3097 fma  1   '-56267E-0'    0 ->  '-56267'
fmax3098 fma  1   '-5E-10'       0 ->  '-5E-10'
fmax3099 fma  1   '-5E-7'        0 ->  '-5E-7'
fmax3100 fma  1   '-5E-6'        0 ->  '-0.000005'
fmax3101 fma  1   '-5E-5'        0 ->  '-0.00005'
fmax3102 fma  1   '-5E-4'        0 ->  '-0.0005'
fmax3103 fma  1   '-5E-1'        0 ->  '-0.5'
fmax3104 fma  1   '-5E0'         0 ->  '-5'
fmax3105 fma  1   '-5E1'         0 ->  '-50'
fmax3106 fma  1   '-5E5'         0 ->  '-500000'
fmax3107 fma  1   '-5E8'         0 ->  '-500000000'
fmax3108 fma  1   '-5E9'         0 ->  '-5.00000000E+9'   Rounded
fmax3109 fma  1   '-5E10'        0 ->  '-5.00000000E+10'  Rounded
fmax3110 fma  1   '-5E11'        0 ->  '-5.00000000E+11'  Rounded
fmax3111 fma  1   '-5E100'       0 ->  '-5.00000000E+100' Rounded

-- more RHS swaps
fmax3113 fma  1   0  '-56267E-10' ->  '-0.0000056267'
fmax3114 fma  1   0  '-56267E-6'  ->  '-0.056267'
fmax3116 fma  1   0  '-56267E-5'  ->  '-0.56267'
fmax3117 fma  1   0  '-56267E-4'  ->  '-5.6267'
fmax3119 fma  1   0  '-56267E-3'  ->  '-56.267'
fmax3120 fma  1   0  '-56267E-2'  ->  '-562.67'
fmax3121 fma  1   0  '-56267E-1'  ->  '-5626.7'
fmax3122 fma  1   0  '-56267E-0'  ->  '-56267'
fmax3123 fma  1   0  '-5E-10'     ->  '-5E-10'
fmax3124 fma  1   0  '-5E-7'      ->  '-5E-7'
fmax3125 fma  1   0  '-5E-6'      ->  '-0.000005'
fmax3126 fma  1   0  '-5E-5'      ->  '-0.00005'
fmax3127 fma  1   0  '-5E-4'      ->  '-0.0005'
fmax3128 fma  1   0  '-5E-1'      ->  '-0.5'
fmax3129 fma  1   0  '-5E0'       ->  '-5'
fmax3130 fma  1   0  '-5E1'       ->  '-50'
fmax3131 fma  1   0  '-5E5'       ->  '-500000'
fmax3132 fma  1   0  '-5E8'       ->  '-500000000'
fmax3133 fma  1   0  '-5E9'       ->  '-5.00000000E+9'    Rounded
fmax3134 fma  1   0  '-5E10'      ->  '-5.00000000E+10'   Rounded
fmax3135 fma  1   0  '-5E11'      ->  '-5.00000000E+11'   Rounded
fmax3136 fma  1   0  '-5E100'     ->  '-5.00000000E+100'  Rounded

-- related
fmax3137 fma  1    1  '0E-12'      ->  '1.00000000'  Rounded
fmax3138 fma  1   -1  '0E-12'      ->  '-1.00000000' Rounded
fmax3139 fma  1   '0E-12' 1        ->  '1.00000000'  Rounded
fmax3140 fma  1   '0E-12' -1       ->  '-1.00000000' Rounded
fmax3141 fma  1   1E+4    0.0000   ->  '10000.0000'
fmax3142 fma  1   1E+4    0.00000  ->  '10000.0000'  Rounded
fmax3143 fma  1   0.000   1E+5     ->  '100000.000'
fmax3144 fma  1   0.0000  1E+5     ->  '100000.000'  Rounded

-- [some of the next group are really constructor tests]
fmax3146 fma  1   '00.0'  0       ->  '0.0'
fmax3147 fma  1   '0.00'  0       ->  '0.00'
fmax3148 fma  1    0      '0.00'  ->  '0.00'
fmax3149 fma  1    0      '00.0'  ->  '0.0'
fmax3150 fma  1   '00.0'  '0.00'  ->  '0.00'
fmax3151 fma  1   '0.00'  '00.0'  ->  '0.00'
fmax3152 fma  1   '3'     '.3'    ->  '3.3'
fmax3153 fma  1   '3.'    '.3'    ->  '3.3'
fmax3154 fma  1   '3.0'   '.3'    ->  '3.3'
fmax3155 fma  1   '3.00'  '.3'    ->  '3.30'
fmax3156 fma  1   '3'     '3'     ->  '6'
fmax3157 fma  1   '3'     '+3'    ->  '6'
fmax3158 fma  1   '3'     '-3'    ->  '0'
fmax3159 fma  1   '0.3'   '-0.3'  ->  '0.0'
fmax3160 fma  1   '0.03'  '-0.03' ->  '0.00'

-- try borderline precision, with carries, etc.
precision: 15
fmax3161 fma  1   '1E+12' '-1'    -> '999999999999'
fmax3162 fma  1   '1E+12'  '1.11' -> '1000000000001.11'
fmax3163 fma  1   '1.11'  '1E+12' -> '1000000000001.11'
fmax3164 fma  1   '-1'    '1E+12' -> '999999999999'
fmax3165 fma  1   '7E+12' '-1'    -> '6999999999999'
fmax3166 fma  1   '7E+12'  '1.11' -> '7000000000001.11'
fmax3167 fma  1   '1.11'  '7E+12' -> '7000000000001.11'
fmax3168 fma  1   '-1'    '7E+12' -> '6999999999999'

--             123456789012345      123456789012345      1 23456789012345
fmax3170 fma  1   '0.444444444444444'  '0.555555555555563' -> '1.00000000000001' Inexact Rounded
fmax3171 fma  1   '0.444444444444444'  '0.555555555555562' -> '1.00000000000001' Inexact Rounded
fmax3172 fma  1   '0.444444444444444'  '0.555555555555561' -> '1.00000000000001' Inexact Rounded
fmax3173 fma  1   '0.444444444444444'  '0.555555555555560' -> '1.00000000000000' Inexact Rounded
fmax3174 fma  1   '0.444444444444444'  '0.555555555555559' -> '1.00000000000000' Inexact Rounded
fmax3175 fma  1   '0.444444444444444'  '0.555555555555558' -> '1.00000000000000' Inexact Rounded
fmax3176 fma  1   '0.444444444444444'  '0.555555555555557' -> '1.00000000000000' Inexact Rounded
fmax3177 fma  1   '0.444444444444444'  '0.555555555555556' -> '1.00000000000000' Rounded
fmax3178 fma  1   '0.444444444444444'  '0.555555555555555' -> '0.999999999999999'
fmax3179 fma  1   '0.444444444444444'  '0.555555555555554' -> '0.999999999999998'
fmax3180 fma  1   '0.444444444444444'  '0.555555555555553' -> '0.999999999999997'
fmax3181 fma  1   '0.444444444444444'  '0.555555555555552' -> '0.999999999999996'
fmax3182 fma  1   '0.444444444444444'  '0.555555555555551' -> '0.999999999999995'
fmax3183 fma  1   '0.444444444444444'  '0.555555555555550' -> '0.999999999999994'

-- and some more, including residue effects and different roundings
precision: 9
rounding: half_up
fmax3200 fma  1   '123456789' 0             -> '123456789'
fmax3201 fma  1   '123456789' 0.000000001   -> '123456789' Inexact Rounded
fmax3202 fma  1   '123456789' 0.000001      -> '123456789' Inexact Rounded
fmax3203 fma  1   '123456789' 0.1           -> '123456789' Inexact Rounded
fmax3204 fma  1   '123456789' 0.4           -> '123456789' Inexact Rounded
fmax3205 fma  1   '123456789' 0.49          -> '123456789' Inexact Rounded
fmax3206 fma  1   '123456789' 0.499999      -> '123456789' Inexact Rounded
fmax3207 fma  1   '123456789' 0.499999999   -> '123456789' Inexact Rounded
fmax3208 fma  1   '123456789' 0.5           -> '123456790' Inexact Rounded
fmax3209 fma  1   '123456789' 0.500000001   -> '123456790' Inexact Rounded
fmax3210 fma  1   '123456789' 0.500001      -> '123456790' Inexact Rounded
fmax3211 fma  1   '123456789' 0.51          -> '123456790' Inexact Rounded
fmax3212 fma  1   '123456789' 0.6           -> '123456790' Inexact Rounded
fmax3213 fma  1   '123456789' 0.9           -> '123456790' Inexact Rounded
fmax3214 fma  1   '123456789' 0.99999       -> '123456790' Inexact Rounded
fmax3215 fma  1   '123456789' 0.999999999   -> '123456790' Inexact Rounded
fmax3216 fma  1   '123456789' 1             -> '123456790'
fmax3217 fma  1   '123456789' 1.000000001   -> '123456790' Inexact Rounded
fmax3218 fma  1   '123456789' 1.00001       -> '123456790' Inexact Rounded
fmax3219 fma  1   '123456789' 1.1           -> '123456790' Inexact Rounded

rounding: half_even
fmax3220 fma  1   '123456789' 0             -> '123456789'
fmax3221 fma  1   '123456789' 0.000000001   -> '123456789' Inexact Rounded
fmax3222 fma  1   '123456789' 0.000001      -> '123456789' Inexact Rounded
fmax3223 fma  1   '123456789' 0.1           -> '123456789' Inexact Rounded
fmax3224 fma  1   '123456789' 0.4           -> '123456789' Inexact Rounded
fmax3225 fma  1   '123456789' 0.49          -> '123456789' Inexact Rounded
fmax3226 fma  1   '123456789' 0.499999      -> '123456789' Inexact Rounded
fmax3227 fma  1   '123456789' 0.499999999   -> '123456789' Inexact Rounded
fmax3228 fma  1   '123456789' 0.5           -> '123456790' Inexact Rounded
fmax3229 fma  1   '123456789' 0.500000001   -> '123456790' Inexact Rounded
fmax3230 fma  1   '123456789' 0.500001      -> '123456790' Inexact Rounded
fmax3231 fma  1   '123456789' 0.51          -> '123456790' Inexact Rounded
fmax3232 fma  1   '123456789' 0.6           -> '123456790' Inexact Rounded
fmax3233 fma  1   '123456789' 0.9           -> '123456790' Inexact Rounded
fmax3234 fma  1   '123456789' 0.99999       -> '123456790' Inexact Rounded
fmax3235 fma  1   '123456789' 0.999999999   -> '123456790' Inexact Rounded
fmax3236 fma  1   '123456789' 1             -> '123456790'
fmax3237 fma  1   '123456789' 1.00000001    -> '123456790' Inexact Rounded
fmax3238 fma  1   '123456789' 1.00001       -> '123456790' Inexact Rounded
fmax3239 fma  1   '123456789' 1.1           -> '123456790' Inexact Rounded
-- critical few with even bottom digit...
fmax3240 fma  1   '123456788' 0.499999999   -> '123456788' Inexact Rounded
fmax3241 fma  1   '123456788' 0.5           -> '123456788' Inexact Rounded
fmax3242 fma  1   '123456788' 0.500000001   -> '123456789' Inexact Rounded

rounding: down
fmax3250 fma  1   '123456789' 0             -> '123456789'
fmax3251 fma  1   '123456789' 0.000000001   -> '123456789' Inexact Rounded
fmax3252 fma  1   '123456789' 0.000001      -> '123456789' Inexact Rounded
fmax3253 fma  1   '123456789' 0.1           -> '123456789' Inexact Rounded
fmax3254 fma  1   '123456789' 0.4           -> '123456789' Inexact Rounded
fmax3255 fma  1   '123456789' 0.49          -> '123456789' Inexact Rounded
fmax3256 fma  1   '123456789' 0.499999      -> '123456789' Inexact Rounded
fmax3257 fma  1   '123456789' 0.499999999   -> '123456789' Inexact Rounded
fmax3258 fma  1   '123456789' 0.5           -> '123456789' Inexact Rounded
fmax3259 fma  1   '123456789' 0.500000001   -> '123456789' Inexact Rounded
fmax3260 fma  1   '123456789' 0.500001      -> '123456789' Inexact Rounded
fmax3261 fma  1   '123456789' 0.51          -> '123456789' Inexact Rounded
fmax3262 fma  1   '123456789' 0.6           -> '123456789' Inexact Rounded
fmax3263 fma  1   '123456789' 0.9           -> '123456789' Inexact Rounded
fmax3264 fma  1   '123456789' 0.99999       -> '123456789' Inexact Rounded
fmax3265 fma  1   '123456789' 0.999999999   -> '123456789' Inexact Rounded
fmax3266 fma  1   '123456789' 1             -> '123456790'
fmax3267 fma  1   '123456789' 1.00000001    -> '123456790' Inexact Rounded
fmax3268 fma  1   '123456789' 1.00001       -> '123456790' Inexact Rounded
fmax3269 fma  1   '123456789' 1.1           -> '123456790' Inexact Rounded

-- input preparation tests (operands should not be rounded)
precision: 3
rounding: half_up

fmax3270 fma  1   '12345678900000'  9999999999999 ->  '2.23E+13' Inexact Rounded
fmax3271 fma  1    '9999999999999' 12345678900000 ->  '2.23E+13' Inexact Rounded

fmax3272 fma  1   '12E+3'  '3444'   ->  '1.54E+4' Inexact Rounded
fmax3273 fma  1   '12E+3'  '3446'   ->  '1.54E+4' Inexact Rounded
fmax3274 fma  1   '12E+3'  '3449.9' ->  '1.54E+4' Inexact Rounded
fmax3275 fma  1   '12E+3'  '3450.0' ->  '1.55E+4' Inexact Rounded
fmax3276 fma  1   '12E+3'  '3450.1' ->  '1.55E+4' Inexact Rounded
fmax3277 fma  1   '12E+3'  '3454'   ->  '1.55E+4' Inexact Rounded
fmax3278 fma  1   '12E+3'  '3456'   ->  '1.55E+4' Inexact Rounded

fmax3281 fma  1   '3444'   '12E+3'  ->  '1.54E+4' Inexact Rounded
fmax3282 fma  1   '3446'   '12E+3'  ->  '1.54E+4' Inexact Rounded
fmax3283 fma  1   '3449.9' '12E+3'  ->  '1.54E+4' Inexact Rounded
fmax3284 fma  1   '3450.0' '12E+3'  ->  '1.55E+4' Inexact Rounded
fmax3285 fma  1   '3450.1' '12E+3'  ->  '1.55E+4' Inexact Rounded
fmax3286 fma  1   '3454'   '12E+3'  ->  '1.55E+4' Inexact Rounded
fmax3287 fma  1   '3456'   '12E+3'  ->  '1.55E+4' Inexact Rounded

rounding: half_down
fmax3291 fma  1   '3444'   '12E+3'  ->  '1.54E+4' Inexact Rounded
fmax3292 fma  1   '3446'   '12E+3'  ->  '1.54E+4' Inexact Rounded
fmax3293 fma  1   '3449.9' '12E+3'  ->  '1.54E+4' Inexact Rounded
fmax3294 fma  1   '3450.0' '12E+3'  ->  '1.54E+4' Inexact Rounded
fmax3295 fma  1   '3450.1' '12E+3'  ->  '1.55E+4' Inexact Rounded
fmax3296 fma  1   '3454'   '12E+3'  ->  '1.55E+4' Inexact Rounded
fmax3297 fma  1   '3456'   '12E+3'  ->  '1.55E+4' Inexact Rounded

-- 1 in last place tests
rounding: half_up
fmax3301 fma  1    -1   1      ->   0
fmax3302 fma  1     0   1      ->   1
fmax3303 fma  1     1   1      ->   2
fmax3304 fma  1    12   1      ->  13
fmax3305 fma  1    98   1      ->  99
fmax3306 fma  1    99   1      -> 100
fmax3307 fma  1   100   1      -> 101
fmax3308 fma  1   101   1      -> 102
fmax3309 fma  1    -1  -1      ->  -2
fmax3310 fma  1     0  -1      ->  -1
fmax3311 fma  1     1  -1      ->   0
fmax3312 fma  1    12  -1      ->  11
fmax3313 fma  1    98  -1      ->  97
fmax3314 fma  1    99  -1      ->  98
fmax3315 fma  1   100  -1      ->  99
fmax3316 fma  1   101  -1      -> 100

fmax3321 fma  1   -0.01  0.01    ->  0.00
fmax3322 fma  1    0.00  0.01    ->  0.01
fmax3323 fma  1    0.01  0.01    ->  0.02
fmax3324 fma  1    0.12  0.01    ->  0.13
fmax3325 fma  1    0.98  0.01    ->  0.99
fmax3326 fma  1    0.99  0.01    ->  1.00
fmax3327 fma  1    1.00  0.01    ->  1.01
fmax3328 fma  1    1.01  0.01    ->  1.02
fmax3329 fma  1   -0.01 -0.01    -> -0.02
fmax3330 fma  1    0.00 -0.01    -> -0.01
fmax3331 fma  1    0.01 -0.01    ->  0.00
fmax3332 fma  1    0.12 -0.01    ->  0.11
fmax3333 fma  1    0.98 -0.01    ->  0.97
fmax3334 fma  1    0.99 -0.01    ->  0.98
fmax3335 fma  1    1.00 -0.01    ->  0.99
fmax3336 fma  1    1.01 -0.01    ->  1.00

-- some more cases where fma  1  ing 0 affects the coefficient
precision: 9
fmax3340 fma  1   1E+3    0    ->         1000
fmax3341 fma  1   1E+8    0    ->    100000000
fmax3342 fma  1   1E+9    0    ->   1.00000000E+9   Rounded
fmax3343 fma  1   1E+10   0    ->   1.00000000E+10  Rounded
-- which simply follow from these cases ...
fmax3344 fma  1   1E+3    1    ->         1001
fmax3345 fma  1   1E+8    1    ->    100000001
fmax3346 fma  1   1E+9    1    ->   1.00000000E+9   Inexact Rounded
fmax3347 fma  1   1E+10   1    ->   1.00000000E+10  Inexact Rounded
fmax3348 fma  1   1E+3    7    ->         1007
fmax3349 fma  1   1E+8    7    ->    100000007
fmax3350 fma  1   1E+9    7    ->   1.00000001E+9   Inexact Rounded
fmax3351 fma  1   1E+10   7    ->   1.00000000E+10  Inexact Rounded

-- tryzeros cases
precision:   7
rounding:    half_up
maxExponent: 92
minexponent: -92
fmax3361  fma  1   0E+50 10000E+1  -> 1.0000E+5
fmax3362  fma  1   10000E+1 0E-50  -> 100000.0  Rounded
fmax3363  fma  1   10000E+1 10000E-50  -> 100000.0  Rounded Inexact
fmax3364  fma  1   9.999999E+92 -9.999999E+92 -> 0E+86

-- a curiosity from JSR 13 testing
rounding:    half_down
precision:   10
fmax3370 fma  1   99999999 81512 -> 100081511
precision:      6
fmax3371 fma  1   99999999 81512 -> 1.00082E+8 Rounded Inexact
rounding:    half_up
precision:   10
fmax3372 fma  1   99999999 81512 -> 100081511
precision:      6
fmax3373 fma  1   99999999 81512 -> 1.00082E+8 Rounded Inexact
rounding:    half_even
precision:   10
fmax3374 fma  1   99999999 81512 -> 100081511
precision:      6
fmax3375 fma  1   99999999 81512 -> 1.00082E+8 Rounded Inexact

-- ulp replacement tests
precision: 9
maxexponent: 999999
minexponent: -999999
fmax3400 fma  1     1   77e-7       ->  1.0000077
fmax3401 fma  1     1   77e-8       ->  1.00000077
fmax3402 fma  1     1   77e-9       ->  1.00000008 Inexact Rounded
fmax3403 fma  1     1   77e-10      ->  1.00000001 Inexact Rounded
fmax3404 fma  1     1   77e-11      ->  1.00000000 Inexact Rounded
fmax3405 fma  1     1   77e-12      ->  1.00000000 Inexact Rounded
fmax3406 fma  1     1   77e-999     ->  1.00000000 Inexact Rounded
fmax3407 fma  1     1   77e-999999  ->  1.00000000 Inexact Rounded

fmax3410 fma  1    10   77e-7       ->  10.0000077
fmax3411 fma  1    10   77e-8       ->  10.0000008 Inexact Rounded
fmax3412 fma  1    10   77e-9       ->  10.0000001 Inexact Rounded
fmax3413 fma  1    10   77e-10      ->  10.0000000 Inexact Rounded
fmax3414 fma  1    10   77e-11      ->  10.0000000 Inexact Rounded
fmax3415 fma  1    10   77e-12      ->  10.0000000 Inexact Rounded
fmax3416 fma  1    10   77e-999     ->  10.0000000 Inexact Rounded
fmax3417 fma  1    10   77e-999999  ->  10.0000000 Inexact Rounded

fmax3420 fma  1    77e-7        1   ->  1.0000077
fmax3421 fma  1    77e-8        1   ->  1.00000077
fmax3422 fma  1    77e-9        1   ->  1.00000008 Inexact Rounded
fmax3423 fma  1    77e-10       1   ->  1.00000001 Inexact Rounded
fmax3424 fma  1    77e-11       1   ->  1.00000000 Inexact Rounded
fmax3425 fma  1    77e-12       1   ->  1.00000000 Inexact Rounded
fmax3426 fma  1    77e-999      1   ->  1.00000000 Inexact Rounded
fmax3427 fma  1    77e-999999   1   ->  1.00000000 Inexact Rounded

fmax3430 fma  1    77e-7       10   ->  10.0000077
fmax3431 fma  1    77e-8       10   ->  10.0000008 Inexact Rounded
fmax3432 fma  1    77e-9       10   ->  10.0000001 Inexact Rounded
fmax3433 fma  1    77e-10      10   ->  10.0000000 Inexact Rounded
fmax3434 fma  1    77e-11      10   ->  10.0000000 Inexact Rounded
fmax3435 fma  1    77e-12      10   ->  10.0000000 Inexact Rounded
fmax3436 fma  1    77e-999     10   ->  10.0000000 Inexact Rounded
fmax3437 fma  1    77e-999999  10   ->  10.0000000 Inexact Rounded

-- negative ulps
fmax3440 fma  1     1   -77e-7       ->  0.9999923
fmax3441 fma  1     1   -77e-8       ->  0.99999923
fmax3442 fma  1     1   -77e-9       ->  0.999999923
fmax3443 fma  1     1   -77e-10      ->  0.999999992 Inexact Rounded
fmax3444 fma  1     1   -77e-11      ->  0.999999999 Inexact Rounded
fmax3445 fma  1     1   -77e-12      ->  1.00000000 Inexact Rounded
fmax3446 fma  1     1   -77e-999     ->  1.00000000 Inexact Rounded
fmax3447 fma  1     1   -77e-999999  ->  1.00000000 Inexact Rounded

fmax3450 fma  1    10   -77e-7       ->   9.9999923
fmax3451 fma  1    10   -77e-8       ->   9.99999923
fmax3452 fma  1    10   -77e-9       ->   9.99999992 Inexact Rounded
fmax3453 fma  1    10   -77e-10      ->   9.99999999 Inexact Rounded
fmax3454 fma  1    10   -77e-11      ->  10.0000000 Inexact Rounded
fmax3455 fma  1    10   -77e-12      ->  10.0000000 Inexact Rounded
fmax3456 fma  1    10   -77e-999     ->  10.0000000 Inexact Rounded
fmax3457 fma  1    10   -77e-999999  ->  10.0000000 Inexact Rounded

fmax3460 fma  1    -77e-7        1   ->  0.9999923
fmax3461 fma  1    -77e-8        1   ->  0.99999923
fmax3462 fma  1    -77e-9        1   ->  0.999999923
fmax3463 fma  1    -77e-10       1   ->  0.999999992 Inexact Rounded
fmax3464 fma  1    -77e-11       1   ->  0.999999999 Inexact Rounded
fmax3465 fma  1    -77e-12       1   ->  1.00000000 Inexact Rounded
fmax3466 fma  1    -77e-999      1   ->  1.00000000 Inexact Rounded
fmax3467 fma  1    -77e-999999   1   ->  1.00000000 Inexact Rounded

fmax3470 fma  1    -77e-7       10   ->   9.9999923
fmax3471 fma  1    -77e-8       10   ->   9.99999923
fmax3472 fma  1    -77e-9       10   ->   9.99999992 Inexact Rounded
fmax3473 fma  1    -77e-10      10   ->   9.99999999 Inexact Rounded
fmax3474 fma  1    -77e-11      10   ->  10.0000000 Inexact Rounded
fmax3475 fma  1    -77e-12      10   ->  10.0000000 Inexact Rounded
fmax3476 fma  1    -77e-999     10   ->  10.0000000 Inexact Rounded
fmax3477 fma  1    -77e-999999  10   ->  10.0000000 Inexact Rounded

-- negative ulps
fmax3480 fma  1    -1    77e-7       ->  -0.9999923
fmax3481 fma  1    -1    77e-8       ->  -0.99999923
fmax3482 fma  1    -1    77e-9       ->  -0.999999923
fmax3483 fma  1    -1    77e-10      ->  -0.999999992 Inexact Rounded
fmax3484 fma  1    -1    77e-11      ->  -0.999999999 Inexact Rounded
fmax3485 fma  1    -1    77e-12      ->  -1.00000000 Inexact Rounded
fmax3486 fma  1    -1    77e-999     ->  -1.00000000 Inexact Rounded
fmax3487 fma  1    -1    77e-999999  ->  -1.00000000 Inexact Rounded

fmax3490 fma  1   -10    77e-7       ->   -9.9999923
fmax3491 fma  1   -10    77e-8       ->   -9.99999923
fmax3492 fma  1   -10    77e-9       ->   -9.99999992 Inexact Rounded
fmax3493 fma  1   -10    77e-10      ->   -9.99999999 Inexact Rounded
fmax3494 fma  1   -10    77e-11      ->  -10.0000000 Inexact Rounded
fmax3495 fma  1   -10    77e-12      ->  -10.0000000 Inexact Rounded
fmax3496 fma  1   -10    77e-999     ->  -10.0000000 Inexact Rounded
fmax3497 fma  1   -10    77e-999999  ->  -10.0000000 Inexact Rounded

fmax3500 fma  1     77e-7       -1   ->  -0.9999923
fmax3501 fma  1     77e-8       -1   ->  -0.99999923
fmax3502 fma  1     77e-9       -1   ->  -0.999999923
fmax3503 fma  1     77e-10      -1   ->  -0.999999992 Inexact Rounded
fmax3504 fma  1     77e-11      -1   ->  -0.999999999 Inexact Rounded
fmax3505 fma  1     77e-12      -1   ->  -1.00000000 Inexact Rounded
fmax3506 fma  1     77e-999     -1   ->  -1.00000000 Inexact Rounded
fmax3507 fma  1     77e-999999  -1   ->  -1.00000000 Inexact Rounded

fmax3510 fma  1     77e-7       -10  ->   -9.9999923
fmax3511 fma  1     77e-8       -10  ->   -9.99999923
fmax3512 fma  1     77e-9       -10  ->   -9.99999992 Inexact Rounded
fmax3513 fma  1     77e-10      -10  ->   -9.99999999 Inexact Rounded
fmax3514 fma  1     77e-11      -10  ->  -10.0000000 Inexact Rounded
fmax3515 fma  1     77e-12      -10  ->  -10.0000000 Inexact Rounded
fmax3516 fma  1     77e-999     -10  ->  -10.0000000 Inexact Rounded
fmax3517 fma  1     77e-999999  -10  ->  -10.0000000 Inexact Rounded


-- long operands
maxexponent: 999
minexponent: -999
precision: 9
fmax3521 fma  1   12345678000 0 -> 1.23456780E+10 Rounded
fmax3522 fma  1   0 12345678000 -> 1.23456780E+10 Rounded
fmax3523 fma  1   1234567800  0 -> 1.23456780E+9 Rounded
fmax3524 fma  1   0 1234567800  -> 1.23456780E+9 Rounded
fmax3525 fma  1   1234567890  0 -> 1.23456789E+9 Rounded
fmax3526 fma  1   0 1234567890  -> 1.23456789E+9 Rounded
fmax3527 fma  1   1234567891  0 -> 1.23456789E+9 Inexact Rounded
fmax3528 fma  1   0 1234567891  -> 1.23456789E+9 Inexact Rounded
fmax3529 fma  1   12345678901 0 -> 1.23456789E+10 Inexact Rounded
fmax3530 fma  1   0 12345678901 -> 1.23456789E+10 Inexact Rounded
fmax3531 fma  1   1234567896  0 -> 1.23456790E+9 Inexact Rounded
fmax3532 fma  1   0 1234567896  -> 1.23456790E+9 Inexact Rounded

precision: 15
-- still checking
fmax3541 fma  1   12345678000 0 -> 12345678000
fmax3542 fma  1   0 12345678000 -> 12345678000
fmax3543 fma  1   1234567800  0 -> 1234567800
fmax3544 fma  1   0 1234567800  -> 1234567800
fmax3545 fma  1   1234567890  0 -> 1234567890
fmax3546 fma  1   0 1234567890  -> 1234567890
fmax3547 fma  1   1234567891  0 -> 1234567891
fmax3548 fma  1   0 1234567891  -> 1234567891
fmax3549 fma  1   12345678901 0 -> 12345678901
fmax3550 fma  1   0 12345678901 -> 12345678901
fmax3551 fma  1   1234567896  0 -> 1234567896
fmax3552 fma  1   0 1234567896  -> 1234567896

-- verify a query
precision:    16
maxExponent: +394
minExponent: -393
rounding:     down
fmax3561 fma  1   1e-398 9.000000000000000E+384 -> 9.000000000000000E+384 Inexact Rounded
fmax3562 fma  1        0 9.000000000000000E+384 -> 9.000000000000000E+384 Rounded
-- and using decimal64 bounds...
precision:    16
maxExponent: +384
minExponent: -383
rounding:     down
fmax3563 fma  1   1e-388 9.000000000000000E+374 -> 9.000000000000000E+374 Inexact Rounded
fmax3564 fma  1        0 9.000000000000000E+374 -> 9.000000000000000E+374 Rounded


-- some more residue effects with extreme rounding
precision:   9
rounding: half_up
fmax3601 fma  1   123456789  0.000001 -> 123456789 Inexact Rounded
rounding: half_even
fmax3602 fma  1   123456789  0.000001 -> 123456789 Inexact Rounded
rounding: half_down
fmax3603 fma  1   123456789  0.000001 -> 123456789 Inexact Rounded
rounding: floor
fmax3604 fma  1   123456789  0.000001 -> 123456789 Inexact Rounded
rounding: ceiling
fmax3605 fma  1   123456789  0.000001 -> 123456790 Inexact Rounded
rounding: up
fmax3606 fma  1   123456789  0.000001 -> 123456790 Inexact Rounded
rounding: down
fmax3607 fma  1   123456789  0.000001 -> 123456789 Inexact Rounded

rounding: half_up
fmax3611 fma  1   123456789 -0.000001 -> 123456789 Inexact Rounded
rounding: half_even
fmax3612 fma  1   123456789 -0.000001 -> 123456789 Inexact Rounded
rounding: half_down
fmax3613 fma  1   123456789 -0.000001 -> 123456789 Inexact Rounded
rounding: floor
fmax3614 fma  1   123456789 -0.000001 -> 123456788 Inexact Rounded
rounding: ceiling
fmax3615 fma  1   123456789 -0.000001 -> 123456789 Inexact Rounded
rounding: up
fmax3616 fma  1   123456789 -0.000001 -> 123456789 Inexact Rounded
rounding: down
fmax3617 fma  1   123456789 -0.000001 -> 123456788 Inexact Rounded

rounding: half_up
fmax3621 fma  1   123456789  0.499999 -> 123456789 Inexact Rounded
rounding: half_even
fmax3622 fma  1   123456789  0.499999 -> 123456789 Inexact Rounded
rounding: half_down
fmax3623 fma  1   123456789  0.499999 -> 123456789 Inexact Rounded
rounding: floor
fmax3624 fma  1   123456789  0.499999 -> 123456789 Inexact Rounded
rounding: ceiling
fmax3625 fma  1   123456789  0.499999 -> 123456790 Inexact Rounded
rounding: up
fmax3626 fma  1   123456789  0.499999 -> 123456790 Inexact Rounded
rounding: down
fmax3627 fma  1   123456789  0.499999 -> 123456789 Inexact Rounded

rounding: half_up
fmax3631 fma  1   123456789 -0.499999 -> 123456789 Inexact Rounded
rounding: half_even
fmax3632 fma  1   123456789 -0.499999 -> 123456789 Inexact Rounded
rounding: half_down
fmax3633 fma  1   123456789 -0.499999 -> 123456789 Inexact Rounded
rounding: floor
fmax3634 fma  1   123456789 -0.499999 -> 123456788 Inexact Rounded
rounding: ceiling
fmax3635 fma  1   123456789 -0.499999 -> 123456789 Inexact Rounded
rounding: up
fmax3636 fma  1   123456789 -0.499999 -> 123456789 Inexact Rounded
rounding: down
fmax3637 fma  1   123456789 -0.499999 -> 123456788 Inexact Rounded

rounding: half_up
fmax3641 fma  1   123456789  0.500001 -> 123456790 Inexact Rounded
rounding: half_even
fmax3642 fma  1   123456789  0.500001 -> 123456790 Inexact Rounded
rounding: half_down
fmax3643 fma  1   123456789  0.500001 -> 123456790 Inexact Rounded
rounding: floor
fmax3644 fma  1   123456789  0.500001 -> 123456789 Inexact Rounded
rounding: ceiling
fmax3645 fma  1   123456789  0.500001 -> 123456790 Inexact Rounded
rounding: up
fmax3646 fma  1   123456789  0.500001 -> 123456790 Inexact Rounded
rounding: down
fmax3647 fma  1   123456789  0.500001 -> 123456789 Inexact Rounded

rounding: half_up
fmax3651 fma  1   123456789 -0.500001 -> 123456788 Inexact Rounded
rounding: half_even
fmax3652 fma  1   123456789 -0.500001 -> 123456788 Inexact Rounded
rounding: half_down
fmax3653 fma  1   123456789 -0.500001 -> 123456788 Inexact Rounded
rounding: floor
fmax3654 fma  1   123456789 -0.500001 -> 123456788 Inexact Rounded
rounding: ceiling
fmax3655 fma  1   123456789 -0.500001 -> 123456789 Inexact Rounded
rounding: up
fmax3656 fma  1   123456789 -0.500001 -> 123456789 Inexact Rounded
rounding: down
fmax3657 fma  1   123456789 -0.500001 -> 123456788 Inexact Rounded

-- long operand triangle
rounding: half_up
precision:  37
fmax3660 fma  1   98471198160.56524417578665886060 -23994.14313393939743548945165462 -> 98471174166.42211023638922337114834538
precision:  36
fmax3661 fma  1   98471198160.56524417578665886060 -23994.14313393939743548945165462 -> 98471174166.4221102363892233711483454  Inexact Rounded
precision:  35
fmax3662 fma  1   98471198160.56524417578665886060 -23994.14313393939743548945165462 -> 98471174166.422110236389223371148345   Inexact Rounded
precision:  34
fmax3663 fma  1   98471198160.56524417578665886060 -23994.14313393939743548945165462 -> 98471174166.42211023638922337114835    Inexact Rounded
precision:  33
fmax3664 fma  1   98471198160.56524417578665886060 -23994.14313393939743548945165462 -> 98471174166.4221102363892233711483     Inexact Rounded
precision:  32
fmax3665 fma  1   98471198160.56524417578665886060 -23994.14313393939743548945165462 -> 98471174166.422110236389223371148      Inexact Rounded
precision:  31
fmax3666 fma  1   98471198160.56524417578665886060 -23994.14313393939743548945165462 -> 98471174166.42211023638922337115       Inexact Rounded
precision:  30
fmax3667 fma  1   98471198160.56524417578665886060 -23994.14313393939743548945165462 -> 98471174166.4221102363892233711        Inexact Rounded
precision:  29
fmax3668 fma  1   98471198160.56524417578665886060 -23994.14313393939743548945165462 -> 98471174166.422110236389223371         Inexact Rounded
precision:  28
fmax3669 fma  1   98471198160.56524417578665886060 -23994.14313393939743548945165462 -> 98471174166.42211023638922337          Inexact Rounded
precision:  27
fmax3670 fma  1   98471198160.56524417578665886060 -23994.14313393939743548945165462 -> 98471174166.4221102363892234           Inexact Rounded
precision:  26
fmax3671 fma  1   98471198160.56524417578665886060 -23994.14313393939743548945165462 -> 98471174166.422110236389223            Inexact Rounded
precision:  25
fmax3672 fma  1   98471198160.56524417578665886060 -23994.14313393939743548945165462 -> 98471174166.42211023638922             Inexact Rounded
precision:  24
fmax3673 fma  1   98471198160.56524417578665886060 -23994.14313393939743548945165462 -> 98471174166.4221102363892              Inexact Rounded
precision:  23
fmax3674 fma  1   98471198160.56524417578665886060 -23994.14313393939743548945165462 -> 98471174166.422110236389               Inexact Rounded
precision:  22
fmax3675 fma  1   98471198160.56524417578665886060 -23994.14313393939743548945165462 -> 98471174166.42211023639                Inexact Rounded
precision:  21
fmax3676 fma  1   98471198160.56524417578665886060 -23994.14313393939743548945165462 -> 98471174166.4221102364                 Inexact Rounded
precision:  20
fmax3677 fma  1   98471198160.56524417578665886060 -23994.14313393939743548945165462 -> 98471174166.422110236                  Inexact Rounded
precision:  19
fmax3678 fma  1   98471198160.56524417578665886060 -23994.14313393939743548945165462 -> 98471174166.42211024                   Inexact Rounded
precision:  18
fmax3679 fma  1   98471198160.56524417578665886060 -23994.14313393939743548945165462 -> 98471174166.4221102                    Inexact Rounded
precision:  17
fmax3680 fma  1   98471198160.56524417578665886060 -23994.14313393939743548945165462 -> 98471174166.422110                     Inexact Rounded
precision:  16
fmax3681 fma  1   98471198160.56524417578665886060 -23994.14313393939743548945165462 -> 98471174166.42211                      Inexact Rounded
precision:  15
fmax3682 fma  1   98471198160.56524417578665886060 -23994.14313393939743548945165462 -> 98471174166.4221                       Inexact Rounded
precision:  14
fmax3683 fma  1   98471198160.56524417578665886060 -23994.14313393939743548945165462 -> 98471174166.422                        Inexact Rounded
precision:  13
fmax3684 fma  1   98471198160.56524417578665886060 -23994.14313393939743548945165462 -> 98471174166.42                         Inexact Rounded
precision:  12
fmax3685 fma  1   98471198160.56524417578665886060 -23994.14313393939743548945165462 -> 98471174166.4                          Inexact Rounded
precision:  11
fmax3686 fma  1   98471198160.56524417578665886060 -23994.14313393939743548945165462 -> 98471174166                            Inexact Rounded
precision:  10
fmax3687 fma  1   98471198160.56524417578665886060 -23994.14313393939743548945165462 -> 9.847117417E+10                        Inexact Rounded
precision:   9
fmax3688 fma  1   98471198160.56524417578665886060 -23994.14313393939743548945165462 -> 9.84711742E+10                         Inexact Rounded
precision:   8
fmax3689 fma  1   98471198160.56524417578665886060 -23994.14313393939743548945165462 -> 9.8471174E+10                          Inexact Rounded
precision:   7
fmax3690 fma  1   98471198160.56524417578665886060 -23994.14313393939743548945165462 -> 9.847117E+10                          Inexact Rounded
precision:   6
fmax3691 fma  1   98471198160.56524417578665886060 -23994.14313393939743548945165462 -> 9.84712E+10                          Inexact Rounded
precision:   5
fmax3692 fma  1   98471198160.56524417578665886060 -23994.14313393939743548945165462 -> 9.8471E+10                          Inexact Rounded
precision:   4
fmax3693 fma  1   98471198160.56524417578665886060 -23994.14313393939743548945165462 -> 9.847E+10                          Inexact Rounded
precision:   3
fmax3694 fma  1   98471198160.56524417578665886060 -23994.14313393939743548945165462 -> 9.85E+10                          Inexact Rounded
precision:   2
fmax3695 fma  1   98471198160.56524417578665886060 -23994.14313393939743548945165462 -> 9.8E+10                          Inexact Rounded
precision:   1
fmax3696 fma  1   98471198160.56524417578665886060 -23994.14313393939743548945165462 -> 1E+11                          Inexact Rounded

-- more zeros, etc.
rounding: half_up
precision:   9

fmax3701 fma  1   5.00 1.00E-3 -> 5.00100
fmax3702 fma  1   00.00 0.000  -> 0.000
fmax3703 fma  1   00.00 0E-3   -> 0.000
fmax3704 fma  1   0E-3  00.00  -> 0.000

fmax3710 fma  1   0E+3  00.00  -> 0.00
fmax3711 fma  1   0E+3  00.0   -> 0.0
fmax3712 fma  1   0E+3  00.    -> 0
fmax3713 fma  1   0E+3  00.E+1 -> 0E+1
fmax3714 fma  1   0E+3  00.E+2 -> 0E+2
fmax3715 fma  1   0E+3  00.E+3 -> 0E+3
fmax3716 fma  1   0E+3  00.E+4 -> 0E+3
fmax3717 fma  1   0E+3  00.E+5 -> 0E+3
fmax3718 fma  1   0E+3  -00.0   -> 0.0
fmax3719 fma  1   0E+3  -00.    -> 0
fmax3731 fma  1   0E+3  -00.E+1 -> 0E+1

fmax3720 fma  1   00.00  0E+3  -> 0.00
fmax3721 fma  1   00.0   0E+3  -> 0.0
fmax3722 fma  1   00.    0E+3  -> 0
fmax3723 fma  1   00.E+1 0E+3  -> 0E+1
fmax3724 fma  1   00.E+2 0E+3  -> 0E+2
fmax3725 fma  1   00.E+3 0E+3  -> 0E+3
fmax3726 fma  1   00.E+4 0E+3  -> 0E+3
fmax3727 fma  1   00.E+5 0E+3  -> 0E+3
fmax3728 fma  1   -00.00 0E+3  -> 0.00
fmax3729 fma  1   -00.0  0E+3  -> 0.0
fmax3730 fma  1   -00.   0E+3  -> 0

fmax3732 fma  1    0     0     ->  0
fmax3733 fma  1    0    -0     ->  0
fmax3734 fma  1   -0     0     ->  0
fmax3735 fma  1   -0    -0     -> -0     -- IEEE 854 special case

fmax3736 fma  1    1    -1     ->  0
fmax3737 fma  1   -1    -1     -> -2
fmax3738 fma  1    1     1     ->  2
fmax3739 fma  1   -1     1     ->  0

fmax3741 fma  1    0    -1     -> -1
fmax3742 fma  1   -0    -1     -> -1
fmax3743 fma  1    0     1     ->  1
fmax3744 fma  1   -0     1     ->  1
fmax3745 fma  1   -1     0     -> -1
fmax3746 fma  1   -1    -0     -> -1
fmax3747 fma  1    1     0     ->  1
fmax3748 fma  1    1    -0     ->  1

fmax3751 fma  1    0.0  -1     -> -1.0
fmax3752 fma  1   -0.0  -1     -> -1.0
fmax3753 fma  1    0.0   1     ->  1.0
fmax3754 fma  1   -0.0   1     ->  1.0
fmax3755 fma  1   -1.0   0     -> -1.0
fmax3756 fma  1   -1.0  -0     -> -1.0
fmax3757 fma  1    1.0   0     ->  1.0
fmax3758 fma  1    1.0  -0     ->  1.0

fmax3761 fma  1    0    -1.0   -> -1.0
fmax3762 fma  1   -0    -1.0   -> -1.0
fmax3763 fma  1    0     1.0   ->  1.0
fmax3764 fma  1   -0     1.0   ->  1.0
fmax3765 fma  1   -1     0.0   -> -1.0
fmax3766 fma  1   -1    -0.0   -> -1.0
fmax3767 fma  1    1     0.0   ->  1.0
fmax3768 fma  1    1    -0.0   ->  1.0

fmax3771 fma  1    0.0  -1.0   -> -1.0
fmax3772 fma  1   -0.0  -1.0   -> -1.0
fmax3773 fma  1    0.0   1.0   ->  1.0
fmax3774 fma  1   -0.0   1.0   ->  1.0
fmax3775 fma  1   -1.0   0.0   -> -1.0
fmax3776 fma  1   -1.0  -0.0   -> -1.0
fmax3777 fma  1    1.0   0.0   ->  1.0
fmax3778 fma  1    1.0  -0.0   ->  1.0

-- Specials
fmax3780 fma  1   -Inf  -Inf   -> -Infinity
fmax3781 fma  1   -Inf  -1000  -> -Infinity
fmax3782 fma  1   -Inf  -1     -> -Infinity
fmax3783 fma  1   -Inf  -0     -> -Infinity
fmax3784 fma  1   -Inf   0     -> -Infinity
fmax3785 fma  1   -Inf   1     -> -Infinity
fmax3786 fma  1   -Inf   1000  -> -Infinity
fmax3787 fma  1   -1000 -Inf   -> -Infinity
fmax3788 fma  1   -Inf  -Inf   -> -Infinity
fmax3789 fma  1   -1    -Inf   -> -Infinity
fmax3790 fma  1   -0    -Inf   -> -Infinity
fmax3791 fma  1    0    -Inf   -> -Infinity
fmax3792 fma  1    1    -Inf   -> -Infinity
fmax3793 fma  1    1000 -Inf   -> -Infinity
fmax3794 fma  1    Inf  -Inf   ->  NaN  Invalid_operation

fmax3800 fma  1    Inf  -Inf   ->  NaN  Invalid_operation
fmax3801 fma  1    Inf  -1000  ->  Infinity
fmax3802 fma  1    Inf  -1     ->  Infinity
fmax3803 fma  1    Inf  -0     ->  Infinity
fmax3804 fma  1    Inf   0     ->  Infinity
fmax3805 fma  1    Inf   1     ->  Infinity
fmax3806 fma  1    Inf   1000  ->  Infinity
fmax3807 fma  1    Inf   Inf   ->  Infinity
fmax3808 fma  1   -1000  Inf   ->  Infinity
fmax3809 fma  1   -Inf   Inf   ->  NaN  Invalid_operation
fmax3810 fma  1   -1     Inf   ->  Infinity
fmax3811 fma  1   -0     Inf   ->  Infinity
fmax3812 fma  1    0     Inf   ->  Infinity
fmax3813 fma  1    1     Inf   ->  Infinity
fmax3814 fma  1    1000  Inf   ->  Infinity
fmax3815 fma  1    Inf   Inf   ->  Infinity

fmax3821 fma  1    NaN -Inf    ->  NaN
fmax3822 fma  1    NaN -1000   ->  NaN
fmax3823 fma  1    NaN -1      ->  NaN
fmax3824 fma  1    NaN -0      ->  NaN
fmax3825 fma  1    NaN  0      ->  NaN
fmax3826 fma  1    NaN  1      ->  NaN
fmax3827 fma  1    NaN  1000   ->  NaN
fmax3828 fma  1    NaN  Inf    ->  NaN
fmax3829 fma  1    NaN  NaN    ->  NaN
fmax3830 fma  1   -Inf  NaN    ->  NaN
fmax3831 fma  1   -1000 NaN    ->  NaN
fmax3832 fma  1   -1    NaN    ->  NaN
fmax3833 fma  1   -0    NaN    ->  NaN
fmax3834 fma  1    0    NaN    ->  NaN
fmax3835 fma  1    1    NaN    ->  NaN
fmax3836 fma  1    1000 NaN    ->  NaN
fmax3837 fma  1    Inf  NaN    ->  NaN

fmax3841 fma  1    sNaN -Inf   ->  NaN  Invalid_operation
fmax3842 fma  1    sNaN -1000  ->  NaN  Invalid_operation
fmax3843 fma  1    sNaN -1     ->  NaN  Invalid_operation
fmax3844 fma  1    sNaN -0     ->  NaN  Invalid_operation
fmax3845 fma  1    sNaN  0     ->  NaN  Invalid_operation
fmax3846 fma  1    sNaN  1     ->  NaN  Invalid_operation
fmax3847 fma  1    sNaN  1000  ->  NaN  Invalid_operation
fmax3848 fma  1    sNaN  NaN   ->  NaN  Invalid_operation
fmax3849 fma  1    sNaN sNaN   ->  NaN  Invalid_operation
fmax3850 fma  1    NaN  sNaN   ->  NaN  Invalid_operation
fmax3851 fma  1   -Inf  sNaN   ->  NaN  Invalid_operation
fmax3852 fma  1   -1000 sNaN   ->  NaN  Invalid_operation
fmax3853 fma  1   -1    sNaN   ->  NaN  Invalid_operation
fmax3854 fma  1   -0    sNaN   ->  NaN  Invalid_operation
fmax3855 fma  1    0    sNaN   ->  NaN  Invalid_operation
fmax3856 fma  1    1    sNaN   ->  NaN  Invalid_operation
fmax3857 fma  1    1000 sNaN   ->  NaN  Invalid_operation
fmax3858 fma  1    Inf  sNaN   ->  NaN  Invalid_operation
fmax3859 fma  1    NaN  sNaN   ->  NaN  Invalid_operation

-- propagating NaNs
fmax3861 fma  1    NaN1   -Inf    ->  NaN1
fmax3862 fma  1   +NaN2   -1000   ->  NaN2
fmax3863 fma  1    NaN3    1000   ->  NaN3
fmax3864 fma  1    NaN4    Inf    ->  NaN4
fmax3865 fma  1    NaN5   +NaN6   ->  NaN5
fmax3866 fma  1   -Inf     NaN7   ->  NaN7
fmax3867 fma  1   -1000    NaN8   ->  NaN8
fmax3868 fma  1    1000    NaN9   ->  NaN9
fmax3869 fma  1    Inf    +NaN10  ->  NaN10
fmax3871 fma  1    sNaN11  -Inf   ->  NaN11  Invalid_operation
fmax3872 fma  1    sNaN12  -1000  ->  NaN12  Invalid_operation
fmax3873 fma  1    sNaN13   1000  ->  NaN13  Invalid_operation
fmax3874 fma  1    sNaN14   NaN17 ->  NaN14  Invalid_operation
fmax3875 fma  1    sNaN15  sNaN18 ->  NaN15  Invalid_operation
fmax3876 fma  1    NaN16   sNaN19 ->  NaN19  Invalid_operation
fmax3877 fma  1   -Inf    +sNaN20 ->  NaN20  Invalid_operation
fmax3878 fma  1   -1000    sNaN21 ->  NaN21  Invalid_operation
fmax3879 fma  1    1000    sNaN22 ->  NaN22  Invalid_operation
fmax3880 fma  1    Inf     sNaN23 ->  NaN23  Invalid_operation
fmax3881 fma  1   +NaN25  +sNaN24 ->  NaN24  Invalid_operation
fmax3882 fma  1   -NaN26    NaN28 -> -NaN26
fmax3883 fma  1   -sNaN27  sNaN29 -> -NaN27  Invalid_operation
fmax3884 fma  1    1000    -NaN30 -> -NaN30
fmax3885 fma  1    1000   -sNaN31 -> -NaN31  Invalid_operation

-- overflow, underflow and subnormal tests
maxexponent: 999999
minexponent: -999999
precision: 9
fmax3890 fma  1   1E+999999     9E+999999   -> Infinity Overflow Inexact Rounded
fmax3891 fma  1   9E+999999     1E+999999   -> Infinity Overflow Inexact Rounded
fmax3892 fma  1   -1.1E-999999  1E-999999   -> -1E-1000000    Subnormal
fmax3893 fma  1   1E-999999    -1.1e-999999 -> -1E-1000000    Subnormal
fmax3894 fma  1   -1.0001E-999999  1E-999999   -> -1E-1000003 Subnormal
fmax3895 fma  1   1E-999999    -1.0001e-999999 -> -1E-1000003 Subnormal
fmax3896 fma  1   -1E+999999   -9E+999999   -> -Infinity Overflow Inexact Rounded
fmax3897 fma  1   -9E+999999   -1E+999999   -> -Infinity Overflow Inexact Rounded
fmax3898 fma  1   +1.1E-999999 -1E-999999   -> 1E-1000000   Subnormal
fmax3899 fma  1   -1E-999999   +1.1e-999999 -> 1E-1000000    Subnormal
fmax3900 fma  1   +1.0001E-999999 -1E-999999   -> 1E-1000003 Subnormal
fmax3901 fma  1   -1E-999999   +1.0001e-999999 -> 1E-1000003 Subnormal
fmax3902 fma  1   -1E+999999   +9E+999999   ->  8E+999999
fmax3903 fma  1   -9E+999999   +1E+999999   -> -8E+999999

precision: 3
fmax3904 fma  1        0 -9.999E+999999   -> -Infinity Inexact Overflow Rounded
fmax3905 fma  1          -9.999E+999999 0 -> -Infinity Inexact Overflow Rounded
fmax3906 fma  1        0  9.999E+999999   ->  Infinity Inexact Overflow Rounded
fmax3907 fma  1           9.999E+999999 0 ->  Infinity Inexact Overflow Rounded

precision: 3
maxexponent: 999
minexponent: -999
fmax3910 fma  1    1.00E-999   0    ->   1.00E-999
fmax3911 fma  1    0.1E-999    0    ->   1E-1000   Subnormal
fmax3912 fma  1    0.10E-999   0    ->   1.0E-1000 Subnormal
fmax3913 fma  1    0.100E-999  0    ->   1.0E-1000 Subnormal Rounded
fmax3914 fma  1    0.01E-999   0    ->   1E-1001   Subnormal
-- next is rounded to Nmin
fmax3915 fma  1    0.999E-999  0    ->   1.00E-999 Inexact Rounded Subnormal Underflow
fmax3916 fma  1    0.099E-999  0    ->   1.0E-1000 Inexact Rounded Subnormal Underflow
fmax3917 fma  1    0.009E-999  0    ->   1E-1001   Inexact Rounded Subnormal Underflow
fmax3918 fma  1    0.001E-999  0    ->   0E-1001   Inexact Rounded Subnormal Underflow Clamped
fmax3919 fma  1    0.0009E-999 0    ->   0E-1001   Inexact Rounded Subnormal Underflow Clamped
fmax3920 fma  1    0.0001E-999 0    ->   0E-1001   Inexact Rounded Subnormal Underflow Clamped

fmax3930 fma  1   -1.00E-999   0    ->  -1.00E-999
fmax3931 fma  1   -0.1E-999    0    ->  -1E-1000   Subnormal
fmax3932 fma  1   -0.10E-999   0    ->  -1.0E-1000 Subnormal
fmax3933 fma  1   -0.100E-999  0    ->  -1.0E-1000 Subnormal Rounded
fmax3934 fma  1   -0.01E-999   0    ->  -1E-1001   Subnormal
-- next is rounded to Nmin
fmax3935 fma  1   -0.999E-999  0    ->  -1.00E-999 Inexact Rounded Subnormal Underflow
fmax3936 fma  1   -0.099E-999  0    ->  -1.0E-1000 Inexact Rounded Subnormal Underflow
fmax3937 fma  1   -0.009E-999  0    ->  -1E-1001   Inexact Rounded Subnormal Underflow
fmax3938 fma  1   -0.001E-999  0    ->  -0E-1001   Inexact Rounded Subnormal Underflow Clamped
fmax3939 fma  1   -0.0009E-999 0    ->  -0E-1001   Inexact Rounded Subnormal Underflow Clamped
fmax3940 fma  1   -0.0001E-999 0    ->  -0E-1001   Inexact Rounded Subnormal Underflow Clamped

-- some non-zero subnormal fma  1  s
fmax3950 fma  1    1.00E-999    0.1E-999  ->   1.10E-999
fmax3951 fma  1    0.1E-999     0.1E-999  ->   2E-1000    Subnormal
fmax3952 fma  1    0.10E-999    0.1E-999  ->   2.0E-1000  Subnormal
fmax3953 fma  1    0.100E-999   0.1E-999  ->   2.0E-1000  Subnormal Rounded
fmax3954 fma  1    0.01E-999    0.1E-999  ->   1.1E-1000  Subnormal
fmax3955 fma  1    0.999E-999   0.1E-999  ->   1.10E-999  Inexact Rounded
fmax3956 fma  1    0.099E-999   0.1E-999  ->   2.0E-1000  Inexact Rounded Subnormal Underflow
fmax3957 fma  1    0.009E-999   0.1E-999  ->   1.1E-1000  Inexact Rounded Subnormal Underflow
fmax3958 fma  1    0.001E-999   0.1E-999  ->   1.0E-1000  Inexact Rounded Subnormal Underflow
fmax3959 fma  1    0.0009E-999  0.1E-999  ->   1.0E-1000  Inexact Rounded Subnormal Underflow
fmax3960 fma  1    0.0001E-999  0.1E-999  ->   1.0E-1000  Inexact Rounded Subnormal Underflow
-- negatives...
fmax3961 fma  1    1.00E-999   -0.1E-999  ->   9.0E-1000  Subnormal
fmax3962 fma  1    0.1E-999    -0.1E-999  ->   0E-1000
fmax3963 fma  1    0.10E-999   -0.1E-999  ->   0E-1001
fmax3964 fma  1    0.100E-999  -0.1E-999  ->   0E-1001    Clamped
fmax3965 fma  1    0.01E-999   -0.1E-999  ->   -9E-1001   Subnormal
fmax3966 fma  1    0.999E-999  -0.1E-999  ->   9.0E-1000  Inexact Rounded Subnormal Underflow
fmax3967 fma  1    0.099E-999  -0.1E-999  ->   -0E-1001   Inexact Rounded Subnormal Underflow Clamped
fmax3968 fma  1    0.009E-999  -0.1E-999  ->   -9E-1001   Inexact Rounded Subnormal Underflow
fmax3969 fma  1    0.001E-999  -0.1E-999  ->   -1.0E-1000 Inexact Rounded Subnormal Underflow
fmax3970 fma  1    0.0009E-999 -0.1E-999  ->   -1.0E-1000 Inexact Rounded Subnormal Underflow
fmax3971 fma  1    0.0001E-999 -0.1E-999  ->   -1.0E-1000 Inexact Rounded Subnormal Underflow

-- some 'real' numbers
maxExponent: 384
minExponent: -383
precision: 8
fmax3566 fma  1   99999061735E-394  0E-394 -> 9.999906E-384 Inexact Rounded Underflow Subnormal
precision: 7
fmax3567 fma  1   99999061735E-394  0E-394 -> 9.99991E-384 Inexact Rounded Underflow Subnormal
precision: 6
fmax3568 fma  1   99999061735E-394  0E-394 -> 9.9999E-384 Inexact Rounded Underflow Subnormal

-- now the case where we can get underflow but the result is normal
-- [note this can't happen if the operands are also bounded, as we
-- cannot represent 1E-399, for example]
precision:   16
rounding:    half_up
maxExponent: 384
minExponent: -383

fmax3571 fma  1         1E-383       0  -> 1E-383
fmax3572 fma  1         1E-384       0  -> 1E-384   Subnormal
fmax3573 fma  1         1E-383  1E-384  -> 1.1E-383
fmax3574 subtract  1E-383  1E-384  ->   9E-384 Subnormal

-- Here we explore the boundary of rounding a subnormal to Nmin
fmax3575 subtract  1E-383  1E-398  ->   9.99999999999999E-384  Subnormal
fmax3576 subtract  1E-383  1E-398  ->   9.99999999999999E-384  Subnormal
fmax3577 subtract  1E-383  1E-399  ->   1.000000000000000E-383 Underflow Inexact Subnormal Rounded
fmax3578 subtract  1E-383  1E-400  ->   1.000000000000000E-383 Underflow Inexact Subnormal Rounded
fmax3579 subtract  1E-383  1E-401  ->   1.000000000000000E-383 Underflow Inexact Subnormal Rounded
fmax3580 subtract  1E-383  1E-402  ->   1.000000000000000E-383 Underflow Inexact Subnormal Rounded

-- check for double-rounded subnormals
precision:   5
maxexponent: 79
minexponent: -79
-- Add: lhs and rhs 0
fmax31001 fma  1         1.52444E-80 0 -> 1.524E-80 Inexact Rounded Subnormal Underflow
fmax31002 fma  1         1.52445E-80 0 -> 1.524E-80 Inexact Rounded Subnormal Underflow
fmax31003 fma  1         1.52446E-80 0 -> 1.524E-80 Inexact Rounded Subnormal Underflow
fmax31004 fma  1         0 1.52444E-80 -> 1.524E-80 Inexact Rounded Subnormal Underflow
fmax31005 fma  1         0 1.52445E-80 -> 1.524E-80 Inexact Rounded Subnormal Underflow
fmax31006 fma  1         0 1.52446E-80 -> 1.524E-80 Inexact Rounded Subnormal Underflow

-- Add: lhs >> rhs and vice versa
fmax31011 fma  1         1.52444E-80 1E-100 -> 1.524E-80 Inexact Rounded Subnormal Underflow
fmax31012 fma  1         1.52445E-80 1E-100 -> 1.524E-80 Inexact Rounded Subnormal Underflow
fmax31013 fma  1         1.52446E-80 1E-100 -> 1.524E-80 Inexact Rounded Subnormal Underflow
fmax31014 fma  1         1E-100 1.52444E-80 -> 1.524E-80 Inexact Rounded Subnormal Underflow
fmax31015 fma  1         1E-100 1.52445E-80 -> 1.524E-80 Inexact Rounded Subnormal Underflow
fmax31016 fma  1         1E-100 1.52446E-80 -> 1.524E-80 Inexact Rounded Subnormal Underflow

-- Add: lhs + rhs fma  1  ition carried out
fmax31021 fma  1         1.52443E-80 1.00001E-80  -> 2.524E-80 Inexact Rounded Subnormal Underflow
fmax31022 fma  1         1.52444E-80 1.00001E-80  -> 2.524E-80 Inexact Rounded Subnormal Underflow
fmax31023 fma  1         1.52445E-80 1.00001E-80  -> 2.524E-80 Inexact Rounded Subnormal Underflow
fmax31024 fma  1         1.00001E-80  1.52443E-80 -> 2.524E-80 Inexact Rounded Subnormal Underflow
fmax31025 fma  1         1.00001E-80  1.52444E-80 -> 2.524E-80 Inexact Rounded Subnormal Underflow
fmax31026 fma  1         1.00001E-80  1.52445E-80 -> 2.524E-80 Inexact Rounded Subnormal Underflow

-- And for round down full and subnormal results
precision:    16
maxExponent: +384
minExponent: -383
rounding:     down

fmax31100 fma  1   1e+2 -1e-383    -> 99.99999999999999 Rounded Inexact
fmax31101 fma  1   1e+1 -1e-383    -> 9.999999999999999  Rounded Inexact
fmax31103 fma  1     +1 -1e-383    -> 0.9999999999999999  Rounded Inexact
fmax31104 fma  1   1e-1 -1e-383    -> 0.09999999999999999  Rounded Inexact
fmax31105 fma  1   1e-2 -1e-383    -> 0.009999999999999999  Rounded Inexact
fmax31106 fma  1   1e-3 -1e-383    -> 0.0009999999999999999  Rounded Inexact
fmax31107 fma  1   1e-4 -1e-383    -> 0.00009999999999999999  Rounded Inexact
fmax31108 fma  1   1e-5 -1e-383    -> 0.000009999999999999999  Rounded Inexact
fmax31109 fma  1   1e-6 -1e-383    -> 9.999999999999999E-7  Rounded Inexact

rounding:     ceiling
fmax31110 fma  1   -1e+2 +1e-383   -> -99.99999999999999 Rounded Inexact
fmax31111 fma  1   -1e+1 +1e-383   -> -9.999999999999999  Rounded Inexact
fmax31113 fma  1      -1 +1e-383   -> -0.9999999999999999  Rounded Inexact
fmax31114 fma  1   -1e-1 +1e-383   -> -0.09999999999999999  Rounded Inexact
fmax31115 fma  1   -1e-2 +1e-383   -> -0.009999999999999999  Rounded Inexact
fmax31116 fma  1   -1e-3 +1e-383   -> -0.0009999999999999999  Rounded Inexact
fmax31117 fma  1   -1e-4 +1e-383   -> -0.00009999999999999999  Rounded Inexact
fmax31118 fma  1   -1e-5 +1e-383   -> -0.000009999999999999999  Rounded Inexact
fmax31119 fma  1   -1e-6 +1e-383   -> -9.999999999999999E-7  Rounded Inexact

rounding:     down
precision:    7
maxExponent: +96
minExponent: -95
fmax31130 fma  1     1            -1e-200  -> 0.9999999  Rounded Inexact
-- subnormal boundary
fmax31131 fma  1     1.000000E-94  -1e-200  ->  9.999999E-95  Rounded Inexact
fmax31132 fma  1     1.000001E-95  -1e-200  ->  1.000000E-95  Rounded Inexact
fmax31133 fma  1     1.000000E-95  -1e-200  ->  9.99999E-96  Rounded Inexact Subnormal Underflow
fmax31134 fma  1     0.999999E-95  -1e-200  ->  9.99998E-96  Rounded Inexact Subnormal Underflow
fmax31135 fma  1     0.001000E-95  -1e-200  ->  9.99E-99  Rounded Inexact Subnormal Underflow
fmax31136 fma  1     0.000999E-95  -1e-200  ->  9.98E-99  Rounded Inexact Subnormal Underflow
fmax31137 fma  1     1.000000E-95  -1e-101  ->  9.99999E-96  Subnormal
fmax31138 fma  1        10000E-101 -1e-200  ->  9.999E-98  Subnormal Inexact Rounded Underflow
fmax31139 fma  1         1000E-101 -1e-200  ->  9.99E-99   Subnormal Inexact Rounded Underflow
fmax31140 fma  1          100E-101 -1e-200  ->  9.9E-100   Subnormal Inexact Rounded Underflow
fmax31141 fma  1           10E-101 -1e-200  ->  9E-101     Subnormal Inexact Rounded Underflow
fmax31142 fma  1            1E-101 -1e-200  ->  0E-101     Subnormal Inexact Rounded Underflow Clamped
fmax31143 fma  1            0E-101 -1e-200  -> -0E-101     Subnormal Inexact Rounded Underflow Clamped
fmax31144 fma  1            1E-102 -1e-200  ->  0E-101     Subnormal Inexact Rounded Underflow Clamped

fmax31151 fma  1        10000E-102 -1e-200  ->  9.99E-99  Subnormal Inexact Rounded Underflow
fmax31152 fma  1         1000E-102 -1e-200  ->  9.9E-100  Subnormal Inexact Rounded Underflow
fmax31153 fma  1          100E-102 -1e-200  ->  9E-101   Subnormal Inexact Rounded Underflow
fmax31154 fma  1           10E-102 -1e-200  ->  0E-101     Subnormal Inexact Rounded Underflow Clamped
fmax31155 fma  1            1E-102 -1e-200  ->  0E-101     Subnormal Inexact Rounded Underflow Clamped
fmax31156 fma  1            0E-102 -1e-200  -> -0E-101     Subnormal Inexact Rounded Underflow Clamped
fmax31157 fma  1            1E-103 -1e-200  ->  0E-101     Subnormal Inexact Rounded Underflow Clamped

fmax31160 fma  1          100E-105 -1e-101  -> -0E-101 Subnormal Inexact Rounded Underflow Clamped
fmax31161 fma  1          100E-105 -1e-201  ->  0E-101 Subnormal Inexact Rounded Underflow Clamped

-- tests based on Gunnar Degnbol's edge case
precision:   15
rounding:    half_up
maxExponent: 384
minexponent: -383

fmax31200 fma  1   1E15  -0.5                 ->  1.00000000000000E+15 Inexact Rounded
fmax31201 fma  1   1E15  -0.50                ->  1.00000000000000E+15 Inexact Rounded
fmax31210 fma  1   1E15  -0.51                ->  999999999999999      Inexact Rounded
fmax31211 fma  1   1E15  -0.501               ->  999999999999999      Inexact Rounded
fmax31212 fma  1   1E15  -0.5001              ->  999999999999999      Inexact Rounded
fmax31213 fma  1   1E15  -0.50001             ->  999999999999999      Inexact Rounded
fmax31214 fma  1   1E15  -0.500001            ->  999999999999999      Inexact Rounded
fmax31215 fma  1   1E15  -0.5000001           ->  999999999999999      Inexact Rounded
fmax31216 fma  1   1E15  -0.50000001          ->  999999999999999      Inexact Rounded
fmax31217 fma  1   1E15  -0.500000001         ->  999999999999999      Inexact Rounded
fmax31218 fma  1   1E15  -0.5000000001        ->  999999999999999      Inexact Rounded
fmax31219 fma  1   1E15  -0.50000000001       ->  999999999999999      Inexact Rounded
fmax31220 fma  1   1E15  -0.500000000001      ->  999999999999999      Inexact Rounded
fmax31221 fma  1   1E15  -0.5000000000001     ->  999999999999999      Inexact Rounded
fmax31222 fma  1   1E15  -0.50000000000001    ->  999999999999999      Inexact Rounded
fmax31223 fma  1   1E15  -0.500000000000001   ->  999999999999999      Inexact Rounded
fmax31224 fma  1   1E15  -0.5000000000000001  ->  999999999999999      Inexact Rounded
fmax31225 fma  1   1E15  -0.5000000000000000  ->  1.00000000000000E+15 Inexact Rounded
fmax31230 fma  1   1E15  -5000000.000000001   ->  999999995000000      Inexact Rounded

precision:   16

fmax31300 fma  1   1E16  -0.5                 ->  1.000000000000000E+16 Inexact Rounded
fmax31310 fma  1   1E16  -0.51                ->  9999999999999999      Inexact Rounded
fmax31311 fma  1   1E16  -0.501               ->  9999999999999999      Inexact Rounded
fmax31312 fma  1   1E16  -0.5001              ->  9999999999999999      Inexact Rounded
fmax31313 fma  1   1E16  -0.50001             ->  9999999999999999      Inexact Rounded
fmax31314 fma  1   1E16  -0.500001            ->  9999999999999999      Inexact Rounded
fmax31315 fma  1   1E16  -0.5000001           ->  9999999999999999      Inexact Rounded
fmax31316 fma  1   1E16  -0.50000001          ->  9999999999999999      Inexact Rounded
fmax31317 fma  1   1E16  -0.500000001         ->  9999999999999999      Inexact Rounded
fmax31318 fma  1   1E16  -0.5000000001        ->  9999999999999999      Inexact Rounded
fmax31319 fma  1   1E16  -0.50000000001       ->  9999999999999999      Inexact Rounded
fmax31320 fma  1   1E16  -0.500000000001      ->  9999999999999999      Inexact Rounded
fmax31321 fma  1   1E16  -0.5000000000001     ->  9999999999999999      Inexact Rounded
fmax31322 fma  1   1E16  -0.50000000000001    ->  9999999999999999      Inexact Rounded
fmax31323 fma  1   1E16  -0.500000000000001   ->  9999999999999999      Inexact Rounded
fmax31324 fma  1   1E16  -0.5000000000000001  ->  9999999999999999      Inexact Rounded
fmax31325 fma  1   1E16  -0.5000000000000000  ->  1.000000000000000E+16 Inexact Rounded
fmax31326 fma  1   1E16  -0.500000000000000   ->  1.000000000000000E+16 Inexact Rounded
fmax31327 fma  1   1E16  -0.50000000000000    ->  1.000000000000000E+16 Inexact Rounded
fmax31328 fma  1   1E16  -0.5000000000000     ->  1.000000000000000E+16 Inexact Rounded
fmax31329 fma  1   1E16  -0.500000000000      ->  1.000000000000000E+16 Inexact Rounded
fmax31330 fma  1   1E16  -0.50000000000       ->  1.000000000000000E+16 Inexact Rounded
fmax31331 fma  1   1E16  -0.5000000000        ->  1.000000000000000E+16 Inexact Rounded
fmax31332 fma  1   1E16  -0.500000000         ->  1.000000000000000E+16 Inexact Rounded
fmax31333 fma  1   1E16  -0.50000000          ->  1.000000000000000E+16 Inexact Rounded
fmax31334 fma  1   1E16  -0.5000000           ->  1.000000000000000E+16 Inexact Rounded
fmax31335 fma  1   1E16  -0.500000            ->  1.000000000000000E+16 Inexact Rounded
fmax31336 fma  1   1E16  -0.50000             ->  1.000000000000000E+16 Inexact Rounded
fmax31337 fma  1   1E16  -0.5000              ->  1.000000000000000E+16 Inexact Rounded
fmax31338 fma  1   1E16  -0.500               ->  1.000000000000000E+16 Inexact Rounded
fmax31339 fma  1   1E16  -0.50                ->  1.000000000000000E+16 Inexact Rounded

fmax31340 fma  1   1E16  -5000000.000010001   ->  9999999995000000      Inexact Rounded
fmax31341 fma  1   1E16  -5000000.000000001   ->  9999999995000000      Inexact Rounded

fmax31349 fma  1   9999999999999999 0.4                 ->  9999999999999999      Inexact Rounded
fmax31350 fma  1   9999999999999999 0.49                ->  9999999999999999      Inexact Rounded
fmax31351 fma  1   9999999999999999 0.499               ->  9999999999999999      Inexact Rounded
fmax31352 fma  1   9999999999999999 0.4999              ->  9999999999999999      Inexact Rounded
fmax31353 fma  1   9999999999999999 0.49999             ->  9999999999999999      Inexact Rounded
fmax31354 fma  1   9999999999999999 0.499999            ->  9999999999999999      Inexact Rounded
fmax31355 fma  1   9999999999999999 0.4999999           ->  9999999999999999      Inexact Rounded
fmax31356 fma  1   9999999999999999 0.49999999          ->  9999999999999999      Inexact Rounded
fmax31357 fma  1   9999999999999999 0.499999999         ->  9999999999999999      Inexact Rounded
fmax31358 fma  1   9999999999999999 0.4999999999        ->  9999999999999999      Inexact Rounded
fmax31359 fma  1   9999999999999999 0.49999999999       ->  9999999999999999      Inexact Rounded
fmax31360 fma  1   9999999999999999 0.499999999999      ->  9999999999999999      Inexact Rounded
fmax31361 fma  1   9999999999999999 0.4999999999999     ->  9999999999999999      Inexact Rounded
fmax31362 fma  1   9999999999999999 0.49999999999999    ->  9999999999999999      Inexact Rounded
fmax31363 fma  1   9999999999999999 0.499999999999999   ->  9999999999999999      Inexact Rounded
fmax31364 fma  1   9999999999999999 0.4999999999999999  ->  9999999999999999      Inexact Rounded
fmax31365 fma  1   9999999999999999 0.5000000000000000  ->  1.000000000000000E+16 Inexact Rounded
fmax31367 fma  1   9999999999999999 0.500000000000000   ->  1.000000000000000E+16 Inexact Rounded
fmax31368 fma  1   9999999999999999 0.50000000000000    ->  1.000000000000000E+16 Inexact Rounded
fmax31369 fma  1   9999999999999999 0.5000000000000     ->  1.000000000000000E+16 Inexact Rounded
fmax31370 fma  1   9999999999999999 0.500000000000      ->  1.000000000000000E+16 Inexact Rounded
fmax31371 fma  1   9999999999999999 0.50000000000       ->  1.000000000000000E+16 Inexact Rounded
fmax31372 fma  1   9999999999999999 0.5000000000        ->  1.000000000000000E+16 Inexact Rounded
fmax31373 fma  1   9999999999999999 0.500000000         ->  1.000000000000000E+16 Inexact Rounded
fmax31374 fma  1   9999999999999999 0.50000000          ->  1.000000000000000E+16 Inexact Rounded
fmax31375 fma  1   9999999999999999 0.5000000           ->  1.000000000000000E+16 Inexact Rounded
fmax31376 fma  1   9999999999999999 0.500000            ->  1.000000000000000E+16 Inexact Rounded
fmax31377 fma  1   9999999999999999 0.50000             ->  1.000000000000000E+16 Inexact Rounded
fmax31378 fma  1   9999999999999999 0.5000              ->  1.000000000000000E+16 Inexact Rounded
fmax31379 fma  1   9999999999999999 0.500               ->  1.000000000000000E+16 Inexact Rounded
fmax31380 fma  1   9999999999999999 0.50                ->  1.000000000000000E+16 Inexact Rounded
fmax31381 fma  1   9999999999999999 0.5                 ->  1.000000000000000E+16 Inexact Rounded
fmax31382 fma  1   9999999999999999 0.5000000000000001  ->  1.000000000000000E+16 Inexact Rounded
fmax31383 fma  1   9999999999999999 0.500000000000001   ->  1.000000000000000E+16 Inexact Rounded
fmax31384 fma  1   9999999999999999 0.50000000000001    ->  1.000000000000000E+16 Inexact Rounded
fmax31385 fma  1   9999999999999999 0.5000000000001     ->  1.000000000000000E+16 Inexact Rounded
fmax31386 fma  1   9999999999999999 0.500000000001      ->  1.000000000000000E+16 Inexact Rounded
fmax31387 fma  1   9999999999999999 0.50000000001       ->  1.000000000000000E+16 Inexact Rounded
fmax31388 fma  1   9999999999999999 0.5000000001        ->  1.000000000000000E+16 Inexact Rounded
fmax31389 fma  1   9999999999999999 0.500000001         ->  1.000000000000000E+16 Inexact Rounded
fmax31390 fma  1   9999999999999999 0.50000001          ->  1.000000000000000E+16 Inexact Rounded
fmax31391 fma  1   9999999999999999 0.5000001           ->  1.000000000000000E+16 Inexact Rounded
fmax31392 fma  1   9999999999999999 0.500001            ->  1.000000000000000E+16 Inexact Rounded
fmax31393 fma  1   9999999999999999 0.50001             ->  1.000000000000000E+16 Inexact Rounded
fmax31394 fma  1   9999999999999999 0.5001              ->  1.000000000000000E+16 Inexact Rounded
fmax31395 fma  1   9999999999999999 0.501               ->  1.000000000000000E+16 Inexact Rounded
fmax31396 fma  1   9999999999999999 0.51                ->  1.000000000000000E+16 Inexact Rounded

-- More GD edge cases, where difference between the unadjusted
-- exponents is larger than the maximum precision and one side is 0
precision:   15
rounding:    half_up
maxExponent: 384
minexponent: -383

fmax31400 fma  1    0 1.23456789012345     -> 1.23456789012345
fmax31401 fma  1    0 1.23456789012345E-1  -> 0.123456789012345
fmax31402 fma  1    0 1.23456789012345E-2  -> 0.0123456789012345
fmax31403 fma  1    0 1.23456789012345E-3  -> 0.00123456789012345
fmax31404 fma  1    0 1.23456789012345E-4  -> 0.000123456789012345
fmax31405 fma  1    0 1.23456789012345E-5  -> 0.0000123456789012345
fmax31406 fma  1    0 1.23456789012345E-6  -> 0.00000123456789012345
fmax31407 fma  1    0 1.23456789012345E-7  -> 1.23456789012345E-7
fmax31408 fma  1    0 1.23456789012345E-8  -> 1.23456789012345E-8
fmax31409 fma  1    0 1.23456789012345E-9  -> 1.23456789012345E-9
fmax31410 fma  1    0 1.23456789012345E-10 -> 1.23456789012345E-10
fmax31411 fma  1    0 1.23456789012345E-11 -> 1.23456789012345E-11
fmax31412 fma  1    0 1.23456789012345E-12 -> 1.23456789012345E-12
fmax31413 fma  1    0 1.23456789012345E-13 -> 1.23456789012345E-13
fmax31414 fma  1    0 1.23456789012345E-14 -> 1.23456789012345E-14
fmax31415 fma  1    0 1.23456789012345E-15 -> 1.23456789012345E-15
fmax31416 fma  1    0 1.23456789012345E-16 -> 1.23456789012345E-16
fmax31417 fma  1    0 1.23456789012345E-17 -> 1.23456789012345E-17
fmax31418 fma  1    0 1.23456789012345E-18 -> 1.23456789012345E-18
fmax31419 fma  1    0 1.23456789012345E-19 -> 1.23456789012345E-19

-- same, precision 16..
precision:   16
fmax31420 fma  1    0 1.123456789012345     -> 1.123456789012345
fmax31421 fma  1    0 1.123456789012345E-1  -> 0.1123456789012345
fmax31422 fma  1    0 1.123456789012345E-2  -> 0.01123456789012345
fmax31423 fma  1    0 1.123456789012345E-3  -> 0.001123456789012345
fmax31424 fma  1    0 1.123456789012345E-4  -> 0.0001123456789012345
fmax31425 fma  1    0 1.123456789012345E-5  -> 0.00001123456789012345
fmax31426 fma  1    0 1.123456789012345E-6  -> 0.000001123456789012345
fmax31427 fma  1    0 1.123456789012345E-7  -> 1.123456789012345E-7
fmax31428 fma  1    0 1.123456789012345E-8  -> 1.123456789012345E-8
fmax31429 fma  1    0 1.123456789012345E-9  -> 1.123456789012345E-9
fmax31430 fma  1    0 1.123456789012345E-10 -> 1.123456789012345E-10
fmax31431 fma  1    0 1.123456789012345E-11 -> 1.123456789012345E-11
fmax31432 fma  1    0 1.123456789012345E-12 -> 1.123456789012345E-12
fmax31433 fma  1    0 1.123456789012345E-13 -> 1.123456789012345E-13
fmax31434 fma  1    0 1.123456789012345E-14 -> 1.123456789012345E-14
fmax31435 fma  1    0 1.123456789012345E-15 -> 1.123456789012345E-15
fmax31436 fma  1    0 1.123456789012345E-16 -> 1.123456789012345E-16
fmax31437 fma  1    0 1.123456789012345E-17 -> 1.123456789012345E-17
fmax31438 fma  1    0 1.123456789012345E-18 -> 1.123456789012345E-18
fmax31439 fma  1    0 1.123456789012345E-19 -> 1.123456789012345E-19

-- same, reversed 0
fmax31440 fma  1   1.123456789012345     0 -> 1.123456789012345
fmax31441 fma  1   1.123456789012345E-1  0 -> 0.1123456789012345
fmax31442 fma  1   1.123456789012345E-2  0 -> 0.01123456789012345
fmax31443 fma  1   1.123456789012345E-3  0 -> 0.001123456789012345
fmax31444 fma  1   1.123456789012345E-4  0 -> 0.0001123456789012345
fmax31445 fma  1   1.123456789012345E-5  0 -> 0.00001123456789012345
fmax31446 fma  1   1.123456789012345E-6  0 -> 0.000001123456789012345
fmax31447 fma  1   1.123456789012345E-7  0 -> 1.123456789012345E-7
fmax31448 fma  1   1.123456789012345E-8  0 -> 1.123456789012345E-8
fmax31449 fma  1   1.123456789012345E-9  0 -> 1.123456789012345E-9
fmax31450 fma  1   1.123456789012345E-10 0 -> 1.123456789012345E-10
fmax31451 fma  1   1.123456789012345E-11 0 -> 1.123456789012345E-11
fmax31452 fma  1   1.123456789012345E-12 0 -> 1.123456789012345E-12
fmax31453 fma  1   1.123456789012345E-13 0 -> 1.123456789012345E-13
fmax31454 fma  1   1.123456789012345E-14 0 -> 1.123456789012345E-14
fmax31455 fma  1   1.123456789012345E-15 0 -> 1.123456789012345E-15
fmax31456 fma  1   1.123456789012345E-16 0 -> 1.123456789012345E-16
fmax31457 fma  1   1.123456789012345E-17 0 -> 1.123456789012345E-17
fmax31458 fma  1   1.123456789012345E-18 0 -> 1.123456789012345E-18
fmax31459 fma  1   1.123456789012345E-19 0 -> 1.123456789012345E-19

-- same, Es on the 0
fmax31460 fma  1   1.123456789012345  0E-0   -> 1.123456789012345
fmax31461 fma  1   1.123456789012345  0E-1   -> 1.123456789012345
fmax31462 fma  1   1.123456789012345  0E-2   -> 1.123456789012345
fmax31463 fma  1   1.123456789012345  0E-3   -> 1.123456789012345
fmax31464 fma  1   1.123456789012345  0E-4   -> 1.123456789012345
fmax31465 fma  1   1.123456789012345  0E-5   -> 1.123456789012345
fmax31466 fma  1   1.123456789012345  0E-6   -> 1.123456789012345
fmax31467 fma  1   1.123456789012345  0E-7   -> 1.123456789012345
fmax31468 fma  1   1.123456789012345  0E-8   -> 1.123456789012345
fmax31469 fma  1   1.123456789012345  0E-9   -> 1.123456789012345
fmax31470 fma  1   1.123456789012345  0E-10  -> 1.123456789012345
fmax31471 fma  1   1.123456789012345  0E-11  -> 1.123456789012345
fmax31472 fma  1   1.123456789012345  0E-12  -> 1.123456789012345
fmax31473 fma  1   1.123456789012345  0E-13  -> 1.123456789012345
fmax31474 fma  1   1.123456789012345  0E-14  -> 1.123456789012345
fmax31475 fma  1   1.123456789012345  0E-15  -> 1.123456789012345
-- next four flag Rounded because the 0 extends the result
fmax31476 fma  1   1.123456789012345  0E-16  -> 1.123456789012345 Rounded
fmax31477 fma  1   1.123456789012345  0E-17  -> 1.123456789012345 Rounded
fmax31478 fma  1   1.123456789012345  0E-18  -> 1.123456789012345 Rounded
fmax31479 fma  1   1.123456789012345  0E-19  -> 1.123456789012345 Rounded

-- sum of two opposite-sign operands is exactly 0 and floor => -0
precision:   16
maxExponent: 384
minexponent: -383

rounding:    half_up
-- exact zeros from zeros
fmax31500 fma  1    0        0E-19  ->  0E-19
fmax31501 fma  1   -0        0E-19  ->  0E-19
fmax31502 fma  1    0       -0E-19  ->  0E-19
fmax31503 fma  1   -0       -0E-19  -> -0E-19
fmax31504 fma  1    0E-400   0E-19  ->  0E-398 Clamped
fmax31505 fma  1   -0E-400   0E-19  ->  0E-398 Clamped
fmax31506 fma  1    0E-400  -0E-19  ->  0E-398 Clamped
fmax31507 fma  1   -0E-400  -0E-19  -> -0E-398 Clamped
-- inexact zeros
fmax31511 fma  1    1E-401   1E-400 ->  0E-398 Subnormal Inexact Rounded Underflow Clamped
fmax31512 fma  1   -1E-401   1E-400 ->  0E-398 Subnormal Inexact Rounded Underflow Clamped
fmax31513 fma  1    1E-401  -1E-400 -> -0E-398 Subnormal Inexact Rounded Underflow Clamped
fmax31514 fma  1   -1E-401  -1E-400 -> -0E-398 Subnormal Inexact Rounded Underflow Clamped
-- some exact zeros from non-zeros
fmax31515 fma  1    1E-401   1E-401 ->  0E-398 Subnormal Inexact Rounded Underflow Clamped
fmax31516 fma  1   -1E-401   1E-401 ->  0E-398 Clamped
fmax31517 fma  1    1E-401  -1E-401 ->  0E-398 Clamped
fmax31518 fma  1   -1E-401  -1E-401 -> -0E-398 Subnormal Inexact Rounded Underflow Clamped

rounding:    half_down
-- exact zeros from zeros
fmax31520 fma  1    0        0E-19  ->  0E-19
fmax31521 fma  1   -0        0E-19  ->  0E-19
fmax31522 fma  1    0       -0E-19  ->  0E-19
fmax31523 fma  1   -0       -0E-19  -> -0E-19
fmax31524 fma  1    0E-400   0E-19  ->  0E-398 Clamped
fmax31525 fma  1   -0E-400   0E-19  ->  0E-398 Clamped
fmax31526 fma  1    0E-400  -0E-19  ->  0E-398 Clamped
fmax31527 fma  1   -0E-400  -0E-19  -> -0E-398 Clamped
-- inexact zeros
fmax31531 fma  1    1E-401   1E-400 ->  0E-398 Subnormal Inexact Rounded Underflow Clamped
fmax31532 fma  1   -1E-401   1E-400 ->  0E-398 Subnormal Inexact Rounded Underflow Clamped
fmax31533 fma  1    1E-401  -1E-400 -> -0E-398 Subnormal Inexact Rounded Underflow Clamped
fmax31534 fma  1   -1E-401  -1E-400 -> -0E-398 Subnormal Inexact Rounded Underflow Clamped
-- some exact zeros from non-zeros
fmax31535 fma  1    1E-401   1E-401 ->  0E-398 Subnormal Inexact Rounded Underflow Clamped
fmax31536 fma  1   -1E-401   1E-401 ->  0E-398 Clamped
fmax31537 fma  1    1E-401  -1E-401 ->  0E-398 Clamped
fmax31538 fma  1   -1E-401  -1E-401 -> -0E-398 Subnormal Inexact Rounded Underflow Clamped

rounding:    half_even
-- exact zeros from zeros
fmax31540 fma  1    0        0E-19  ->  0E-19
fmax31541 fma  1   -0        0E-19  ->  0E-19
fmax31542 fma  1    0       -0E-19  ->  0E-19
fmax31543 fma  1   -0       -0E-19  -> -0E-19
fmax31544 fma  1    0E-400   0E-19  ->  0E-398 Clamped
fmax31545 fma  1   -0E-400   0E-19  ->  0E-398 Clamped
fmax31546 fma  1    0E-400  -0E-19  ->  0E-398 Clamped
fmax31547 fma  1   -0E-400  -0E-19  -> -0E-398 Clamped
-- inexact zeros
fmax31551 fma  1    1E-401   1E-400 ->  0E-398 Subnormal Inexact Rounded Underflow Clamped
fmax31552 fma  1   -1E-401   1E-400 ->  0E-398 Subnormal Inexact Rounded Underflow Clamped
fmax31553 fma  1    1E-401  -1E-400 -> -0E-398 Subnormal Inexact Rounded Underflow Clamped
fmax31554 fma  1   -1E-401  -1E-400 -> -0E-398 Subnormal Inexact Rounded Underflow Clamped
-- some exact zeros from non-zeros
fmax31555 fma  1    1E-401   1E-401 ->  0E-398 Subnormal Inexact Rounded Underflow Clamped
fmax31556 fma  1   -1E-401   1E-401 ->  0E-398 Clamped
fmax31557 fma  1    1E-401  -1E-401 ->  0E-398 Clamped
fmax31558 fma  1   -1E-401  -1E-401 -> -0E-398 Subnormal Inexact Rounded Underflow Clamped

rounding:    up
-- exact zeros from zeros
fmax31560 fma  1    0        0E-19  ->  0E-19
fmax31561 fma  1   -0        0E-19  ->  0E-19
fmax31562 fma  1    0       -0E-19  ->  0E-19
fmax31563 fma  1   -0       -0E-19  -> -0E-19
fmax31564 fma  1    0E-400   0E-19  ->  0E-398 Clamped
fmax31565 fma  1   -0E-400   0E-19  ->  0E-398 Clamped
fmax31566 fma  1    0E-400  -0E-19  ->  0E-398 Clamped
fmax31567 fma  1   -0E-400  -0E-19  -> -0E-398 Clamped
-- inexact zeros
fmax31571 fma  1    1E-401   1E-400 ->  1E-398 Subnormal Inexact Rounded Underflow
fmax31572 fma  1   -1E-401   1E-400 ->  1E-398 Subnormal Inexact Rounded Underflow
fmax31573 fma  1    1E-401  -1E-400 -> -1E-398 Subnormal Inexact Rounded Underflow
fmax31574 fma  1   -1E-401  -1E-400 -> -1E-398 Subnormal Inexact Rounded Underflow
-- some exact zeros from non-zeros
fmax31575 fma  1    1E-401   1E-401 ->  1E-398 Subnormal Inexact Rounded Underflow
fmax31576 fma  1   -1E-401   1E-401 ->  0E-398 Clamped
fmax31577 fma  1    1E-401  -1E-401 ->  0E-398 Clamped
fmax31578 fma  1   -1E-401  -1E-401 -> -1E-398 Subnormal Inexact Rounded Underflow

rounding:    down
-- exact zeros from zeros
fmax31580 fma  1    0        0E-19  ->  0E-19
fmax31581 fma  1   -0        0E-19  ->  0E-19
fmax31582 fma  1    0       -0E-19  ->  0E-19
fmax31583 fma  1   -0       -0E-19  -> -0E-19
fmax31584 fma  1    0E-400   0E-19  ->  0E-398 Clamped
fmax31585 fma  1   -0E-400   0E-19  ->  0E-398 Clamped
fmax31586 fma  1    0E-400  -0E-19  ->  0E-398 Clamped
fmax31587 fma  1   -0E-400  -0E-19  -> -0E-398 Clamped
-- inexact zeros
fmax31591 fma  1    1E-401   1E-400 ->  0E-398 Subnormal Inexact Rounded Underflow Clamped
fmax31592 fma  1   -1E-401   1E-400 ->  0E-398 Subnormal Inexact Rounded Underflow Clamped
fmax31593 fma  1    1E-401  -1E-400 -> -0E-398 Subnormal Inexact Rounded Underflow Clamped
fmax31594 fma  1   -1E-401  -1E-400 -> -0E-398 Subnormal Inexact Rounded Underflow Clamped
-- some exact zeros from non-zeros
fmax31595 fma  1    1E-401   1E-401 ->  0E-398 Subnormal Inexact Rounded Underflow Clamped
fmax31596 fma  1   -1E-401   1E-401 ->  0E-398 Clamped
fmax31597 fma  1    1E-401  -1E-401 ->  0E-398 Clamped
fmax31598 fma  1   -1E-401  -1E-401 -> -0E-398 Subnormal Inexact Rounded Underflow Clamped

rounding:    ceiling
-- exact zeros from zeros
fmax31600 fma  1    0        0E-19  ->  0E-19
fmax31601 fma  1   -0        0E-19  ->  0E-19
fmax31602 fma  1    0       -0E-19  ->  0E-19
fmax31603 fma  1   -0       -0E-19  -> -0E-19
fmax31604 fma  1    0E-400   0E-19  ->  0E-398 Clamped
fmax31605 fma  1   -0E-400   0E-19  ->  0E-398 Clamped
fmax31606 fma  1    0E-400  -0E-19  ->  0E-398 Clamped
fmax31607 fma  1   -0E-400  -0E-19  -> -0E-398 Clamped
-- inexact zeros
fmax31611 fma  1    1E-401   1E-400 ->  1E-398 Subnormal Inexact Rounded Underflow
fmax31612 fma  1   -1E-401   1E-400 ->  1E-398 Subnormal Inexact Rounded Underflow
fmax31613 fma  1    1E-401  -1E-400 -> -0E-398 Subnormal Inexact Rounded Underflow Clamped
fmax31614 fma  1   -1E-401  -1E-400 -> -0E-398 Subnormal Inexact Rounded Underflow Clamped
-- some exact zeros from non-zeros
fmax31615 fma  1    1E-401   1E-401 ->  1E-398 Subnormal Inexact Rounded Underflow
fmax31616 fma  1   -1E-401   1E-401 ->  0E-398 Clamped
fmax31617 fma  1    1E-401  -1E-401 ->  0E-398 Clamped
fmax31618 fma  1   -1E-401  -1E-401 -> -0E-398 Subnormal Inexact Rounded Underflow Clamped

-- and the extra-special ugly case; unusual minuses marked by -- *
rounding:    floor
-- exact zeros from zeros
fmax31620 fma  1    0        0E-19  ->  0E-19
fmax31621 fma  1   -0        0E-19  -> -0E-19           -- *
fmax31622 fma  1    0       -0E-19  -> -0E-19           -- *
fmax31623 fma  1   -0       -0E-19  -> -0E-19
fmax31624 fma  1    0E-400   0E-19  ->  0E-398 Clamped
fmax31625 fma  1   -0E-400   0E-19  -> -0E-398 Clamped  -- *
fmax31626 fma  1    0E-400  -0E-19  -> -0E-398 Clamped  -- *
fmax31627 fma  1   -0E-400  -0E-19  -> -0E-398 Clamped
-- inexact zeros
fmax31631 fma  1    1E-401   1E-400 ->  0E-398 Subnormal Inexact Rounded Underflow Clamped
fmax31632 fma  1   -1E-401   1E-400 ->  0E-398 Subnormal Inexact Rounded Underflow Clamped
fmax31633 fma  1    1E-401  -1E-400 -> -1E-398 Subnormal Inexact Rounded Underflow
fmax31634 fma  1   -1E-401  -1E-400 -> -1E-398 Subnormal Inexact Rounded Underflow
-- some exact zeros from non-zeros
fmax31635 fma  1    1E-401   1E-401 ->  0E-398 Subnormal Inexact Rounded Underflow Clamped
fmax31636 fma  1   -1E-401   1E-401 -> -0E-398 Clamped  -- *
fmax31637 fma  1    1E-401  -1E-401 -> -0E-398 Clamped  -- *
fmax31638 fma  1   -1E-401  -1E-401 -> -1E-398 Subnormal Inexact Rounded Underflow

-- BigDecimal problem testcases 2006.01.23
precision:   16
maxExponent: 384
minexponent: -383

rounding:  down
precision: 7
fmax31651 fma  1    10001E+2  -2E+1 -> 1.00008E+6
precision: 6
fmax31652 fma  1    10001E+2  -2E+1 -> 1.00008E+6
precision: 5
fmax31653 fma  1    10001E+2  -2E+1 -> 1.0000E+6   Inexact Rounded
precision: 4
fmax31654 fma  1    10001E+2  -2E+1 -> 1.000E+6    Inexact Rounded
precision: 3
fmax31655 fma  1    10001E+2  -2E+1 -> 1.00E+6     Inexact Rounded
precision: 2
fmax31656 fma  1    10001E+2  -2E+1 -> 1.0E+6      Inexact Rounded
precision: 1
fmax31657 fma  1    10001E+2  -2E+1 -> 1E+6        Inexact Rounded

rounding:  half_even
precision: 7
fmax31661 fma  1    10001E+2  -2E+1 -> 1.00008E+6
precision: 6
fmax31662 fma  1    10001E+2  -2E+1 -> 1.00008E+6
precision: 5
fmax31663 fma  1    10001E+2  -2E+1 -> 1.0001E+6   Inexact Rounded
precision: 4
fmax31664 fma  1    10001E+2  -2E+1 -> 1.000E+6    Inexact Rounded
precision: 3
fmax31665 fma  1    10001E+2  -2E+1 -> 1.00E+6     Inexact Rounded
precision: 2
fmax31666 fma  1    10001E+2  -2E+1 -> 1.0E+6      Inexact Rounded
precision: 1
fmax31667 fma  1    10001E+2  -2E+1 -> 1E+6        Inexact Rounded

rounding:  up
precision: 7
fmax31671 fma  1    10001E+2  -2E+1 -> 1.00008E+6
precision: 6
fmax31672 fma  1    10001E+2  -2E+1 -> 1.00008E+6
precision: 5
fmax31673 fma  1    10001E+2  -2E+1 -> 1.0001E+6   Inexact Rounded
precision: 4
fmax31674 fma  1    10001E+2  -2E+1 -> 1.001E+6    Inexact Rounded
precision: 3
fmax31675 fma  1    10001E+2  -2E+1 -> 1.01E+6     Inexact Rounded
precision: 2
fmax31676 fma  1    10001E+2  -2E+1 -> 1.1E+6      Inexact Rounded
precision: 1
fmax31677 fma  1    10001E+2  -2E+1 -> 2E+6        Inexact Rounded

precision:   34
rounding:    half_up
maxExponent: 6144
minExponent: -6143
-- Examples from SQL proposal (Krishna Kulkarni)
fmax31701  fma  1   130E-2    120E-2    -> 2.50
fmax31702  fma  1   130E-2    12E-1     -> 2.50
fmax31703  fma  1   130E-2    1E0       -> 2.30
fmax31704  fma  1   1E2       1E4       -> 1.01E+4
fmax31705  subtract 130E-2  120E-2 -> 0.10
fmax31706  subtract 130E-2  12E-1  -> 0.10
fmax31707  subtract 130E-2  1E0    -> 0.30
fmax31708  subtract 1E2     1E4    -> -9.9E+3

------------------------------------------------------------------------
-- Same as above, using decimal64 default parameters                  --
------------------------------------------------------------------------
precision:   16
rounding:    half_even
maxExponent: 384
minexponent: -383

-- [first group are 'quick confidence check']
fmax36001 fma  1   1       1       ->  2
fmax36002 fma  1   2       3       ->  5
fmax36003 fma  1   '5.75'  '3.3'   ->  9.05
fmax36004 fma  1   '5'     '-3'    ->  2
fmax36005 fma  1   '-5'    '-3'    ->  -8
fmax36006 fma  1   '-7'    '2.5'   ->  -4.5
fmax36007 fma  1   '0.7'   '0.3'   ->  1.0
fmax36008 fma  1   '1.25'  '1.25'  ->  2.50
fmax36009 fma  1   '1.23456789'  '1.00000000' -> '2.23456789'
fmax36010 fma  1   '1.23456789'  '1.00000011' -> '2.23456800'

fmax36011 fma  1   '0.44444444444444444'  '0.55555555555555555' -> '1.000000000000000' Inexact Rounded
fmax36012 fma  1   '0.44444444444444440'  '0.55555555555555555' -> '1.000000000000000' Inexact Rounded
fmax36013 fma  1   '0.44444444444444444'  '0.55555555555555550' -> '0.9999999999999999' Inexact Rounded
fmax36014 fma  1   '0.444444444444444449'    '0' -> '0.4444444444444444' Inexact Rounded
fmax36015 fma  1   '0.4444444444444444499'   '0' -> '0.4444444444444444' Inexact Rounded
fmax36016 fma  1   '0.44444444444444444999'  '0' -> '0.4444444444444444' Inexact Rounded
fmax36017 fma  1   '0.44444444444444445000'  '0' -> '0.4444444444444444' Inexact Rounded
fmax36018 fma  1   '0.44444444444444445001'  '0' -> '0.4444444444444445' Inexact Rounded
fmax36019 fma  1   '0.4444444444444444501'   '0' -> '0.4444444444444445' Inexact Rounded
fmax36020 fma  1   '0.444444444444444451'    '0' -> '0.4444444444444445' Inexact Rounded

fmax36021 fma  1   0 1 -> 1
fmax36022 fma  1   1 1 -> 2
fmax36023 fma  1   2 1 -> 3
fmax36024 fma  1   3 1 -> 4
fmax36025 fma  1   4 1 -> 5
fmax36026 fma  1   5 1 -> 6
fmax36027 fma  1   6 1 -> 7
fmax36028 fma  1   7 1 -> 8
fmax36029 fma  1   8 1 -> 9
fmax36030 fma  1   9 1 -> 10

-- some carrying effects
fmax36031 fma  1   '0.9998'  '0.0000' -> '0.9998'
fmax36032 fma  1   '0.9998'  '0.0001' -> '0.9999'
fmax36033 fma  1   '0.9998'  '0.0002' -> '1.0000'
fmax36034 fma  1   '0.9998'  '0.0003' -> '1.0001'

fmax36035 fma  1   '70'      '10000e+16' -> '1.000000000000000E+20' Inexact Rounded
fmax36036 fma  1   '700'     '10000e+16' -> '1.000000000000000E+20' Inexact Rounded
fmax36037 fma  1   '7000'    '10000e+16' -> '1.000000000000000E+20' Inexact Rounded
fmax36038 fma  1   '70000'   '10000e+16' -> '1.000000000000001E+20' Inexact Rounded
fmax36039 fma  1   '700000'  '10000e+16' -> '1.000000000000007E+20' Rounded

-- symmetry:
fmax36040 fma  1   '10000e+16'  '70' -> '1.000000000000000E+20' Inexact Rounded
fmax36041 fma  1   '10000e+16'  '700' -> '1.000000000000000E+20' Inexact Rounded
fmax36042 fma  1   '10000e+16'  '7000' -> '1.000000000000000E+20' Inexact Rounded
fmax36044 fma  1   '10000e+16'  '70000' -> '1.000000000000001E+20' Inexact Rounded
fmax36045 fma  1   '10000e+16'  '700000' -> '1.000000000000007E+20' Rounded

fmax36046 fma  1   '10000e+9'  '7' -> '10000000000007'
fmax36047 fma  1   '10000e+9'  '70' -> '10000000000070'
fmax36048 fma  1   '10000e+9'  '700' -> '10000000000700'
fmax36049 fma  1   '10000e+9'  '7000' -> '10000000007000'
fmax36050 fma  1   '10000e+9'  '70000' -> '10000000070000'
fmax36051 fma  1   '10000e+9'  '700000' -> '10000000700000'

-- examples from decarith
fmax36053 fma  1   '12' '7.00' -> '19.00'
fmax36054 fma  1   '1.3' '-1.07' -> '0.23'
fmax36055 fma  1   '1.3' '-1.30' -> '0.00'
fmax36056 fma  1   '1.3' '-2.07' -> '-0.77'
fmax36057 fma  1   '1E+2' '1E+4' -> '1.01E+4'

-- from above
fmax36061 fma  1   1 '0.1' -> '1.1'
fmax36062 fma  1   1 '0.01' -> '1.01'
fmax36063 fma  1   1 '0.001' -> '1.001'
fmax36064 fma  1   1 '0.0001' -> '1.0001'
fmax36065 fma  1   1 '0.00001' -> '1.00001'
fmax36066 fma  1   1 '0.000001' -> '1.000001'
fmax36067 fma  1   1 '0.0000001' -> '1.0000001'
fmax36068 fma  1   1 '0.00000001' -> '1.00000001'

-- some funny zeros [in case of bad signum]
fmax36070 fma  1   1  0    -> 1
fmax36071 fma  1   1 0.    -> 1
fmax36072 fma  1   1  .0   -> 1.0
fmax36073 fma  1   1 0.0   -> 1.0
fmax36074 fma  1   1 0.00  -> 1.00
fmax36075 fma  1    0  1   -> 1
fmax36076 fma  1   0.  1   -> 1
fmax36077 fma  1    .0 1   -> 1.0
fmax36078 fma  1   0.0 1   -> 1.0
fmax36079 fma  1   0.00 1  -> 1.00

-- some carries
fmax36080 fma  1   9999999999999998 1  -> 9999999999999999
fmax36081 fma  1   9999999999999999 1  -> 1.000000000000000E+16 Rounded
fmax36082 fma  1    999999999999999 1  -> 1000000000000000
fmax36083 fma  1      9999999999999 1  -> 10000000000000
fmax36084 fma  1        99999999999 1  -> 100000000000
fmax36085 fma  1          999999999 1  -> 1000000000
fmax36086 fma  1            9999999 1  -> 10000000
fmax36087 fma  1              99999 1  -> 100000
fmax36088 fma  1                999 1  -> 1000
fmax36089 fma  1                  9 1  -> 10


-- more LHS swaps
fmax36090 fma  1   '-56267E-10'   0 ->  '-0.0000056267'
fmax36091 fma  1   '-56267E-6'    0 ->  '-0.056267'
fmax36092 fma  1   '-56267E-5'    0 ->  '-0.56267'
fmax36093 fma  1   '-56267E-4'    0 ->  '-5.6267'
fmax36094 fma  1   '-56267E-3'    0 ->  '-56.267'
fmax36095 fma  1   '-56267E-2'    0 ->  '-562.67'
fmax36096 fma  1   '-56267E-1'    0 ->  '-5626.7'
fmax36097 fma  1   '-56267E-0'    0 ->  '-56267'
fmax36098 fma  1   '-5E-10'       0 ->  '-5E-10'
fmax36099 fma  1   '-5E-7'        0 ->  '-5E-7'
fmax36100 fma  1   '-5E-6'        0 ->  '-0.000005'
fmax36101 fma  1   '-5E-5'        0 ->  '-0.00005'
fmax36102 fma  1   '-5E-4'        0 ->  '-0.0005'
fmax36103 fma  1   '-5E-1'        0 ->  '-0.5'
fmax36104 fma  1   '-5E0'         0 ->  '-5'
fmax36105 fma  1   '-5E1'         0 ->  '-50'
fmax36106 fma  1   '-5E5'         0 ->  '-500000'
fmax36107 fma  1   '-5E15'        0 ->  '-5000000000000000'
fmax36108 fma  1   '-5E16'        0 ->  '-5.000000000000000E+16'   Rounded
fmax36109 fma  1   '-5E17'        0 ->  '-5.000000000000000E+17'  Rounded
fmax36110 fma  1   '-5E18'        0 ->  '-5.000000000000000E+18'  Rounded
fmax36111 fma  1   '-5E100'       0 ->  '-5.000000000000000E+100' Rounded

-- more RHS swaps
fmax36113 fma  1   0  '-56267E-10' ->  '-0.0000056267'
fmax36114 fma  1   0  '-56267E-6'  ->  '-0.056267'
fmax36116 fma  1   0  '-56267E-5'  ->  '-0.56267'
fmax36117 fma  1   0  '-56267E-4'  ->  '-5.6267'
fmax36119 fma  1   0  '-56267E-3'  ->  '-56.267'
fmax36120 fma  1   0  '-56267E-2'  ->  '-562.67'
fmax36121 fma  1   0  '-56267E-1'  ->  '-5626.7'
fmax36122 fma  1   0  '-56267E-0'  ->  '-56267'
fmax36123 fma  1   0  '-5E-10'     ->  '-5E-10'
fmax36124 fma  1   0  '-5E-7'      ->  '-5E-7'
fmax36125 fma  1   0  '-5E-6'      ->  '-0.000005'
fmax36126 fma  1   0  '-5E-5'      ->  '-0.00005'
fmax36127 fma  1   0  '-5E-4'      ->  '-0.0005'
fmax36128 fma  1   0  '-5E-1'      ->  '-0.5'
fmax36129 fma  1   0  '-5E0'       ->  '-5'
fmax36130 fma  1   0  '-5E1'       ->  '-50'
fmax36131 fma  1   0  '-5E5'       ->  '-500000'
fmax36132 fma  1   0  '-5E15'      ->  '-5000000000000000'
fmax36133 fma  1   0  '-5E16'      ->  '-5.000000000000000E+16'   Rounded
fmax36134 fma  1   0  '-5E17'      ->  '-5.000000000000000E+17'   Rounded
fmax36135 fma  1   0  '-5E18'      ->  '-5.000000000000000E+18'   Rounded
fmax36136 fma  1   0  '-5E100'     ->  '-5.000000000000000E+100'  Rounded

-- related
fmax36137 fma  1    1  '0E-19'      ->  '1.000000000000000'  Rounded
fmax36138 fma  1   -1  '0E-19'      ->  '-1.000000000000000' Rounded
fmax36139 fma  1   '0E-19' 1        ->  '1.000000000000000'  Rounded
fmax36140 fma  1   '0E-19' -1       ->  '-1.000000000000000' Rounded
fmax36141 fma  1   1E+11   0.0000   ->  '100000000000.0000'
fmax36142 fma  1   1E+11   0.00000  ->  '100000000000.0000'  Rounded
fmax36143 fma  1   0.000   1E+12    ->  '1000000000000.000'
fmax36144 fma  1   0.0000  1E+12    ->  '1000000000000.000'  Rounded

-- [some of the next group are really constructor tests]
fmax36146 fma  1   '00.0'  0       ->  '0.0'
fmax36147 fma  1   '0.00'  0       ->  '0.00'
fmax36148 fma  1    0      '0.00'  ->  '0.00'
fmax36149 fma  1    0      '00.0'  ->  '0.0'
fmax36150 fma  1   '00.0'  '0.00'  ->  '0.00'
fmax36151 fma  1   '0.00'  '00.0'  ->  '0.00'
fmax36152 fma  1   '3'     '.3'    ->  '3.3'
fmax36153 fma  1   '3.'    '.3'    ->  '3.3'
fmax36154 fma  1   '3.0'   '.3'    ->  '3.3'
fmax36155 fma  1   '3.00'  '.3'    ->  '3.30'
fmax36156 fma  1   '3'     '3'     ->  '6'
fmax36157 fma  1   '3'     '+3'    ->  '6'
fmax36158 fma  1   '3'     '-3'    ->  '0'
fmax36159 fma  1   '0.3'   '-0.3'  ->  '0.0'
fmax36160 fma  1   '0.03'  '-0.03' ->  '0.00'

-- try borderline precision, with carries, etc.
fmax36161 fma  1   '1E+13' '-1'    -> '9999999999999'
fmax36162 fma  1   '1E+13'  '1.11' -> '10000000000001.11'
fmax36163 fma  1   '1.11'  '1E+13' -> '10000000000001.11'
fmax36164 fma  1   '-1'    '1E+13' -> '9999999999999'
fmax36165 fma  1   '7E+13' '-1'    -> '69999999999999'
fmax36166 fma  1   '7E+13'  '1.11' -> '70000000000001.11'
fmax36167 fma  1   '1.11'  '7E+13' -> '70000000000001.11'
fmax36168 fma  1   '-1'    '7E+13' -> '69999999999999'

--                    1234567890123456      1234567890123456      1 234567890123456
fmax36170 fma  1   '0.4444444444444444'  '0.5555555555555563' -> '1.000000000000001' Inexact Rounded
fmax36171 fma  1   '0.4444444444444444'  '0.5555555555555562' -> '1.000000000000001' Inexact Rounded
fmax36172 fma  1   '0.4444444444444444'  '0.5555555555555561' -> '1.000000000000000' Inexact Rounded
fmax36173 fma  1   '0.4444444444444444'  '0.5555555555555560' -> '1.000000000000000' Inexact Rounded
fmax36174 fma  1   '0.4444444444444444'  '0.5555555555555559' -> '1.000000000000000' Inexact Rounded
fmax36175 fma  1   '0.4444444444444444'  '0.5555555555555558' -> '1.000000000000000' Inexact Rounded
fmax36176 fma  1   '0.4444444444444444'  '0.5555555555555557' -> '1.000000000000000' Inexact Rounded
fmax36177 fma  1   '0.4444444444444444'  '0.5555555555555556' -> '1.000000000000000' Rounded
fmax36178 fma  1   '0.4444444444444444'  '0.5555555555555555' -> '0.9999999999999999'
fmax36179 fma  1   '0.4444444444444444'  '0.5555555555555554' -> '0.9999999999999998'
fmax36180 fma  1   '0.4444444444444444'  '0.5555555555555553' -> '0.9999999999999997'
fmax36181 fma  1   '0.4444444444444444'  '0.5555555555555552' -> '0.9999999999999996'
fmax36182 fma  1   '0.4444444444444444'  '0.5555555555555551' -> '0.9999999999999995'
fmax36183 fma  1   '0.4444444444444444'  '0.5555555555555550' -> '0.9999999999999994'

-- and some more, including residue effects and different roundings
rounding: half_up
fmax36200 fma  1   '6543210123456789' 0             -> '6543210123456789'
fmax36201 fma  1   '6543210123456789' 0.000000001   -> '6543210123456789' Inexact Rounded
fmax36202 fma  1   '6543210123456789' 0.000001      -> '6543210123456789' Inexact Rounded
fmax36203 fma  1   '6543210123456789' 0.1           -> '6543210123456789' Inexact Rounded
fmax36204 fma  1   '6543210123456789' 0.4           -> '6543210123456789' Inexact Rounded
fmax36205 fma  1   '6543210123456789' 0.49          -> '6543210123456789' Inexact Rounded
fmax36206 fma  1   '6543210123456789' 0.499999      -> '6543210123456789' Inexact Rounded
fmax36207 fma  1   '6543210123456789' 0.499999   -> '6543210123456789' Inexact Rounded
fmax36208 fma  1   '6543210123456789' 0.5           -> '6543210123456790' Inexact Rounded
fmax36209 fma  1   '6543210123456789' 0.500000001   -> '6543210123456790' Inexact Rounded
fmax36210 fma  1   '6543210123456789' 0.500001      -> '6543210123456790' Inexact Rounded
fmax36211 fma  1   '6543210123456789' 0.51          -> '6543210123456790' Inexact Rounded
fmax36212 fma  1   '6543210123456789' 0.6           -> '6543210123456790' Inexact Rounded
fmax36213 fma  1   '6543210123456789' 0.9           -> '6543210123456790' Inexact Rounded
fmax36214 fma  1   '6543210123456789' 0.99999       -> '6543210123456790' Inexact Rounded
fmax36215 fma  1   '6543210123456789' 0.999999   -> '6543210123456790' Inexact Rounded
fmax36216 fma  1   '6543210123456789' 1             -> '6543210123456790'
fmax36217 fma  1   '6543210123456789' 1.000000001   -> '6543210123456790' Inexact Rounded
fmax36218 fma  1   '6543210123456789' 1.00001       -> '6543210123456790' Inexact Rounded
fmax36219 fma  1   '6543210123456789' 1.1           -> '6543210123456790' Inexact Rounded

rounding: half_even
fmax36220 fma  1   '6543210123456789' 0             -> '6543210123456789'
fmax36221 fma  1   '6543210123456789' 0.000000001   -> '6543210123456789' Inexact Rounded
fmax36222 fma  1   '6543210123456789' 0.000001      -> '6543210123456789' Inexact Rounded
fmax36223 fma  1   '6543210123456789' 0.1           -> '6543210123456789' Inexact Rounded
fmax36224 fma  1   '6543210123456789' 0.4           -> '6543210123456789' Inexact Rounded
fmax36225 fma  1   '6543210123456789' 0.49          -> '6543210123456789' Inexact Rounded
fmax36226 fma  1   '6543210123456789' 0.499999      -> '6543210123456789' Inexact Rounded
fmax36227 fma  1   '6543210123456789' 0.499999   -> '6543210123456789' Inexact Rounded
fmax36228 fma  1   '6543210123456789' 0.5           -> '6543210123456790' Inexact Rounded
fmax36229 fma  1   '6543210123456789' 0.500000001   -> '6543210123456790' Inexact Rounded
fmax36230 fma  1   '6543210123456789' 0.500001      -> '6543210123456790' Inexact Rounded
fmax36231 fma  1   '6543210123456789' 0.51          -> '6543210123456790' Inexact Rounded
fmax36232 fma  1   '6543210123456789' 0.6           -> '6543210123456790' Inexact Rounded
fmax36233 fma  1   '6543210123456789' 0.9           -> '6543210123456790' Inexact Rounded
fmax36234 fma  1   '6543210123456789' 0.99999       -> '6543210123456790' Inexact Rounded
fmax36235 fma  1   '6543210123456789' 0.999999   -> '6543210123456790' Inexact Rounded
fmax36236 fma  1   '6543210123456789' 1             -> '6543210123456790'
fmax36237 fma  1   '6543210123456789' 1.00000001    -> '6543210123456790' Inexact Rounded
fmax36238 fma  1   '6543210123456789' 1.00001       -> '6543210123456790' Inexact Rounded
fmax36239 fma  1   '6543210123456789' 1.1           -> '6543210123456790' Inexact Rounded
-- critical few with even bottom digit...
fmax36240 fma  1   '6543210123456788' 0.499999   -> '6543210123456788' Inexact Rounded
fmax36241 fma  1   '6543210123456788' 0.5           -> '6543210123456788' Inexact Rounded
fmax36242 fma  1   '6543210123456788' 0.500000001   -> '6543210123456789' Inexact Rounded

rounding: down
fmax36250 fma  1   '6543210123456789' 0             -> '6543210123456789'
fmax36251 fma  1   '6543210123456789' 0.000000001   -> '6543210123456789' Inexact Rounded
fmax36252 fma  1   '6543210123456789' 0.000001      -> '6543210123456789' Inexact Rounded
fmax36253 fma  1   '6543210123456789' 0.1           -> '6543210123456789' Inexact Rounded
fmax36254 fma  1   '6543210123456789' 0.4           -> '6543210123456789' Inexact Rounded
fmax36255 fma  1   '6543210123456789' 0.49          -> '6543210123456789' Inexact Rounded
fmax36256 fma  1   '6543210123456789' 0.499999      -> '6543210123456789' Inexact Rounded
fmax36257 fma  1   '6543210123456789' 0.499999   -> '6543210123456789' Inexact Rounded
fmax36258 fma  1   '6543210123456789' 0.5           -> '6543210123456789' Inexact Rounded
fmax36259 fma  1   '6543210123456789' 0.500000001   -> '6543210123456789' Inexact Rounded
fmax36260 fma  1   '6543210123456789' 0.500001      -> '6543210123456789' Inexact Rounded
fmax36261 fma  1   '6543210123456789' 0.51          -> '6543210123456789' Inexact Rounded
fmax36262 fma  1   '6543210123456789' 0.6           -> '6543210123456789' Inexact Rounded
fmax36263 fma  1   '6543210123456789' 0.9           -> '6543210123456789' Inexact Rounded
fmax36264 fma  1   '6543210123456789' 0.99999       -> '6543210123456789' Inexact Rounded
fmax36265 fma  1   '6543210123456789' 0.999999   -> '6543210123456789' Inexact Rounded
fmax36266 fma  1   '6543210123456789' 1             -> '6543210123456790'
fmax36267 fma  1   '6543210123456789' 1.00000001    -> '6543210123456790' Inexact Rounded
fmax36268 fma  1   '6543210123456789' 1.00001       -> '6543210123456790' Inexact Rounded
fmax36269 fma  1   '6543210123456789' 1.1           -> '6543210123456790' Inexact Rounded

-- 1 in last place tests
rounding: half_even
fmax36301 fma  1    -1   1      ->   0
fmax36302 fma  1     0   1      ->   1
fmax36303 fma  1     1   1      ->   2
fmax36304 fma  1    12   1      ->  13
fmax36305 fma  1    98   1      ->  99
fmax36306 fma  1    99   1      -> 100
fmax36307 fma  1   100   1      -> 101
fmax36308 fma  1   101   1      -> 102
fmax36309 fma  1    -1  -1      ->  -2
fmax36310 fma  1     0  -1      ->  -1
fmax36311 fma  1     1  -1      ->   0
fmax36312 fma  1    12  -1      ->  11
fmax36313 fma  1    98  -1      ->  97
fmax36314 fma  1    99  -1      ->  98
fmax36315 fma  1   100  -1      ->  99
fmax36316 fma  1   101  -1      -> 100

fmax36321 fma  1   -0.01  0.01    ->  0.00
fmax36322 fma  1    0.00  0.01    ->  0.01
fmax36323 fma  1    0.01  0.01    ->  0.02
fmax36324 fma  1    0.12  0.01    ->  0.13
fmax36325 fma  1    0.98  0.01    ->  0.99
fmax36326 fma  1    0.99  0.01    ->  1.00
fmax36327 fma  1    1.00  0.01    ->  1.01
fmax36328 fma  1    1.01  0.01    ->  1.02
fmax36329 fma  1   -0.01 -0.01    -> -0.02
fmax36330 fma  1    0.00 -0.01    -> -0.01
fmax36331 fma  1    0.01 -0.01    ->  0.00
fmax36332 fma  1    0.12 -0.01    ->  0.11
fmax36333 fma  1    0.98 -0.01    ->  0.97
fmax36334 fma  1    0.99 -0.01    ->  0.98
fmax36335 fma  1    1.00 -0.01    ->  0.99
fmax36336 fma  1    1.01 -0.01    ->  1.00

-- some more cases where fma  1  ing 0 affects the coefficient
fmax36340 fma  1   1E+3    0    ->         1000
fmax36341 fma  1   1E+15   0    ->    1000000000000000
fmax36342 fma  1   1E+16   0    ->   1.000000000000000E+16  Rounded
fmax36343 fma  1   1E+17   0    ->   1.000000000000000E+17  Rounded
-- which simply follow from these cases ...
fmax36344 fma  1   1E+3    1    ->         1001
fmax36345 fma  1   1E+15   1    ->    1000000000000001
fmax36346 fma  1   1E+16   1    ->   1.000000000000000E+16  Inexact Rounded
fmax36347 fma  1   1E+17   1    ->   1.000000000000000E+17  Inexact Rounded
fmax36348 fma  1   1E+3    7    ->         1007
fmax36349 fma  1   1E+15   7    ->    1000000000000007
fmax36350 fma  1   1E+16   7    ->   1.000000000000001E+16  Inexact Rounded
fmax36351 fma  1   1E+17   7    ->   1.000000000000000E+17  Inexact Rounded

-- tryzeros cases
fmax36361  fma  1   0E+50 10000E+1  -> 1.0000E+5
fmax36362  fma  1   10000E+1 0E-50  -> 100000.0000000000  Rounded
fmax36363  fma  1   10000E+1 10000E-50  -> 100000.0000000000  Rounded Inexact
fmax36364  fma  1   12.34    0e-398  -> 12.34000000000000  Rounded

-- ulp replacement tests
fmax36400 fma  1     1   77e-14      ->  1.00000000000077
fmax36401 fma  1     1   77e-15      ->  1.000000000000077
fmax36402 fma  1     1   77e-16      ->  1.000000000000008 Inexact Rounded
fmax36403 fma  1     1   77e-17      ->  1.000000000000001 Inexact Rounded
fmax36404 fma  1     1   77e-18      ->  1.000000000000000 Inexact Rounded
fmax36405 fma  1     1   77e-19      ->  1.000000000000000 Inexact Rounded
fmax36406 fma  1     1   77e-99      ->  1.000000000000000 Inexact Rounded

fmax36410 fma  1    10   77e-14      ->  10.00000000000077
fmax36411 fma  1    10   77e-15      ->  10.00000000000008 Inexact Rounded
fmax36412 fma  1    10   77e-16      ->  10.00000000000001 Inexact Rounded
fmax36413 fma  1    10   77e-17      ->  10.00000000000000 Inexact Rounded
fmax36414 fma  1    10   77e-18      ->  10.00000000000000 Inexact Rounded
fmax36415 fma  1    10   77e-19      ->  10.00000000000000 Inexact Rounded
fmax36416 fma  1    10   77e-99      ->  10.00000000000000 Inexact Rounded

fmax36420 fma  1    77e-14       1   ->  1.00000000000077
fmax36421 fma  1    77e-15       1   ->  1.000000000000077
fmax36422 fma  1    77e-16       1   ->  1.000000000000008 Inexact Rounded
fmax36423 fma  1    77e-17       1   ->  1.000000000000001 Inexact Rounded
fmax36424 fma  1    77e-18       1   ->  1.000000000000000 Inexact Rounded
fmax36425 fma  1    77e-19       1   ->  1.000000000000000 Inexact Rounded
fmax36426 fma  1    77e-99       1   ->  1.000000000000000 Inexact Rounded

fmax36430 fma  1    77e-14      10   ->  10.00000000000077
fmax36431 fma  1    77e-15      10   ->  10.00000000000008 Inexact Rounded
fmax36432 fma  1    77e-16      10   ->  10.00000000000001 Inexact Rounded
fmax36433 fma  1    77e-17      10   ->  10.00000000000000 Inexact Rounded
fmax36434 fma  1    77e-18      10   ->  10.00000000000000 Inexact Rounded
fmax36435 fma  1    77e-19      10   ->  10.00000000000000 Inexact Rounded
fmax36436 fma  1    77e-99      10   ->  10.00000000000000 Inexact Rounded

-- negative ulps
fmax36440 fma  1     1   -77e-14      ->  0.99999999999923
fmax36441 fma  1     1   -77e-15      ->  0.999999999999923
fmax36442 fma  1     1   -77e-16      ->  0.9999999999999923
fmax36443 fma  1     1   -77e-17      ->  0.9999999999999992 Inexact Rounded
fmax36444 fma  1     1   -77e-18      ->  0.9999999999999999 Inexact Rounded
fmax36445 fma  1     1   -77e-19      ->  1.000000000000000 Inexact Rounded
fmax36446 fma  1     1   -77e-99      ->  1.000000000000000 Inexact Rounded

fmax36450 fma  1    10   -77e-14      ->   9.99999999999923
fmax36451 fma  1    10   -77e-15      ->   9.999999999999923
fmax36452 fma  1    10   -77e-16      ->   9.999999999999992 Inexact Rounded
fmax36453 fma  1    10   -77e-17      ->   9.999999999999999 Inexact Rounded
fmax36454 fma  1    10   -77e-18      ->  10.00000000000000 Inexact Rounded
fmax36455 fma  1    10   -77e-19      ->  10.00000000000000 Inexact Rounded
fmax36456 fma  1    10   -77e-99      ->  10.00000000000000 Inexact Rounded

fmax36460 fma  1    -77e-14       1   ->  0.99999999999923
fmax36461 fma  1    -77e-15       1   ->  0.999999999999923
fmax36462 fma  1    -77e-16       1   ->  0.9999999999999923
fmax36463 fma  1    -77e-17       1   ->  0.9999999999999992 Inexact Rounded
fmax36464 fma  1    -77e-18       1   ->  0.9999999999999999 Inexact Rounded
fmax36465 fma  1    -77e-19       1   ->  1.000000000000000 Inexact Rounded
fmax36466 fma  1    -77e-99       1   ->  1.000000000000000 Inexact Rounded

fmax36470 fma  1    -77e-14      10   ->   9.99999999999923
fmax36471 fma  1    -77e-15      10   ->   9.999999999999923
fmax36472 fma  1    -77e-16      10   ->   9.999999999999992 Inexact Rounded
fmax36473 fma  1    -77e-17      10   ->   9.999999999999999 Inexact Rounded
fmax36474 fma  1    -77e-18      10   ->  10.00000000000000 Inexact Rounded
fmax36475 fma  1    -77e-19      10   ->  10.00000000000000 Inexact Rounded
fmax36476 fma  1    -77e-99      10   ->  10.00000000000000 Inexact Rounded

-- negative ulps
fmax36480 fma  1    -1    77e-14      ->  -0.99999999999923
fmax36481 fma  1    -1    77e-15      ->  -0.999999999999923
fmax36482 fma  1    -1    77e-16      ->  -0.9999999999999923
fmax36483 fma  1    -1    77e-17      ->  -0.9999999999999992 Inexact Rounded
fmax36484 fma  1    -1    77e-18      ->  -0.9999999999999999 Inexact Rounded
fmax36485 fma  1    -1    77e-19      ->  -1.000000000000000 Inexact Rounded
fmax36486 fma  1    -1    77e-99      ->  -1.000000000000000 Inexact Rounded

fmax36490 fma  1   -10    77e-14      ->   -9.99999999999923
fmax36491 fma  1   -10    77e-15      ->   -9.999999999999923
fmax36492 fma  1   -10    77e-16      ->   -9.999999999999992 Inexact Rounded
fmax36493 fma  1   -10    77e-17      ->   -9.999999999999999 Inexact Rounded
fmax36494 fma  1   -10    77e-18      ->  -10.00000000000000 Inexact Rounded
fmax36495 fma  1   -10    77e-19      ->  -10.00000000000000 Inexact Rounded
fmax36496 fma  1   -10    77e-99      ->  -10.00000000000000 Inexact Rounded

fmax36500 fma  1     77e-14      -1   ->  -0.99999999999923
fmax36501 fma  1     77e-15      -1   ->  -0.999999999999923
fmax36502 fma  1     77e-16      -1   ->  -0.9999999999999923
fmax36503 fma  1     77e-17      -1   ->  -0.9999999999999992 Inexact Rounded
fmax36504 fma  1     77e-18      -1   ->  -0.9999999999999999 Inexact Rounded
fmax36505 fma  1     77e-19      -1   ->  -1.000000000000000 Inexact Rounded
fmax36506 fma  1     77e-99      -1   ->  -1.000000000000000 Inexact Rounded

fmax36510 fma  1     77e-14      -10  ->   -9.99999999999923
fmax36511 fma  1     77e-15      -10  ->   -9.999999999999923
fmax36512 fma  1     77e-16      -10  ->   -9.999999999999992 Inexact Rounded
fmax36513 fma  1     77e-17      -10  ->   -9.999999999999999 Inexact Rounded
fmax36514 fma  1     77e-18      -10  ->  -10.00000000000000 Inexact Rounded
fmax36515 fma  1     77e-19      -10  ->  -10.00000000000000 Inexact Rounded
fmax36516 fma  1     77e-99      -10  ->  -10.00000000000000 Inexact Rounded


-- long operands
fmax36521 fma  1   101234562345678000 0 -> 1.012345623456780E+17 Rounded
fmax36522 fma  1   0 101234562345678000 -> 1.012345623456780E+17 Rounded
fmax36523 fma  1   10123456234567800  0 -> 1.012345623456780E+16 Rounded
fmax36524 fma  1   0 10123456234567800  -> 1.012345623456780E+16 Rounded
fmax36525 fma  1   10123456234567890  0 -> 1.012345623456789E+16 Rounded
fmax36526 fma  1   0 10123456234567890  -> 1.012345623456789E+16 Rounded
fmax36527 fma  1   10123456234567891  0 -> 1.012345623456789E+16 Inexact Rounded
fmax36528 fma  1   0 10123456234567891  -> 1.012345623456789E+16 Inexact Rounded
fmax36529 fma  1   101234562345678901 0 -> 1.012345623456789E+17 Inexact Rounded
fmax36530 fma  1   0 101234562345678901 -> 1.012345623456789E+17 Inexact Rounded
fmax36531 fma  1   10123456234567896  0 -> 1.012345623456790E+16 Inexact Rounded
fmax36532 fma  1   0 10123456234567896  -> 1.012345623456790E+16 Inexact Rounded

-- verify a query
rounding:     down
fmax36561 fma  1   1e-398 9.000000000000000E+384 -> 9.000000000000000E+384 Inexact Rounded
fmax36562 fma  1        0 9.000000000000000E+384 -> 9.000000000000000E+384 Rounded
-- and using decimal64 bounds...
rounding:     down
fmax36563 fma  1   1e-388 9.000000000000000E+374 -> 9.000000000000000E+374 Inexact Rounded
fmax36564 fma  1        0 9.000000000000000E+374 -> 9.000000000000000E+374 Rounded

-- more zeros, etc.
rounding: half_even

fmax36701 fma  1   5.00 1.00E-3 -> 5.00100
fmax36702 fma  1   00.00 0.000  -> 0.000
fmax36703 fma  1   00.00 0E-3   -> 0.000
fmax36704 fma  1   0E-3  00.00  -> 0.000

fmax36710 fma  1   0E+3  00.00  -> 0.00
fmax36711 fma  1   0E+3  00.0   -> 0.0
fmax36712 fma  1   0E+3  00.    -> 0
fmax36713 fma  1   0E+3  00.E+1 -> 0E+1
fmax36714 fma  1   0E+3  00.E+2 -> 0E+2
fmax36715 fma  1   0E+3  00.E+3 -> 0E+3
fmax36716 fma  1   0E+3  00.E+4 -> 0E+3
fmax36717 fma  1   0E+3  00.E+5 -> 0E+3
fmax36718 fma  1   0E+3  -00.0   -> 0.0
fmax36719 fma  1   0E+3  -00.    -> 0
fmax36731 fma  1   0E+3  -00.E+1 -> 0E+1

fmax36720 fma  1   00.00  0E+3  -> 0.00
fmax36721 fma  1   00.0   0E+3  -> 0.0
fmax36722 fma  1   00.    0E+3  -> 0
fmax36723 fma  1   00.E+1 0E+3  -> 0E+1
fmax36724 fma  1   00.E+2 0E+3  -> 0E+2
fmax36725 fma  1   00.E+3 0E+3  -> 0E+3
fmax36726 fma  1   00.E+4 0E+3  -> 0E+3
fmax36727 fma  1   00.E+5 0E+3  -> 0E+3
fmax36728 fma  1   -00.00 0E+3  -> 0.00
fmax36729 fma  1   -00.0  0E+3  -> 0.0
fmax36730 fma  1   -00.   0E+3  -> 0

fmax36732 fma  1    0     0     ->  0
fmax36733 fma  1    0    -0     ->  0
fmax36734 fma  1   -0     0     ->  0
fmax36735 fma  1   -0    -0     -> -0     -- IEEE 854 special case

fmax36736 fma  1    1    -1     ->  0
fmax36737 fma  1   -1    -1     -> -2
fmax36738 fma  1    1     1     ->  2
fmax36739 fma  1   -1     1     ->  0

fmax36741 fma  1    0    -1     -> -1
fmax36742 fma  1   -0    -1     -> -1
fmax36743 fma  1    0     1     ->  1
fmax36744 fma  1   -0     1     ->  1
fmax36745 fma  1   -1     0     -> -1
fmax36746 fma  1   -1    -0     -> -1
fmax36747 fma  1    1     0     ->  1
fmax36748 fma  1    1    -0     ->  1

fmax36751 fma  1    0.0  -1     -> -1.0
fmax36752 fma  1   -0.0  -1     -> -1.0
fmax36753 fma  1    0.0   1     ->  1.0
fmax36754 fma  1   -0.0   1     ->  1.0
fmax36755 fma  1   -1.0   0     -> -1.0
fmax36756 fma  1   -1.0  -0     -> -1.0
fmax36757 fma  1    1.0   0     ->  1.0
fmax36758 fma  1    1.0  -0     ->  1.0

fmax36761 fma  1    0    -1.0   -> -1.0
fmax36762 fma  1   -0    -1.0   -> -1.0
fmax36763 fma  1    0     1.0   ->  1.0
fmax36764 fma  1   -0     1.0   ->  1.0
fmax36765 fma  1   -1     0.0   -> -1.0
fmax36766 fma  1   -1    -0.0   -> -1.0
fmax36767 fma  1    1     0.0   ->  1.0
fmax36768 fma  1    1    -0.0   ->  1.0

fmax36771 fma  1    0.0  -1.0   -> -1.0
fmax36772 fma  1   -0.0  -1.0   -> -1.0
fmax36773 fma  1    0.0   1.0   ->  1.0
fmax36774 fma  1   -0.0   1.0   ->  1.0
fmax36775 fma  1   -1.0   0.0   -> -1.0
fmax36776 fma  1   -1.0  -0.0   -> -1.0
fmax36777 fma  1    1.0   0.0   ->  1.0
fmax36778 fma  1    1.0  -0.0   ->  1.0

-- Specials
fmax36780 fma  1   -Inf  -Inf   -> -Infinity
fmax36781 fma  1   -Inf  -1000  -> -Infinity
fmax36782 fma  1   -Inf  -1     -> -Infinity
fmax36783 fma  1   -Inf  -0     -> -Infinity
fmax36784 fma  1   -Inf   0     -> -Infinity
fmax36785 fma  1   -Inf   1     -> -Infinity
fmax36786 fma  1   -Inf   1000  -> -Infinity
fmax36787 fma  1   -1000 -Inf   -> -Infinity
fmax36788 fma  1   -Inf  -Inf   -> -Infinity
fmax36789 fma  1   -1    -Inf   -> -Infinity
fmax36790 fma  1   -0    -Inf   -> -Infinity
fmax36791 fma  1    0    -Inf   -> -Infinity
fmax36792 fma  1    1    -Inf   -> -Infinity
fmax36793 fma  1    1000 -Inf   -> -Infinity
fmax36794 fma  1    Inf  -Inf   ->  NaN  Invalid_operation

fmax36800 fma  1    Inf  -Inf   ->  NaN  Invalid_operation
fmax36801 fma  1    Inf  -1000  ->  Infinity
fmax36802 fma  1    Inf  -1     ->  Infinity
fmax36803 fma  1    Inf  -0     ->  Infinity
fmax36804 fma  1    Inf   0     ->  Infinity
fmax36805 fma  1    Inf   1     ->  Infinity
fmax36806 fma  1    Inf   1000  ->  Infinity
fmax36807 fma  1    Inf   Inf   ->  Infinity
fmax36808 fma  1   -1000  Inf   ->  Infinity
fmax36809 fma  1   -Inf   Inf   ->  NaN  Invalid_operation
fmax36810 fma  1   -1     Inf   ->  Infinity
fmax36811 fma  1   -0     Inf   ->  Infinity
fmax36812 fma  1    0     Inf   ->  Infinity
fmax36813 fma  1    1     Inf   ->  Infinity
fmax36814 fma  1    1000  Inf   ->  Infinity
fmax36815 fma  1    Inf   Inf   ->  Infinity

fmax36821 fma  1    NaN -Inf    ->  NaN
fmax36822 fma  1    NaN -1000   ->  NaN
fmax36823 fma  1    NaN -1      ->  NaN
fmax36824 fma  1    NaN -0      ->  NaN
fmax36825 fma  1    NaN  0      ->  NaN
fmax36826 fma  1    NaN  1      ->  NaN
fmax36827 fma  1    NaN  1000   ->  NaN
fmax36828 fma  1    NaN  Inf    ->  NaN
fmax36829 fma  1    NaN  NaN    ->  NaN
fmax36830 fma  1   -Inf  NaN    ->  NaN
fmax36831 fma  1   -1000 NaN    ->  NaN
fmax36832 fma  1   -1    NaN    ->  NaN
fmax36833 fma  1   -0    NaN    ->  NaN
fmax36834 fma  1    0    NaN    ->  NaN
fmax36835 fma  1    1    NaN    ->  NaN
fmax36836 fma  1    1000 NaN    ->  NaN
fmax36837 fma  1    Inf  NaN    ->  NaN

fmax36841 fma  1    sNaN -Inf   ->  NaN  Invalid_operation
fmax36842 fma  1    sNaN -1000  ->  NaN  Invalid_operation
fmax36843 fma  1    sNaN -1     ->  NaN  Invalid_operation
fmax36844 fma  1    sNaN -0     ->  NaN  Invalid_operation
fmax36845 fma  1    sNaN  0     ->  NaN  Invalid_operation
fmax36846 fma  1    sNaN  1     ->  NaN  Invalid_operation
fmax36847 fma  1    sNaN  1000  ->  NaN  Invalid_operation
fmax36848 fma  1    sNaN  NaN   ->  NaN  Invalid_operation
fmax36849 fma  1    sNaN sNaN   ->  NaN  Invalid_operation
fmax36850 fma  1    NaN  sNaN   ->  NaN  Invalid_operation
fmax36851 fma  1   -Inf  sNaN   ->  NaN  Invalid_operation
fmax36852 fma  1   -1000 sNaN   ->  NaN  Invalid_operation
fmax36853 fma  1   -1    sNaN   ->  NaN  Invalid_operation
fmax36854 fma  1   -0    sNaN   ->  NaN  Invalid_operation
fmax36855 fma  1    0    sNaN   ->  NaN  Invalid_operation
fmax36856 fma  1    1    sNaN   ->  NaN  Invalid_operation
fmax36857 fma  1    1000 sNaN   ->  NaN  Invalid_operation
fmax36858 fma  1    Inf  sNaN   ->  NaN  Invalid_operation
fmax36859 fma  1    NaN  sNaN   ->  NaN  Invalid_operation

-- propagating NaNs
fmax36861 fma  1    NaN1   -Inf    ->  NaN1
fmax36862 fma  1   +NaN2   -1000   ->  NaN2
fmax36863 fma  1    NaN3    1000   ->  NaN3
fmax36864 fma  1    NaN4    Inf    ->  NaN4
fmax36865 fma  1    NaN5   +NaN6   ->  NaN5
fmax36866 fma  1   -Inf     NaN7   ->  NaN7
fmax36867 fma  1   -1000    NaN8   ->  NaN8
fmax36868 fma  1    1000    NaN9   ->  NaN9
fmax36869 fma  1    Inf    +NaN10  ->  NaN10
fmax36871 fma  1    sNaN11  -Inf   ->  NaN11  Invalid_operation
fmax36872 fma  1    sNaN12  -1000  ->  NaN12  Invalid_operation
fmax36873 fma  1    sNaN13   1000  ->  NaN13  Invalid_operation
fmax36874 fma  1    sNaN14   NaN17 ->  NaN14  Invalid_operation
fmax36875 fma  1    sNaN15  sNaN18 ->  NaN15  Invalid_operation
fmax36876 fma  1    NaN16   sNaN19 ->  NaN19  Invalid_operation
fmax36877 fma  1   -Inf    +sNaN20 ->  NaN20  Invalid_operation
fmax36878 fma  1   -1000    sNaN21 ->  NaN21  Invalid_operation
fmax36879 fma  1    1000    sNaN22 ->  NaN22  Invalid_operation
fmax36880 fma  1    Inf     sNaN23 ->  NaN23  Invalid_operation
fmax36881 fma  1   +NaN25  +sNaN24 ->  NaN24  Invalid_operation
fmax36882 fma  1   -NaN26    NaN28 -> -NaN26
fmax36883 fma  1   -sNaN27  sNaN29 -> -NaN27  Invalid_operation
fmax36884 fma  1    1000    -NaN30 -> -NaN30
fmax36885 fma  1    1000   -sNaN31 -> -NaN31  Invalid_operation

-- now the case where we can get underflow but the result is normal
-- [note this can't happen if the operands are also bounded, as we
-- cannot represent 1E-399, for example]

fmax36571 fma  1         1E-383       0  -> 1E-383
fmax36572 fma  1         1E-384       0  -> 1E-384   Subnormal
fmax36573 fma  1         1E-383  1E-384  -> 1.1E-383
fmax36574 subtract  1E-383  1E-384  ->   9E-384 Subnormal

-- Here we explore the boundary of rounding a subnormal to Nmin
fmax36575 subtract  1E-383  1E-398  ->   9.99999999999999E-384  Subnormal
fmax36576 subtract  1E-383  1E-398  ->   9.99999999999999E-384  Subnormal
fmax36577 subtract  1E-383  1E-399  ->   1.000000000000000E-383 Underflow Inexact Subnormal Rounded
fmax36578 subtract  1E-383  1E-400  ->   1.000000000000000E-383 Underflow Inexact Subnormal Rounded
fmax36579 subtract  1E-383  1E-401  ->   1.000000000000000E-383 Underflow Inexact Subnormal Rounded
fmax36580 subtract  1E-383  1E-402  ->   1.000000000000000E-383 Underflow Inexact Subnormal Rounded

-- check overflow edge case
--               1234567890123456
fmax36972 apply        9.999999999999999E+384         -> 9.999999999999999E+384
fmax36973 fma  1       9.999999999999999E+384  1      -> 9.999999999999999E+384 Inexact Rounded
fmax36974 fma  1        9999999999999999E+369  1      -> 9.999999999999999E+384 Inexact Rounded
fmax36975 fma  1        9999999999999999E+369  1E+369  -> Infinity Overflow Inexact Rounded
fmax36976 fma  1        9999999999999999E+369  9E+368  -> Infinity Overflow Inexact Rounded
fmax36977 fma  1        9999999999999999E+369  8E+368  -> Infinity Overflow Inexact Rounded
fmax36978 fma  1        9999999999999999E+369  7E+368  -> Infinity Overflow Inexact Rounded
fmax36979 fma  1        9999999999999999E+369  6E+368  -> Infinity Overflow Inexact Rounded
fmax36980 fma  1        9999999999999999E+369  5E+368  -> Infinity Overflow Inexact Rounded
fmax36981 fma  1        9999999999999999E+369  4E+368  -> 9.999999999999999E+384 Inexact Rounded
fmax36982 fma  1        9999999999999999E+369  3E+368  -> 9.999999999999999E+384 Inexact Rounded
fmax36983 fma  1        9999999999999999E+369  2E+368  -> 9.999999999999999E+384 Inexact Rounded
fmax36984 fma  1        9999999999999999E+369  1E+368  -> 9.999999999999999E+384 Inexact Rounded

fmax36985 apply       -9.999999999999999E+384         -> -9.999999999999999E+384
fmax36986 fma  1      -9.999999999999999E+384 -1      -> -9.999999999999999E+384 Inexact Rounded
fmax36987 fma  1       -9999999999999999E+369 -1      -> -9.999999999999999E+384 Inexact Rounded
fmax36988 fma  1       -9999999999999999E+369 -1E+369  -> -Infinity Overflow Inexact Rounded
fmax36989 fma  1       -9999999999999999E+369 -9E+368  -> -Infinity Overflow Inexact Rounded
fmax36990 fma  1       -9999999999999999E+369 -8E+368  -> -Infinity Overflow Inexact Rounded
fmax36991 fma  1       -9999999999999999E+369 -7E+368  -> -Infinity Overflow Inexact Rounded
fmax36992 fma  1       -9999999999999999E+369 -6E+368  -> -Infinity Overflow Inexact Rounded
fmax36993 fma  1       -9999999999999999E+369 -5E+368  -> -Infinity Overflow Inexact Rounded
fmax36994 fma  1       -9999999999999999E+369 -4E+368  -> -9.999999999999999E+384 Inexact Rounded
fmax36995 fma  1       -9999999999999999E+369 -3E+368  -> -9.999999999999999E+384 Inexact Rounded
fmax36996 fma  1       -9999999999999999E+369 -2E+368  -> -9.999999999999999E+384 Inexact Rounded
fmax36997 fma  1       -9999999999999999E+369 -1E+368  -> -9.999999999999999E+384 Inexact Rounded

-- And for round down full and subnormal results
rounding:     down
fmax361100 fma  1   1e+2 -1e-383    -> 99.99999999999999 Rounded Inexact
fmax361101 fma  1   1e+1 -1e-383    -> 9.999999999999999  Rounded Inexact
fmax361103 fma  1     +1 -1e-383    -> 0.9999999999999999  Rounded Inexact
fmax361104 fma  1   1e-1 -1e-383    -> 0.09999999999999999  Rounded Inexact
fmax361105 fma  1   1e-2 -1e-383    -> 0.009999999999999999  Rounded Inexact
fmax361106 fma  1   1e-3 -1e-383    -> 0.0009999999999999999  Rounded Inexact
fmax361107 fma  1   1e-4 -1e-383    -> 0.00009999999999999999  Rounded Inexact
fmax361108 fma  1   1e-5 -1e-383    -> 0.000009999999999999999  Rounded Inexact
fmax361109 fma  1   1e-6 -1e-383    -> 9.999999999999999E-7  Rounded Inexact

rounding:     ceiling
fmax361110 fma  1   -1e+2 +1e-383   -> -99.99999999999999 Rounded Inexact
fmax361111 fma  1   -1e+1 +1e-383   -> -9.999999999999999  Rounded Inexact
fmax361113 fma  1      -1 +1e-383   -> -0.9999999999999999  Rounded Inexact
fmax361114 fma  1   -1e-1 +1e-383   -> -0.09999999999999999  Rounded Inexact
fmax361115 fma  1   -1e-2 +1e-383   -> -0.009999999999999999  Rounded Inexact
fmax361116 fma  1   -1e-3 +1e-383   -> -0.0009999999999999999  Rounded Inexact
fmax361117 fma  1   -1e-4 +1e-383   -> -0.00009999999999999999  Rounded Inexact
fmax361118 fma  1   -1e-5 +1e-383   -> -0.000009999999999999999  Rounded Inexact
fmax361119 fma  1   -1e-6 +1e-383   -> -9.999999999999999E-7  Rounded Inexact

-- tests based on Gunnar Degnbol's edge case
rounding:     half_even

fmax361300 fma  1   1E16  -0.5                 ->  1.000000000000000E+16 Inexact Rounded
fmax361310 fma  1   1E16  -0.51                ->  9999999999999999      Inexact Rounded
fmax361311 fma  1   1E16  -0.501               ->  9999999999999999      Inexact Rounded
fmax361312 fma  1   1E16  -0.5001              ->  9999999999999999      Inexact Rounded
fmax361313 fma  1   1E16  -0.50001             ->  9999999999999999      Inexact Rounded
fmax361314 fma  1   1E16  -0.500001            ->  9999999999999999      Inexact Rounded
fmax361315 fma  1   1E16  -0.5000001           ->  9999999999999999      Inexact Rounded
fmax361316 fma  1   1E16  -0.50000001          ->  9999999999999999      Inexact Rounded
fmax361317 fma  1   1E16  -0.500000001         ->  9999999999999999      Inexact Rounded
fmax361318 fma  1   1E16  -0.5000000001        ->  9999999999999999      Inexact Rounded
fmax361319 fma  1   1E16  -0.50000000001       ->  9999999999999999      Inexact Rounded
fmax361320 fma  1   1E16  -0.500000000001      ->  9999999999999999      Inexact Rounded
fmax361321 fma  1   1E16  -0.5000000000001     ->  9999999999999999      Inexact Rounded
fmax361322 fma  1   1E16  -0.50000000000001    ->  9999999999999999      Inexact Rounded
fmax361323 fma  1   1E16  -0.500000000000001   ->  9999999999999999      Inexact Rounded
fmax361324 fma  1   1E16  -0.5000000000000001  ->  9999999999999999      Inexact Rounded
fmax361325 fma  1   1E16  -0.5000000000000000  ->  1.000000000000000E+16 Inexact Rounded
fmax361326 fma  1   1E16  -0.500000000000000   ->  1.000000000000000E+16 Inexact Rounded
fmax361327 fma  1   1E16  -0.50000000000000    ->  1.000000000000000E+16 Inexact Rounded
fmax361328 fma  1   1E16  -0.5000000000000     ->  1.000000000000000E+16 Inexact Rounded
fmax361329 fma  1   1E16  -0.500000000000      ->  1.000000000000000E+16 Inexact Rounded
fmax361330 fma  1   1E16  -0.50000000000       ->  1.000000000000000E+16 Inexact Rounded
fmax361331 fma  1   1E16  -0.5000000000        ->  1.000000000000000E+16 Inexact Rounded
fmax361332 fma  1   1E16  -0.500000000         ->  1.000000000000000E+16 Inexact Rounded
fmax361333 fma  1   1E16  -0.50000000          ->  1.000000000000000E+16 Inexact Rounded
fmax361334 fma  1   1E16  -0.5000000           ->  1.000000000000000E+16 Inexact Rounded
fmax361335 fma  1   1E16  -0.500000            ->  1.000000000000000E+16 Inexact Rounded
fmax361336 fma  1   1E16  -0.50000             ->  1.000000000000000E+16 Inexact Rounded
fmax361337 fma  1   1E16  -0.5000              ->  1.000000000000000E+16 Inexact Rounded
fmax361338 fma  1   1E16  -0.500               ->  1.000000000000000E+16 Inexact Rounded
fmax361339 fma  1   1E16  -0.50                ->  1.000000000000000E+16 Inexact Rounded

fmax361340 fma  1   1E16  -5000000.000010001   ->  9999999995000000      Inexact Rounded
fmax361341 fma  1   1E16  -5000000.000000001   ->  9999999995000000      Inexact Rounded

fmax361349 fma  1   9999999999999999 0.4                 ->  9999999999999999      Inexact Rounded
fmax361350 fma  1   9999999999999999 0.49                ->  9999999999999999      Inexact Rounded
fmax361351 fma  1   9999999999999999 0.499               ->  9999999999999999      Inexact Rounded
fmax361352 fma  1   9999999999999999 0.4999              ->  9999999999999999      Inexact Rounded
fmax361353 fma  1   9999999999999999 0.49999             ->  9999999999999999      Inexact Rounded
fmax361354 fma  1   9999999999999999 0.499999            ->  9999999999999999      Inexact Rounded
fmax361355 fma  1   9999999999999999 0.4999999           ->  9999999999999999      Inexact Rounded
fmax361356 fma  1   9999999999999999 0.49999999          ->  9999999999999999      Inexact Rounded
fmax361357 fma  1   9999999999999999 0.499999999         ->  9999999999999999      Inexact Rounded
fmax361358 fma  1   9999999999999999 0.4999999999        ->  9999999999999999      Inexact Rounded
fmax361359 fma  1   9999999999999999 0.49999999999       ->  9999999999999999      Inexact Rounded
fmax361360 fma  1   9999999999999999 0.499999999999      ->  9999999999999999      Inexact Rounded
fmax361361 fma  1   9999999999999999 0.4999999999999     ->  9999999999999999      Inexact Rounded
fmax361362 fma  1   9999999999999999 0.49999999999999    ->  9999999999999999      Inexact Rounded
fmax361363 fma  1   9999999999999999 0.499999999999999   ->  9999999999999999      Inexact Rounded
fmax361364 fma  1   9999999999999999 0.4999999999999999  ->  9999999999999999      Inexact Rounded
fmax361365 fma  1   9999999999999999 0.5000000000000000  ->  1.000000000000000E+16 Inexact Rounded
fmax361367 fma  1   9999999999999999 0.500000000000000   ->  1.000000000000000E+16 Inexact Rounded
fmax361368 fma  1   9999999999999999 0.50000000000000    ->  1.000000000000000E+16 Inexact Rounded
fmax361369 fma  1   9999999999999999 0.5000000000000     ->  1.000000000000000E+16 Inexact Rounded
fmax361370 fma  1   9999999999999999 0.500000000000      ->  1.000000000000000E+16 Inexact Rounded
fmax361371 fma  1   9999999999999999 0.50000000000       ->  1.000000000000000E+16 Inexact Rounded
fmax361372 fma  1   9999999999999999 0.5000000000        ->  1.000000000000000E+16 Inexact Rounded
fmax361373 fma  1   9999999999999999 0.500000000         ->  1.000000000000000E+16 Inexact Rounded
fmax361374 fma  1   9999999999999999 0.50000000          ->  1.000000000000000E+16 Inexact Rounded
fmax361375 fma  1   9999999999999999 0.5000000           ->  1.000000000000000E+16 Inexact Rounded
fmax361376 fma  1   9999999999999999 0.500000            ->  1.000000000000000E+16 Inexact Rounded
fmax361377 fma  1   9999999999999999 0.50000             ->  1.000000000000000E+16 Inexact Rounded
fmax361378 fma  1   9999999999999999 0.5000              ->  1.000000000000000E+16 Inexact Rounded
fmax361379 fma  1   9999999999999999 0.500               ->  1.000000000000000E+16 Inexact Rounded
fmax361380 fma  1   9999999999999999 0.50                ->  1.000000000000000E+16 Inexact Rounded
fmax361381 fma  1   9999999999999999 0.5                 ->  1.000000000000000E+16 Inexact Rounded
fmax361382 fma  1   9999999999999999 0.5000000000000001  ->  1.000000000000000E+16 Inexact Rounded
fmax361383 fma  1   9999999999999999 0.500000000000001   ->  1.000000000000000E+16 Inexact Rounded
fmax361384 fma  1   9999999999999999 0.50000000000001    ->  1.000000000000000E+16 Inexact Rounded
fmax361385 fma  1   9999999999999999 0.5000000000001     ->  1.000000000000000E+16 Inexact Rounded
fmax361386 fma  1   9999999999999999 0.500000000001      ->  1.000000000000000E+16 Inexact Rounded
fmax361387 fma  1   9999999999999999 0.50000000001       ->  1.000000000000000E+16 Inexact Rounded
fmax361388 fma  1   9999999999999999 0.5000000001        ->  1.000000000000000E+16 Inexact Rounded
fmax361389 fma  1   9999999999999999 0.500000001         ->  1.000000000000000E+16 Inexact Rounded
fmax361390 fma  1   9999999999999999 0.50000001          ->  1.000000000000000E+16 Inexact Rounded
fmax361391 fma  1   9999999999999999 0.5000001           ->  1.000000000000000E+16 Inexact Rounded
fmax361392 fma  1   9999999999999999 0.500001            ->  1.000000000000000E+16 Inexact Rounded
fmax361393 fma  1   9999999999999999 0.50001             ->  1.000000000000000E+16 Inexact Rounded
fmax361394 fma  1   9999999999999999 0.5001              ->  1.000000000000000E+16 Inexact Rounded
fmax361395 fma  1   9999999999999999 0.501               ->  1.000000000000000E+16 Inexact Rounded
fmax361396 fma  1   9999999999999999 0.51                ->  1.000000000000000E+16 Inexact Rounded

-- More GD edge cases, where difference between the unadjusted
-- exponents is larger than the maximum precision and one side is 0
fmax361420 fma  1    0 1.123456789012345     -> 1.123456789012345
fmax361421 fma  1    0 1.123456789012345E-1  -> 0.1123456789012345
fmax361422 fma  1    0 1.123456789012345E-2  -> 0.01123456789012345
fmax361423 fma  1    0 1.123456789012345E-3  -> 0.001123456789012345
fmax361424 fma  1    0 1.123456789012345E-4  -> 0.0001123456789012345
fmax361425 fma  1    0 1.123456789012345E-5  -> 0.00001123456789012345
fmax361426 fma  1    0 1.123456789012345E-6  -> 0.000001123456789012345
fmax361427 fma  1    0 1.123456789012345E-7  -> 1.123456789012345E-7
fmax361428 fma  1    0 1.123456789012345E-8  -> 1.123456789012345E-8
fmax361429 fma  1    0 1.123456789012345E-9  -> 1.123456789012345E-9
fmax361430 fma  1    0 1.123456789012345E-10 -> 1.123456789012345E-10
fmax361431 fma  1    0 1.123456789012345E-11 -> 1.123456789012345E-11
fmax361432 fma  1    0 1.123456789012345E-12 -> 1.123456789012345E-12
fmax361433 fma  1    0 1.123456789012345E-13 -> 1.123456789012345E-13
fmax361434 fma  1    0 1.123456789012345E-14 -> 1.123456789012345E-14
fmax361435 fma  1    0 1.123456789012345E-15 -> 1.123456789012345E-15
fmax361436 fma  1    0 1.123456789012345E-16 -> 1.123456789012345E-16
fmax361437 fma  1    0 1.123456789012345E-17 -> 1.123456789012345E-17
fmax361438 fma  1    0 1.123456789012345E-18 -> 1.123456789012345E-18
fmax361439 fma  1    0 1.123456789012345E-19 -> 1.123456789012345E-19

-- same, reversed 0
fmax361440 fma  1   1.123456789012345     0 -> 1.123456789012345
fmax361441 fma  1   1.123456789012345E-1  0 -> 0.1123456789012345
fmax361442 fma  1   1.123456789012345E-2  0 -> 0.01123456789012345
fmax361443 fma  1   1.123456789012345E-3  0 -> 0.001123456789012345
fmax361444 fma  1   1.123456789012345E-4  0 -> 0.0001123456789012345
fmax361445 fma  1   1.123456789012345E-5  0 -> 0.00001123456789012345
fmax361446 fma  1   1.123456789012345E-6  0 -> 0.000001123456789012345
fmax361447 fma  1   1.123456789012345E-7  0 -> 1.123456789012345E-7
fmax361448 fma  1   1.123456789012345E-8  0 -> 1.123456789012345E-8
fmax361449 fma  1   1.123456789012345E-9  0 -> 1.123456789012345E-9
fmax361450 fma  1   1.123456789012345E-10 0 -> 1.123456789012345E-10
fmax361451 fma  1   1.123456789012345E-11 0 -> 1.123456789012345E-11
fmax361452 fma  1   1.123456789012345E-12 0 -> 1.123456789012345E-12
fmax361453 fma  1   1.123456789012345E-13 0 -> 1.123456789012345E-13
fmax361454 fma  1   1.123456789012345E-14 0 -> 1.123456789012345E-14
fmax361455 fma  1   1.123456789012345E-15 0 -> 1.123456789012345E-15
fmax361456 fma  1   1.123456789012345E-16 0 -> 1.123456789012345E-16
fmax361457 fma  1   1.123456789012345E-17 0 -> 1.123456789012345E-17
fmax361458 fma  1   1.123456789012345E-18 0 -> 1.123456789012345E-18
fmax361459 fma  1   1.123456789012345E-19 0 -> 1.123456789012345E-19

-- same, Es on the 0
fmax361460 fma  1   1.123456789012345  0E-0   -> 1.123456789012345
fmax361461 fma  1   1.123456789012345  0E-1   -> 1.123456789012345
fmax361462 fma  1   1.123456789012345  0E-2   -> 1.123456789012345
fmax361463 fma  1   1.123456789012345  0E-3   -> 1.123456789012345
fmax361464 fma  1   1.123456789012345  0E-4   -> 1.123456789012345
fmax361465 fma  1   1.123456789012345  0E-5   -> 1.123456789012345
fmax361466 fma  1   1.123456789012345  0E-6   -> 1.123456789012345
fmax361467 fma  1   1.123456789012345  0E-7   -> 1.123456789012345
fmax361468 fma  1   1.123456789012345  0E-8   -> 1.123456789012345
fmax361469 fma  1   1.123456789012345  0E-9   -> 1.123456789012345
fmax361470 fma  1   1.123456789012345  0E-10  -> 1.123456789012345
fmax361471 fma  1   1.123456789012345  0E-11  -> 1.123456789012345
fmax361472 fma  1   1.123456789012345  0E-12  -> 1.123456789012345
fmax361473 fma  1   1.123456789012345  0E-13  -> 1.123456789012345
fmax361474 fma  1   1.123456789012345  0E-14  -> 1.123456789012345
fmax361475 fma  1   1.123456789012345  0E-15  -> 1.123456789012345
-- next four flag Rounded because the 0 extends the result
fmax361476 fma  1   1.123456789012345  0E-16  -> 1.123456789012345 Rounded
fmax361477 fma  1   1.123456789012345  0E-17  -> 1.123456789012345 Rounded
fmax361478 fma  1   1.123456789012345  0E-18  -> 1.123456789012345 Rounded
fmax361479 fma  1   1.123456789012345  0E-19  -> 1.123456789012345 Rounded

-- sum of two opposite-sign operands is exactly 0 and floor => -0
rounding:    half_up
-- exact zeros from zeros
fmax361500 fma  1    0        0E-19  ->  0E-19
fmax361501 fma  1   -0        0E-19  ->  0E-19
fmax361502 fma  1    0       -0E-19  ->  0E-19
fmax361503 fma  1   -0       -0E-19  -> -0E-19
fmax361504 fma  1    0E-400   0E-19  ->  0E-398 Clamped
fmax361505 fma  1   -0E-400   0E-19  ->  0E-398 Clamped
fmax361506 fma  1    0E-400  -0E-19  ->  0E-398 Clamped
fmax361507 fma  1   -0E-400  -0E-19  -> -0E-398 Clamped
-- inexact zeros
fmax361511 fma  1    1E-401   1E-400 ->  0E-398 Subnormal Inexact Rounded Underflow Clamped
fmax361512 fma  1   -1E-401   1E-400 ->  0E-398 Subnormal Inexact Rounded Underflow Clamped
fmax361513 fma  1    1E-401  -1E-400 -> -0E-398 Subnormal Inexact Rounded Underflow Clamped
fmax361514 fma  1   -1E-401  -1E-400 -> -0E-398 Subnormal Inexact Rounded Underflow Clamped
-- some exact zeros from non-zeros
fmax361515 fma  1    1E-401   1E-401 ->  0E-398 Subnormal Inexact Rounded Underflow Clamped
fmax361516 fma  1   -1E-401   1E-401 ->  0E-398 Clamped
fmax361517 fma  1    1E-401  -1E-401 ->  0E-398 Clamped
fmax361518 fma  1   -1E-401  -1E-401 -> -0E-398 Subnormal Inexact Rounded Underflow Clamped

rounding:    half_down
-- exact zeros from zeros
fmax361520 fma  1    0        0E-19  ->  0E-19
fmax361521 fma  1   -0        0E-19  ->  0E-19
fmax361522 fma  1    0       -0E-19  ->  0E-19
fmax361523 fma  1   -0       -0E-19  -> -0E-19
fmax361524 fma  1    0E-400   0E-19  ->  0E-398 Clamped
fmax361525 fma  1   -0E-400   0E-19  ->  0E-398 Clamped
fmax361526 fma  1    0E-400  -0E-19  ->  0E-398 Clamped
fmax361527 fma  1   -0E-400  -0E-19  -> -0E-398 Clamped
-- inexact zeros
fmax361531 fma  1    1E-401   1E-400 ->  0E-398 Subnormal Inexact Rounded Underflow Clamped
fmax361532 fma  1   -1E-401   1E-400 ->  0E-398 Subnormal Inexact Rounded Underflow Clamped
fmax361533 fma  1    1E-401  -1E-400 -> -0E-398 Subnormal Inexact Rounded Underflow Clamped
fmax361534 fma  1   -1E-401  -1E-400 -> -0E-398 Subnormal Inexact Rounded Underflow Clamped
-- some exact zeros from non-zeros
fmax361535 fma  1    1E-401   1E-401 ->  0E-398 Subnormal Inexact Rounded Underflow Clamped
fmax361536 fma  1   -1E-401   1E-401 ->  0E-398 Clamped
fmax361537 fma  1    1E-401  -1E-401 ->  0E-398 Clamped
fmax361538 fma  1   -1E-401  -1E-401 -> -0E-398 Subnormal Inexact Rounded Underflow Clamped

rounding:    half_even
-- exact zeros from zeros
fmax361540 fma  1    0        0E-19  ->  0E-19
fmax361541 fma  1   -0        0E-19  ->  0E-19
fmax361542 fma  1    0       -0E-19  ->  0E-19
fmax361543 fma  1   -0       -0E-19  -> -0E-19
fmax361544 fma  1    0E-400   0E-19  ->  0E-398 Clamped
fmax361545 fma  1   -0E-400   0E-19  ->  0E-398 Clamped
fmax361546 fma  1    0E-400  -0E-19  ->  0E-398 Clamped
fmax361547 fma  1   -0E-400  -0E-19  -> -0E-398 Clamped
-- inexact zeros
fmax361551 fma  1    1E-401   1E-400 ->  0E-398 Subnormal Inexact Rounded Underflow Clamped
fmax361552 fma  1   -1E-401   1E-400 ->  0E-398 Subnormal Inexact Rounded Underflow Clamped
fmax361553 fma  1    1E-401  -1E-400 -> -0E-398 Subnormal Inexact Rounded Underflow Clamped
fmax361554 fma  1   -1E-401  -1E-400 -> -0E-398 Subnormal Inexact Rounded Underflow Clamped
-- some exact zeros from non-zeros
fmax361555 fma  1    1E-401   1E-401 ->  0E-398 Subnormal Inexact Rounded Underflow Clamped
fmax361556 fma  1   -1E-401   1E-401 ->  0E-398 Clamped
fmax361557 fma  1    1E-401  -1E-401 ->  0E-398 Clamped
fmax361558 fma  1   -1E-401  -1E-401 -> -0E-398 Subnormal Inexact Rounded Underflow Clamped

rounding:    up
-- exact zeros from zeros
fmax361560 fma  1    0        0E-19  ->  0E-19
fmax361561 fma  1   -0        0E-19  ->  0E-19
fmax361562 fma  1    0       -0E-19  ->  0E-19
fmax361563 fma  1   -0       -0E-19  -> -0E-19
fmax361564 fma  1    0E-400   0E-19  ->  0E-398 Clamped
fmax361565 fma  1   -0E-400   0E-19  ->  0E-398 Clamped
fmax361566 fma  1    0E-400  -0E-19  ->  0E-398 Clamped
fmax361567 fma  1   -0E-400  -0E-19  -> -0E-398 Clamped
-- inexact zeros
fmax361571 fma  1    1E-401   1E-400 ->  1E-398 Subnormal Inexact Rounded Underflow
fmax361572 fma  1   -1E-401   1E-400 ->  1E-398 Subnormal Inexact Rounded Underflow
fmax361573 fma  1    1E-401  -1E-400 -> -1E-398 Subnormal Inexact Rounded Underflow
fmax361574 fma  1   -1E-401  -1E-400 -> -1E-398 Subnormal Inexact Rounded Underflow
-- some exact zeros from non-zeros
fmax361575 fma  1    1E-401   1E-401 ->  1E-398 Subnormal Inexact Rounded Underflow
fmax361576 fma  1   -1E-401   1E-401 ->  0E-398 Clamped
fmax361577 fma  1    1E-401  -1E-401 ->  0E-398 Clamped
fmax361578 fma  1   -1E-401  -1E-401 -> -1E-398 Subnormal Inexact Rounded Underflow

rounding:    down
-- exact zeros from zeros
fmax361580 fma  1    0        0E-19  ->  0E-19
fmax361581 fma  1   -0        0E-19  ->  0E-19
fmax361582 fma  1    0       -0E-19  ->  0E-19
fmax361583 fma  1   -0       -0E-19  -> -0E-19
fmax361584 fma  1    0E-400   0E-19  ->  0E-398 Clamped
fmax361585 fma  1   -0E-400   0E-19  ->  0E-398 Clamped
fmax361586 fma  1    0E-400  -0E-19  ->  0E-398 Clamped
fmax361587 fma  1   -0E-400  -0E-19  -> -0E-398 Clamped
-- inexact zeros
fmax361591 fma  1    1E-401   1E-400 ->  0E-398 Subnormal Inexact Rounded Underflow Clamped
fmax361592 fma  1   -1E-401   1E-400 ->  0E-398 Subnormal Inexact Rounded Underflow Clamped
fmax361593 fma  1    1E-401  -1E-400 -> -0E-398 Subnormal Inexact Rounded Underflow Clamped
fmax361594 fma  1   -1E-401  -1E-400 -> -0E-398 Subnormal Inexact Rounded Underflow Clamped
-- some exact zeros from non-zeros
fmax361595 fma  1    1E-401   1E-401 ->  0E-398 Subnormal Inexact Rounded Underflow Clamped
fmax361596 fma  1   -1E-401   1E-401 ->  0E-398 Clamped
fmax361597 fma  1    1E-401  -1E-401 ->  0E-398 Clamped
fmax361598 fma  1   -1E-401  -1E-401 -> -0E-398 Subnormal Inexact Rounded Underflow Clamped

rounding:    ceiling
-- exact zeros from zeros
fmax361600 fma  1    0        0E-19  ->  0E-19
fmax361601 fma  1   -0        0E-19  ->  0E-19
fmax361602 fma  1    0       -0E-19  ->  0E-19
fmax361603 fma  1   -0       -0E-19  -> -0E-19
fmax361604 fma  1    0E-400   0E-19  ->  0E-398 Clamped
fmax361605 fma  1   -0E-400   0E-19  ->  0E-398 Clamped
fmax361606 fma  1    0E-400  -0E-19  ->  0E-398 Clamped
fmax361607 fma  1   -0E-400  -0E-19  -> -0E-398 Clamped
-- inexact zeros
fmax361611 fma  1    1E-401   1E-400 ->  1E-398 Subnormal Inexact Rounded Underflow
fmax361612 fma  1   -1E-401   1E-400 ->  1E-398 Subnormal Inexact Rounded Underflow
fmax361613 fma  1    1E-401  -1E-400 -> -0E-398 Subnormal Inexact Rounded Underflow Clamped
fmax361614 fma  1   -1E-401  -1E-400 -> -0E-398 Subnormal Inexact Rounded Underflow Clamped
-- some exact zeros from non-zeros
fmax361615 fma  1    1E-401   1E-401 ->  1E-398 Subnormal Inexact Rounded Underflow
fmax361616 fma  1   -1E-401   1E-401 ->  0E-398 Clamped
fmax361617 fma  1    1E-401  -1E-401 ->  0E-398 Clamped
fmax361618 fma  1   -1E-401  -1E-401 -> -0E-398 Subnormal Inexact Rounded Underflow Clamped

-- and the extra-special ugly case; unusual minuses marked by -- *
rounding:    floor
-- exact zeros from zeros
fmax361620 fma  1    0        0E-19  ->  0E-19
fmax361621 fma  1   -0        0E-19  -> -0E-19           -- *
fmax361622 fma  1    0       -0E-19  -> -0E-19           -- *
fmax361623 fma  1   -0       -0E-19  -> -0E-19
fmax361624 fma  1    0E-400   0E-19  ->  0E-398 Clamped
fmax361625 fma  1   -0E-400   0E-19  -> -0E-398 Clamped  -- *
fmax361626 fma  1    0E-400  -0E-19  -> -0E-398 Clamped  -- *
fmax361627 fma  1   -0E-400  -0E-19  -> -0E-398 Clamped
-- inexact zeros
fmax361631 fma  1    1E-401   1E-400 ->  0E-398 Subnormal Inexact Rounded Underflow Clamped
fmax361632 fma  1   -1E-401   1E-400 ->  0E-398 Subnormal Inexact Rounded Underflow Clamped
fmax361633 fma  1    1E-401  -1E-400 -> -1E-398 Subnormal Inexact Rounded Underflow
fmax361634 fma  1   -1E-401  -1E-400 -> -1E-398 Subnormal Inexact Rounded Underflow
-- some exact zeros from non-zeros
fmax361635 fma  1    1E-401   1E-401 ->  0E-398 Subnormal Inexact Rounded Underflow Clamped
fmax361636 fma  1   -1E-401   1E-401 -> -0E-398 Clamped  -- *
fmax361637 fma  1    1E-401  -1E-401 -> -0E-398 Clamped  -- *
fmax361638 fma  1   -1E-401  -1E-401 -> -1E-398 Subnormal Inexact Rounded Underflow

-- Examples from SQL proposal (Krishna Kulkarni)
fmax361701 fma  1   130E-2    120E-2    -> 2.50
fmax361702 fma  1   130E-2    12E-1     -> 2.50
fmax361703 fma  1   130E-2    1E0       -> 2.30
fmax361704 fma  1   1E2       1E4       -> 1.01E+4
fmax361705 subtract 130E-2  120E-2 -> 0.10
fmax361706 subtract 130E-2  12E-1  -> 0.10
fmax361707 subtract 130E-2  1E0    -> 0.30
fmax361708 subtract 1E2     1E4    -> -9.9E+3

-- Gappy coefficients; check residue handling even with full coefficient gap
rounding: half_even

fmax362001 fma  1   1234567890123456 1      -> 1234567890123457
fmax362002 fma  1   1234567890123456 0.6    -> 1234567890123457  Inexact Rounded
fmax362003 fma  1   1234567890123456 0.06   -> 1234567890123456  Inexact Rounded
fmax362004 fma  1   1234567890123456 6E-3   -> 1234567890123456  Inexact Rounded
fmax362005 fma  1   1234567890123456 6E-4   -> 1234567890123456  Inexact Rounded
fmax362006 fma  1   1234567890123456 6E-5   -> 1234567890123456  Inexact Rounded
fmax362007 fma  1   1234567890123456 6E-6   -> 1234567890123456  Inexact Rounded
fmax362008 fma  1   1234567890123456 6E-7   -> 1234567890123456  Inexact Rounded
fmax362009 fma  1   1234567890123456 6E-8   -> 1234567890123456  Inexact Rounded
fmax362010 fma  1   1234567890123456 6E-9   -> 1234567890123456  Inexact Rounded
fmax362011 fma  1   1234567890123456 6E-10  -> 1234567890123456  Inexact Rounded
fmax362012 fma  1   1234567890123456 6E-11  -> 1234567890123456  Inexact Rounded
fmax362013 fma  1   1234567890123456 6E-12  -> 1234567890123456  Inexact Rounded
fmax362014 fma  1   1234567890123456 6E-13  -> 1234567890123456  Inexact Rounded
fmax362015 fma  1   1234567890123456 6E-14  -> 1234567890123456  Inexact Rounded
fmax362016 fma  1   1234567890123456 6E-15  -> 1234567890123456  Inexact Rounded
fmax362017 fma  1   1234567890123456 6E-16  -> 1234567890123456  Inexact Rounded
fmax362018 fma  1   1234567890123456 6E-17  -> 1234567890123456  Inexact Rounded
fmax362019 fma  1   1234567890123456 6E-18  -> 1234567890123456  Inexact Rounded
fmax362020 fma  1   1234567890123456 6E-19  -> 1234567890123456  Inexact Rounded
fmax362021 fma  1   1234567890123456 6E-20  -> 1234567890123456  Inexact Rounded

-- widening second argument at gap
fmax362030 fma  1   12345678 1                       -> 12345679
fmax362031 fma  1   12345678 0.1                     -> 12345678.1
fmax362032 fma  1   12345678 0.12                    -> 12345678.12
fmax362033 fma  1   12345678 0.123                   -> 12345678.123
fmax362034 fma  1   12345678 0.1234                  -> 12345678.1234
fmax362035 fma  1   12345678 0.12345                 -> 12345678.12345
fmax362036 fma  1   12345678 0.123456                -> 12345678.123456
fmax362037 fma  1   12345678 0.1234567               -> 12345678.1234567
fmax362038 fma  1   12345678 0.12345678              -> 12345678.12345678
fmax362039 fma  1   12345678 0.123456789             -> 12345678.12345679 Inexact Rounded
fmax362040 fma  1   12345678 0.123456785             -> 12345678.12345678 Inexact Rounded
fmax362041 fma  1   12345678 0.1234567850            -> 12345678.12345678 Inexact Rounded
fmax362042 fma  1   12345678 0.1234567851            -> 12345678.12345679 Inexact Rounded
fmax362043 fma  1   12345678 0.12345678501           -> 12345678.12345679 Inexact Rounded
fmax362044 fma  1   12345678 0.123456785001          -> 12345678.12345679 Inexact Rounded
fmax362045 fma  1   12345678 0.1234567850001         -> 12345678.12345679 Inexact Rounded
fmax362046 fma  1   12345678 0.12345678500001        -> 12345678.12345679 Inexact Rounded
fmax362047 fma  1   12345678 0.123456785000001       -> 12345678.12345679 Inexact Rounded
fmax362048 fma  1   12345678 0.1234567850000001      -> 12345678.12345679 Inexact Rounded
fmax362049 fma  1   12345678 0.1234567850000000      -> 12345678.12345678 Inexact Rounded
--                               90123456
rounding: half_even
fmax362050 fma  1   12345678 0.0234567750000000      -> 12345678.02345678 Inexact Rounded
fmax362051 fma  1   12345678 0.0034567750000000      -> 12345678.00345678 Inexact Rounded
fmax362052 fma  1   12345678 0.0004567750000000      -> 12345678.00045678 Inexact Rounded
fmax362053 fma  1   12345678 0.0000567750000000      -> 12345678.00005678 Inexact Rounded
fmax362054 fma  1   12345678 0.0000067750000000      -> 12345678.00000678 Inexact Rounded
fmax362055 fma  1   12345678 0.0000007750000000      -> 12345678.00000078 Inexact Rounded
fmax362056 fma  1   12345678 0.0000000750000000      -> 12345678.00000008 Inexact Rounded
fmax362057 fma  1   12345678 0.0000000050000000      -> 12345678.00000000 Inexact Rounded
fmax362060 fma  1   12345678 0.0234567750000001      -> 12345678.02345678 Inexact Rounded
fmax362061 fma  1   12345678 0.0034567750000001      -> 12345678.00345678 Inexact Rounded
fmax362062 fma  1   12345678 0.0004567750000001      -> 12345678.00045678 Inexact Rounded
fmax362063 fma  1   12345678 0.0000567750000001      -> 12345678.00005678 Inexact Rounded
fmax362064 fma  1   12345678 0.0000067750000001      -> 12345678.00000678 Inexact Rounded
fmax362065 fma  1   12345678 0.0000007750000001      -> 12345678.00000078 Inexact Rounded
fmax362066 fma  1   12345678 0.0000000750000001      -> 12345678.00000008 Inexact Rounded
fmax362067 fma  1   12345678 0.0000000050000001      -> 12345678.00000001 Inexact Rounded
-- far-out residues (full coefficient gap is 16+15 digits)
rounding: up
fmax362070 fma  1   12345678 1E-8                    -> 12345678.00000001
fmax362071 fma  1   12345678 1E-9                    -> 12345678.00000001 Inexact Rounded
fmax362072 fma  1   12345678 1E-10                   -> 12345678.00000001 Inexact Rounded
fmax362073 fma  1   12345678 1E-11                   -> 12345678.00000001 Inexact Rounded
fmax362074 fma  1   12345678 1E-12                   -> 12345678.00000001 Inexact Rounded
fmax362075 fma  1   12345678 1E-13                   -> 12345678.00000001 Inexact Rounded
fmax362076 fma  1   12345678 1E-14                   -> 12345678.00000001 Inexact Rounded
fmax362077 fma  1   12345678 1E-15                   -> 12345678.00000001 Inexact Rounded
fmax362078 fma  1   12345678 1E-16                   -> 12345678.00000001 Inexact Rounded
fmax362079 fma  1   12345678 1E-17                   -> 12345678.00000001 Inexact Rounded
fmax362080 fma  1   12345678 1E-18                   -> 12345678.00000001 Inexact Rounded
fmax362081 fma  1   12345678 1E-19                   -> 12345678.00000001 Inexact Rounded
fmax362082 fma  1   12345678 1E-20                   -> 12345678.00000001 Inexact Rounded
fmax362083 fma  1   12345678 1E-25                   -> 12345678.00000001 Inexact Rounded
fmax362084 fma  1   12345678 1E-30                   -> 12345678.00000001 Inexact Rounded
fmax362085 fma  1   12345678 1E-31                   -> 12345678.00000001 Inexact Rounded
fmax362086 fma  1   12345678 1E-32                   -> 12345678.00000001 Inexact Rounded
fmax362087 fma  1   12345678 1E-33                   -> 12345678.00000001 Inexact Rounded
fmax362088 fma  1   12345678 1E-34                   -> 12345678.00000001 Inexact Rounded
fmax362089 fma  1   12345678 1E-35                   -> 12345678.00000001 Inexact Rounded

-- payload decapitate x3
precision: 5
fmax363000 fma  1 1  sNaN1234567890     ->  NaN67890  Invalid_operation
fmax363001 fma    1 -sNaN1234512345 1   -> -NaN12345  Invalid_operation
fmax363002 fma       sNaN1234554321 1 1 ->  NaN54321  Invalid_operation

-- Null tests
fmax39990 fma  1   10  # -> NaN Invalid_operation
fmax39991 fma  1    # 10 -> NaN Invalid_operation

Youez - 2016 - github.com/yon3zu
LinuXploit