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