brintos

brintos / llvm-project-archived public Read only

0
0
Text · 35.2 KiB · 7dc7c8a Raw
617 lines · c
1// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.2// See https://llvm.org/LICENSE.txt for license information.3// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception4 5// RUN: %clang_builtins %s %librt -o %t && %run %t6// REQUIRES: librt_has_mulsf37 8#include "int_lib.h"9#include <inttypes.h>10#include <stdio.h>11 12#include "fp_test.h"13 14// By default this test uses compareResultF to check the returned floats, which15// accepts any returned NaN if the expected result is the canonical NaN value16// 0x7fc00000. For the Arm optimized FP implementation, which commits to a more17// detailed handling of NaNs, we tighten up the check and include some extra18// test cases specific to that NaN policy.19#if (__arm__ && !(__thumb__ && !__thumb2__)) && COMPILER_RT_ARM_OPTIMIZED_FP20#  define EXPECT_EXACT_RESULTS21#  define ARM_NAN_HANDLING22#endif23 24// Returns: a * b25COMPILER_RT_ABI float __mulsf3(float a, float b);26 27int test__mulsf3(uint32_t a_rep, uint32_t b_rep, uint32_t expected_rep) {28  float a = fromRep32(a_rep), b = fromRep32(b_rep);29  float x = __mulsf3(a, b);30#ifdef EXPECT_EXACT_RESULTS31  int ret = toRep32(x) == expected_rep;32#else33  int ret = compareResultF(x, expected_rep);34#endif35 36  if (ret) {37    printf("error in test__mulsf3(%08" PRIx32 ", %08" PRIx32 ") = %08" PRIx3238           ", expected %08" PRIx32 "\n",39           a_rep, b_rep, toRep32(x), expected_rep);40  }41  return ret;42}43 44int main(void) {45  int status = 0;46 47  status |= test__mulsf3(0x00000000, 0x00000000, 0x00000000);48  status |= test__mulsf3(0x00000000, 0x007fffff, 0x00000000);49  status |= test__mulsf3(0x00000000, 0x00ffffff, 0x00000000);50  status |= test__mulsf3(0x00000000, 0x3f800000, 0x00000000);51  status |= test__mulsf3(0x00000000, 0x7effffff, 0x00000000);52  status |= test__mulsf3(0x00000000, 0x80000000, 0x80000000);53  status |= test__mulsf3(0x00000000, 0x80000002, 0x80000000);54  status |= test__mulsf3(0x00000000, 0x807fffff, 0x80000000);55  status |= test__mulsf3(0x00000000, 0x80800001, 0x80000000);56  status |= test__mulsf3(0x00000000, 0x81000000, 0x80000000);57  status |= test__mulsf3(0x00000000, 0xc0400000, 0x80000000);58  status |= test__mulsf3(0x00000000, 0xfe7fffff, 0x80000000);59  status |= test__mulsf3(0x00000000, 0xff000000, 0x80000000);60  status |= test__mulsf3(0x00000000, 0xff7fffff, 0x80000000);61  status |= test__mulsf3(0x00000001, 0x00000000, 0x00000000);62  status |= test__mulsf3(0x00000001, 0x00000001, 0x00000000);63  status |= test__mulsf3(0x00000001, 0x3f000000, 0x00000000);64  status |= test__mulsf3(0x00000001, 0x3f7fffff, 0x00000001);65  status |= test__mulsf3(0x00000001, 0x3f800000, 0x00000001);66  status |= test__mulsf3(0x00000001, 0x40000000, 0x00000002);67  status |= test__mulsf3(0x00000001, 0x7f800000, 0x7f800000);68  status |= test__mulsf3(0x00000001, 0xbf7fffff, 0x80000001);69  status |= test__mulsf3(0x00000006, 0x3f000000, 0x00000003);70  status |= test__mulsf3(0x00000006, 0xbf000000, 0x80000003);71  status |= test__mulsf3(0x00000008, 0x3e000000, 0x00000001);72  status |= test__mulsf3(0x007ffff7, 0x81000003, 0x80000000);73  status |= test__mulsf3(0x007ffff8, 0x3f800001, 0x007ffff9);74  status |= test__mulsf3(0x007ffff8, 0x3f800008, 0x00800000);75  status |= test__mulsf3(0x007ffff8, 0xbf800001, 0x807ffff9);76  status |= test__mulsf3(0x007ffff8, 0xbf800008, 0x80800000);77  status |= test__mulsf3(0x007ffffc, 0x40000000, 0x00fffff8);78  status |= test__mulsf3(0x007ffffe, 0x3f7ffffc, 0x007ffffc);79  status |= test__mulsf3(0x007ffffe, 0x3f800001, 0x007fffff);80  status |= test__mulsf3(0x007ffffe, 0xbf800001, 0x807fffff);81  status |= test__mulsf3(0x007fffff, 0x007ffffe, 0x00000000);82  status |= test__mulsf3(0x007fffff, 0x3f800001, 0x00800000);83  status |= test__mulsf3(0x007fffff, 0x40000000, 0x00fffffe);84  status |= test__mulsf3(0x00800000, 0x00000000, 0x00000000);85  status |= test__mulsf3(0x00800000, 0x00800000, 0x00000000);86  status |= test__mulsf3(0x00800000, 0x3f7ffffe, 0x007fffff);87  status |= test__mulsf3(0x00800000, 0x7f800000, 0x7f800000);88  status |= test__mulsf3(0x00800000, 0x80800000, 0x80000000);89  status |= test__mulsf3(0x00800000, 0xc0000000, 0x81000000);90  status |= test__mulsf3(0x00800001, 0x3f7ffffa, 0x007ffffe);91  status |= test__mulsf3(0x00800001, 0x3f7ffffe, 0x00800000);92  status |= test__mulsf3(0x00800001, 0xc0000000, 0x81000001);93  status |= test__mulsf3(0x00800002, 0x3f7ffffc, 0x00800000);94  status |= test__mulsf3(0x00fffff8, 0x3f000000, 0x007ffffc);95  status |= test__mulsf3(0x00fffffe, 0x3f000000, 0x007fffff);96  status |= test__mulsf3(0x00fffffe, 0xbf000000, 0x807fffff);97  status |= test__mulsf3(0x00ffffff, 0x3f000000, 0x00800000);98  status |= test__mulsf3(0x00ffffff, 0xbf000000, 0x80800000);99  status |= test__mulsf3(0x3f000000, 0x80000001, 0x80000000);100  status |= test__mulsf3(0x3f800000, 0x007ffffd, 0x007ffffd);101  status |= test__mulsf3(0x3f800000, 0x01000003, 0x01000003);102  status |= test__mulsf3(0x3f800000, 0x3f800000, 0x3f800000);103  status |= test__mulsf3(0x3f800000, 0x40000000, 0x40000000);104  status |= test__mulsf3(0x3f800000, 0x80000001, 0x80000001);105  status |= test__mulsf3(0x3f800000, 0x80000009, 0x80000009);106  status |= test__mulsf3(0x3f800001, 0x3f800001, 0x3f800002);107  status |= test__mulsf3(0x3f800001, 0xbf800001, 0xbf800002);108  status |= test__mulsf3(0x3f800001, 0xbf800002, 0xbf800003);109  status |= test__mulsf3(0x3f800002, 0x3f800001, 0x3f800003);110  status |= test__mulsf3(0x3f800002, 0x7f7ffffe, 0x7f800000);111  status |= test__mulsf3(0x3f800001, 0x7f7ffffe, 0x7f800000);112  status |= test__mulsf3(0x40000000, 0x00800000, 0x01000000);113  status |= test__mulsf3(0x40000000, 0x00800001, 0x01000001);114  status |= test__mulsf3(0x40000000, 0x3f800000, 0x40000000);115  status |= test__mulsf3(0x40000000, 0x40400000, 0x40c00000);116  status |= test__mulsf3(0x40000000, 0x7e800000, 0x7f000000);117  status |= test__mulsf3(0x40000000, 0x7effffff, 0x7f7fffff);118  status |= test__mulsf3(0x40000000, 0x807ffffd, 0x80fffffa);119  status |= test__mulsf3(0x40000000, 0x80800003, 0x81000003);120  status |= test__mulsf3(0x40000000, 0x80800005, 0x81000005);121  status |= test__mulsf3(0x40000000, 0xbf800000, 0xc0000000);122  status |= test__mulsf3(0x40000000, 0xfe7ffffd, 0xfefffffd);123  status |= test__mulsf3(0x40000000, 0xfe800003, 0xff000003);124  status |= test__mulsf3(0x403fffff, 0x3f7ffffd, 0x403ffffd);125  status |= test__mulsf3(0x403fffff, 0x3f7ffffe, 0x403ffffe);126  status |= test__mulsf3(0x403fffff, 0x3f7fffff, 0x403ffffe);127  status |= test__mulsf3(0x403fffff, 0xbf7ffffd, 0xc03ffffd);128  status |= test__mulsf3(0x40400000, 0x00000002, 0x00000006);129  status |= test__mulsf3(0x40400000, 0x40000000, 0x40c00000);130  status |= test__mulsf3(0x40400000, 0x40400000, 0x41100000);131  status |= test__mulsf3(0x40400000, 0xc0000000, 0xc0c00000);132  status |= test__mulsf3(0x40400001, 0x3f800001, 0x40400003);133  status |= test__mulsf3(0x40400001, 0x3f800003, 0x40400006);134  status |= test__mulsf3(0x40400001, 0xbf800003, 0xc0400006);135  status |= test__mulsf3(0x40800000, 0x00000002, 0x00000008);136  status |= test__mulsf3(0x40800000, 0x7e7fffff, 0x7f7fffff);137  status |= test__mulsf3(0x40800000, 0xfe7fffff, 0xff7fffff);138  status |= test__mulsf3(0x409fffff, 0x3f7fffff, 0x409ffffe);139  status |= test__mulsf3(0x40a00000, 0x00000000, 0x00000000);140  status |= test__mulsf3(0x40a00000, 0x7f800000, 0x7f800000);141  status |= test__mulsf3(0x40a00001, 0x3f800001, 0x40a00002);142  status |= test__mulsf3(0x40dfffff, 0x3f7ffffc, 0x40dffffc);143  status |= test__mulsf3(0x40dfffff, 0x3f7fffff, 0x40dffffe);144  status |= test__mulsf3(0x40e00000, 0x80000000, 0x80000000);145  status |= test__mulsf3(0x40e00000, 0xff800000, 0xff800000);146  status |= test__mulsf3(0x40e00001, 0x3f800001, 0x40e00003);147  status |= test__mulsf3(0x7e7ffffd, 0x40800000, 0x7f7ffffd);148  status |= test__mulsf3(0x7e7ffffd, 0xc0800000, 0xff7ffffd);149  status |= test__mulsf3(0x7e800000, 0xc0000000, 0xff000000);150  status |= test__mulsf3(0x7efffffd, 0xc0000008, 0xff800000);151  status |= test__mulsf3(0x7effffff, 0xc0000000, 0xff7fffff);152  status |= test__mulsf3(0x7f000000, 0x00000000, 0x00000000);153  status |= test__mulsf3(0x7f000000, 0x40000000, 0x7f800000);154  status |= test__mulsf3(0x7f000000, 0x7f000000, 0x7f800000);155  status |= test__mulsf3(0x7f000000, 0x7f7ffffe, 0x7f800000);156  status |= test__mulsf3(0x7f000000, 0x7f800000, 0x7f800000);157  status |= test__mulsf3(0x7f000000, 0xfe800000, 0xff800000);158  status |= test__mulsf3(0x7f000000, 0xfe800004, 0xff800000);159  status |= test__mulsf3(0x7f000000, 0xff000000, 0xff800000);160  status |= test__mulsf3(0x7f000009, 0x7f7ffffa, 0x7f800000);161  status |= test__mulsf3(0x7f000009, 0xc0c00002, 0xff800000);162  status |= test__mulsf3(0x7f7fffff, 0x00000000, 0x00000000);163  status |= test__mulsf3(0x7f800000, 0x007fffff, 0x7f800000);164  status |= test__mulsf3(0x7f800000, 0x00ffffff, 0x7f800000);165  status |= test__mulsf3(0x7f800000, 0x3f800000, 0x7f800000);166  status |= test__mulsf3(0x7f800000, 0x7effffff, 0x7f800000);167  status |= test__mulsf3(0x7f800000, 0x7f800000, 0x7f800000);168  status |= test__mulsf3(0x7f800000, 0x80000002, 0xff800000);169  status |= test__mulsf3(0x7f800000, 0x807fffff, 0xff800000);170  status |= test__mulsf3(0x7f800000, 0x80800001, 0xff800000);171  status |= test__mulsf3(0x7f800000, 0x81000000, 0xff800000);172  status |= test__mulsf3(0x7f800000, 0xc0400000, 0xff800000);173  status |= test__mulsf3(0x7f800000, 0xff000000, 0xff800000);174  status |= test__mulsf3(0x7f800000, 0xff7fffff, 0xff800000);175  status |= test__mulsf3(0x7f800000, 0xff800000, 0xff800000);176  status |= test__mulsf3(0x80000000, 0x00000000, 0x80000000);177  status |= test__mulsf3(0x80000000, 0x40c00000, 0x80000000);178  status |= test__mulsf3(0x80000000, 0x7f7fffff, 0x80000000);179  status |= test__mulsf3(0x80000000, 0x80000000, 0x00000000);180  status |= test__mulsf3(0x80000000, 0x80000004, 0x00000000);181  status |= test__mulsf3(0x80000000, 0x80800000, 0x00000000);182  status |= test__mulsf3(0x80000000, 0xc1000000, 0x00000000);183  status |= test__mulsf3(0x80000000, 0xfe800000, 0x00000000);184  status |= test__mulsf3(0x80000001, 0x00000001, 0x80000000);185  status |= test__mulsf3(0x80000001, 0x40a00000, 0x80000005);186  status |= test__mulsf3(0x80000002, 0x3f800000, 0x80000002);187  status |= test__mulsf3(0x80000003, 0x00000000, 0x80000000);188  status |= test__mulsf3(0x80000003, 0x7f800000, 0xff800000);189  status |= test__mulsf3(0x80000004, 0xbf800000, 0x00000004);190  status |= test__mulsf3(0x80000008, 0x3e000000, 0x80000001);191  status |= test__mulsf3(0x807ffff7, 0x01000003, 0x80000000);192  status |= test__mulsf3(0x807ffff7, 0x3f800001, 0x807ffff8);193  status |= test__mulsf3(0x807ffffd, 0xc0000000, 0x00fffffa);194  status |= test__mulsf3(0x807fffff, 0x00000000, 0x80000000);195  status |= test__mulsf3(0x807fffff, 0x3f800001, 0x80800000);196  status |= test__mulsf3(0x807fffff, 0x7f800000, 0xff800000);197  status |= test__mulsf3(0x807fffff, 0x80000000, 0x00000000);198  status |= test__mulsf3(0x807fffff, 0x807ffffe, 0x00000000);199  status |= test__mulsf3(0x807fffff, 0xbf800000, 0x007fffff);200  status |= test__mulsf3(0x807fffff, 0xff800000, 0x7f800000);201  status |= test__mulsf3(0x80800000, 0x00800000, 0x80000000);202  status |= test__mulsf3(0x80800000, 0x80800000, 0x00000000);203  status |= test__mulsf3(0x80800001, 0x00000000, 0x80000000);204  status |= test__mulsf3(0x80800001, 0x7f800000, 0xff800000);205  status |= test__mulsf3(0x80800001, 0xbf800000, 0x00800001);206  status |= test__mulsf3(0x80fffffc, 0x3f000000, 0x807ffffe);207  status |= test__mulsf3(0x80fffffc, 0xbf000000, 0x007ffffe);208  status |= test__mulsf3(0x80fffffe, 0x3f800000, 0x80fffffe);209  status |= test__mulsf3(0x80ffffff, 0x80000000, 0x00000000);210  status |= test__mulsf3(0x80ffffff, 0xff800000, 0x7f800000);211  status |= test__mulsf3(0x81000000, 0x00000000, 0x80000000);212  status |= test__mulsf3(0x81000000, 0x7f800000, 0xff800000);213  status |= test__mulsf3(0xbf7fffff, 0xff7fffff, 0x7f7ffffe);214  status |= test__mulsf3(0xbf800000, 0x00000009, 0x80000009);215  status |= test__mulsf3(0xbf800000, 0x00800009, 0x80800009);216  status |= test__mulsf3(0xbf800000, 0x3f800000, 0xbf800000);217  status |= test__mulsf3(0xbf800000, 0x40000000, 0xc0000000);218  status |= test__mulsf3(0xbf800000, 0xbf800000, 0x3f800000);219  status |= test__mulsf3(0xbf800000, 0xc0000000, 0x40000000);220  status |= test__mulsf3(0xbf800001, 0x3f800001, 0xbf800002);221  status |= test__mulsf3(0xbf800001, 0xbf800001, 0x3f800002);222  status |= test__mulsf3(0xbf800001, 0xbf800002, 0x3f800003);223  status |= test__mulsf3(0xbf800002, 0x3f800001, 0xbf800003);224  status |= test__mulsf3(0xbf800002, 0xbf800001, 0x3f800003);225  status |= test__mulsf3(0xc0000000, 0x00000000, 0x80000000);226  status |= test__mulsf3(0xc0000000, 0x007ffffd, 0x80fffffa);227  status |= test__mulsf3(0xc0000000, 0x00800001, 0x81000001);228  status |= test__mulsf3(0xc0000000, 0x00800005, 0x81000005);229  status |= test__mulsf3(0xc0000000, 0x00800009, 0x81000009);230  status |= test__mulsf3(0xc0000000, 0x40400000, 0xc0c00000);231  status |= test__mulsf3(0xc0000000, 0x7e7fffff, 0xfeffffff);232  status |= test__mulsf3(0xc0000000, 0x7e800001, 0xff000001);233  status |= test__mulsf3(0xc0000000, 0x7f800000, 0xff800000);234  status |= test__mulsf3(0xc0000000, 0xbf800000, 0x40000000);235  status |= test__mulsf3(0xc0000000, 0xc0400000, 0x40c00000);236  status |= test__mulsf3(0xc03ffffe, 0x7f000000, 0xff800000);237  status |= test__mulsf3(0xc03fffff, 0x3f7fffff, 0xc03ffffe);238  status |= test__mulsf3(0xc0400000, 0x40400000, 0xc1100000);239  status |= test__mulsf3(0xc0400000, 0xc0000000, 0x40c00000);240  status |= test__mulsf3(0xc0400000, 0xc0400000, 0x41100000);241  status |= test__mulsf3(0xc0400000, 0xff000000, 0x7f800000);242  status |= test__mulsf3(0xc0400001, 0x3f800001, 0xc0400003);243  status |= test__mulsf3(0xc0800000, 0x7e7fffff, 0xff7fffff);244  status |= test__mulsf3(0xc0800000, 0x80000000, 0x00000000);245  status |= test__mulsf3(0xc0800000, 0xfe7fffff, 0x7f7fffff);246  status |= test__mulsf3(0xc0800000, 0xff800000, 0x7f800000);247  status |= test__mulsf3(0xc09ffffe, 0xff000000, 0x7f800000);248  status |= test__mulsf3(0xc09fffff, 0xbf7fffff, 0x409ffffe);249  status |= test__mulsf3(0xc0a00001, 0xbf800001, 0x40a00002);250  status |= test__mulsf3(0xc0dffff9, 0x7f000000, 0xff800000);251  status |= test__mulsf3(0xc1100000, 0x7f000000, 0xff800000);252  status |= test__mulsf3(0xc1100001, 0xff000000, 0x7f800000);253  status |= test__mulsf3(0xfe7ffff9, 0x7f000000, 0xff800000);254  status |= test__mulsf3(0xfe7ffff9, 0xc07fffff, 0x7f7ffff8);255  status |= test__mulsf3(0xfe7ffffd, 0x40800000, 0xff7ffffd);256  status |= test__mulsf3(0xfe7ffffd, 0xc0800000, 0x7f7ffffd);257  status |= test__mulsf3(0xfe7fffff, 0x00000000, 0x80000000);258  status |= test__mulsf3(0xfe7fffff, 0x40000001, 0xff000000);259  status |= test__mulsf3(0xfe7fffff, 0x7f800000, 0xff800000);260  status |= test__mulsf3(0xfe800000, 0x00000000, 0x80000000);261  status |= test__mulsf3(0xfe800000, 0x7f800000, 0xff800000);262  status |= test__mulsf3(0xfefffff7, 0x7e800001, 0xff800000);263  status |= test__mulsf3(0xfeffffff, 0x3f800001, 0xff000000);264  status |= test__mulsf3(0xfeffffff, 0x80000000, 0x00000000);265  status |= test__mulsf3(0xff000005, 0xff000001, 0x7f800000);266  status |= test__mulsf3(0xff7ffffd, 0x7f000000, 0xff800000);267  status |= test__mulsf3(0xff7ffffd, 0xc0400001, 0x7f800000);268  status |= test__mulsf3(0xff7ffffd, 0xff000001, 0x7f800000);269  status |= test__mulsf3(0xff7fffff, 0x80000000, 0x00000000);270  status |= test__mulsf3(0xff7fffff, 0xff7fffff, 0x7f800000);271  status |= test__mulsf3(0xff7fffff, 0xff800000, 0x7f800000);272  status |= test__mulsf3(0xff800000, 0x40c00000, 0xff800000);273  status |= test__mulsf3(0xff800000, 0x7f800000, 0xff800000);274  status |= test__mulsf3(0xff800000, 0x80000004, 0x7f800000);275  status |= test__mulsf3(0xff800000, 0x80800000, 0x7f800000);276  status |= test__mulsf3(0xff800000, 0xc1000000, 0x7f800000);277  status |= test__mulsf3(0xff800000, 0xfe800000, 0x7f800000);278  status |= test__mulsf3(0xff800000, 0xff800000, 0x7f800000);279  status |= test__mulsf3(0x3089705f, 0x0ef36390, 0x0041558f);280  status |= test__mulsf3(0x3089705f, 0x0e936390, 0x0027907d);281  status |= test__mulsf3(0x3109705f, 0x0ef36390, 0x0082ab1e);282  status |= test__mulsf3(0x3109705f, 0x0e936390, 0x004f20fa);283  status |= test__mulsf3(0x3189705f, 0x0ef36390, 0x0102ab1e);284  status |= test__mulsf3(0x3189705f, 0x0e936390, 0x009e41f5);285  status |= test__mulsf3(0xb089705f, 0x0ef36390, 0x8041558f);286  status |= test__mulsf3(0xb089705f, 0x0e936390, 0x8027907d);287  status |= test__mulsf3(0xb109705f, 0x0ef36390, 0x8082ab1e);288  status |= test__mulsf3(0xb109705f, 0x0e936390, 0x804f20fa);289  status |= test__mulsf3(0xb189705f, 0x0ef36390, 0x8102ab1e);290  status |= test__mulsf3(0xb189705f, 0x0e936390, 0x809e41f5);291  status |= test__mulsf3(0x3089705f, 0x8ef36390, 0x8041558f);292  status |= test__mulsf3(0x3089705f, 0x8e936390, 0x8027907d);293  status |= test__mulsf3(0x3109705f, 0x8ef36390, 0x8082ab1e);294  status |= test__mulsf3(0x3109705f, 0x8e936390, 0x804f20fa);295  status |= test__mulsf3(0x3189705f, 0x8ef36390, 0x8102ab1e);296  status |= test__mulsf3(0x3189705f, 0x8e936390, 0x809e41f5);297  status |= test__mulsf3(0xb089705f, 0x8ef36390, 0x0041558f);298  status |= test__mulsf3(0xb089705f, 0x8e936390, 0x0027907d);299  status |= test__mulsf3(0xb109705f, 0x8ef36390, 0x0082ab1e);300  status |= test__mulsf3(0xb109705f, 0x8e936390, 0x004f20fa);301  status |= test__mulsf3(0xb189705f, 0x8ef36390, 0x0102ab1e);302  status |= test__mulsf3(0xb189705f, 0x8e936390, 0x009e41f5);303  status |= test__mulsf3(0x1f800001, 0x1fc00000, 0x00300000);304  status |= test__mulsf3(0x1f800003, 0x1fc00000, 0x00300001);305  status |= test__mulsf3(0x1f800001, 0x1fc00800, 0x00300200);306  status |= test__mulsf3(0x1f800003, 0x1fc00800, 0x00300201);307  status |= test__mulsf3(0x36e4588a, 0x29b47cbd, 0x2120fd85);308  status |= test__mulsf3(0x3fea3b26, 0x3f400000, 0x3fafac5c);309  status |= test__mulsf3(0x6fea3b26, 0x4f400000, 0x7f800000);310  status |= test__mulsf3(0x20ea3b26, 0x1ec00000, 0x0057d62e);311  status |= test__mulsf3(0x3f8f11bb, 0x3fc00000, 0x3fd69a98);312  status |= test__mulsf3(0x6f8f11bb, 0x4fc00000, 0x7f800000);313  status |= test__mulsf3(0x208f11bb, 0x1f400000, 0x006b4d4c);314  status |= test__mulsf3(0x3f8f11bb, 0x3f800000, 0x3f8f11bb);315  status |= test__mulsf3(0x6f8f11bb, 0x4f800000, 0x7f800000);316  status |= test__mulsf3(0x208f11bb, 0x1f000000, 0x004788de);317  status |= test__mulsf3(0x3f8f11bb, 0x3fd7f48d, 0x3ff1611f);318  status |= test__mulsf3(0x6f8f11bb, 0x4fd7f48d, 0x7f800000);319  status |= test__mulsf3(0x208f11bb, 0x1f57f48d, 0x0078b090);320  status |= test__mulsf3(0x3f8f11bb, 0x3fa80b73, 0x3fbbd412);321  status |= test__mulsf3(0x6f8f11bb, 0x4fa80b73, 0x7f800000);322  status |= test__mulsf3(0x208f11bb, 0x1f280b73, 0x005dea09);323  status |= test__mulsf3(0x3f8f11bb, 0x3f97f48d, 0x3fa9d842);324  status |= test__mulsf3(0x6f8f11bb, 0x4f97f48d, 0x7f800000);325  status |= test__mulsf3(0x208f11bb, 0x1f17f48d, 0x0054ec21);326  status |= test__mulsf3(0x3f8f11bb, 0x3f680b73, 0x3f81ae78);327  status |= test__mulsf3(0x6f8f11bb, 0x4f680b73, 0x7f800000);328  status |= test__mulsf3(0x208f11bb, 0x1ee80b73, 0x0040d73c);329  status |= test__mulsf3(0x3fff5dd8, 0x3f600000, 0x3fdf721d);330  status |= test__mulsf3(0x6fff5dd8, 0x4f600000, 0x7f800000);331  status |= test__mulsf3(0x20ff5dd8, 0x1ee00000, 0x006fb90e);332  status |= test__mulsf3(0x3fff5dd8, 0x3f100000, 0x3f8fa4ca);333  status |= test__mulsf3(0x6fff5dd8, 0x4f100000, 0x7f800000);334  status |= test__mulsf3(0x20ff5dd8, 0x1e900000, 0x0047d265);335  status |= test__mulsf3(0x3fffe96b, 0x3f7efb43, 0x3ffee4c5);336  status |= test__mulsf3(0x6fffe96b, 0x4f7efb43, 0x7f800000);337  status |= test__mulsf3(0x20ffe96b, 0x1efefb43, 0x007f7263);338  status |= test__mulsf3(0x3fffe96b, 0x3f0104bd, 0x3f80f95b);339  status |= test__mulsf3(0x6fffe96b, 0x4f0104bd, 0x7f800000);340  status |= test__mulsf3(0x20ffe96b, 0x1e8104bd, 0x00407cae);341  status |= test__mulsf3(0x3f8fbbb7, 0x3fa6edf9, 0x3fbb72aa);342  status |= test__mulsf3(0x6f8fbbb7, 0x4fa6edf9, 0x7f800000);343  status |= test__mulsf3(0x208fbbb7, 0x1f26edf9, 0x005db955);344  status |= test__mulsf3(0x3f8fbbb7, 0x3fd91207, 0x3ff3c07b);345  status |= test__mulsf3(0x6f8fbbb7, 0x4fd91207, 0x7f800000);346  status |= test__mulsf3(0x208fbbb7, 0x1f591207, 0x0079e03d);347  status |= test__mulsf3(0x3f8fbbb7, 0x3f991207, 0x3fabe29f);348  status |= test__mulsf3(0x6f8fbbb7, 0x4f991207, 0x7f800000);349  status |= test__mulsf3(0x208fbbb7, 0x1f191207, 0x0055f150);350  status |= test__mulsf3(0x3f8fbbb7, 0x3f66edf9, 0x3f81a843);351  status |= test__mulsf3(0x6f8fbbb7, 0x4f66edf9, 0x7f800000);352  status |= test__mulsf3(0x208fbbb7, 0x1ee6edf9, 0x0040d421);353  status |= test__mulsf3(0x3fdb62f3, 0x3f7879c5, 0x3fd4f036);354  status |= test__mulsf3(0x6fdb62f3, 0x4f7879c5, 0x7f800000);355  status |= test__mulsf3(0x20db62f3, 0x1ef879c5, 0x006a781b);356  status |= test__mulsf3(0x3faaea45, 0x3f8b6773, 0x3fba2489);357  status |= test__mulsf3(0x6faaea45, 0x4f8b6773, 0x7f800000);358  status |= test__mulsf3(0x20aaea45, 0x1f0b6773, 0x005d1244);359  status |= test__mulsf3(0x3fafa7ec, 0x3f900000, 0x3fc59cea);360  status |= test__mulsf3(0x6fafa7ec, 0x4f900000, 0x7f800000);361  status |= test__mulsf3(0x20afa7ec, 0x1f100000, 0x0062ce75);362  status |= test__mulsf3(0x3fcf8c8d, 0x3f271645, 0x3f8776be);363  status |= test__mulsf3(0x6fcf8c8d, 0x4f271645, 0x7f800000);364  status |= test__mulsf3(0x20cf8c8d, 0x1ea71645, 0x0043bb5f);365  status |= test__mulsf3(0x3fc173ef, 0x3f901b0f, 0x3fd9cb52);366  status |= test__mulsf3(0x6fc173ef, 0x4f901b0f, 0x7f800000);367  status |= test__mulsf3(0x20c173ef, 0x1f101b0f, 0x006ce5a9);368  status |= test__mulsf3(0x3fb48d33, 0x3f4a35fb, 0x3f8e9d7d);369  status |= test__mulsf3(0x6fb48d33, 0x4f4a35fb, 0x7f800000);370  status |= test__mulsf3(0x20b48d33, 0x1eca35fb, 0x00474ebe);371  status |= test__mulsf3(0x3fc6f87b, 0x3f65d94d, 0x3fb2a52a);372  status |= test__mulsf3(0x6fc6f87b, 0x4f65d94d, 0x7f800000);373  status |= test__mulsf3(0x20c6f87b, 0x1ee5d94d, 0x00595295);374  status |= test__mulsf3(0x3f860ae7, 0x3f969729, 0x3f9db312);375  status |= test__mulsf3(0x6f860ae7, 0x4f969729, 0x7f800000);376  status |= test__mulsf3(0x20860ae7, 0x1f169729, 0x004ed989);377  status |= test__mulsf3(0x3f860ae7, 0x3fc00000, 0x3fc9105a);378  status |= test__mulsf3(0x6f860ae7, 0x4fc00000, 0x7f800000);379  status |= test__mulsf3(0x20860ae7, 0x1f400000, 0x0064882d);380  status |= test__mulsf3(0x3f860ae7, 0x3fe968d7, 0x3ff46da3);381  status |= test__mulsf3(0x6f860ae7, 0x4fe968d7, 0x7f800000);382  status |= test__mulsf3(0x20860ae7, 0x1f6968d7, 0x007a36d1);383  status |= test__mulsf3(0x3f860ae7, 0x3f800000, 0x3f860ae7);384  status |= test__mulsf3(0x6f860ae7, 0x4f800000, 0x7f800000);385  status |= test__mulsf3(0x20860ae7, 0x1f000000, 0x00430574);386  status |= test__mulsf3(0x3f860ae7, 0x3fa968d7, 0x3fb1682f);387  status |= test__mulsf3(0x6f860ae7, 0x4fa968d7, 0x7f800000);388  status |= test__mulsf3(0x20860ae7, 0x1f2968d7, 0x0058b418);389  status |= test__mulsf3(0x3f860ae7, 0x3fd69729, 0x3fe0b886);390  status |= test__mulsf3(0x6f860ae7, 0x4fd69729, 0x7f800000);391  status |= test__mulsf3(0x20860ae7, 0x1f569729, 0x00705c43);392  status |= test__mulsf3(0x3f9aecdd, 0x3fb14b75, 0x3fd696de);393  status |= test__mulsf3(0x6f9aecdd, 0x4fb14b75, 0x7f800000);394  status |= test__mulsf3(0x209aecdd, 0x1f314b75, 0x006b4b6f);395  status |= test__mulsf3(0x3f9aecdd, 0x3fceb48b, 0x3ffa2fb9);396  status |= test__mulsf3(0x6f9aecdd, 0x4fceb48b, 0x7f800000);397  status |= test__mulsf3(0x209aecdd, 0x1f4eb48b, 0x007d17dc);398  status |= test__mulsf3(0x3f9aecdd, 0x3fc00000, 0x3fe8634c);399  status |= test__mulsf3(0x6f9aecdd, 0x4fc00000, 0x7f800000);400  status |= test__mulsf3(0x209aecdd, 0x1f400000, 0x007431a6);401  status |= test__mulsf3(0x3fd65dc6, 0x3f400000, 0x3fa0c654);402  status |= test__mulsf3(0x6fd65dc6, 0x4f400000, 0x7f800000);403  status |= test__mulsf3(0x20d65dc6, 0x1ec00000, 0x0050632a);404  status |= test__mulsf3(0x3feecf03, 0x3f5f93ab, 0x3fd09014);405  status |= test__mulsf3(0x6feecf03, 0x4f5f93ab, 0x7f800000);406  status |= test__mulsf3(0x20eecf03, 0x1edf93ab, 0x0068480a);407  status |= test__mulsf3(0x3feecf03, 0x3f206c55, 0x3f95a670);408  status |= test__mulsf3(0x6feecf03, 0x4f206c55, 0x7f800000);409  status |= test__mulsf3(0x20eecf03, 0x1ea06c55, 0x004ad338);410  status |= test__mulsf3(0x3f98feed, 0x3f60f11b, 0x3f866f27);411  status |= test__mulsf3(0x6f98feed, 0x4f60f11b, 0x7f800000);412  status |= test__mulsf3(0x2098feed, 0x1ee0f11b, 0x00433794);413  status |= test__mulsf3(0x3f9a1b9d, 0x3f9c42b5, 0x3fbc21f8);414  status |= test__mulsf3(0x6f9a1b9d, 0x4f9c42b5, 0x7f800000);415  status |= test__mulsf3(0x209a1b9d, 0x1f1c42b5, 0x005e10fc);416  status |= test__mulsf3(0x3f9a1b9d, 0x3f5c42b5, 0x3f8497e3);417  status |= test__mulsf3(0x6f9a1b9d, 0x4f5c42b5, 0x7f800000);418  status |= test__mulsf3(0x209a1b9d, 0x1edc42b5, 0x00424bf2);419  status |= test__mulsf3(0x3f947044, 0x3f600000, 0x3f81e23c);420  status |= test__mulsf3(0x6f947044, 0x4f600000, 0x7f800000);421  status |= test__mulsf3(0x20947044, 0x1ee00000, 0x0040f11e);422  status |= test__mulsf3(0x3fa3fb77, 0x3f6eb1b9, 0x3f98e5a0);423  status |= test__mulsf3(0x6fa3fb77, 0x4f6eb1b9, 0x7f800000);424  status |= test__mulsf3(0x20a3fb77, 0x1eeeb1b9, 0x004c72d0);425  status |= test__mulsf3(0x3fb291df, 0x3f466a1f, 0x3f8a66d9);426  status |= test__mulsf3(0x6fb291df, 0x4f466a1f, 0x7f800000);427  status |= test__mulsf3(0x20b291df, 0x1ec66a1f, 0x0045336c);428  status |= test__mulsf3(0x3fde13d5, 0x3f6b7283, 0x3fcc3f8b);429  status |= test__mulsf3(0x6fde13d5, 0x4f6b7283, 0x7f800000);430  status |= test__mulsf3(0x20de13d5, 0x1eeb7283, 0x00661fc5);431  status |= test__mulsf3(0x3fd5b211, 0x3f80810f, 0x3fd68987);432  status |= test__mulsf3(0x6fd5b211, 0x4f80810f, 0x7f800000);433  status |= test__mulsf3(0x20d5b211, 0x1f00810f, 0x006b44c4);434  status |= test__mulsf3(0x3fd5b211, 0x3f3f7ef1, 0x3f9fd9d2);435  status |= test__mulsf3(0x6fd5b211, 0x4f3f7ef1, 0x7f800000);436  status |= test__mulsf3(0x20d5b211, 0x1ebf7ef1, 0x004fece9);437  status |= test__mulsf3(0x3fadfbc4, 0x3f400000, 0x3f827cd3);438  status |= test__mulsf3(0x6fadfbc4, 0x4f400000, 0x7f800000);439  status |= test__mulsf3(0x20adfbc4, 0x1ec00000, 0x00413e6a);440  status |= test__mulsf3(0x3fd0ef03, 0x3f800000, 0x3fd0ef03);441  status |= test__mulsf3(0x6fd0ef03, 0x4f800000, 0x7f800000);442  status |= test__mulsf3(0x20d0ef03, 0x1f000000, 0x00687782);443  status |= test__mulsf3(0x3fd0ef03, 0x3f8673ab, 0x3fdb7705);444  status |= test__mulsf3(0x6fd0ef03, 0x4f8673ab, 0x7f800000);445  status |= test__mulsf3(0x20d0ef03, 0x1f0673ab, 0x006dbb83);446  status |= test__mulsf3(0x3fd0ef03, 0x3f798c55, 0x3fcbab02);447  status |= test__mulsf3(0x6fd0ef03, 0x4f798c55, 0x7f800000);448  status |= test__mulsf3(0x20d0ef03, 0x1ef98c55, 0x0065d581);449  status |= test__mulsf3(0x3fdd1181, 0x3f8ad17f, 0x3fefc0b1);450  status |= test__mulsf3(0x6fdd1181, 0x4f8ad17f, 0x7f800000);451  status |= test__mulsf3(0x20dd1181, 0x1f0ad17f, 0x0077e058);452  status |= test__mulsf3(0x3fdd1181, 0x3f752e81, 0x3fd3b9e9);453  status |= test__mulsf3(0x6fdd1181, 0x4f752e81, 0x7f800000);454  status |= test__mulsf3(0x20dd1181, 0x1ef52e81, 0x0069dcf5);455  status |= test__mulsf3(0x3f92efc6, 0x3fa00000, 0x3fb7abb8);456  status |= test__mulsf3(0x6f92efc6, 0x4fa00000, 0x7f800000);457  status |= test__mulsf3(0x2092efc6, 0x1f200000, 0x005bd5dc);458  status |= test__mulsf3(0x3fdcefe6, 0x3f400000, 0x3fa5b3ec);459  status |= test__mulsf3(0x6fdcefe6, 0x4f400000, 0x7f800000);460  status |= test__mulsf3(0x20dcefe6, 0x1ec00000, 0x0052d9f6);461  status |= test__mulsf3(0x3fad6507, 0x3fa2f8b7, 0x3fdcc4c9);462  status |= test__mulsf3(0x6fad6507, 0x4fa2f8b7, 0x7f800000);463  status |= test__mulsf3(0x20ad6507, 0x1f22f8b7, 0x006e6264);464  status |= test__mulsf3(0x3fad6507, 0x3f62f8b7, 0x3f99bba6);465  status |= test__mulsf3(0x6fad6507, 0x4f62f8b7, 0x7f800000);466  status |= test__mulsf3(0x20ad6507, 0x1ee2f8b7, 0x004cddd3);467  status |= test__mulsf3(0x3fbfde6b, 0x3f8721bd, 0x3fca8f27);468  status |= test__mulsf3(0x6fbfde6b, 0x4f8721bd, 0x7f800000);469  status |= test__mulsf3(0x20bfde6b, 0x1f0721bd, 0x00654794);470  status |= test__mulsf3(0x3fbfde6b, 0x3f4721bd, 0x3f953f2e);471  status |= test__mulsf3(0x6fbfde6b, 0x4f4721bd, 0x7f800000);472  status |= test__mulsf3(0x20bfde6b, 0x1ec721bd, 0x004a9f97);473  status |= test__mulsf3(0x3ff40db4, 0x3f400000, 0x3fb70a47);474  status |= test__mulsf3(0x6ff40db4, 0x4f400000, 0x7f800000);475  status |= test__mulsf3(0x20f40db4, 0x1ec00000, 0x005b8524);476  status |= test__mulsf3(0x3ff40db4, 0x3f600000, 0x3fd58bfe);477  status |= test__mulsf3(0x6ff40db4, 0x4f600000, 0x7f800000);478  status |= test__mulsf3(0x20f40db4, 0x1ee00000, 0x006ac5ff);479  status |= test__mulsf3(0x3f9e20d3, 0x3f90c8a5, 0x3fb2dccc);480  status |= test__mulsf3(0x6f9e20d3, 0x4f90c8a5, 0x7f800000);481  status |= test__mulsf3(0x209e20d3, 0x1f10c8a5, 0x00596e66);482  status |= test__mulsf3(0x3f9e20d3, 0x3fc00000, 0x3fed313c);483  status |= test__mulsf3(0x6f9e20d3, 0x4fc00000, 0x7f800000);484  status |= test__mulsf3(0x209e20d3, 0x1f400000, 0x0076989e);485  status |= test__mulsf3(0x3f9e20d3, 0x3f50c8a5, 0x3f80f69b);486  status |= test__mulsf3(0x6f9e20d3, 0x4f50c8a5, 0x7f800000);487  status |= test__mulsf3(0x209e20d3, 0x1ed0c8a5, 0x00407b4d);488  status |= test__mulsf3(0x3f82e641, 0x3f8fd63f, 0x3f931856);489  status |= test__mulsf3(0x6f82e641, 0x4f8fd63f, 0x7f800000);490  status |= test__mulsf3(0x2082e641, 0x1f0fd63f, 0x00498c2b);491  status |= test__mulsf3(0x3f9a1901, 0x3f96e701, 0x3fb5ab68);492  status |= test__mulsf3(0x6f9a1901, 0x4f96e701, 0x7f800000);493  status |= test__mulsf3(0x209a1901, 0x1f16e701, 0x005ad5b4);494  status |= test__mulsf3(0x3fa21aa1, 0x3f7c4961, 0x3f9fc0ae);495  status |= test__mulsf3(0x6fa21aa1, 0x4f7c4961, 0x7f800000);496  status |= test__mulsf3(0x20a21aa1, 0x1efc4961, 0x004fe057);497  status |= test__mulsf3(0x3fcd0767, 0x3f782457, 0x3fc6bc47);498  status |= test__mulsf3(0x6fcd0767, 0x4f782457, 0x7f800000);499  status |= test__mulsf3(0x20cd0767, 0x1ef82457, 0x00635e23);500  status |= test__mulsf3(0x3fb875e1, 0x3f968e21, 0x3fd8f6f6);501  status |= test__mulsf3(0x6fb875e1, 0x4f968e21, 0x7f800000);502  status |= test__mulsf3(0x20b875e1, 0x1f168e21, 0x006c7b7b);503  status |= test__mulsf3(0x3fc2f0d7, 0x3f5efd19, 0x3fa9cd95);504  status |= test__mulsf3(0x6fc2f0d7, 0x4f5efd19, 0x7f800000);505  status |= test__mulsf3(0x20c2f0d7, 0x1edefd19, 0x0054e6cb);506  status |= test__mulsf3(0x7f7ffffe, 0x3f800001, 0x7f800000);507  status |= test__mulsf3(0x00000003, 0xc00fffff, 0x80000007);508  status |= test__mulsf3(0x00000003, 0x400fffff, 0x00000007);509  status |= test__mulsf3(0x80000003, 0xc00fffff, 0x00000007);510  status |= test__mulsf3(0x80000003, 0x400fffff, 0x80000007);511  status |= test__mulsf3(0x00000003, 0xc00ffffd, 0x80000007);512  status |= test__mulsf3(0x00000003, 0x400ffffd, 0x00000007);513  status |= test__mulsf3(0x80000003, 0xc00ffffd, 0x00000007);514  status |= test__mulsf3(0x80000003, 0x400ffffd, 0x80000007);515  status |= test__mulsf3(0x3e00007f, 0x017c0000, 0x003f003f);516  status |= test__mulsf3(0xcf7fff00, 0xc0ffff00, 0x50fffe00);517  status |= test__mulsf3(0x3fdf7f00, 0x3fffff00, 0x405f7e21);518  status |= test__mulsf3(0x19b92144, 0x1a310000, 0x00000001);519  status |= test__mulsf3(0x19ffc008, 0x1a002004, 0x00000001);520  status |= test__mulsf3(0x7f7ffff0, 0xc0000008, 0xff800000);521 522  // Test that the result of an operation is a NaN at all when it should be.523  //524  // In most configurations these tests' results are checked compared using525  // compareResultF, so we set all the answers to the canonical NaN 0x7fc00000,526  // which causes compareResultF to accept any NaN encoding. We also use the527  // same value as the input NaN in tests that have one, so that even in528  // EXPECT_EXACT_RESULTS mode these tests should pass, because 0x7fc00000 is529  // still the exact expected NaN.530  status |= test__mulsf3(0x7f800000, 0x00000000, 0x7fc00000);531  status |= test__mulsf3(0x7f800000, 0x80000000, 0x7fc00000);532  status |= test__mulsf3(0x80000000, 0x7f800000, 0x7fc00000);533  status |= test__mulsf3(0x80000000, 0xff800000, 0x7fc00000);534  status |= test__mulsf3(0x3f800000, 0x7fc00000, 0x7fc00000);535  status |= test__mulsf3(0x7fc00000, 0x3f800000, 0x7fc00000);536  status |= test__mulsf3(0x7fc00000, 0x7fc00000, 0x7fc00000);537 538#ifdef ARM_NAN_HANDLING539  // Tests specific to the NaN handling of Arm hardware, mimicked by540  // arm/mulsf3.S:541  //542  //  - a quiet NaN is distinguished by the top mantissa bit being 1543  //544  //  - if a signalling NaN appears in the input, the output quiet NaN is545  //    obtained by setting its top mantissa bit and leaving everything else546  //    unchanged547  //548  //  - if both operands are signalling NaNs then the output NaN is derived549  //    from the first operand550  //551  //  - if both operands are quiet NaNs then the output NaN is the first552  //    operand553  //554  //  - invalid operations not involving an input NaN return the quiet555  //    NaN with fewest bits set, 0x7fc00000.556 557  status |= test__mulsf3(0x00000000, 0x7fad4be3, 0x7fed4be3);558  status |= test__mulsf3(0x00000000, 0x7fdf48c7, 0x7fdf48c7);559  status |= test__mulsf3(0x00000001, 0x7f970eba, 0x7fd70eba);560  status |= test__mulsf3(0x00000001, 0x7fc35716, 0x7fc35716);561  status |= test__mulsf3(0x007fffff, 0x7fbf52d6, 0x7fff52d6);562  status |= test__mulsf3(0x007fffff, 0x7fc7a2df, 0x7fc7a2df);563  status |= test__mulsf3(0x3f800000, 0x7f987a85, 0x7fd87a85);564  status |= test__mulsf3(0x3f800000, 0x7fc50124, 0x7fc50124);565  status |= test__mulsf3(0x7f7fffff, 0x7f95fd6f, 0x7fd5fd6f);566  status |= test__mulsf3(0x7f7fffff, 0x7ffc28dc, 0x7ffc28dc);567  status |= test__mulsf3(0x7f800000, 0x00000000, 0x7fc00000);568  status |= test__mulsf3(0x7f800000, 0x7f8dd790, 0x7fcdd790);569  status |= test__mulsf3(0x7f800000, 0x7fd2ef2b, 0x7fd2ef2b);570  status |= test__mulsf3(0x7f800000, 0x80000000, 0x7fc00000);571  status |= test__mulsf3(0x7f99b09d, 0x00000000, 0x7fd9b09d);572  status |= test__mulsf3(0x7f93541e, 0x00000001, 0x7fd3541e);573  status |= test__mulsf3(0x7f9fc002, 0x007fffff, 0x7fdfc002);574  status |= test__mulsf3(0x7fb5db77, 0x3f800000, 0x7ff5db77);575  status |= test__mulsf3(0x7f9f5d92, 0x7f7fffff, 0x7fdf5d92);576  status |= test__mulsf3(0x7fac7a36, 0x7f800000, 0x7fec7a36);577  status |= test__mulsf3(0x7fb42008, 0x7fb0ee07, 0x7ff42008);578  status |= test__mulsf3(0x7f8bd740, 0x7fc7aaf1, 0x7fcbd740);579  status |= test__mulsf3(0x7f9bb57b, 0x80000000, 0x7fdbb57b);580  status |= test__mulsf3(0x7f951a78, 0x80000001, 0x7fd51a78);581  status |= test__mulsf3(0x7f9ba63b, 0x807fffff, 0x7fdba63b);582  status |= test__mulsf3(0x7f89463c, 0xbf800000, 0x7fc9463c);583  status |= test__mulsf3(0x7fb63563, 0xff7fffff, 0x7ff63563);584  status |= test__mulsf3(0x7f90886e, 0xff800000, 0x7fd0886e);585  status |= test__mulsf3(0x7fe8c15e, 0x00000000, 0x7fe8c15e);586  status |= test__mulsf3(0x7fe915ae, 0x00000001, 0x7fe915ae);587  status |= test__mulsf3(0x7ffa9b42, 0x007fffff, 0x7ffa9b42);588  status |= test__mulsf3(0x7fdad0f5, 0x3f800000, 0x7fdad0f5);589  status |= test__mulsf3(0x7fd10dcb, 0x7f7fffff, 0x7fd10dcb);590  status |= test__mulsf3(0x7fd08e8a, 0x7f800000, 0x7fd08e8a);591  status |= test__mulsf3(0x7fc3a9e6, 0x7f91a816, 0x7fd1a816);592  status |= test__mulsf3(0x7fdb229c, 0x7fc26c68, 0x7fdb229c);593  status |= test__mulsf3(0x7fc9f6bb, 0x80000000, 0x7fc9f6bb);594  status |= test__mulsf3(0x7ffa178b, 0x80000001, 0x7ffa178b);595  status |= test__mulsf3(0x7fef2a0b, 0x807fffff, 0x7fef2a0b);596  status |= test__mulsf3(0x7ffc885b, 0xbf800000, 0x7ffc885b);597  status |= test__mulsf3(0x7fd26e8c, 0xff7fffff, 0x7fd26e8c);598  status |= test__mulsf3(0x7fc55329, 0xff800000, 0x7fc55329);599  status |= test__mulsf3(0x80000000, 0x7f800000, 0x7fc00000);600  status |= test__mulsf3(0x80000000, 0x7fa833ae, 0x7fe833ae);601  status |= test__mulsf3(0x80000000, 0x7fc4df63, 0x7fc4df63);602  status |= test__mulsf3(0x80000000, 0xff800000, 0x7fc00000);603  status |= test__mulsf3(0x80000001, 0x7f98827d, 0x7fd8827d);604  status |= test__mulsf3(0x80000001, 0x7fd7acc5, 0x7fd7acc5);605  status |= test__mulsf3(0x807fffff, 0x7fad19c0, 0x7fed19c0);606  status |= test__mulsf3(0x807fffff, 0x7ffe1907, 0x7ffe1907);607  status |= test__mulsf3(0xbf800000, 0x7fa95487, 0x7fe95487);608  status |= test__mulsf3(0xbf800000, 0x7fd2bbee, 0x7fd2bbee);609  status |= test__mulsf3(0xff7fffff, 0x7f86ba21, 0x7fc6ba21);610  status |= test__mulsf3(0xff7fffff, 0x7feb00d7, 0x7feb00d7);611  status |= test__mulsf3(0xff800000, 0x7f857fdc, 0x7fc57fdc);612  status |= test__mulsf3(0xff800000, 0x7fde0397, 0x7fde0397);613#endif // ARM_NAN_HANDLING614 615  return status;616}617