Lines Matching refs:APFloat
24 llvm::APFloat F(0.0); in convertToErrorFromString()
26 F.convertFromString(Str, llvm::APFloat::rmNearestTiesToEven); in convertToErrorFromString()
32 llvm::APFloat F(0.0); in convertToDoubleFromString()
34 F.convertFromString(Str, llvm::APFloat::rmNearestTiesToEven); in convertToDoubleFromString()
43 llvm::APFloat F(d); in convertToString()
55 EXPECT_FALSE(APFloat::getQNaN(APFloat::IEEEsingle(), false).isSignaling()); in TEST()
56 EXPECT_FALSE(APFloat::getQNaN(APFloat::IEEEsingle(), true).isSignaling()); in TEST()
57 EXPECT_FALSE(APFloat::getQNaN(APFloat::IEEEsingle(), false, &payload).isSignaling()); in TEST()
58 EXPECT_FALSE(APFloat::getQNaN(APFloat::IEEEsingle(), true, &payload).isSignaling()); in TEST()
59 EXPECT_TRUE(APFloat::getSNaN(APFloat::IEEEsingle(), false).isSignaling()); in TEST()
60 EXPECT_TRUE(APFloat::getSNaN(APFloat::IEEEsingle(), true).isSignaling()); in TEST()
61 EXPECT_TRUE(APFloat::getSNaN(APFloat::IEEEsingle(), false, &payload).isSignaling()); in TEST()
62 EXPECT_TRUE(APFloat::getSNaN(APFloat::IEEEsingle(), true, &payload).isSignaling()); in TEST()
67 APFloat test(APFloat::IEEEquad(), APFloat::uninitialized); in TEST()
68 APFloat expected(APFloat::IEEEquad(), APFloat::uninitialized); in TEST()
86 test = APFloat::getInf(APFloat::IEEEquad(), false); in TEST()
87 expected = APFloat::getInf(APFloat::IEEEquad(), false); in TEST()
88 EXPECT_EQ(test.next(false), APFloat::opOK); in TEST()
94 test = APFloat::getInf(APFloat::IEEEquad(), false); in TEST()
95 expected = APFloat::getLargest(APFloat::IEEEquad(), false); in TEST()
96 EXPECT_EQ(test.next(true), APFloat::opOK); in TEST()
101 test = APFloat::getInf(APFloat::IEEEquad(), true); in TEST()
102 expected = APFloat::getLargest(APFloat::IEEEquad(), true); in TEST()
103 EXPECT_EQ(test.next(false), APFloat::opOK); in TEST()
108 test = APFloat::getInf(APFloat::IEEEquad(), true); in TEST()
109 expected = APFloat::getInf(APFloat::IEEEquad(), true); in TEST()
110 EXPECT_EQ(test.next(true), APFloat::opOK); in TEST()
115 test = APFloat::getLargest(APFloat::IEEEquad(), false); in TEST()
116 expected = APFloat::getInf(APFloat::IEEEquad(), false); in TEST()
117 EXPECT_EQ(test.next(false), APFloat::opOK); in TEST()
124 test = APFloat::getLargest(APFloat::IEEEquad(), false); in TEST()
125 expected = APFloat(APFloat::IEEEquad(), in TEST()
127 EXPECT_EQ(test.next(true), APFloat::opOK); in TEST()
132 test = APFloat::getLargest(APFloat::IEEEquad(), true); in TEST()
133 expected = APFloat(APFloat::IEEEquad(), in TEST()
135 EXPECT_EQ(test.next(false), APFloat::opOK); in TEST()
139 test = APFloat::getLargest(APFloat::IEEEquad(), true); in TEST()
140 expected = APFloat::getInf(APFloat::IEEEquad(), true); in TEST()
141 EXPECT_EQ(test.next(true), APFloat::opOK); in TEST()
146 test = APFloat(APFloat::IEEEquad(), "0x0.0000000000000000000000000001p-16382"); in TEST()
147 expected = APFloat(APFloat::IEEEquad(), in TEST()
149 EXPECT_EQ(test.next(false), APFloat::opOK); in TEST()
153 test = APFloat(APFloat::IEEEquad(), "0x0.0000000000000000000000000001p-16382"); in TEST()
154 expected = APFloat::getZero(APFloat::IEEEquad(), false); in TEST()
155 EXPECT_EQ(test.next(true), APFloat::opOK); in TEST()
160 test = APFloat(APFloat::IEEEquad(), "-0x0.0000000000000000000000000001p-16382"); in TEST()
161 expected = APFloat::getZero(APFloat::IEEEquad(), true); in TEST()
162 EXPECT_EQ(test.next(false), APFloat::opOK); in TEST()
167 test = APFloat(APFloat::IEEEquad(), "-0x0.0000000000000000000000000001p-16382"); in TEST()
168 expected = APFloat(APFloat::IEEEquad(), in TEST()
170 EXPECT_EQ(test.next(true), APFloat::opOK); in TEST()
174 test = APFloat::getQNaN(APFloat::IEEEquad(), false); in TEST()
175 expected = APFloat::getQNaN(APFloat::IEEEquad(), false); in TEST()
176 EXPECT_EQ(test.next(false), APFloat::opOK); in TEST()
180 test = APFloat::getQNaN(APFloat::IEEEquad(), false); in TEST()
181 expected = APFloat::getQNaN(APFloat::IEEEquad(), false); in TEST()
182 EXPECT_EQ(test.next(true), APFloat::opOK); in TEST()
186 test = APFloat::getSNaN(APFloat::IEEEquad(), false); in TEST()
187 expected = APFloat::getQNaN(APFloat::IEEEquad(), false); in TEST()
188 EXPECT_EQ(test.next(false), APFloat::opInvalidOp); in TEST()
192 test = APFloat::getSNaN(APFloat::IEEEquad(), false); in TEST()
193 expected = APFloat::getQNaN(APFloat::IEEEquad(), false); in TEST()
194 EXPECT_EQ(test.next(true), APFloat::opInvalidOp); in TEST()
198 test = APFloat::getZero(APFloat::IEEEquad(), false); in TEST()
199 expected = APFloat::getSmallest(APFloat::IEEEquad(), false); in TEST()
200 EXPECT_EQ(test.next(false), APFloat::opOK); in TEST()
204 test = APFloat::getZero(APFloat::IEEEquad(), false); in TEST()
205 expected = APFloat::getSmallest(APFloat::IEEEquad(), true); in TEST()
206 EXPECT_EQ(test.next(true), APFloat::opOK); in TEST()
210 test = APFloat::getZero(APFloat::IEEEquad(), true); in TEST()
211 expected = APFloat::getSmallest(APFloat::IEEEquad(), false); in TEST()
212 EXPECT_EQ(test.next(false), APFloat::opOK); in TEST()
216 test = APFloat::getZero(APFloat::IEEEquad(), true); in TEST()
217 expected = APFloat::getSmallest(APFloat::IEEEquad(), true); in TEST()
218 EXPECT_EQ(test.next(true), APFloat::opOK); in TEST()
230 test = APFloat(APFloat::IEEEquad(), "0x0.ffffffffffffffffffffffffffffp-16382"); in TEST()
231 expected = APFloat(APFloat::IEEEquad(), in TEST()
233 EXPECT_EQ(test.next(false), APFloat::opOK); in TEST()
238 test = APFloat(APFloat::IEEEquad(), in TEST()
240 expected = APFloat(APFloat::IEEEquad(), in TEST()
242 EXPECT_EQ(test.next(true), APFloat::opOK); in TEST()
247 test = APFloat(APFloat::IEEEquad(), in TEST()
249 expected = APFloat(APFloat::IEEEquad(), in TEST()
251 EXPECT_EQ(test.next(false), APFloat::opOK); in TEST()
256 test = APFloat(APFloat::IEEEquad(), in TEST()
258 expected = APFloat(APFloat::IEEEquad(), in TEST()
260 EXPECT_EQ(test.next(true), APFloat::opOK); in TEST()
271 test = APFloat(APFloat::IEEEquad(), "-0x1p+1"); in TEST()
272 expected = APFloat(APFloat::IEEEquad(), in TEST()
274 EXPECT_EQ(test.next(false), APFloat::opOK); in TEST()
278 test = APFloat(APFloat::IEEEquad(), "0x1p+1"); in TEST()
279 expected = APFloat(APFloat::IEEEquad(), "0x1.ffffffffffffffffffffffffffffp+0"); in TEST()
280 EXPECT_EQ(test.next(true), APFloat::opOK); in TEST()
284 test = APFloat(APFloat::IEEEquad(), "0x1.ffffffffffffffffffffffffffffp+0"); in TEST()
285 expected = APFloat(APFloat::IEEEquad(), "0x1p+1"); in TEST()
286 EXPECT_EQ(test.next(false), APFloat::opOK); in TEST()
290 test = APFloat(APFloat::IEEEquad(), "-0x1.ffffffffffffffffffffffffffffp+0"); in TEST()
291 expected = APFloat(APFloat::IEEEquad(), "-0x1p+1"); in TEST()
292 EXPECT_EQ(test.next(true), APFloat::opOK); in TEST()
307 test = APFloat(APFloat::IEEEquad(), "-0x0.ffffffffffffffffffffffffffffp-16382"); in TEST()
308 expected = APFloat(APFloat::IEEEquad(), in TEST()
310 EXPECT_EQ(test.next(false), APFloat::opOK); in TEST()
316 test = APFloat(APFloat::IEEEquad(), "0x0.ffffffffffffffffffffffffffffp-16382"); in TEST()
317 expected = APFloat(APFloat::IEEEquad(), in TEST()
319 EXPECT_EQ(test.next(true), APFloat::opOK); in TEST()
325 test = APFloat(APFloat::IEEEquad(), "0x1.0000000000000000000000000000p-16382"); in TEST()
326 expected = APFloat(APFloat::IEEEquad(), in TEST()
328 EXPECT_EQ(test.next(false), APFloat::opOK); in TEST()
334 test = APFloat(APFloat::IEEEquad(), "-0x1.0000000000000000000000000000p-16382"); in TEST()
335 expected = APFloat(APFloat::IEEEquad(), in TEST()
337 EXPECT_EQ(test.next(true), APFloat::opOK); in TEST()
352 test = APFloat(APFloat::IEEEquad(), "-0x1p-16381"); in TEST()
353 expected = APFloat(APFloat::IEEEquad(), in TEST()
355 EXPECT_EQ(test.next(false), APFloat::opOK); in TEST()
360 test = APFloat(APFloat::IEEEquad(), "-0x1.ffffffffffffffffffffffffffffp-16382"); in TEST()
361 expected = APFloat(APFloat::IEEEquad(), "-0x1p-16381"); in TEST()
362 EXPECT_EQ(test.next(true), APFloat::opOK); in TEST()
366 test = APFloat(APFloat::IEEEquad(), "0x1.ffffffffffffffffffffffffffffp-16382"); in TEST()
367 expected = APFloat(APFloat::IEEEquad(), "0x1p-16381"); in TEST()
368 EXPECT_EQ(test.next(false), APFloat::opOK); in TEST()
372 test = APFloat(APFloat::IEEEquad(), "0x1p-16381"); in TEST()
373 expected = APFloat(APFloat::IEEEquad(), in TEST()
375 EXPECT_EQ(test.next(true), APFloat::opOK); in TEST()
390 test = APFloat(APFloat::IEEEquad(), in TEST()
392 expected = APFloat(APFloat::IEEEquad(), in TEST()
394 EXPECT_EQ(test.next(false), APFloat::opOK); in TEST()
400 test = APFloat(APFloat::IEEEquad(), in TEST()
402 expected = APFloat(APFloat::IEEEquad(), in TEST()
404 EXPECT_EQ(test.next(true), APFloat::opOK); in TEST()
410 test = APFloat(APFloat::IEEEquad(), in TEST()
412 expected = APFloat(APFloat::IEEEquad(), in TEST()
414 EXPECT_EQ(test.next(false), APFloat::opOK); in TEST()
420 test = APFloat(APFloat::IEEEquad(), in TEST()
422 expected = APFloat(APFloat::IEEEquad(), in TEST()
424 EXPECT_EQ(test.next(true), APFloat::opOK); in TEST()
430 test = APFloat(APFloat::IEEEquad(), in TEST()
432 expected = APFloat(APFloat::IEEEquad(), in TEST()
434 EXPECT_EQ(test.next(false), APFloat::opOK); in TEST()
440 test = APFloat(APFloat::IEEEquad(), in TEST()
442 expected = APFloat(APFloat::IEEEquad(), in TEST()
444 EXPECT_EQ(test.next(true), APFloat::opOK); in TEST()
450 test = APFloat(APFloat::IEEEquad(), in TEST()
452 expected = APFloat(APFloat::IEEEquad(), in TEST()
454 EXPECT_EQ(test.next(false), APFloat::opOK); in TEST()
460 test = APFloat(APFloat::IEEEquad(), in TEST()
462 expected = APFloat(APFloat::IEEEquad(), in TEST()
464 EXPECT_EQ(test.next(true), APFloat::opOK); in TEST()
471 APFloat::roundingMode rdmd = APFloat::rmNearestTiesToEven; in TEST()
474 APFloat f1(14.5f); in TEST()
475 APFloat f2(-14.5f); in TEST()
476 APFloat f3(225.0f); in TEST()
477 f1.fusedMultiplyAdd(f2, f3, APFloat::rmNearestTiesToEven); in TEST()
482 APFloat Val2(2.0f); in TEST()
483 APFloat f1((float)1.17549435e-38F); in TEST()
484 APFloat f2((float)1.17549435e-38F); in TEST()
487 APFloat f3(12.0f); in TEST()
488 f1.fusedMultiplyAdd(f2, f3, APFloat::rmNearestTiesToEven); in TEST()
495 APFloat f1(1.0); in TEST()
496 APFloat f2(-1.0); in TEST()
497 APFloat f3(1.0); in TEST()
498 f1.fusedMultiplyAdd(f2, f3, APFloat::rmNearestTiesToEven); in TEST()
506 APFloat f1(1.0); in TEST()
507 APFloat f2(-1.0); in TEST()
508 APFloat f3(1.0); in TEST()
509 f1.fusedMultiplyAdd(f2, f3, APFloat::rmTowardNegative); in TEST()
516 APFloat f1(0.0); in TEST()
517 APFloat f2(-0.0); in TEST()
518 APFloat f3(-0.0); in TEST()
519 f1.fusedMultiplyAdd(f2, f3, APFloat::rmNearestTiesToEven); in TEST()
525 APFloat f1(APFloat::IEEEdouble(), "-0x1p-1074"); in TEST()
526 APFloat f2(APFloat::IEEEdouble(), "+0x1p-1074"); in TEST()
527 APFloat f3(0.0); in TEST()
528 f1.fusedMultiplyAdd(f2, f3, APFloat::rmNearestTiesToEven); in TEST()
534 APFloat M1(APFloat::x87DoubleExtended(), 1); in TEST()
535 APFloat M2(APFloat::x87DoubleExtended(), 1); in TEST()
536 APFloat A(APFloat::x87DoubleExtended(), 3); in TEST()
539 M1.fusedMultiplyAdd(M1, A, APFloat::rmNearestTiesToEven); in TEST()
540 M1.convert(APFloat::IEEEsingle(), APFloat::rmNearestTiesToEven, &losesInfo); in TEST()
547 APFloat f1(-8.85242279E-41f); in TEST()
548 APFloat f2(2.0f); in TEST()
549 APFloat f3(8.85242279E-41f); in TEST()
550 f1.fusedMultiplyAdd(f2, f3, APFloat::rmNearestTiesToEven); in TEST()
556 APFloat F(1.5); in TEST()
558 F.fusedMultiplyAdd(F, F, APFloat::rmNearestTiesToEven); in TEST()
564 APFloat f1(1.0); in TEST()
565 APFloat f2(2.0); in TEST()
566 APFloat nan = APFloat::getNaN(APFloat::IEEEdouble()); in TEST()
575 APFloat f1(1.0); in TEST()
576 APFloat f2(2.0); in TEST()
577 APFloat nan = APFloat::getNaN(APFloat::IEEEdouble()); in TEST()
586 APFloat f1(1.0); in TEST()
587 APFloat f2(2.0); in TEST()
588 APFloat zp(0.0); in TEST()
589 APFloat zn(-0.0); in TEST()
590 APFloat nan = APFloat::getNaN(APFloat::IEEEdouble()); in TEST()
601 APFloat f1(1.0); in TEST()
602 APFloat f2(2.0); in TEST()
603 APFloat zp(0.0); in TEST()
604 APFloat zn(-0.0); in TEST()
605 APFloat nan = APFloat::getNaN(APFloat::IEEEdouble()); in TEST()
616 APFloat::roundingMode rdmd = APFloat::rmNearestTiesToEven; in TEST()
621 EXPECT_FALSE(APFloat(APFloat::IEEEsingle(), MinNormalStr).isDenormal()); in TEST()
622 EXPECT_FALSE(APFloat(APFloat::IEEEsingle(), 0).isDenormal()); in TEST()
624 APFloat Val2(APFloat::IEEEsingle(), 2); in TEST()
625 APFloat T(APFloat::IEEEsingle(), MinNormalStr); in TEST()
633 EXPECT_FALSE(APFloat(APFloat::IEEEdouble(), MinNormalStr).isDenormal()); in TEST()
634 EXPECT_FALSE(APFloat(APFloat::IEEEdouble(), 0).isDenormal()); in TEST()
636 APFloat Val2(APFloat::IEEEdouble(), 2); in TEST()
637 APFloat T(APFloat::IEEEdouble(), MinNormalStr); in TEST()
645 EXPECT_FALSE(APFloat(APFloat::x87DoubleExtended(), MinNormalStr).isDenormal()); in TEST()
646 EXPECT_FALSE(APFloat(APFloat::x87DoubleExtended(), 0).isDenormal()); in TEST()
648 APFloat Val2(APFloat::x87DoubleExtended(), 2); in TEST()
649 APFloat T(APFloat::x87DoubleExtended(), MinNormalStr); in TEST()
657 EXPECT_FALSE(APFloat(APFloat::IEEEquad(), MinNormalStr).isDenormal()); in TEST()
658 EXPECT_FALSE(APFloat(APFloat::IEEEquad(), 0).isDenormal()); in TEST()
660 APFloat Val2(APFloat::IEEEquad(), 2); in TEST()
661 APFloat T(APFloat::IEEEquad(), MinNormalStr); in TEST()
668 EXPECT_EQ(0.0f, APFloat(0.0f).convertToFloat()); in TEST()
669 EXPECT_EQ(-0.0f, APFloat(-0.0f).convertToFloat()); in TEST()
670 EXPECT_TRUE(APFloat(-0.0f).isNegative()); in TEST()
672 EXPECT_EQ(0.0, APFloat(0.0).convertToDouble()); in TEST()
673 EXPECT_EQ(-0.0, APFloat(-0.0).convertToDouble()); in TEST()
674 EXPECT_TRUE(APFloat(-0.0).isNegative()); in TEST()
689 EXPECT_EQ( 0.0, APFloat(APFloat::IEEEdouble(), "0").convertToDouble()); in TEST()
690 EXPECT_EQ(+0.0, APFloat(APFloat::IEEEdouble(), "+0").convertToDouble()); in TEST()
691 EXPECT_EQ(-0.0, APFloat(APFloat::IEEEdouble(), "-0").convertToDouble()); in TEST()
693 EXPECT_EQ( 0.0, APFloat(APFloat::IEEEdouble(), "0.").convertToDouble()); in TEST()
694 EXPECT_EQ(+0.0, APFloat(APFloat::IEEEdouble(), "+0.").convertToDouble()); in TEST()
695 EXPECT_EQ(-0.0, APFloat(APFloat::IEEEdouble(), "-0.").convertToDouble()); in TEST()
697 EXPECT_EQ( 0.0, APFloat(APFloat::IEEEdouble(), ".0").convertToDouble()); in TEST()
698 EXPECT_EQ(+0.0, APFloat(APFloat::IEEEdouble(), "+.0").convertToDouble()); in TEST()
699 EXPECT_EQ(-0.0, APFloat(APFloat::IEEEdouble(), "-.0").convertToDouble()); in TEST()
701 EXPECT_EQ( 0.0, APFloat(APFloat::IEEEdouble(), "0.0").convertToDouble()); in TEST()
702 EXPECT_EQ(+0.0, APFloat(APFloat::IEEEdouble(), "+0.0").convertToDouble()); in TEST()
703 EXPECT_EQ(-0.0, APFloat(APFloat::IEEEdouble(), "-0.0").convertToDouble()); in TEST()
705 EXPECT_EQ( 0.0, APFloat(APFloat::IEEEdouble(), "00000.").convertToDouble()); in TEST()
706 EXPECT_EQ(+0.0, APFloat(APFloat::IEEEdouble(), "+00000.").convertToDouble()); in TEST()
707 EXPECT_EQ(-0.0, APFloat(APFloat::IEEEdouble(), "-00000.").convertToDouble()); in TEST()
709 EXPECT_EQ(0.0, APFloat(APFloat::IEEEdouble(), ".00000").convertToDouble()); in TEST()
710 EXPECT_EQ(+0.0, APFloat(APFloat::IEEEdouble(), "+.00000").convertToDouble()); in TEST()
711 EXPECT_EQ(-0.0, APFloat(APFloat::IEEEdouble(), "-.00000").convertToDouble()); in TEST()
713 EXPECT_EQ( 0.0, APFloat(APFloat::IEEEdouble(), "0000.00000").convertToDouble()); in TEST()
714 EXPECT_EQ(+0.0, APFloat(APFloat::IEEEdouble(), "+0000.00000").convertToDouble()); in TEST()
715 EXPECT_EQ(-0.0, APFloat(APFloat::IEEEdouble(), "-0000.00000").convertToDouble()); in TEST()
719 EXPECT_EQ( 0.0, APFloat(APFloat::IEEEdouble(), "0e1").convertToDouble()); in TEST()
720 EXPECT_EQ(+0.0, APFloat(APFloat::IEEEdouble(), "+0e1").convertToDouble()); in TEST()
721 EXPECT_EQ(-0.0, APFloat(APFloat::IEEEdouble(), "-0e1").convertToDouble()); in TEST()
723 EXPECT_EQ( 0.0, APFloat(APFloat::IEEEdouble(), "0e+1").convertToDouble()); in TEST()
724 EXPECT_EQ(+0.0, APFloat(APFloat::IEEEdouble(), "+0e+1").convertToDouble()); in TEST()
725 EXPECT_EQ(-0.0, APFloat(APFloat::IEEEdouble(), "-0e+1").convertToDouble()); in TEST()
727 EXPECT_EQ( 0.0, APFloat(APFloat::IEEEdouble(), "0e-1").convertToDouble()); in TEST()
728 EXPECT_EQ(+0.0, APFloat(APFloat::IEEEdouble(), "+0e-1").convertToDouble()); in TEST()
729 EXPECT_EQ(-0.0, APFloat(APFloat::IEEEdouble(), "-0e-1").convertToDouble()); in TEST()
732 EXPECT_EQ( 0.0, APFloat(APFloat::IEEEdouble(), "0.e1").convertToDouble()); in TEST()
733 EXPECT_EQ(+0.0, APFloat(APFloat::IEEEdouble(), "+0.e1").convertToDouble()); in TEST()
734 EXPECT_EQ(-0.0, APFloat(APFloat::IEEEdouble(), "-0.e1").convertToDouble()); in TEST()
736 EXPECT_EQ( 0.0, APFloat(APFloat::IEEEdouble(), "0.e+1").convertToDouble()); in TEST()
737 EXPECT_EQ(+0.0, APFloat(APFloat::IEEEdouble(), "+0.e+1").convertToDouble()); in TEST()
738 EXPECT_EQ(-0.0, APFloat(APFloat::IEEEdouble(), "-0.e+1").convertToDouble()); in TEST()
740 EXPECT_EQ( 0.0, APFloat(APFloat::IEEEdouble(), "0.e-1").convertToDouble()); in TEST()
741 EXPECT_EQ(+0.0, APFloat(APFloat::IEEEdouble(), "+0.e-1").convertToDouble()); in TEST()
742 EXPECT_EQ(-0.0, APFloat(APFloat::IEEEdouble(), "-0.e-1").convertToDouble()); in TEST()
744 EXPECT_EQ( 0.0, APFloat(APFloat::IEEEdouble(), ".0e1").convertToDouble()); in TEST()
745 EXPECT_EQ(+0.0, APFloat(APFloat::IEEEdouble(), "+.0e1").convertToDouble()); in TEST()
746 EXPECT_EQ(-0.0, APFloat(APFloat::IEEEdouble(), "-.0e1").convertToDouble()); in TEST()
748 EXPECT_EQ( 0.0, APFloat(APFloat::IEEEdouble(), ".0e+1").convertToDouble()); in TEST()
749 EXPECT_EQ(+0.0, APFloat(APFloat::IEEEdouble(), "+.0e+1").convertToDouble()); in TEST()
750 EXPECT_EQ(-0.0, APFloat(APFloat::IEEEdouble(), "-.0e+1").convertToDouble()); in TEST()
752 EXPECT_EQ( 0.0, APFloat(APFloat::IEEEdouble(), ".0e-1").convertToDouble()); in TEST()
753 EXPECT_EQ(+0.0, APFloat(APFloat::IEEEdouble(), "+.0e-1").convertToDouble()); in TEST()
754 EXPECT_EQ(-0.0, APFloat(APFloat::IEEEdouble(), "-.0e-1").convertToDouble()); in TEST()
757 EXPECT_EQ( 0.0, APFloat(APFloat::IEEEdouble(), "0.0e1").convertToDouble()); in TEST()
758 EXPECT_EQ(+0.0, APFloat(APFloat::IEEEdouble(), "+0.0e1").convertToDouble()); in TEST()
759 EXPECT_EQ(-0.0, APFloat(APFloat::IEEEdouble(), "-0.0e1").convertToDouble()); in TEST()
761 EXPECT_EQ( 0.0, APFloat(APFloat::IEEEdouble(), "0.0e+1").convertToDouble()); in TEST()
762 EXPECT_EQ(+0.0, APFloat(APFloat::IEEEdouble(), "+0.0e+1").convertToDouble()); in TEST()
763 EXPECT_EQ(-0.0, APFloat(APFloat::IEEEdouble(), "-0.0e+1").convertToDouble()); in TEST()
765 EXPECT_EQ( 0.0, APFloat(APFloat::IEEEdouble(), "0.0e-1").convertToDouble()); in TEST()
766 EXPECT_EQ(+0.0, APFloat(APFloat::IEEEdouble(), "+0.0e-1").convertToDouble()); in TEST()
767 EXPECT_EQ(-0.0, APFloat(APFloat::IEEEdouble(), "-0.0e-1").convertToDouble()); in TEST()
770 EXPECT_EQ( 0.0, APFloat(APFloat::IEEEdouble(), "000.0000e1").convertToDouble()); in TEST()
771 EXPECT_EQ(+0.0, APFloat(APFloat::IEEEdouble(), "+000.0000e+1").convertToDouble()); in TEST()
772 EXPECT_EQ(-0.0, APFloat(APFloat::IEEEdouble(), "-000.0000e+1").convertToDouble()); in TEST()
776 EXPECT_EQ( 0.0, APFloat(APFloat::IEEEdouble(), "0e1234").convertToDouble()); in TEST()
777 EXPECT_EQ(+0.0, APFloat(APFloat::IEEEdouble(), "+0e1234").convertToDouble()); in TEST()
778 EXPECT_EQ(-0.0, APFloat(APFloat::IEEEdouble(), "-0e1234").convertToDouble()); in TEST()
780 EXPECT_EQ( 0.0, APFloat(APFloat::IEEEdouble(), "0e+1234").convertToDouble()); in TEST()
781 EXPECT_EQ(+0.0, APFloat(APFloat::IEEEdouble(), "+0e+1234").convertToDouble()); in TEST()
782 EXPECT_EQ(-0.0, APFloat(APFloat::IEEEdouble(), "-0e+1234").convertToDouble()); in TEST()
784 EXPECT_EQ( 0.0, APFloat(APFloat::IEEEdouble(), "0e-1234").convertToDouble()); in TEST()
785 EXPECT_EQ(+0.0, APFloat(APFloat::IEEEdouble(), "+0e-1234").convertToDouble()); in TEST()
786 EXPECT_EQ(-0.0, APFloat(APFloat::IEEEdouble(), "-0e-1234").convertToDouble()); in TEST()
788 EXPECT_EQ(0.0, APFloat(APFloat::IEEEdouble(), "000.0000e1234").convertToDouble()); in TEST()
789 EXPECT_EQ(0.0, APFloat(APFloat::IEEEdouble(), "000.0000e-1234").convertToDouble()); in TEST()
791 …EXPECT_EQ(0.0, APFloat(APFloat::IEEEdouble(), StringRef("0e1234" "\0" "2", 6)).convertToDouble()); in TEST()
795 EXPECT_EQ( 0.0, APFloat(APFloat::IEEEdouble(), "0x0p1").convertToDouble()); in TEST()
796 EXPECT_EQ(+0.0, APFloat(APFloat::IEEEdouble(), "+0x0p1").convertToDouble()); in TEST()
797 EXPECT_EQ(-0.0, APFloat(APFloat::IEEEdouble(), "-0x0p1").convertToDouble()); in TEST()
799 EXPECT_EQ( 0.0, APFloat(APFloat::IEEEdouble(), "0x0p+1").convertToDouble()); in TEST()
800 EXPECT_EQ(+0.0, APFloat(APFloat::IEEEdouble(), "+0x0p+1").convertToDouble()); in TEST()
801 EXPECT_EQ(-0.0, APFloat(APFloat::IEEEdouble(), "-0x0p+1").convertToDouble()); in TEST()
803 EXPECT_EQ( 0.0, APFloat(APFloat::IEEEdouble(), "0x0p-1").convertToDouble()); in TEST()
804 EXPECT_EQ(+0.0, APFloat(APFloat::IEEEdouble(), "+0x0p-1").convertToDouble()); in TEST()
805 EXPECT_EQ(-0.0, APFloat(APFloat::IEEEdouble(), "-0x0p-1").convertToDouble()); in TEST()
808 EXPECT_EQ( 0.0, APFloat(APFloat::IEEEdouble(), "0x0.p1").convertToDouble()); in TEST()
809 EXPECT_EQ(+0.0, APFloat(APFloat::IEEEdouble(), "+0x0.p1").convertToDouble()); in TEST()
810 EXPECT_EQ(-0.0, APFloat(APFloat::IEEEdouble(), "-0x0.p1").convertToDouble()); in TEST()
812 EXPECT_EQ( 0.0, APFloat(APFloat::IEEEdouble(), "0x0.p+1").convertToDouble()); in TEST()
813 EXPECT_EQ(+0.0, APFloat(APFloat::IEEEdouble(), "+0x0.p+1").convertToDouble()); in TEST()
814 EXPECT_EQ(-0.0, APFloat(APFloat::IEEEdouble(), "-0x0.p+1").convertToDouble()); in TEST()
816 EXPECT_EQ( 0.0, APFloat(APFloat::IEEEdouble(), "0x0.p-1").convertToDouble()); in TEST()
817 EXPECT_EQ(+0.0, APFloat(APFloat::IEEEdouble(), "+0x0.p-1").convertToDouble()); in TEST()
818 EXPECT_EQ(-0.0, APFloat(APFloat::IEEEdouble(), "-0x0.p-1").convertToDouble()); in TEST()
821 EXPECT_EQ( 0.0, APFloat(APFloat::IEEEdouble(), "0x.0p1").convertToDouble()); in TEST()
822 EXPECT_EQ(+0.0, APFloat(APFloat::IEEEdouble(), "+0x.0p1").convertToDouble()); in TEST()
823 EXPECT_EQ(-0.0, APFloat(APFloat::IEEEdouble(), "-0x.0p1").convertToDouble()); in TEST()
825 EXPECT_EQ( 0.0, APFloat(APFloat::IEEEdouble(), "0x.0p+1").convertToDouble()); in TEST()
826 EXPECT_EQ(+0.0, APFloat(APFloat::IEEEdouble(), "+0x.0p+1").convertToDouble()); in TEST()
827 EXPECT_EQ(-0.0, APFloat(APFloat::IEEEdouble(), "-0x.0p+1").convertToDouble()); in TEST()
829 EXPECT_EQ( 0.0, APFloat(APFloat::IEEEdouble(), "0x.0p-1").convertToDouble()); in TEST()
830 EXPECT_EQ(+0.0, APFloat(APFloat::IEEEdouble(), "+0x.0p-1").convertToDouble()); in TEST()
831 EXPECT_EQ(-0.0, APFloat(APFloat::IEEEdouble(), "-0x.0p-1").convertToDouble()); in TEST()
834 EXPECT_EQ( 0.0, APFloat(APFloat::IEEEdouble(), "0x0.0p1").convertToDouble()); in TEST()
835 EXPECT_EQ(+0.0, APFloat(APFloat::IEEEdouble(), "+0x0.0p1").convertToDouble()); in TEST()
836 EXPECT_EQ(-0.0, APFloat(APFloat::IEEEdouble(), "-0x0.0p1").convertToDouble()); in TEST()
838 EXPECT_EQ( 0.0, APFloat(APFloat::IEEEdouble(), "0x0.0p+1").convertToDouble()); in TEST()
839 EXPECT_EQ(+0.0, APFloat(APFloat::IEEEdouble(), "+0x0.0p+1").convertToDouble()); in TEST()
840 EXPECT_EQ(-0.0, APFloat(APFloat::IEEEdouble(), "-0x0.0p+1").convertToDouble()); in TEST()
842 EXPECT_EQ( 0.0, APFloat(APFloat::IEEEdouble(), "0x0.0p-1").convertToDouble()); in TEST()
843 EXPECT_EQ(+0.0, APFloat(APFloat::IEEEdouble(), "+0x0.0p-1").convertToDouble()); in TEST()
844 EXPECT_EQ(-0.0, APFloat(APFloat::IEEEdouble(), "-0x0.0p-1").convertToDouble()); in TEST()
847 EXPECT_EQ( 0.0, APFloat(APFloat::IEEEdouble(), "0x00000.p1").convertToDouble()); in TEST()
848 EXPECT_EQ( 0.0, APFloat(APFloat::IEEEdouble(), "0x0000.00000p1").convertToDouble()); in TEST()
849 EXPECT_EQ( 0.0, APFloat(APFloat::IEEEdouble(), "0x.00000p1").convertToDouble()); in TEST()
850 EXPECT_EQ( 0.0, APFloat(APFloat::IEEEdouble(), "0x0.p1").convertToDouble()); in TEST()
851 EXPECT_EQ( 0.0, APFloat(APFloat::IEEEdouble(), "0x0p1234").convertToDouble()); in TEST()
852 EXPECT_EQ(-0.0, APFloat(APFloat::IEEEdouble(), "-0x0p1234").convertToDouble()); in TEST()
853 EXPECT_EQ( 0.0, APFloat(APFloat::IEEEdouble(), "0x00000.p1234").convertToDouble()); in TEST()
854 EXPECT_EQ( 0.0, APFloat(APFloat::IEEEdouble(), "0x0000.00000p1234").convertToDouble()); in TEST()
855 EXPECT_EQ( 0.0, APFloat(APFloat::IEEEdouble(), "0x.00000p1234").convertToDouble()); in TEST()
856 EXPECT_EQ( 0.0, APFloat(APFloat::IEEEdouble(), "0x0.p1234").convertToDouble()); in TEST()
860 EXPECT_EQ(1.0, APFloat(APFloat::IEEEdouble(), "1").convertToDouble()); in TEST()
861 EXPECT_EQ(2.0, APFloat(APFloat::IEEEdouble(), "2.").convertToDouble()); in TEST()
862 EXPECT_EQ(0.5, APFloat(APFloat::IEEEdouble(), ".5").convertToDouble()); in TEST()
863 EXPECT_EQ(1.0, APFloat(APFloat::IEEEdouble(), "1.0").convertToDouble()); in TEST()
864 EXPECT_EQ(-2.0, APFloat(APFloat::IEEEdouble(), "-2").convertToDouble()); in TEST()
865 EXPECT_EQ(-4.0, APFloat(APFloat::IEEEdouble(), "-4.").convertToDouble()); in TEST()
866 EXPECT_EQ(-0.5, APFloat(APFloat::IEEEdouble(), "-.5").convertToDouble()); in TEST()
867 EXPECT_EQ(-1.5, APFloat(APFloat::IEEEdouble(), "-1.5").convertToDouble()); in TEST()
868 EXPECT_EQ(1.25e12, APFloat(APFloat::IEEEdouble(), "1.25e12").convertToDouble()); in TEST()
869 EXPECT_EQ(1.25e+12, APFloat(APFloat::IEEEdouble(), "1.25e+12").convertToDouble()); in TEST()
870 EXPECT_EQ(1.25e-12, APFloat(APFloat::IEEEdouble(), "1.25e-12").convertToDouble()); in TEST()
871 EXPECT_EQ(1024.0, APFloat(APFloat::IEEEdouble(), "1024.").convertToDouble()); in TEST()
872 EXPECT_EQ(1024.05, APFloat(APFloat::IEEEdouble(), "1024.05000").convertToDouble()); in TEST()
873 EXPECT_EQ(0.05, APFloat(APFloat::IEEEdouble(), ".05000").convertToDouble()); in TEST()
874 EXPECT_EQ(2.0, APFloat(APFloat::IEEEdouble(), "2.").convertToDouble()); in TEST()
875 EXPECT_EQ(2.0e2, APFloat(APFloat::IEEEdouble(), "2.e2").convertToDouble()); in TEST()
876 EXPECT_EQ(2.0e+2, APFloat(APFloat::IEEEdouble(), "2.e+2").convertToDouble()); in TEST()
877 EXPECT_EQ(2.0e-2, APFloat(APFloat::IEEEdouble(), "2.e-2").convertToDouble()); in TEST()
878 EXPECT_EQ(2.05e2, APFloat(APFloat::IEEEdouble(), "002.05000e2").convertToDouble()); in TEST()
879 EXPECT_EQ(2.05e+2, APFloat(APFloat::IEEEdouble(), "002.05000e+2").convertToDouble()); in TEST()
880 EXPECT_EQ(2.05e-2, APFloat(APFloat::IEEEdouble(), "002.05000e-2").convertToDouble()); in TEST()
881 EXPECT_EQ(2.05e12, APFloat(APFloat::IEEEdouble(), "002.05000e12").convertToDouble()); in TEST()
882 EXPECT_EQ(2.05e+12, APFloat(APFloat::IEEEdouble(), "002.05000e+12").convertToDouble()); in TEST()
883 EXPECT_EQ(2.05e-12, APFloat(APFloat::IEEEdouble(), "002.05000e-12").convertToDouble()); in TEST()
885 EXPECT_EQ(1.0, APFloat(APFloat::IEEEdouble(), "1e").convertToDouble()); in TEST()
886 EXPECT_EQ(1.0, APFloat(APFloat::IEEEdouble(), "+1e").convertToDouble()); in TEST()
887 EXPECT_EQ(-1.0, APFloat(APFloat::IEEEdouble(), "-1e").convertToDouble()); in TEST()
889 EXPECT_EQ(1.0, APFloat(APFloat::IEEEdouble(), "1.e").convertToDouble()); in TEST()
890 EXPECT_EQ(1.0, APFloat(APFloat::IEEEdouble(), "+1.e").convertToDouble()); in TEST()
891 EXPECT_EQ(-1.0, APFloat(APFloat::IEEEdouble(), "-1.e").convertToDouble()); in TEST()
893 EXPECT_EQ(0.1, APFloat(APFloat::IEEEdouble(), ".1e").convertToDouble()); in TEST()
894 EXPECT_EQ(0.1, APFloat(APFloat::IEEEdouble(), "+.1e").convertToDouble()); in TEST()
895 EXPECT_EQ(-0.1, APFloat(APFloat::IEEEdouble(), "-.1e").convertToDouble()); in TEST()
897 EXPECT_EQ(1.1, APFloat(APFloat::IEEEdouble(), "1.1e").convertToDouble()); in TEST()
898 EXPECT_EQ(1.1, APFloat(APFloat::IEEEdouble(), "+1.1e").convertToDouble()); in TEST()
899 EXPECT_EQ(-1.1, APFloat(APFloat::IEEEdouble(), "-1.1e").convertToDouble()); in TEST()
901 EXPECT_EQ(1.0, APFloat(APFloat::IEEEdouble(), "1e+").convertToDouble()); in TEST()
902 EXPECT_EQ(1.0, APFloat(APFloat::IEEEdouble(), "1e-").convertToDouble()); in TEST()
904 EXPECT_EQ(0.1, APFloat(APFloat::IEEEdouble(), ".1e").convertToDouble()); in TEST()
905 EXPECT_EQ(0.1, APFloat(APFloat::IEEEdouble(), ".1e+").convertToDouble()); in TEST()
906 EXPECT_EQ(0.1, APFloat(APFloat::IEEEdouble(), ".1e-").convertToDouble()); in TEST()
908 EXPECT_EQ(1.0, APFloat(APFloat::IEEEdouble(), "1.0e").convertToDouble()); in TEST()
909 EXPECT_EQ(1.0, APFloat(APFloat::IEEEdouble(), "1.0e+").convertToDouble()); in TEST()
910 EXPECT_EQ(1.0, APFloat(APFloat::IEEEdouble(), "1.0e-").convertToDouble()); in TEST()
914 EXPECT_TRUE(APFloat(APFloat::IEEEdouble(), "99e99999").isInfinity()); in TEST()
915 EXPECT_TRUE(APFloat(APFloat::IEEEdouble(), "-99e99999").isInfinity()); in TEST()
916 EXPECT_TRUE(APFloat(APFloat::IEEEdouble(), "1e-99999").isPosZero()); in TEST()
917 EXPECT_TRUE(APFloat(APFloat::IEEEdouble(), "-1e-99999").isNegZero()); in TEST()
923 const fltSemantics &Sem = APFloat::IEEEdouble(); in TEST()
957 APFloat::getSNaN(Sem).bitcastToAPInt().getZExtValue() & PayloadMask; in TEST()
1004 APFloat F(Sem); in TEST()
1006 TestStr, llvm::APFloat::rmNearestTiesToEven); in TEST()
1024 APFloat F(Sem); in TEST()
1026 !F.convertFromString(InfStr, llvm::APFloat::rmNearestTiesToEven); in TEST()
1053 EXPECT_EQ( 1.0, APFloat(APFloat::IEEEdouble(), "0x1p0").convertToDouble()); in TEST()
1054 EXPECT_EQ(+1.0, APFloat(APFloat::IEEEdouble(), "+0x1p0").convertToDouble()); in TEST()
1055 EXPECT_EQ(-1.0, APFloat(APFloat::IEEEdouble(), "-0x1p0").convertToDouble()); in TEST()
1057 EXPECT_EQ( 1.0, APFloat(APFloat::IEEEdouble(), "0x1p+0").convertToDouble()); in TEST()
1058 EXPECT_EQ(+1.0, APFloat(APFloat::IEEEdouble(), "+0x1p+0").convertToDouble()); in TEST()
1059 EXPECT_EQ(-1.0, APFloat(APFloat::IEEEdouble(), "-0x1p+0").convertToDouble()); in TEST()
1061 EXPECT_EQ( 1.0, APFloat(APFloat::IEEEdouble(), "0x1p-0").convertToDouble()); in TEST()
1062 EXPECT_EQ(+1.0, APFloat(APFloat::IEEEdouble(), "+0x1p-0").convertToDouble()); in TEST()
1063 EXPECT_EQ(-1.0, APFloat(APFloat::IEEEdouble(), "-0x1p-0").convertToDouble()); in TEST()
1066 EXPECT_EQ( 2.0, APFloat(APFloat::IEEEdouble(), "0x1p1").convertToDouble()); in TEST()
1067 EXPECT_EQ(+2.0, APFloat(APFloat::IEEEdouble(), "+0x1p1").convertToDouble()); in TEST()
1068 EXPECT_EQ(-2.0, APFloat(APFloat::IEEEdouble(), "-0x1p1").convertToDouble()); in TEST()
1070 EXPECT_EQ( 2.0, APFloat(APFloat::IEEEdouble(), "0x1p+1").convertToDouble()); in TEST()
1071 EXPECT_EQ(+2.0, APFloat(APFloat::IEEEdouble(), "+0x1p+1").convertToDouble()); in TEST()
1072 EXPECT_EQ(-2.0, APFloat(APFloat::IEEEdouble(), "-0x1p+1").convertToDouble()); in TEST()
1074 EXPECT_EQ( 0.5, APFloat(APFloat::IEEEdouble(), "0x1p-1").convertToDouble()); in TEST()
1075 EXPECT_EQ(+0.5, APFloat(APFloat::IEEEdouble(), "+0x1p-1").convertToDouble()); in TEST()
1076 EXPECT_EQ(-0.5, APFloat(APFloat::IEEEdouble(), "-0x1p-1").convertToDouble()); in TEST()
1079 EXPECT_EQ( 3.0, APFloat(APFloat::IEEEdouble(), "0x1.8p1").convertToDouble()); in TEST()
1080 EXPECT_EQ(+3.0, APFloat(APFloat::IEEEdouble(), "+0x1.8p1").convertToDouble()); in TEST()
1081 EXPECT_EQ(-3.0, APFloat(APFloat::IEEEdouble(), "-0x1.8p1").convertToDouble()); in TEST()
1083 EXPECT_EQ( 3.0, APFloat(APFloat::IEEEdouble(), "0x1.8p+1").convertToDouble()); in TEST()
1084 EXPECT_EQ(+3.0, APFloat(APFloat::IEEEdouble(), "+0x1.8p+1").convertToDouble()); in TEST()
1085 EXPECT_EQ(-3.0, APFloat(APFloat::IEEEdouble(), "-0x1.8p+1").convertToDouble()); in TEST()
1087 EXPECT_EQ( 0.75, APFloat(APFloat::IEEEdouble(), "0x1.8p-1").convertToDouble()); in TEST()
1088 EXPECT_EQ(+0.75, APFloat(APFloat::IEEEdouble(), "+0x1.8p-1").convertToDouble()); in TEST()
1089 EXPECT_EQ(-0.75, APFloat(APFloat::IEEEdouble(), "-0x1.8p-1").convertToDouble()); in TEST()
1092 EXPECT_EQ( 8192.0, APFloat(APFloat::IEEEdouble(), "0x1000.000p1").convertToDouble()); in TEST()
1093 EXPECT_EQ(+8192.0, APFloat(APFloat::IEEEdouble(), "+0x1000.000p1").convertToDouble()); in TEST()
1094 EXPECT_EQ(-8192.0, APFloat(APFloat::IEEEdouble(), "-0x1000.000p1").convertToDouble()); in TEST()
1096 EXPECT_EQ( 8192.0, APFloat(APFloat::IEEEdouble(), "0x1000.000p+1").convertToDouble()); in TEST()
1097 EXPECT_EQ(+8192.0, APFloat(APFloat::IEEEdouble(), "+0x1000.000p+1").convertToDouble()); in TEST()
1098 EXPECT_EQ(-8192.0, APFloat(APFloat::IEEEdouble(), "-0x1000.000p+1").convertToDouble()); in TEST()
1100 EXPECT_EQ( 2048.0, APFloat(APFloat::IEEEdouble(), "0x1000.000p-1").convertToDouble()); in TEST()
1101 EXPECT_EQ(+2048.0, APFloat(APFloat::IEEEdouble(), "+0x1000.000p-1").convertToDouble()); in TEST()
1102 EXPECT_EQ(-2048.0, APFloat(APFloat::IEEEdouble(), "-0x1000.000p-1").convertToDouble()); in TEST()
1105 EXPECT_EQ( 8192.0, APFloat(APFloat::IEEEdouble(), "0x1000p1").convertToDouble()); in TEST()
1106 EXPECT_EQ(+8192.0, APFloat(APFloat::IEEEdouble(), "+0x1000p1").convertToDouble()); in TEST()
1107 EXPECT_EQ(-8192.0, APFloat(APFloat::IEEEdouble(), "-0x1000p1").convertToDouble()); in TEST()
1109 EXPECT_EQ( 8192.0, APFloat(APFloat::IEEEdouble(), "0x1000p+1").convertToDouble()); in TEST()
1110 EXPECT_EQ(+8192.0, APFloat(APFloat::IEEEdouble(), "+0x1000p+1").convertToDouble()); in TEST()
1111 EXPECT_EQ(-8192.0, APFloat(APFloat::IEEEdouble(), "-0x1000p+1").convertToDouble()); in TEST()
1113 EXPECT_EQ( 2048.0, APFloat(APFloat::IEEEdouble(), "0x1000p-1").convertToDouble()); in TEST()
1114 EXPECT_EQ(+2048.0, APFloat(APFloat::IEEEdouble(), "+0x1000p-1").convertToDouble()); in TEST()
1115 EXPECT_EQ(-2048.0, APFloat(APFloat::IEEEdouble(), "-0x1000p-1").convertToDouble()); in TEST()
1118 EXPECT_EQ( 16384.0, APFloat(APFloat::IEEEdouble(), "0x10p10").convertToDouble()); in TEST()
1119 EXPECT_EQ(+16384.0, APFloat(APFloat::IEEEdouble(), "+0x10p10").convertToDouble()); in TEST()
1120 EXPECT_EQ(-16384.0, APFloat(APFloat::IEEEdouble(), "-0x10p10").convertToDouble()); in TEST()
1122 EXPECT_EQ( 16384.0, APFloat(APFloat::IEEEdouble(), "0x10p+10").convertToDouble()); in TEST()
1123 EXPECT_EQ(+16384.0, APFloat(APFloat::IEEEdouble(), "+0x10p+10").convertToDouble()); in TEST()
1124 EXPECT_EQ(-16384.0, APFloat(APFloat::IEEEdouble(), "-0x10p+10").convertToDouble()); in TEST()
1126 EXPECT_EQ( 0.015625, APFloat(APFloat::IEEEdouble(), "0x10p-10").convertToDouble()); in TEST()
1127 EXPECT_EQ(+0.015625, APFloat(APFloat::IEEEdouble(), "+0x10p-10").convertToDouble()); in TEST()
1128 EXPECT_EQ(-0.015625, APFloat(APFloat::IEEEdouble(), "-0x10p-10").convertToDouble()); in TEST()
1130 EXPECT_EQ(1.0625, APFloat(APFloat::IEEEdouble(), "0x1.1p0").convertToDouble()); in TEST()
1131 EXPECT_EQ(1.0, APFloat(APFloat::IEEEdouble(), "0x1p0").convertToDouble()); in TEST()
1172 APFloat UnnormalZero(APFloat::x87DoubleExtended(), APInt(80, {0, 1})); in TEST()
1182 EXPECT_EQ(APFloat::opOK, in TEST()
1183 APFloat(APFloat::IEEEdouble(), "10") in TEST()
1184 .convertToInteger(result, APFloat::rmTowardZero, &isExact)); in TEST()
1188 EXPECT_EQ(APFloat::opInvalidOp, in TEST()
1189 APFloat(APFloat::IEEEdouble(), "-10") in TEST()
1190 .convertToInteger(result, APFloat::rmTowardZero, &isExact)); in TEST()
1194 EXPECT_EQ(APFloat::opInvalidOp, in TEST()
1195 APFloat(APFloat::IEEEdouble(), "32") in TEST()
1196 .convertToInteger(result, APFloat::rmTowardZero, &isExact)); in TEST()
1200 EXPECT_EQ(APFloat::opInexact, in TEST()
1201 APFloat(APFloat::IEEEdouble(), "7.9") in TEST()
1202 .convertToInteger(result, APFloat::rmTowardZero, &isExact)); in TEST()
1207 EXPECT_EQ(APFloat::opOK, in TEST()
1208 APFloat(APFloat::IEEEdouble(), "-10") in TEST()
1209 .convertToInteger(result, APFloat::rmTowardZero, &isExact)); in TEST()
1213 EXPECT_EQ(APFloat::opInvalidOp, in TEST()
1214 APFloat(APFloat::IEEEdouble(), "-17") in TEST()
1215 .convertToInteger(result, APFloat::rmTowardZero, &isExact)); in TEST()
1219 EXPECT_EQ(APFloat::opInvalidOp, in TEST()
1220 APFloat(APFloat::IEEEdouble(), "16") in TEST()
1221 .convertToInteger(result, APFloat::rmTowardZero, &isExact)); in TEST()
1230 return APFloat::getSNaN(Sem, Negative, &appayload).bitcastToAPInt(); in nanbitsFromAPInt()
1232 return APFloat::getQNaN(Sem, Negative, &appayload).bitcastToAPInt(); in nanbitsFromAPInt()
1244 { 0x7fc00000ULL, APFloat::IEEEsingle(), false, false, 0x00000000ULL }, in TEST()
1245 { 0xffc00000ULL, APFloat::IEEEsingle(), false, true, 0x00000000ULL }, in TEST()
1246 { 0x7fc0ae72ULL, APFloat::IEEEsingle(), false, false, 0x0000ae72ULL }, in TEST()
1247 { 0x7fffae72ULL, APFloat::IEEEsingle(), false, false, 0xffffae72ULL }, in TEST()
1248 { 0x7fdaae72ULL, APFloat::IEEEsingle(), false, false, 0x00daae72ULL }, in TEST()
1249 { 0x7fa00000ULL, APFloat::IEEEsingle(), true, false, 0x00000000ULL }, in TEST()
1250 { 0xffa00000ULL, APFloat::IEEEsingle(), true, true, 0x00000000ULL }, in TEST()
1251 { 0x7f80ae72ULL, APFloat::IEEEsingle(), true, false, 0x0000ae72ULL }, in TEST()
1252 { 0x7fbfae72ULL, APFloat::IEEEsingle(), true, false, 0xffffae72ULL }, in TEST()
1253 { 0x7f9aae72ULL, APFloat::IEEEsingle(), true, false, 0x001aae72ULL }, in TEST()
1254 { 0x7ff8000000000000ULL, APFloat::IEEEdouble(), false, false, 0x0000000000000000ULL }, in TEST()
1255 { 0xfff8000000000000ULL, APFloat::IEEEdouble(), false, true, 0x0000000000000000ULL }, in TEST()
1256 { 0x7ff800000000ae72ULL, APFloat::IEEEdouble(), false, false, 0x000000000000ae72ULL }, in TEST()
1257 { 0x7fffffffffffae72ULL, APFloat::IEEEdouble(), false, false, 0xffffffffffffae72ULL }, in TEST()
1258 { 0x7ffdaaaaaaaaae72ULL, APFloat::IEEEdouble(), false, false, 0x000daaaaaaaaae72ULL }, in TEST()
1259 { 0x7ff4000000000000ULL, APFloat::IEEEdouble(), true, false, 0x0000000000000000ULL }, in TEST()
1260 { 0xfff4000000000000ULL, APFloat::IEEEdouble(), true, true, 0x0000000000000000ULL }, in TEST()
1261 { 0x7ff000000000ae72ULL, APFloat::IEEEdouble(), true, false, 0x000000000000ae72ULL }, in TEST()
1262 { 0x7ff7ffffffffae72ULL, APFloat::IEEEdouble(), true, false, 0xffffffffffffae72ULL }, in TEST()
1263 { 0x7ff1aaaaaaaaae72ULL, APFloat::IEEEdouble(), true, false, 0x0001aaaaaaaaae72ULL }, in TEST()
1274 EXPECT_DEATH(APFloat(APFloat::IEEEquad(), 0).convertToDouble(), in TEST()
1276 EXPECT_DEATH(APFloat(APFloat::IEEEdouble(), 0).convertToFloat(), in TEST()
1447 APFloat inv(0.0f); in TEST()
1450 EXPECT_TRUE(APFloat(2.0).getExactInverse(&inv)); in TEST()
1451 EXPECT_TRUE(inv.bitwiseIsEqual(APFloat(0.5))); in TEST()
1452 EXPECT_TRUE(APFloat(2.0f).getExactInverse(&inv)); in TEST()
1453 EXPECT_TRUE(inv.bitwiseIsEqual(APFloat(0.5f))); in TEST()
1454 EXPECT_TRUE(APFloat(APFloat::IEEEquad(), "2.0").getExactInverse(&inv)); in TEST()
1455 EXPECT_TRUE(inv.bitwiseIsEqual(APFloat(APFloat::IEEEquad(), "0.5"))); in TEST()
1456 EXPECT_TRUE(APFloat(APFloat::PPCDoubleDouble(), "2.0").getExactInverse(&inv)); in TEST()
1457 EXPECT_TRUE(inv.bitwiseIsEqual(APFloat(APFloat::PPCDoubleDouble(), "0.5"))); in TEST()
1458 EXPECT_TRUE(APFloat(APFloat::x87DoubleExtended(), "2.0").getExactInverse(&inv)); in TEST()
1459 EXPECT_TRUE(inv.bitwiseIsEqual(APFloat(APFloat::x87DoubleExtended(), "0.5"))); in TEST()
1462 EXPECT_TRUE(APFloat(1.17549435e-38f).getExactInverse(&inv)); in TEST()
1463 EXPECT_TRUE(inv.bitwiseIsEqual(APFloat(8.5070592e+37f))); in TEST()
1466 EXPECT_FALSE(APFloat(1.7014118e38f).getExactInverse(nullptr)); in TEST()
1468 EXPECT_FALSE(APFloat(0.0).getExactInverse(nullptr)); in TEST()
1470 EXPECT_FALSE(APFloat(1.40129846e-45f).getExactInverse(nullptr)); in TEST()
1474 APFloat T(-0.5), S(3.14), R(APFloat::getLargest(APFloat::IEEEdouble())), P(0.0); in TEST()
1477 P.roundToIntegral(APFloat::rmTowardZero); in TEST()
1480 P.roundToIntegral(APFloat::rmTowardNegative); in TEST()
1483 P.roundToIntegral(APFloat::rmTowardPositive); in TEST()
1486 P.roundToIntegral(APFloat::rmNearestTiesToEven); in TEST()
1490 P.roundToIntegral(APFloat::rmTowardZero); in TEST()
1493 P.roundToIntegral(APFloat::rmTowardNegative); in TEST()
1496 P.roundToIntegral(APFloat::rmTowardPositive); in TEST()
1499 P.roundToIntegral(APFloat::rmNearestTiesToEven); in TEST()
1503 P.roundToIntegral(APFloat::rmTowardZero); in TEST()
1506 P.roundToIntegral(APFloat::rmTowardNegative); in TEST()
1509 P.roundToIntegral(APFloat::rmTowardPositive); in TEST()
1512 P.roundToIntegral(APFloat::rmNearestTiesToEven); in TEST()
1515 P = APFloat::getZero(APFloat::IEEEdouble()); in TEST()
1516 P.roundToIntegral(APFloat::rmTowardZero); in TEST()
1518 P = APFloat::getZero(APFloat::IEEEdouble(), true); in TEST()
1519 P.roundToIntegral(APFloat::rmTowardZero); in TEST()
1521 P = APFloat::getNaN(APFloat::IEEEdouble()); in TEST()
1522 P.roundToIntegral(APFloat::rmTowardZero); in TEST()
1524 P = APFloat::getInf(APFloat::IEEEdouble()); in TEST()
1525 P.roundToIntegral(APFloat::rmTowardZero); in TEST()
1527 P = APFloat::getInf(APFloat::IEEEdouble(), true); in TEST()
1528 P.roundToIntegral(APFloat::rmTowardZero); in TEST()
1531 APFloat::opStatus St; in TEST()
1533 P = APFloat::getNaN(APFloat::IEEEdouble()); in TEST()
1534 St = P.roundToIntegral(APFloat::rmTowardZero); in TEST()
1537 EXPECT_EQ(APFloat::opOK, St); in TEST()
1539 P = APFloat::getNaN(APFloat::IEEEdouble(), true); in TEST()
1540 St = P.roundToIntegral(APFloat::rmTowardZero); in TEST()
1543 EXPECT_EQ(APFloat::opOK, St); in TEST()
1545 P = APFloat::getSNaN(APFloat::IEEEdouble()); in TEST()
1546 St = P.roundToIntegral(APFloat::rmTowardZero); in TEST()
1550 EXPECT_EQ(APFloat::opInvalidOp, St); in TEST()
1552 P = APFloat::getSNaN(APFloat::IEEEdouble(), true); in TEST()
1553 St = P.roundToIntegral(APFloat::rmTowardZero); in TEST()
1557 EXPECT_EQ(APFloat::opInvalidOp, St); in TEST()
1559 P = APFloat::getInf(APFloat::IEEEdouble()); in TEST()
1560 St = P.roundToIntegral(APFloat::rmTowardZero); in TEST()
1563 EXPECT_EQ(APFloat::opOK, St); in TEST()
1565 P = APFloat::getInf(APFloat::IEEEdouble(), true); in TEST()
1566 St = P.roundToIntegral(APFloat::rmTowardZero); in TEST()
1569 EXPECT_EQ(APFloat::opOK, St); in TEST()
1571 P = APFloat::getZero(APFloat::IEEEdouble(), false); in TEST()
1572 St = P.roundToIntegral(APFloat::rmTowardZero); in TEST()
1575 EXPECT_EQ(APFloat::opOK, St); in TEST()
1577 P = APFloat::getZero(APFloat::IEEEdouble(), false); in TEST()
1578 St = P.roundToIntegral(APFloat::rmTowardNegative); in TEST()
1581 EXPECT_EQ(APFloat::opOK, St); in TEST()
1583 P = APFloat::getZero(APFloat::IEEEdouble(), true); in TEST()
1584 St = P.roundToIntegral(APFloat::rmTowardZero); in TEST()
1587 EXPECT_EQ(APFloat::opOK, St); in TEST()
1589 P = APFloat::getZero(APFloat::IEEEdouble(), true); in TEST()
1590 St = P.roundToIntegral(APFloat::rmTowardNegative); in TEST()
1593 EXPECT_EQ(APFloat::opOK, St); in TEST()
1595 P = APFloat(1E-100); in TEST()
1596 St = P.roundToIntegral(APFloat::rmTowardNegative); in TEST()
1599 EXPECT_EQ(APFloat::opInexact, St); in TEST()
1601 P = APFloat(1E-100); in TEST()
1602 St = P.roundToIntegral(APFloat::rmTowardPositive); in TEST()
1605 EXPECT_EQ(APFloat::opInexact, St); in TEST()
1607 P = APFloat(-1E-100); in TEST()
1608 St = P.roundToIntegral(APFloat::rmTowardNegative); in TEST()
1611 EXPECT_EQ(APFloat::opInexact, St); in TEST()
1613 P = APFloat(-1E-100); in TEST()
1614 St = P.roundToIntegral(APFloat::rmTowardPositive); in TEST()
1617 EXPECT_EQ(APFloat::opInexact, St); in TEST()
1619 P = APFloat(10.0); in TEST()
1620 St = P.roundToIntegral(APFloat::rmTowardZero); in TEST()
1622 EXPECT_EQ(APFloat::opOK, St); in TEST()
1624 P = APFloat(10.5); in TEST()
1625 St = P.roundToIntegral(APFloat::rmTowardZero); in TEST()
1627 EXPECT_EQ(APFloat::opInexact, St); in TEST()
1629 P = APFloat(10.5); in TEST()
1630 St = P.roundToIntegral(APFloat::rmTowardPositive); in TEST()
1632 EXPECT_EQ(APFloat::opInexact, St); in TEST()
1634 P = APFloat(10.5); in TEST()
1635 St = P.roundToIntegral(APFloat::rmTowardNegative); in TEST()
1637 EXPECT_EQ(APFloat::opInexact, St); in TEST()
1639 P = APFloat(10.5); in TEST()
1640 St = P.roundToIntegral(APFloat::rmNearestTiesToAway); in TEST()
1642 EXPECT_EQ(APFloat::opInexact, St); in TEST()
1644 P = APFloat(10.5); in TEST()
1645 St = P.roundToIntegral(APFloat::rmNearestTiesToEven); in TEST()
1647 EXPECT_EQ(APFloat::opInexact, St); in TEST()
1651 APFloat T(-0.0); in TEST()
1653 T = APFloat(3.14159); in TEST()
1655 T = APFloat::getNaN(APFloat::IEEEdouble()); in TEST()
1657 T = APFloat::getInf(APFloat::IEEEdouble()); in TEST()
1659 T = APFloat::getInf(APFloat::IEEEdouble(), true); in TEST()
1661 T = APFloat::getLargest(APFloat::IEEEdouble()); in TEST()
1666 APFloat F1(-0.0); in TEST()
1667 APFloat F2(-0.0); in TEST()
1668 llvm::detail::DoubleAPFloat T(APFloat::PPCDoubleDouble(), std::move(F1), in TEST()
1671 APFloat F3(3.14159); in TEST()
1672 APFloat F4(-0.0); in TEST()
1673 llvm::detail::DoubleAPFloat T2(APFloat::PPCDoubleDouble(), std::move(F3), in TEST()
1676 APFloat F5(-0.0); in TEST()
1677 APFloat F6(3.14159); in TEST()
1678 llvm::detail::DoubleAPFloat T3(APFloat::PPCDoubleDouble(), std::move(F5), in TEST()
1684 EXPECT_EQ(3.402823466e+38f, APFloat::getLargest(APFloat::IEEEsingle()).convertToFloat()); in TEST()
1685 EXPECT_EQ(1.7976931348623158e+308, APFloat::getLargest(APFloat::IEEEdouble()).convertToDouble()); in TEST()
1689 APFloat test = APFloat::getSmallest(APFloat::IEEEsingle(), false); in TEST()
1690 APFloat expected = APFloat(APFloat::IEEEsingle(), "0x0.000002p-126"); in TEST()
1696 test = APFloat::getSmallest(APFloat::IEEEsingle(), true); in TEST()
1697 expected = APFloat(APFloat::IEEEsingle(), "-0x0.000002p-126"); in TEST()
1703 test = APFloat::getSmallest(APFloat::IEEEquad(), false); in TEST()
1704 expected = APFloat(APFloat::IEEEquad(), "0x0.0000000000000000000000000001p-16382"); in TEST()
1710 test = APFloat::getSmallest(APFloat::IEEEquad(), true); in TEST()
1711 expected = APFloat(APFloat::IEEEquad(), "-0x0.0000000000000000000000000001p-16382"); in TEST()
1719 APFloat test = APFloat::getSmallestNormalized(APFloat::IEEEsingle(), false); in TEST()
1720 APFloat expected = APFloat(APFloat::IEEEsingle(), "0x1p-126"); in TEST()
1726 test = APFloat::getSmallestNormalized(APFloat::IEEEsingle(), true); in TEST()
1727 expected = APFloat(APFloat::IEEEsingle(), "-0x1p-126"); in TEST()
1733 test = APFloat::getSmallestNormalized(APFloat::IEEEquad(), false); in TEST()
1734 expected = APFloat(APFloat::IEEEquad(), "0x1p-16382"); in TEST()
1740 test = APFloat::getSmallestNormalized(APFloat::IEEEquad(), true); in TEST()
1741 expected = APFloat(APFloat::IEEEquad(), "-0x1p-16382"); in TEST()
1755 { &APFloat::IEEEhalf(), false, {0, 0}, 1}, in TEST()
1756 { &APFloat::IEEEhalf(), true, {0x8000ULL, 0}, 1}, in TEST()
1757 { &APFloat::IEEEsingle(), false, {0, 0}, 1}, in TEST()
1758 { &APFloat::IEEEsingle(), true, {0x80000000ULL, 0}, 1}, in TEST()
1759 { &APFloat::IEEEdouble(), false, {0, 0}, 1}, in TEST()
1760 { &APFloat::IEEEdouble(), true, {0x8000000000000000ULL, 0}, 1}, in TEST()
1761 { &APFloat::IEEEquad(), false, {0, 0}, 2}, in TEST()
1762 { &APFloat::IEEEquad(), true, {0, 0x8000000000000000ULL}, 2}, in TEST()
1763 { &APFloat::PPCDoubleDouble(), false, {0, 0}, 2}, in TEST()
1764 { &APFloat::PPCDoubleDouble(), true, {0x8000000000000000ULL, 0}, 2}, in TEST()
1765 { &APFloat::x87DoubleExtended(), false, {0, 0}, 2}, in TEST()
1766 { &APFloat::x87DoubleExtended(), true, {0, 0x8000ULL}, 2}, in TEST()
1770 APFloat test = APFloat::getZero(*GetZeroTest[i].semantics, in TEST()
1773 APFloat expected = APFloat(*GetZeroTest[i].semantics, in TEST()
1786 EXPECT_TRUE(APFloat(-42.0).bitwiseIsEqual( in TEST()
1787 APFloat::copySign(APFloat(42.0), APFloat(-1.0)))); in TEST()
1788 EXPECT_TRUE(APFloat(42.0).bitwiseIsEqual( in TEST()
1789 APFloat::copySign(APFloat(-42.0), APFloat(1.0)))); in TEST()
1790 EXPECT_TRUE(APFloat(-42.0).bitwiseIsEqual( in TEST()
1791 APFloat::copySign(APFloat(-42.0), APFloat(-1.0)))); in TEST()
1792 EXPECT_TRUE(APFloat(42.0).bitwiseIsEqual( in TEST()
1793 APFloat::copySign(APFloat(42.0), APFloat(1.0)))); in TEST()
1798 APFloat test(APFloat::IEEEdouble(), "1.0"); in TEST()
1799 test.convert(APFloat::IEEEsingle(), APFloat::rmNearestTiesToEven, &losesInfo); in TEST()
1803 test = APFloat(APFloat::x87DoubleExtended(), "0x1p-53"); in TEST()
1804 test.add(APFloat(APFloat::x87DoubleExtended(), "1.0"), APFloat::rmNearestTiesToEven); in TEST()
1805 test.convert(APFloat::IEEEdouble(), APFloat::rmNearestTiesToEven, &losesInfo); in TEST()
1809 test = APFloat(APFloat::IEEEquad(), "0x1p-53"); in TEST()
1810 test.add(APFloat(APFloat::IEEEquad(), "1.0"), APFloat::rmNearestTiesToEven); in TEST()
1811 test.convert(APFloat::IEEEdouble(), APFloat::rmNearestTiesToEven, &losesInfo); in TEST()
1815 test = APFloat(APFloat::x87DoubleExtended(), "0xf.fffffffp+28"); in TEST()
1816 test.convert(APFloat::IEEEdouble(), APFloat::rmNearestTiesToEven, &losesInfo); in TEST()
1820 test = APFloat::getSNaN(APFloat::IEEEsingle()); in TEST()
1821 …APFloat::opStatus status = test.convert(APFloat::x87DoubleExtended(), APFloat::rmNearestTiesToEven… in TEST()
1824 …EXPECT_TRUE(test.bitwiseIsEqual(APFloat::getQNaN(APFloat::x87DoubleExtended(), false, &topTwoBits)… in TEST()
1826 EXPECT_EQ(status, APFloat::opInvalidOp); in TEST()
1828 test = APFloat::getQNaN(APFloat::IEEEsingle()); in TEST()
1829 APFloat X87QNaN = APFloat::getQNaN(APFloat::x87DoubleExtended()); in TEST()
1830 test.convert(APFloat::x87DoubleExtended(), APFloat::rmNearestTiesToEven, in TEST()
1835 test = APFloat::getSNaN(APFloat::x87DoubleExtended()); in TEST()
1836 test.convert(APFloat::x87DoubleExtended(), APFloat::rmNearestTiesToEven, in TEST()
1838 APFloat X87SNaN = APFloat::getSNaN(APFloat::x87DoubleExtended()); in TEST()
1842 test = APFloat::getQNaN(APFloat::x87DoubleExtended()); in TEST()
1843 test.convert(APFloat::x87DoubleExtended(), APFloat::rmNearestTiesToEven, in TEST()
1850 test = APFloat::getSNaN(APFloat::IEEEdouble(), false, &payload); in TEST()
1851 status = test.convert(APFloat::IEEEsingle(), APFloat::rmNearestTiesToEven, &losesInfo); in TEST()
1854 EXPECT_EQ(status, APFloat::opInvalidOp); in TEST()
1857 test = APFloat::getQNaN(APFloat::IEEEdouble(), false, &payload); in TEST()
1858 status = test.convert(APFloat::IEEEsingle(), APFloat::rmNearestTiesToEven, &losesInfo); in TEST()
1861 EXPECT_EQ(status, APFloat::opOK); in TEST()
1864 test = APFloat(APFloat::IEEEdouble(), "0x0.0000010000000p-1022"); in TEST()
1865 test.convert(APFloat::IEEEsingle(), APFloat::rmNearestTiesToEven, &losesInfo); in TEST()
1869 test = APFloat(APFloat::IEEEdouble(), "0x0.0000010000001p-1022"); in TEST()
1870 test.convert(APFloat::IEEEsingle(), APFloat::rmNearestTiesToEven, &losesInfo); in TEST()
1874 test = APFloat(APFloat::IEEEdouble(), "-0x0.0000010000001p-1022"); in TEST()
1875 test.convert(APFloat::IEEEsingle(), APFloat::rmNearestTiesToEven, &losesInfo); in TEST()
1879 test = APFloat(APFloat::IEEEdouble(), "0x0.0000020000000p-1022"); in TEST()
1880 test.convert(APFloat::IEEEsingle(), APFloat::rmNearestTiesToEven, &losesInfo); in TEST()
1884 test = APFloat(APFloat::IEEEdouble(), "0x0.0000020000001p-1022"); in TEST()
1885 test.convert(APFloat::IEEEsingle(), APFloat::rmNearestTiesToEven, &losesInfo); in TEST()
1890 test = APFloat(APFloat::IEEEsingle(), "0x0.01p-126"); in TEST()
1891 test.convert(APFloat::BFloat(), APFloat::rmNearestTiesToEven, &losesInfo); in TEST()
1895 test = APFloat(APFloat::IEEEsingle(), "0x0.02p-126"); in TEST()
1896 test.convert(APFloat::BFloat(), APFloat::rmNearestTiesToEven, &losesInfo); in TEST()
1900 test = APFloat(APFloat::IEEEsingle(), "0x0.01p-126"); in TEST()
1901 test.convert(APFloat::BFloat(), APFloat::rmNearestTiesToAway, &losesInfo); in TEST()
1907 APFloat test(APFloat::PPCDoubleDouble(), "1.0"); in TEST()
1912 test = APFloat(APFloat::PPCDoubleDouble(), "1.79769313486231580793728971405301e+308"); in TEST()
1917 test = APFloat(APFloat::PPCDoubleDouble(), "2.00416836000897277799610805135016e-292"); in TEST()
1923 auto Result = APFloat(APFloat::PPCDoubleDouble(), "1.0") + in TEST()
1924 APFloat(APFloat::PPCDoubleDouble(), "1.0"); in TEST()
1925 EXPECT_EQ(&APFloat::PPCDoubleDouble(), &Result.getSemantics()); in TEST()
1927 Result = APFloat(APFloat::PPCDoubleDouble(), "1.0") - in TEST()
1928 APFloat(APFloat::PPCDoubleDouble(), "1.0"); in TEST()
1929 EXPECT_EQ(&APFloat::PPCDoubleDouble(), &Result.getSemantics()); in TEST()
1931 Result = APFloat(APFloat::PPCDoubleDouble(), "1.0") * in TEST()
1932 APFloat(APFloat::PPCDoubleDouble(), "1.0"); in TEST()
1933 EXPECT_EQ(&APFloat::PPCDoubleDouble(), &Result.getSemantics()); in TEST()
1935 Result = APFloat(APFloat::PPCDoubleDouble(), "1.0") / in TEST()
1936 APFloat(APFloat::PPCDoubleDouble(), "1.0"); in TEST()
1937 EXPECT_EQ(&APFloat::PPCDoubleDouble(), &Result.getSemantics()); in TEST()
1940 Result = frexp(APFloat(APFloat::PPCDoubleDouble(), "1.0"), Exp, in TEST()
1941 APFloat::rmNearestTiesToEven); in TEST()
1942 EXPECT_EQ(&APFloat::PPCDoubleDouble(), &Result.getSemantics()); in TEST()
1944 Result = scalbn(APFloat(APFloat::PPCDoubleDouble(), "1.0"), 1, in TEST()
1945 APFloat::rmNearestTiesToEven); in TEST()
1946 EXPECT_EQ(&APFloat::PPCDoubleDouble(), &Result.getSemantics()); in TEST()
1951 APFloat t(APFloat::IEEEsingle(), "0x1p+0"); in TEST()
1953 t = APFloat(APFloat::IEEEsingle(), "-0x1p+0"); in TEST()
1956 EXPECT_FALSE(APFloat::getInf(APFloat::IEEEsingle(), false).isNegative()); in TEST()
1957 EXPECT_TRUE(APFloat::getInf(APFloat::IEEEsingle(), true).isNegative()); in TEST()
1959 EXPECT_FALSE(APFloat::getZero(APFloat::IEEEsingle(), false).isNegative()); in TEST()
1960 EXPECT_TRUE(APFloat::getZero(APFloat::IEEEsingle(), true).isNegative()); in TEST()
1962 EXPECT_FALSE(APFloat::getNaN(APFloat::IEEEsingle(), false).isNegative()); in TEST()
1963 EXPECT_TRUE(APFloat::getNaN(APFloat::IEEEsingle(), true).isNegative()); in TEST()
1965 EXPECT_FALSE(APFloat::getSNaN(APFloat::IEEEsingle(), false).isNegative()); in TEST()
1966 EXPECT_TRUE(APFloat::getSNaN(APFloat::IEEEsingle(), true).isNegative()); in TEST()
1970 APFloat t(APFloat::IEEEsingle(), "0x1p+0"); in TEST()
1973 EXPECT_FALSE(APFloat::getInf(APFloat::IEEEsingle(), false).isNormal()); in TEST()
1974 EXPECT_FALSE(APFloat::getZero(APFloat::IEEEsingle(), false).isNormal()); in TEST()
1975 EXPECT_FALSE(APFloat::getNaN(APFloat::IEEEsingle(), false).isNormal()); in TEST()
1976 EXPECT_FALSE(APFloat::getSNaN(APFloat::IEEEsingle(), false).isNormal()); in TEST()
1977 EXPECT_FALSE(APFloat(APFloat::IEEEsingle(), "0x1p-149").isNormal()); in TEST()
1981 APFloat t(APFloat::IEEEsingle(), "0x1p+0"); in TEST()
1983 EXPECT_FALSE(APFloat::getInf(APFloat::IEEEsingle(), false).isFinite()); in TEST()
1984 EXPECT_TRUE(APFloat::getZero(APFloat::IEEEsingle(), false).isFinite()); in TEST()
1985 EXPECT_FALSE(APFloat::getNaN(APFloat::IEEEsingle(), false).isFinite()); in TEST()
1986 EXPECT_FALSE(APFloat::getSNaN(APFloat::IEEEsingle(), false).isFinite()); in TEST()
1987 EXPECT_TRUE(APFloat(APFloat::IEEEsingle(), "0x1p-149").isFinite()); in TEST()
1991 APFloat t(APFloat::IEEEsingle(), "0x1p+0"); in TEST()
1993 EXPECT_TRUE(APFloat::getInf(APFloat::IEEEsingle(), false).isInfinity()); in TEST()
1994 EXPECT_FALSE(APFloat::getZero(APFloat::IEEEsingle(), false).isInfinity()); in TEST()
1995 EXPECT_FALSE(APFloat::getNaN(APFloat::IEEEsingle(), false).isInfinity()); in TEST()
1996 EXPECT_FALSE(APFloat::getSNaN(APFloat::IEEEsingle(), false).isInfinity()); in TEST()
1997 EXPECT_FALSE(APFloat(APFloat::IEEEsingle(), "0x1p-149").isInfinity()); in TEST()
2001 APFloat t(APFloat::IEEEsingle(), "0x1p+0"); in TEST()
2003 EXPECT_FALSE(APFloat::getInf(APFloat::IEEEsingle(), false).isNaN()); in TEST()
2004 EXPECT_FALSE(APFloat::getZero(APFloat::IEEEsingle(), false).isNaN()); in TEST()
2005 EXPECT_TRUE(APFloat::getNaN(APFloat::IEEEsingle(), false).isNaN()); in TEST()
2006 EXPECT_TRUE(APFloat::getSNaN(APFloat::IEEEsingle(), false).isNaN()); in TEST()
2007 EXPECT_FALSE(APFloat(APFloat::IEEEsingle(), "0x1p-149").isNaN()); in TEST()
2012 EXPECT_TRUE(APFloat(APFloat::IEEEsingle(), "0x1p+0").isFiniteNonZero()); in TEST()
2013 EXPECT_TRUE(APFloat(APFloat::IEEEsingle(), "-0x1p+0").isFiniteNonZero()); in TEST()
2016 EXPECT_TRUE(APFloat(APFloat::IEEEsingle(), "0x1p-149").isFiniteNonZero()); in TEST()
2017 EXPECT_TRUE(APFloat(APFloat::IEEEsingle(), "-0x1p-149").isFiniteNonZero()); in TEST()
2020 EXPECT_FALSE(APFloat::getInf(APFloat::IEEEsingle(), false).isFiniteNonZero()); in TEST()
2021 EXPECT_FALSE(APFloat::getInf(APFloat::IEEEsingle(), true).isFiniteNonZero()); in TEST()
2024 EXPECT_FALSE(APFloat::getZero(APFloat::IEEEsingle(), false).isFiniteNonZero()); in TEST()
2025 EXPECT_FALSE(APFloat::getZero(APFloat::IEEEsingle(), true).isFiniteNonZero()); in TEST()
2029 EXPECT_FALSE(APFloat::getNaN(APFloat::IEEEsingle(), false).isFiniteNonZero()); in TEST()
2030 EXPECT_FALSE(APFloat::getNaN(APFloat::IEEEsingle(), true).isFiniteNonZero()); in TEST()
2034 EXPECT_FALSE(APFloat::getSNaN(APFloat::IEEEsingle(), false).isFiniteNonZero()); in TEST()
2035 EXPECT_FALSE(APFloat::getSNaN(APFloat::IEEEsingle(), true).isFiniteNonZero()); in TEST()
2041 APFloat PInf = APFloat::getInf(APFloat::IEEEsingle(), false); in TEST()
2042 APFloat MInf = APFloat::getInf(APFloat::IEEEsingle(), true); in TEST()
2043 APFloat PZero = APFloat::getZero(APFloat::IEEEsingle(), false); in TEST()
2044 APFloat MZero = APFloat::getZero(APFloat::IEEEsingle(), true); in TEST()
2045 APFloat QNaN = APFloat::getNaN(APFloat::IEEEsingle(), false); in TEST()
2046 APFloat SNaN = APFloat(APFloat::IEEEsingle(), "snan123"); in TEST()
2047 APFloat PNormalValue = APFloat(APFloat::IEEEsingle(), "0x1p+0"); in TEST()
2048 APFloat MNormalValue = APFloat(APFloat::IEEEsingle(), "-0x1p+0"); in TEST()
2049 APFloat PLargestValue = APFloat::getLargest(APFloat::IEEEsingle(), false); in TEST()
2050 APFloat MLargestValue = APFloat::getLargest(APFloat::IEEEsingle(), true); in TEST()
2051 APFloat PSmallestValue = APFloat::getSmallest(APFloat::IEEEsingle(), false); in TEST()
2052 APFloat MSmallestValue = APFloat::getSmallest(APFloat::IEEEsingle(), true); in TEST()
2053 APFloat PSmallestNormalized = in TEST()
2054 APFloat::getSmallestNormalized(APFloat::IEEEsingle(), false); in TEST()
2055 APFloat MSmallestNormalized = in TEST()
2056 APFloat::getSmallestNormalized(APFloat::IEEEsingle(), true); in TEST()
2058 const int OverflowStatus = APFloat::opOverflow | APFloat::opInexact; in TEST()
2061 APFloat x; in TEST()
2062 APFloat y; in TEST()
2067 { PInf, PInf, "inf", APFloat::opOK, APFloat::fcInfinity }, in TEST()
2068 { PInf, MInf, "nan", APFloat::opInvalidOp, APFloat::fcNaN }, in TEST()
2069 { PInf, PZero, "inf", APFloat::opOK, APFloat::fcInfinity }, in TEST()
2070 { PInf, MZero, "inf", APFloat::opOK, APFloat::fcInfinity }, in TEST()
2071 { PInf, QNaN, "nan", APFloat::opOK, APFloat::fcNaN }, in TEST()
2072 { PInf, SNaN, "nan123", APFloat::opInvalidOp, APFloat::fcNaN }, in TEST()
2073 { PInf, PNormalValue, "inf", APFloat::opOK, APFloat::fcInfinity }, in TEST()
2074 { PInf, MNormalValue, "inf", APFloat::opOK, APFloat::fcInfinity }, in TEST()
2075 { PInf, PLargestValue, "inf", APFloat::opOK, APFloat::fcInfinity }, in TEST()
2076 { PInf, MLargestValue, "inf", APFloat::opOK, APFloat::fcInfinity }, in TEST()
2077 { PInf, PSmallestValue, "inf", APFloat::opOK, APFloat::fcInfinity }, in TEST()
2078 { PInf, MSmallestValue, "inf", APFloat::opOK, APFloat::fcInfinity }, in TEST()
2079 { PInf, PSmallestNormalized, "inf", APFloat::opOK, APFloat::fcInfinity }, in TEST()
2080 { PInf, MSmallestNormalized, "inf", APFloat::opOK, APFloat::fcInfinity }, in TEST()
2081 { MInf, PInf, "nan", APFloat::opInvalidOp, APFloat::fcNaN }, in TEST()
2082 { MInf, MInf, "-inf", APFloat::opOK, APFloat::fcInfinity }, in TEST()
2083 { MInf, PZero, "-inf", APFloat::opOK, APFloat::fcInfinity }, in TEST()
2084 { MInf, MZero, "-inf", APFloat::opOK, APFloat::fcInfinity }, in TEST()
2085 { MInf, QNaN, "nan", APFloat::opOK, APFloat::fcNaN }, in TEST()
2086 { MInf, SNaN, "nan123", APFloat::opInvalidOp, APFloat::fcNaN }, in TEST()
2087 { MInf, PNormalValue, "-inf", APFloat::opOK, APFloat::fcInfinity }, in TEST()
2088 { MInf, MNormalValue, "-inf", APFloat::opOK, APFloat::fcInfinity }, in TEST()
2089 { MInf, PLargestValue, "-inf", APFloat::opOK, APFloat::fcInfinity }, in TEST()
2090 { MInf, MLargestValue, "-inf", APFloat::opOK, APFloat::fcInfinity }, in TEST()
2091 { MInf, PSmallestValue, "-inf", APFloat::opOK, APFloat::fcInfinity }, in TEST()
2092 { MInf, MSmallestValue, "-inf", APFloat::opOK, APFloat::fcInfinity }, in TEST()
2093 { MInf, PSmallestNormalized, "-inf", APFloat::opOK, APFloat::fcInfinity }, in TEST()
2094 { MInf, MSmallestNormalized, "-inf", APFloat::opOK, APFloat::fcInfinity }, in TEST()
2095 { PZero, PInf, "inf", APFloat::opOK, APFloat::fcInfinity }, in TEST()
2096 { PZero, MInf, "-inf", APFloat::opOK, APFloat::fcInfinity }, in TEST()
2097 { PZero, PZero, "0x0p+0", APFloat::opOK, APFloat::fcZero }, in TEST()
2098 { PZero, MZero, "0x0p+0", APFloat::opOK, APFloat::fcZero }, in TEST()
2099 { PZero, QNaN, "nan", APFloat::opOK, APFloat::fcNaN }, in TEST()
2100 { PZero, SNaN, "nan123", APFloat::opInvalidOp, APFloat::fcNaN }, in TEST()
2101 { PZero, PNormalValue, "0x1p+0", APFloat::opOK, APFloat::fcNormal }, in TEST()
2102 { PZero, MNormalValue, "-0x1p+0", APFloat::opOK, APFloat::fcNormal }, in TEST()
2103 { PZero, PLargestValue, "0x1.fffffep+127", APFloat::opOK, APFloat::fcNormal }, in TEST()
2104 { PZero, MLargestValue, "-0x1.fffffep+127", APFloat::opOK, APFloat::fcNormal }, in TEST()
2105 { PZero, PSmallestValue, "0x1p-149", APFloat::opOK, APFloat::fcNormal }, in TEST()
2106 { PZero, MSmallestValue, "-0x1p-149", APFloat::opOK, APFloat::fcNormal }, in TEST()
2107 { PZero, PSmallestNormalized, "0x1p-126", APFloat::opOK, APFloat::fcNormal }, in TEST()
2108 { PZero, MSmallestNormalized, "-0x1p-126", APFloat::opOK, APFloat::fcNormal }, in TEST()
2109 { MZero, PInf, "inf", APFloat::opOK, APFloat::fcInfinity }, in TEST()
2110 { MZero, MInf, "-inf", APFloat::opOK, APFloat::fcInfinity }, in TEST()
2111 { MZero, PZero, "0x0p+0", APFloat::opOK, APFloat::fcZero }, in TEST()
2112 { MZero, MZero, "-0x0p+0", APFloat::opOK, APFloat::fcZero }, in TEST()
2113 { MZero, QNaN, "nan", APFloat::opOK, APFloat::fcNaN }, in TEST()
2114 { MZero, SNaN, "nan123", APFloat::opInvalidOp, APFloat::fcNaN }, in TEST()
2115 { MZero, PNormalValue, "0x1p+0", APFloat::opOK, APFloat::fcNormal }, in TEST()
2116 { MZero, MNormalValue, "-0x1p+0", APFloat::opOK, APFloat::fcNormal }, in TEST()
2117 { MZero, PLargestValue, "0x1.fffffep+127", APFloat::opOK, APFloat::fcNormal }, in TEST()
2118 { MZero, MLargestValue, "-0x1.fffffep+127", APFloat::opOK, APFloat::fcNormal }, in TEST()
2119 { MZero, PSmallestValue, "0x1p-149", APFloat::opOK, APFloat::fcNormal }, in TEST()
2120 { MZero, MSmallestValue, "-0x1p-149", APFloat::opOK, APFloat::fcNormal }, in TEST()
2121 { MZero, PSmallestNormalized, "0x1p-126", APFloat::opOK, APFloat::fcNormal }, in TEST()
2122 { MZero, MSmallestNormalized, "-0x1p-126", APFloat::opOK, APFloat::fcNormal }, in TEST()
2123 { QNaN, PInf, "nan", APFloat::opOK, APFloat::fcNaN }, in TEST()
2124 { QNaN, MInf, "nan", APFloat::opOK, APFloat::fcNaN }, in TEST()
2125 { QNaN, PZero, "nan", APFloat::opOK, APFloat::fcNaN }, in TEST()
2126 { QNaN, MZero, "nan", APFloat::opOK, APFloat::fcNaN }, in TEST()
2127 { QNaN, QNaN, "nan", APFloat::opOK, APFloat::fcNaN }, in TEST()
2128 { QNaN, SNaN, "nan", APFloat::opInvalidOp, APFloat::fcNaN }, in TEST()
2129 { QNaN, PNormalValue, "nan", APFloat::opOK, APFloat::fcNaN }, in TEST()
2130 { QNaN, MNormalValue, "nan", APFloat::opOK, APFloat::fcNaN }, in TEST()
2131 { QNaN, PLargestValue, "nan", APFloat::opOK, APFloat::fcNaN }, in TEST()
2132 { QNaN, MLargestValue, "nan", APFloat::opOK, APFloat::fcNaN }, in TEST()
2133 { QNaN, PSmallestValue, "nan", APFloat::opOK, APFloat::fcNaN }, in TEST()
2134 { QNaN, MSmallestValue, "nan", APFloat::opOK, APFloat::fcNaN }, in TEST()
2135 { QNaN, PSmallestNormalized, "nan", APFloat::opOK, APFloat::fcNaN }, in TEST()
2136 { QNaN, MSmallestNormalized, "nan", APFloat::opOK, APFloat::fcNaN }, in TEST()
2137 { SNaN, PInf, "nan123", APFloat::opInvalidOp, APFloat::fcNaN }, in TEST()
2138 { SNaN, MInf, "nan123", APFloat::opInvalidOp, APFloat::fcNaN }, in TEST()
2139 { SNaN, PZero, "nan123", APFloat::opInvalidOp, APFloat::fcNaN }, in TEST()
2140 { SNaN, MZero, "nan123", APFloat::opInvalidOp, APFloat::fcNaN }, in TEST()
2141 { SNaN, QNaN, "nan123", APFloat::opInvalidOp, APFloat::fcNaN }, in TEST()
2142 { SNaN, SNaN, "nan123", APFloat::opInvalidOp, APFloat::fcNaN }, in TEST()
2143 { SNaN, PNormalValue, "nan123", APFloat::opInvalidOp, APFloat::fcNaN }, in TEST()
2144 { SNaN, MNormalValue, "nan123", APFloat::opInvalidOp, APFloat::fcNaN }, in TEST()
2145 { SNaN, PLargestValue, "nan123", APFloat::opInvalidOp, APFloat::fcNaN }, in TEST()
2146 { SNaN, MLargestValue, "nan123", APFloat::opInvalidOp, APFloat::fcNaN }, in TEST()
2147 { SNaN, PSmallestValue, "nan123", APFloat::opInvalidOp, APFloat::fcNaN }, in TEST()
2148 { SNaN, MSmallestValue, "nan123", APFloat::opInvalidOp, APFloat::fcNaN }, in TEST()
2149 { SNaN, PSmallestNormalized, "nan123", APFloat::opInvalidOp, APFloat::fcNaN }, in TEST()
2150 { SNaN, MSmallestNormalized, "nan123", APFloat::opInvalidOp, APFloat::fcNaN }, in TEST()
2151 { PNormalValue, PInf, "inf", APFloat::opOK, APFloat::fcInfinity }, in TEST()
2152 { PNormalValue, MInf, "-inf", APFloat::opOK, APFloat::fcInfinity }, in TEST()
2153 { PNormalValue, PZero, "0x1p+0", APFloat::opOK, APFloat::fcNormal }, in TEST()
2154 { PNormalValue, MZero, "0x1p+0", APFloat::opOK, APFloat::fcNormal }, in TEST()
2155 { PNormalValue, QNaN, "nan", APFloat::opOK, APFloat::fcNaN }, in TEST()
2156 { PNormalValue, SNaN, "nan123", APFloat::opInvalidOp, APFloat::fcNaN }, in TEST()
2157 { PNormalValue, PNormalValue, "0x1p+1", APFloat::opOK, APFloat::fcNormal }, in TEST()
2158 { PNormalValue, MNormalValue, "0x0p+0", APFloat::opOK, APFloat::fcZero }, in TEST()
2159 { PNormalValue, PLargestValue, "0x1.fffffep+127", APFloat::opInexact, APFloat::fcNormal }, in TEST()
2160 { PNormalValue, MLargestValue, "-0x1.fffffep+127", APFloat::opInexact, APFloat::fcNormal }, in TEST()
2161 { PNormalValue, PSmallestValue, "0x1p+0", APFloat::opInexact, APFloat::fcNormal }, in TEST()
2162 { PNormalValue, MSmallestValue, "0x1p+0", APFloat::opInexact, APFloat::fcNormal }, in TEST()
2163 { PNormalValue, PSmallestNormalized, "0x1p+0", APFloat::opInexact, APFloat::fcNormal }, in TEST()
2164 { PNormalValue, MSmallestNormalized, "0x1p+0", APFloat::opInexact, APFloat::fcNormal }, in TEST()
2165 { MNormalValue, PInf, "inf", APFloat::opOK, APFloat::fcInfinity }, in TEST()
2166 { MNormalValue, MInf, "-inf", APFloat::opOK, APFloat::fcInfinity }, in TEST()
2167 { MNormalValue, PZero, "-0x1p+0", APFloat::opOK, APFloat::fcNormal }, in TEST()
2168 { MNormalValue, MZero, "-0x1p+0", APFloat::opOK, APFloat::fcNormal }, in TEST()
2169 { MNormalValue, QNaN, "nan", APFloat::opOK, APFloat::fcNaN }, in TEST()
2170 { MNormalValue, SNaN, "nan123", APFloat::opInvalidOp, APFloat::fcNaN }, in TEST()
2171 { MNormalValue, PNormalValue, "0x0p+0", APFloat::opOK, APFloat::fcZero }, in TEST()
2172 { MNormalValue, MNormalValue, "-0x1p+1", APFloat::opOK, APFloat::fcNormal }, in TEST()
2173 { MNormalValue, PLargestValue, "0x1.fffffep+127", APFloat::opInexact, APFloat::fcNormal }, in TEST()
2174 { MNormalValue, MLargestValue, "-0x1.fffffep+127", APFloat::opInexact, APFloat::fcNormal }, in TEST()
2175 { MNormalValue, PSmallestValue, "-0x1p+0", APFloat::opInexact, APFloat::fcNormal }, in TEST()
2176 { MNormalValue, MSmallestValue, "-0x1p+0", APFloat::opInexact, APFloat::fcNormal }, in TEST()
2177 { MNormalValue, PSmallestNormalized, "-0x1p+0", APFloat::opInexact, APFloat::fcNormal }, in TEST()
2178 { MNormalValue, MSmallestNormalized, "-0x1p+0", APFloat::opInexact, APFloat::fcNormal }, in TEST()
2179 { PLargestValue, PInf, "inf", APFloat::opOK, APFloat::fcInfinity }, in TEST()
2180 { PLargestValue, MInf, "-inf", APFloat::opOK, APFloat::fcInfinity }, in TEST()
2181 { PLargestValue, PZero, "0x1.fffffep+127", APFloat::opOK, APFloat::fcNormal }, in TEST()
2182 { PLargestValue, MZero, "0x1.fffffep+127", APFloat::opOK, APFloat::fcNormal }, in TEST()
2183 { PLargestValue, QNaN, "nan", APFloat::opOK, APFloat::fcNaN }, in TEST()
2184 { PLargestValue, SNaN, "nan123", APFloat::opInvalidOp, APFloat::fcNaN }, in TEST()
2185 { PLargestValue, PNormalValue, "0x1.fffffep+127", APFloat::opInexact, APFloat::fcNormal }, in TEST()
2186 { PLargestValue, MNormalValue, "0x1.fffffep+127", APFloat::opInexact, APFloat::fcNormal }, in TEST()
2187 { PLargestValue, PLargestValue, "inf", OverflowStatus, APFloat::fcInfinity }, in TEST()
2188 { PLargestValue, MLargestValue, "0x0p+0", APFloat::opOK, APFloat::fcZero }, in TEST()
2189 { PLargestValue, PSmallestValue, "0x1.fffffep+127", APFloat::opInexact, APFloat::fcNormal }, in TEST()
2190 { PLargestValue, MSmallestValue, "0x1.fffffep+127", APFloat::opInexact, APFloat::fcNormal }, in TEST()
2191 … { PLargestValue, PSmallestNormalized, "0x1.fffffep+127", APFloat::opInexact, APFloat::fcNormal }, in TEST()
2192 … { PLargestValue, MSmallestNormalized, "0x1.fffffep+127", APFloat::opInexact, APFloat::fcNormal }, in TEST()
2193 { MLargestValue, PInf, "inf", APFloat::opOK, APFloat::fcInfinity }, in TEST()
2194 { MLargestValue, MInf, "-inf", APFloat::opOK, APFloat::fcInfinity }, in TEST()
2195 { MLargestValue, PZero, "-0x1.fffffep+127", APFloat::opOK, APFloat::fcNormal }, in TEST()
2196 { MLargestValue, MZero, "-0x1.fffffep+127", APFloat::opOK, APFloat::fcNormal }, in TEST()
2197 { MLargestValue, QNaN, "nan", APFloat::opOK, APFloat::fcNaN }, in TEST()
2198 { MLargestValue, SNaN, "nan123", APFloat::opInvalidOp, APFloat::fcNaN }, in TEST()
2199 { MLargestValue, PNormalValue, "-0x1.fffffep+127", APFloat::opInexact, APFloat::fcNormal }, in TEST()
2200 { MLargestValue, MNormalValue, "-0x1.fffffep+127", APFloat::opInexact, APFloat::fcNormal }, in TEST()
2201 { MLargestValue, PLargestValue, "0x0p+0", APFloat::opOK, APFloat::fcZero }, in TEST()
2202 { MLargestValue, MLargestValue, "-inf", OverflowStatus, APFloat::fcInfinity }, in TEST()
2203 { MLargestValue, PSmallestValue, "-0x1.fffffep+127", APFloat::opInexact, APFloat::fcNormal }, in TEST()
2204 { MLargestValue, MSmallestValue, "-0x1.fffffep+127", APFloat::opInexact, APFloat::fcNormal }, in TEST()
2205 … { MLargestValue, PSmallestNormalized, "-0x1.fffffep+127", APFloat::opInexact, APFloat::fcNormal }, in TEST()
2206 … { MLargestValue, MSmallestNormalized, "-0x1.fffffep+127", APFloat::opInexact, APFloat::fcNormal }, in TEST()
2207 { PSmallestValue, PInf, "inf", APFloat::opOK, APFloat::fcInfinity }, in TEST()
2208 { PSmallestValue, MInf, "-inf", APFloat::opOK, APFloat::fcInfinity }, in TEST()
2209 { PSmallestValue, PZero, "0x1p-149", APFloat::opOK, APFloat::fcNormal }, in TEST()
2210 { PSmallestValue, MZero, "0x1p-149", APFloat::opOK, APFloat::fcNormal }, in TEST()
2211 { PSmallestValue, QNaN, "nan", APFloat::opOK, APFloat::fcNaN }, in TEST()
2212 { PSmallestValue, SNaN, "nan123", APFloat::opInvalidOp, APFloat::fcNaN }, in TEST()
2213 { PSmallestValue, PNormalValue, "0x1p+0", APFloat::opInexact, APFloat::fcNormal }, in TEST()
2214 { PSmallestValue, MNormalValue, "-0x1p+0", APFloat::opInexact, APFloat::fcNormal }, in TEST()
2215 { PSmallestValue, PLargestValue, "0x1.fffffep+127", APFloat::opInexact, APFloat::fcNormal }, in TEST()
2216 { PSmallestValue, MLargestValue, "-0x1.fffffep+127", APFloat::opInexact, APFloat::fcNormal }, in TEST()
2217 { PSmallestValue, PSmallestValue, "0x1p-148", APFloat::opOK, APFloat::fcNormal }, in TEST()
2218 { PSmallestValue, MSmallestValue, "0x0p+0", APFloat::opOK, APFloat::fcZero }, in TEST()
2219 { PSmallestValue, PSmallestNormalized, "0x1.000002p-126", APFloat::opOK, APFloat::fcNormal }, in TEST()
2220 { PSmallestValue, MSmallestNormalized, "-0x1.fffffcp-127", APFloat::opOK, APFloat::fcNormal }, in TEST()
2221 { MSmallestValue, PInf, "inf", APFloat::opOK, APFloat::fcInfinity }, in TEST()
2222 { MSmallestValue, MInf, "-inf", APFloat::opOK, APFloat::fcInfinity }, in TEST()
2223 { MSmallestValue, PZero, "-0x1p-149", APFloat::opOK, APFloat::fcNormal }, in TEST()
2224 { MSmallestValue, MZero, "-0x1p-149", APFloat::opOK, APFloat::fcNormal }, in TEST()
2225 { MSmallestValue, QNaN, "nan", APFloat::opOK, APFloat::fcNaN }, in TEST()
2226 { MSmallestValue, SNaN, "nan123", APFloat::opInvalidOp, APFloat::fcNaN }, in TEST()
2227 { MSmallestValue, PNormalValue, "0x1p+0", APFloat::opInexact, APFloat::fcNormal }, in TEST()
2228 { MSmallestValue, MNormalValue, "-0x1p+0", APFloat::opInexact, APFloat::fcNormal }, in TEST()
2229 { MSmallestValue, PLargestValue, "0x1.fffffep+127", APFloat::opInexact, APFloat::fcNormal }, in TEST()
2230 { MSmallestValue, MLargestValue, "-0x1.fffffep+127", APFloat::opInexact, APFloat::fcNormal }, in TEST()
2231 { MSmallestValue, PSmallestValue, "0x0p+0", APFloat::opOK, APFloat::fcZero }, in TEST()
2232 { MSmallestValue, MSmallestValue, "-0x1p-148", APFloat::opOK, APFloat::fcNormal }, in TEST()
2233 { MSmallestValue, PSmallestNormalized, "0x1.fffffcp-127", APFloat::opOK, APFloat::fcNormal }, in TEST()
2234 { MSmallestValue, MSmallestNormalized, "-0x1.000002p-126", APFloat::opOK, APFloat::fcNormal }, in TEST()
2235 { PSmallestNormalized, PInf, "inf", APFloat::opOK, APFloat::fcInfinity }, in TEST()
2236 { PSmallestNormalized, MInf, "-inf", APFloat::opOK, APFloat::fcInfinity }, in TEST()
2237 { PSmallestNormalized, PZero, "0x1p-126", APFloat::opOK, APFloat::fcNormal }, in TEST()
2238 { PSmallestNormalized, MZero, "0x1p-126", APFloat::opOK, APFloat::fcNormal }, in TEST()
2239 { PSmallestNormalized, QNaN, "nan", APFloat::opOK, APFloat::fcNaN }, in TEST()
2240 { PSmallestNormalized, SNaN, "nan123", APFloat::opInvalidOp, APFloat::fcNaN }, in TEST()
2241 { PSmallestNormalized, PNormalValue, "0x1p+0", APFloat::opInexact, APFloat::fcNormal }, in TEST()
2242 { PSmallestNormalized, MNormalValue, "-0x1p+0", APFloat::opInexact, APFloat::fcNormal }, in TEST()
2243 … { PSmallestNormalized, PLargestValue, "0x1.fffffep+127", APFloat::opInexact, APFloat::fcNormal }, in TEST()
2244 … { PSmallestNormalized, MLargestValue, "-0x1.fffffep+127", APFloat::opInexact, APFloat::fcNormal }, in TEST()
2245 { PSmallestNormalized, PSmallestValue, "0x1.000002p-126", APFloat::opOK, APFloat::fcNormal }, in TEST()
2246 { PSmallestNormalized, MSmallestValue, "0x1.fffffcp-127", APFloat::opOK, APFloat::fcNormal }, in TEST()
2247 { PSmallestNormalized, PSmallestNormalized, "0x1p-125", APFloat::opOK, APFloat::fcNormal }, in TEST()
2248 { PSmallestNormalized, MSmallestNormalized, "0x0p+0", APFloat::opOK, APFloat::fcZero }, in TEST()
2249 { MSmallestNormalized, PInf, "inf", APFloat::opOK, APFloat::fcInfinity }, in TEST()
2250 { MSmallestNormalized, MInf, "-inf", APFloat::opOK, APFloat::fcInfinity }, in TEST()
2251 { MSmallestNormalized, PZero, "-0x1p-126", APFloat::opOK, APFloat::fcNormal }, in TEST()
2252 { MSmallestNormalized, MZero, "-0x1p-126", APFloat::opOK, APFloat::fcNormal }, in TEST()
2253 { MSmallestNormalized, QNaN, "nan", APFloat::opOK, APFloat::fcNaN }, in TEST()
2254 { MSmallestNormalized, SNaN, "nan123", APFloat::opInvalidOp, APFloat::fcNaN }, in TEST()
2255 { MSmallestNormalized, PNormalValue, "0x1p+0", APFloat::opInexact, APFloat::fcNormal }, in TEST()
2256 { MSmallestNormalized, MNormalValue, "-0x1p+0", APFloat::opInexact, APFloat::fcNormal }, in TEST()
2257 … { MSmallestNormalized, PLargestValue, "0x1.fffffep+127", APFloat::opInexact, APFloat::fcNormal }, in TEST()
2258 … { MSmallestNormalized, MLargestValue, "-0x1.fffffep+127", APFloat::opInexact, APFloat::fcNormal }, in TEST()
2259 { MSmallestNormalized, PSmallestValue, "-0x1.fffffcp-127", APFloat::opOK, APFloat::fcNormal }, in TEST()
2260 { MSmallestNormalized, MSmallestValue, "-0x1.000002p-126", APFloat::opOK, APFloat::fcNormal }, in TEST()
2261 { MSmallestNormalized, PSmallestNormalized, "0x0p+0", APFloat::opOK, APFloat::fcZero }, in TEST()
2262 { MSmallestNormalized, MSmallestNormalized, "-0x1p-125", APFloat::opOK, APFloat::fcNormal } in TEST()
2266 APFloat x(SpecialCaseTests[i].x); in TEST()
2267 APFloat y(SpecialCaseTests[i].y); in TEST()
2268 APFloat::opStatus status = x.add(y, APFloat::rmNearestTiesToEven); in TEST()
2270 APFloat result(APFloat::IEEEsingle(), SpecialCaseTests[i].result); in TEST()
2281 APFloat PInf = APFloat::getInf(APFloat::IEEEsingle(), false); in TEST()
2282 APFloat MInf = APFloat::getInf(APFloat::IEEEsingle(), true); in TEST()
2283 APFloat PZero = APFloat::getZero(APFloat::IEEEsingle(), false); in TEST()
2284 APFloat MZero = APFloat::getZero(APFloat::IEEEsingle(), true); in TEST()
2285 APFloat QNaN = APFloat::getNaN(APFloat::IEEEsingle(), false); in TEST()
2286 APFloat SNaN = APFloat(APFloat::IEEEsingle(), "snan123"); in TEST()
2287 APFloat PNormalValue = APFloat(APFloat::IEEEsingle(), "0x1p+0"); in TEST()
2288 APFloat MNormalValue = APFloat(APFloat::IEEEsingle(), "-0x1p+0"); in TEST()
2289 APFloat PLargestValue = APFloat::getLargest(APFloat::IEEEsingle(), false); in TEST()
2290 APFloat MLargestValue = APFloat::getLargest(APFloat::IEEEsingle(), true); in TEST()
2291 APFloat PSmallestValue = APFloat::getSmallest(APFloat::IEEEsingle(), false); in TEST()
2292 APFloat MSmallestValue = APFloat::getSmallest(APFloat::IEEEsingle(), true); in TEST()
2293 APFloat PSmallestNormalized = in TEST()
2294 APFloat::getSmallestNormalized(APFloat::IEEEsingle(), false); in TEST()
2295 APFloat MSmallestNormalized = in TEST()
2296 APFloat::getSmallestNormalized(APFloat::IEEEsingle(), true); in TEST()
2298 const int OverflowStatus = APFloat::opOverflow | APFloat::opInexact; in TEST()
2301 APFloat x; in TEST()
2302 APFloat y; in TEST()
2307 { PInf, PInf, "nan", APFloat::opInvalidOp, APFloat::fcNaN }, in TEST()
2308 { PInf, MInf, "inf", APFloat::opOK, APFloat::fcInfinity }, in TEST()
2309 { PInf, PZero, "inf", APFloat::opOK, APFloat::fcInfinity }, in TEST()
2310 { PInf, MZero, "inf", APFloat::opOK, APFloat::fcInfinity }, in TEST()
2311 { PInf, QNaN, "nan", APFloat::opOK, APFloat::fcNaN }, in TEST()
2312 { PInf, SNaN, "nan123", APFloat::opInvalidOp, APFloat::fcNaN }, in TEST()
2313 { PInf, PNormalValue, "inf", APFloat::opOK, APFloat::fcInfinity }, in TEST()
2314 { PInf, MNormalValue, "inf", APFloat::opOK, APFloat::fcInfinity }, in TEST()
2315 { PInf, PLargestValue, "inf", APFloat::opOK, APFloat::fcInfinity }, in TEST()
2316 { PInf, MLargestValue, "inf", APFloat::opOK, APFloat::fcInfinity }, in TEST()
2317 { PInf, PSmallestValue, "inf", APFloat::opOK, APFloat::fcInfinity }, in TEST()
2318 { PInf, MSmallestValue, "inf", APFloat::opOK, APFloat::fcInfinity }, in TEST()
2319 { PInf, PSmallestNormalized, "inf", APFloat::opOK, APFloat::fcInfinity }, in TEST()
2320 { PInf, MSmallestNormalized, "inf", APFloat::opOK, APFloat::fcInfinity }, in TEST()
2321 { MInf, PInf, "-inf", APFloat::opOK, APFloat::fcInfinity }, in TEST()
2322 { MInf, MInf, "nan", APFloat::opInvalidOp, APFloat::fcNaN }, in TEST()
2323 { MInf, PZero, "-inf", APFloat::opOK, APFloat::fcInfinity }, in TEST()
2324 { MInf, MZero, "-inf", APFloat::opOK, APFloat::fcInfinity }, in TEST()
2325 { MInf, QNaN, "nan", APFloat::opOK, APFloat::fcNaN }, in TEST()
2326 { MInf, SNaN, "nan123", APFloat::opInvalidOp, APFloat::fcNaN }, in TEST()
2327 { MInf, PNormalValue, "-inf", APFloat::opOK, APFloat::fcInfinity }, in TEST()
2328 { MInf, MNormalValue, "-inf", APFloat::opOK, APFloat::fcInfinity }, in TEST()
2329 { MInf, PLargestValue, "-inf", APFloat::opOK, APFloat::fcInfinity }, in TEST()
2330 { MInf, MLargestValue, "-inf", APFloat::opOK, APFloat::fcInfinity }, in TEST()
2331 { MInf, PSmallestValue, "-inf", APFloat::opOK, APFloat::fcInfinity }, in TEST()
2332 { MInf, MSmallestValue, "-inf", APFloat::opOK, APFloat::fcInfinity }, in TEST()
2333 { MInf, PSmallestNormalized, "-inf", APFloat::opOK, APFloat::fcInfinity }, in TEST()
2334 { MInf, MSmallestNormalized, "-inf", APFloat::opOK, APFloat::fcInfinity }, in TEST()
2335 { PZero, PInf, "-inf", APFloat::opOK, APFloat::fcInfinity }, in TEST()
2336 { PZero, MInf, "inf", APFloat::opOK, APFloat::fcInfinity }, in TEST()
2337 { PZero, PZero, "0x0p+0", APFloat::opOK, APFloat::fcZero }, in TEST()
2338 { PZero, MZero, "0x0p+0", APFloat::opOK, APFloat::fcZero }, in TEST()
2339 { PZero, QNaN, "nan", APFloat::opOK, APFloat::fcNaN }, in TEST()
2340 { PZero, SNaN, "nan123", APFloat::opInvalidOp, APFloat::fcNaN }, in TEST()
2341 { PZero, PNormalValue, "-0x1p+0", APFloat::opOK, APFloat::fcNormal }, in TEST()
2342 { PZero, MNormalValue, "0x1p+0", APFloat::opOK, APFloat::fcNormal }, in TEST()
2343 { PZero, PLargestValue, "-0x1.fffffep+127", APFloat::opOK, APFloat::fcNormal }, in TEST()
2344 { PZero, MLargestValue, "0x1.fffffep+127", APFloat::opOK, APFloat::fcNormal }, in TEST()
2345 { PZero, PSmallestValue, "-0x1p-149", APFloat::opOK, APFloat::fcNormal }, in TEST()
2346 { PZero, MSmallestValue, "0x1p-149", APFloat::opOK, APFloat::fcNormal }, in TEST()
2347 { PZero, PSmallestNormalized, "-0x1p-126", APFloat::opOK, APFloat::fcNormal }, in TEST()
2348 { PZero, MSmallestNormalized, "0x1p-126", APFloat::opOK, APFloat::fcNormal }, in TEST()
2349 { MZero, PInf, "-inf", APFloat::opOK, APFloat::fcInfinity }, in TEST()
2350 { MZero, MInf, "inf", APFloat::opOK, APFloat::fcInfinity }, in TEST()
2351 { MZero, PZero, "-0x0p+0", APFloat::opOK, APFloat::fcZero }, in TEST()
2352 { MZero, MZero, "0x0p+0", APFloat::opOK, APFloat::fcZero }, in TEST()
2353 { MZero, QNaN, "nan", APFloat::opOK, APFloat::fcNaN }, in TEST()
2354 { MZero, SNaN, "nan123", APFloat::opInvalidOp, APFloat::fcNaN }, in TEST()
2355 { MZero, PNormalValue, "-0x1p+0", APFloat::opOK, APFloat::fcNormal }, in TEST()
2356 { MZero, MNormalValue, "0x1p+0", APFloat::opOK, APFloat::fcNormal }, in TEST()
2357 { MZero, PLargestValue, "-0x1.fffffep+127", APFloat::opOK, APFloat::fcNormal }, in TEST()
2358 { MZero, MLargestValue, "0x1.fffffep+127", APFloat::opOK, APFloat::fcNormal }, in TEST()
2359 { MZero, PSmallestValue, "-0x1p-149", APFloat::opOK, APFloat::fcNormal }, in TEST()
2360 { MZero, MSmallestValue, "0x1p-149", APFloat::opOK, APFloat::fcNormal }, in TEST()
2361 { MZero, PSmallestNormalized, "-0x1p-126", APFloat::opOK, APFloat::fcNormal }, in TEST()
2362 { MZero, MSmallestNormalized, "0x1p-126", APFloat::opOK, APFloat::fcNormal }, in TEST()
2363 { QNaN, PInf, "nan", APFloat::opOK, APFloat::fcNaN }, in TEST()
2364 { QNaN, MInf, "nan", APFloat::opOK, APFloat::fcNaN }, in TEST()
2365 { QNaN, PZero, "nan", APFloat::opOK, APFloat::fcNaN }, in TEST()
2366 { QNaN, MZero, "nan", APFloat::opOK, APFloat::fcNaN }, in TEST()
2367 { QNaN, QNaN, "nan", APFloat::opOK, APFloat::fcNaN }, in TEST()
2368 { QNaN, SNaN, "nan", APFloat::opInvalidOp, APFloat::fcNaN }, in TEST()
2369 { QNaN, PNormalValue, "nan", APFloat::opOK, APFloat::fcNaN }, in TEST()
2370 { QNaN, MNormalValue, "nan", APFloat::opOK, APFloat::fcNaN }, in TEST()
2371 { QNaN, PLargestValue, "nan", APFloat::opOK, APFloat::fcNaN }, in TEST()
2372 { QNaN, MLargestValue, "nan", APFloat::opOK, APFloat::fcNaN }, in TEST()
2373 { QNaN, PSmallestValue, "nan", APFloat::opOK, APFloat::fcNaN }, in TEST()
2374 { QNaN, MSmallestValue, "nan", APFloat::opOK, APFloat::fcNaN }, in TEST()
2375 { QNaN, PSmallestNormalized, "nan", APFloat::opOK, APFloat::fcNaN }, in TEST()
2376 { QNaN, MSmallestNormalized, "nan", APFloat::opOK, APFloat::fcNaN }, in TEST()
2377 { SNaN, PInf, "nan123", APFloat::opInvalidOp, APFloat::fcNaN }, in TEST()
2378 { SNaN, MInf, "nan123", APFloat::opInvalidOp, APFloat::fcNaN }, in TEST()
2379 { SNaN, PZero, "nan123", APFloat::opInvalidOp, APFloat::fcNaN }, in TEST()
2380 { SNaN, MZero, "nan123", APFloat::opInvalidOp, APFloat::fcNaN }, in TEST()
2381 { SNaN, QNaN, "nan123", APFloat::opInvalidOp, APFloat::fcNaN }, in TEST()
2382 { SNaN, SNaN, "nan123", APFloat::opInvalidOp, APFloat::fcNaN }, in TEST()
2383 { SNaN, PNormalValue, "nan123", APFloat::opInvalidOp, APFloat::fcNaN }, in TEST()
2384 { SNaN, MNormalValue, "nan123", APFloat::opInvalidOp, APFloat::fcNaN }, in TEST()
2385 { SNaN, PLargestValue, "nan123", APFloat::opInvalidOp, APFloat::fcNaN }, in TEST()
2386 { SNaN, MLargestValue, "nan123", APFloat::opInvalidOp, APFloat::fcNaN }, in TEST()
2387 { SNaN, PSmallestValue, "nan123", APFloat::opInvalidOp, APFloat::fcNaN }, in TEST()
2388 { SNaN, MSmallestValue, "nan123", APFloat::opInvalidOp, APFloat::fcNaN }, in TEST()
2389 { SNaN, PSmallestNormalized, "nan123", APFloat::opInvalidOp, APFloat::fcNaN }, in TEST()
2390 { SNaN, MSmallestNormalized, "nan123", APFloat::opInvalidOp, APFloat::fcNaN }, in TEST()
2391 { PNormalValue, PInf, "-inf", APFloat::opOK, APFloat::fcInfinity }, in TEST()
2392 { PNormalValue, MInf, "inf", APFloat::opOK, APFloat::fcInfinity }, in TEST()
2393 { PNormalValue, PZero, "0x1p+0", APFloat::opOK, APFloat::fcNormal }, in TEST()
2394 { PNormalValue, MZero, "0x1p+0", APFloat::opOK, APFloat::fcNormal }, in TEST()
2395 { PNormalValue, QNaN, "nan", APFloat::opOK, APFloat::fcNaN }, in TEST()
2396 { PNormalValue, SNaN, "nan123", APFloat::opInvalidOp, APFloat::fcNaN }, in TEST()
2397 { PNormalValue, PNormalValue, "0x0p+0", APFloat::opOK, APFloat::fcZero }, in TEST()
2398 { PNormalValue, MNormalValue, "0x1p+1", APFloat::opOK, APFloat::fcNormal }, in TEST()
2399 { PNormalValue, PLargestValue, "-0x1.fffffep+127", APFloat::opInexact, APFloat::fcNormal }, in TEST()
2400 { PNormalValue, MLargestValue, "0x1.fffffep+127", APFloat::opInexact, APFloat::fcNormal }, in TEST()
2401 { PNormalValue, PSmallestValue, "0x1p+0", APFloat::opInexact, APFloat::fcNormal }, in TEST()
2402 { PNormalValue, MSmallestValue, "0x1p+0", APFloat::opInexact, APFloat::fcNormal }, in TEST()
2403 { PNormalValue, PSmallestNormalized, "0x1p+0", APFloat::opInexact, APFloat::fcNormal }, in TEST()
2404 { PNormalValue, MSmallestNormalized, "0x1p+0", APFloat::opInexact, APFloat::fcNormal }, in TEST()
2405 { MNormalValue, PInf, "-inf", APFloat::opOK, APFloat::fcInfinity }, in TEST()
2406 { MNormalValue, MInf, "inf", APFloat::opOK, APFloat::fcInfinity }, in TEST()
2407 { MNormalValue, PZero, "-0x1p+0", APFloat::opOK, APFloat::fcNormal }, in TEST()
2408 { MNormalValue, MZero, "-0x1p+0", APFloat::opOK, APFloat::fcNormal }, in TEST()
2409 { MNormalValue, QNaN, "nan", APFloat::opOK, APFloat::fcNaN }, in TEST()
2410 { MNormalValue, SNaN, "nan123", APFloat::opInvalidOp, APFloat::fcNaN }, in TEST()
2411 { MNormalValue, PNormalValue, "-0x1p+1", APFloat::opOK, APFloat::fcNormal }, in TEST()
2412 { MNormalValue, MNormalValue, "0x0p+0", APFloat::opOK, APFloat::fcZero }, in TEST()
2413 { MNormalValue, PLargestValue, "-0x1.fffffep+127", APFloat::opInexact, APFloat::fcNormal }, in TEST()
2414 { MNormalValue, MLargestValue, "0x1.fffffep+127", APFloat::opInexact, APFloat::fcNormal }, in TEST()
2415 { MNormalValue, PSmallestValue, "-0x1p+0", APFloat::opInexact, APFloat::fcNormal }, in TEST()
2416 { MNormalValue, MSmallestValue, "-0x1p+0", APFloat::opInexact, APFloat::fcNormal }, in TEST()
2417 { MNormalValue, PSmallestNormalized, "-0x1p+0", APFloat::opInexact, APFloat::fcNormal }, in TEST()
2418 { MNormalValue, MSmallestNormalized, "-0x1p+0", APFloat::opInexact, APFloat::fcNormal }, in TEST()
2419 { PLargestValue, PInf, "-inf", APFloat::opOK, APFloat::fcInfinity }, in TEST()
2420 { PLargestValue, MInf, "inf", APFloat::opOK, APFloat::fcInfinity }, in TEST()
2421 { PLargestValue, PZero, "0x1.fffffep+127", APFloat::opOK, APFloat::fcNormal }, in TEST()
2422 { PLargestValue, MZero, "0x1.fffffep+127", APFloat::opOK, APFloat::fcNormal }, in TEST()
2423 { PLargestValue, QNaN, "nan", APFloat::opOK, APFloat::fcNaN }, in TEST()
2424 { PLargestValue, SNaN, "nan123", APFloat::opInvalidOp, APFloat::fcNaN }, in TEST()
2425 { PLargestValue, PNormalValue, "0x1.fffffep+127", APFloat::opInexact, APFloat::fcNormal }, in TEST()
2426 { PLargestValue, MNormalValue, "0x1.fffffep+127", APFloat::opInexact, APFloat::fcNormal }, in TEST()
2427 { PLargestValue, PLargestValue, "0x0p+0", APFloat::opOK, APFloat::fcZero }, in TEST()
2428 { PLargestValue, MLargestValue, "inf", OverflowStatus, APFloat::fcInfinity }, in TEST()
2429 { PLargestValue, PSmallestValue, "0x1.fffffep+127", APFloat::opInexact, APFloat::fcNormal }, in TEST()
2430 { PLargestValue, MSmallestValue, "0x1.fffffep+127", APFloat::opInexact, APFloat::fcNormal }, in TEST()
2431 … { PLargestValue, PSmallestNormalized, "0x1.fffffep+127", APFloat::opInexact, APFloat::fcNormal }, in TEST()
2432 … { PLargestValue, MSmallestNormalized, "0x1.fffffep+127", APFloat::opInexact, APFloat::fcNormal }, in TEST()
2433 { MLargestValue, PInf, "-inf", APFloat::opOK, APFloat::fcInfinity }, in TEST()
2434 { MLargestValue, MInf, "inf", APFloat::opOK, APFloat::fcInfinity }, in TEST()
2435 { MLargestValue, PZero, "-0x1.fffffep+127", APFloat::opOK, APFloat::fcNormal }, in TEST()
2436 { MLargestValue, MZero, "-0x1.fffffep+127", APFloat::opOK, APFloat::fcNormal }, in TEST()
2437 { MLargestValue, QNaN, "nan", APFloat::opOK, APFloat::fcNaN }, in TEST()
2438 { MLargestValue, SNaN, "nan123", APFloat::opInvalidOp, APFloat::fcNaN }, in TEST()
2439 { MLargestValue, PNormalValue, "-0x1.fffffep+127", APFloat::opInexact, APFloat::fcNormal }, in TEST()
2440 { MLargestValue, MNormalValue, "-0x1.fffffep+127", APFloat::opInexact, APFloat::fcNormal }, in TEST()
2441 { MLargestValue, PLargestValue, "-inf", OverflowStatus, APFloat::fcInfinity }, in TEST()
2442 { MLargestValue, MLargestValue, "0x0p+0", APFloat::opOK, APFloat::fcZero }, in TEST()
2443 { MLargestValue, PSmallestValue, "-0x1.fffffep+127", APFloat::opInexact, APFloat::fcNormal }, in TEST()
2444 { MLargestValue, MSmallestValue, "-0x1.fffffep+127", APFloat::opInexact, APFloat::fcNormal }, in TEST()
2445 … { MLargestValue, PSmallestNormalized, "-0x1.fffffep+127", APFloat::opInexact, APFloat::fcNormal }, in TEST()
2446 … { MLargestValue, MSmallestNormalized, "-0x1.fffffep+127", APFloat::opInexact, APFloat::fcNormal }, in TEST()
2447 { PSmallestValue, PInf, "-inf", APFloat::opOK, APFloat::fcInfinity }, in TEST()
2448 { PSmallestValue, MInf, "inf", APFloat::opOK, APFloat::fcInfinity }, in TEST()
2449 { PSmallestValue, PZero, "0x1p-149", APFloat::opOK, APFloat::fcNormal }, in TEST()
2450 { PSmallestValue, MZero, "0x1p-149", APFloat::opOK, APFloat::fcNormal }, in TEST()
2451 { PSmallestValue, QNaN, "nan", APFloat::opOK, APFloat::fcNaN }, in TEST()
2452 { PSmallestValue, SNaN, "nan123", APFloat::opInvalidOp, APFloat::fcNaN }, in TEST()
2453 { PSmallestValue, PNormalValue, "-0x1p+0", APFloat::opInexact, APFloat::fcNormal }, in TEST()
2454 { PSmallestValue, MNormalValue, "0x1p+0", APFloat::opInexact, APFloat::fcNormal }, in TEST()
2455 { PSmallestValue, PLargestValue, "-0x1.fffffep+127", APFloat::opInexact, APFloat::fcNormal }, in TEST()
2456 { PSmallestValue, MLargestValue, "0x1.fffffep+127", APFloat::opInexact, APFloat::fcNormal }, in TEST()
2457 { PSmallestValue, PSmallestValue, "0x0p+0", APFloat::opOK, APFloat::fcZero }, in TEST()
2458 { PSmallestValue, MSmallestValue, "0x1p-148", APFloat::opOK, APFloat::fcNormal }, in TEST()
2459 { PSmallestValue, PSmallestNormalized, "-0x1.fffffcp-127", APFloat::opOK, APFloat::fcNormal }, in TEST()
2460 { PSmallestValue, MSmallestNormalized, "0x1.000002p-126", APFloat::opOK, APFloat::fcNormal }, in TEST()
2461 { MSmallestValue, PInf, "-inf", APFloat::opOK, APFloat::fcInfinity }, in TEST()
2462 { MSmallestValue, MInf, "inf", APFloat::opOK, APFloat::fcInfinity }, in TEST()
2463 { MSmallestValue, PZero, "-0x1p-149", APFloat::opOK, APFloat::fcNormal }, in TEST()
2464 { MSmallestValue, MZero, "-0x1p-149", APFloat::opOK, APFloat::fcNormal }, in TEST()
2465 { MSmallestValue, QNaN, "nan", APFloat::opOK, APFloat::fcNaN }, in TEST()
2466 { MSmallestValue, SNaN, "nan123", APFloat::opInvalidOp, APFloat::fcNaN }, in TEST()
2467 { MSmallestValue, PNormalValue, "-0x1p+0", APFloat::opInexact, APFloat::fcNormal }, in TEST()
2468 { MSmallestValue, MNormalValue, "0x1p+0", APFloat::opInexact, APFloat::fcNormal }, in TEST()
2469 { MSmallestValue, PLargestValue, "-0x1.fffffep+127", APFloat::opInexact, APFloat::fcNormal }, in TEST()
2470 { MSmallestValue, MLargestValue, "0x1.fffffep+127", APFloat::opInexact, APFloat::fcNormal }, in TEST()
2471 { MSmallestValue, PSmallestValue, "-0x1p-148", APFloat::opOK, APFloat::fcNormal }, in TEST()
2472 { MSmallestValue, MSmallestValue, "0x0p+0", APFloat::opOK, APFloat::fcZero }, in TEST()
2473 { MSmallestValue, PSmallestNormalized, "-0x1.000002p-126", APFloat::opOK, APFloat::fcNormal }, in TEST()
2474 { MSmallestValue, MSmallestNormalized, "0x1.fffffcp-127", APFloat::opOK, APFloat::fcNormal }, in TEST()
2475 { PSmallestNormalized, PInf, "-inf", APFloat::opOK, APFloat::fcInfinity }, in TEST()
2476 { PSmallestNormalized, MInf, "inf", APFloat::opOK, APFloat::fcInfinity }, in TEST()
2477 { PSmallestNormalized, PZero, "0x1p-126", APFloat::opOK, APFloat::fcNormal }, in TEST()
2478 { PSmallestNormalized, MZero, "0x1p-126", APFloat::opOK, APFloat::fcNormal }, in TEST()
2479 { PSmallestNormalized, QNaN, "nan", APFloat::opOK, APFloat::fcNaN }, in TEST()
2480 { PSmallestNormalized, SNaN, "nan123", APFloat::opInvalidOp, APFloat::fcNaN }, in TEST()
2481 { PSmallestNormalized, PNormalValue, "-0x1p+0", APFloat::opInexact, APFloat::fcNormal }, in TEST()
2482 { PSmallestNormalized, MNormalValue, "0x1p+0", APFloat::opInexact, APFloat::fcNormal }, in TEST()
2483 … { PSmallestNormalized, PLargestValue, "-0x1.fffffep+127", APFloat::opInexact, APFloat::fcNormal }, in TEST()
2484 … { PSmallestNormalized, MLargestValue, "0x1.fffffep+127", APFloat::opInexact, APFloat::fcNormal }, in TEST()
2485 { PSmallestNormalized, PSmallestValue, "0x1.fffffcp-127", APFloat::opOK, APFloat::fcNormal }, in TEST()
2486 { PSmallestNormalized, MSmallestValue, "0x1.000002p-126", APFloat::opOK, APFloat::fcNormal }, in TEST()
2487 { PSmallestNormalized, PSmallestNormalized, "0x0p+0", APFloat::opOK, APFloat::fcZero }, in TEST()
2488 { PSmallestNormalized, MSmallestNormalized, "0x1p-125", APFloat::opOK, APFloat::fcNormal }, in TEST()
2489 { MSmallestNormalized, PInf, "-inf", APFloat::opOK, APFloat::fcInfinity }, in TEST()
2490 { MSmallestNormalized, MInf, "inf", APFloat::opOK, APFloat::fcInfinity }, in TEST()
2491 { MSmallestNormalized, PZero, "-0x1p-126", APFloat::opOK, APFloat::fcNormal }, in TEST()
2492 { MSmallestNormalized, MZero, "-0x1p-126", APFloat::opOK, APFloat::fcNormal }, in TEST()
2493 { MSmallestNormalized, QNaN, "nan", APFloat::opOK, APFloat::fcNaN }, in TEST()
2494 { MSmallestNormalized, SNaN, "nan123", APFloat::opInvalidOp, APFloat::fcNaN }, in TEST()
2495 { MSmallestNormalized, PNormalValue, "-0x1p+0", APFloat::opInexact, APFloat::fcNormal }, in TEST()
2496 { MSmallestNormalized, MNormalValue, "0x1p+0", APFloat::opInexact, APFloat::fcNormal }, in TEST()
2497 … { MSmallestNormalized, PLargestValue, "-0x1.fffffep+127", APFloat::opInexact, APFloat::fcNormal }, in TEST()
2498 … { MSmallestNormalized, MLargestValue, "0x1.fffffep+127", APFloat::opInexact, APFloat::fcNormal }, in TEST()
2499 { MSmallestNormalized, PSmallestValue, "-0x1.000002p-126", APFloat::opOK, APFloat::fcNormal }, in TEST()
2500 { MSmallestNormalized, MSmallestValue, "-0x1.fffffcp-127", APFloat::opOK, APFloat::fcNormal }, in TEST()
2501 { MSmallestNormalized, PSmallestNormalized, "-0x1p-125", APFloat::opOK, APFloat::fcNormal }, in TEST()
2502 { MSmallestNormalized, MSmallestNormalized, "0x0p+0", APFloat::opOK, APFloat::fcZero } in TEST()
2506 APFloat x(SpecialCaseTests[i].x); in TEST()
2507 APFloat y(SpecialCaseTests[i].y); in TEST()
2508 APFloat::opStatus status = x.subtract(y, APFloat::rmNearestTiesToEven); in TEST()
2510 APFloat result(APFloat::IEEEsingle(), SpecialCaseTests[i].result); in TEST()
2521 APFloat PInf = APFloat::getInf(APFloat::IEEEsingle(), false); in TEST()
2522 APFloat MInf = APFloat::getInf(APFloat::IEEEsingle(), true); in TEST()
2523 APFloat PZero = APFloat::getZero(APFloat::IEEEsingle(), false); in TEST()
2524 APFloat MZero = APFloat::getZero(APFloat::IEEEsingle(), true); in TEST()
2525 APFloat QNaN = APFloat::getNaN(APFloat::IEEEsingle(), false); in TEST()
2526 APFloat SNaN = APFloat(APFloat::IEEEsingle(), "snan123"); in TEST()
2527 APFloat PNormalValue = APFloat(APFloat::IEEEsingle(), "0x1p+0"); in TEST()
2528 APFloat MNormalValue = APFloat(APFloat::IEEEsingle(), "-0x1p+0"); in TEST()
2529 APFloat PLargestValue = APFloat::getLargest(APFloat::IEEEsingle(), false); in TEST()
2530 APFloat MLargestValue = APFloat::getLargest(APFloat::IEEEsingle(), true); in TEST()
2531 APFloat PSmallestValue = APFloat::getSmallest(APFloat::IEEEsingle(), false); in TEST()
2532 APFloat MSmallestValue = APFloat::getSmallest(APFloat::IEEEsingle(), true); in TEST()
2533 APFloat PSmallestNormalized = in TEST()
2534 APFloat::getSmallestNormalized(APFloat::IEEEsingle(), false); in TEST()
2535 APFloat MSmallestNormalized = in TEST()
2536 APFloat::getSmallestNormalized(APFloat::IEEEsingle(), true); in TEST()
2538 APFloat MaxQuad(APFloat::IEEEquad(), in TEST()
2540 APFloat MinQuad(APFloat::IEEEquad(), in TEST()
2542 APFloat NMinQuad(APFloat::IEEEquad(), in TEST()
2545 const int OverflowStatus = APFloat::opOverflow | APFloat::opInexact; in TEST()
2546 const int UnderflowStatus = APFloat::opUnderflow | APFloat::opInexact; in TEST()
2549 APFloat x; in TEST()
2550 APFloat y; in TEST()
2554 APFloat::roundingMode roundingMode = APFloat::rmNearestTiesToEven; in TEST()
2556 { PInf, PInf, "inf", APFloat::opOK, APFloat::fcInfinity }, in TEST()
2557 { PInf, MInf, "-inf", APFloat::opOK, APFloat::fcInfinity }, in TEST()
2558 { PInf, PZero, "nan", APFloat::opInvalidOp, APFloat::fcNaN }, in TEST()
2559 { PInf, MZero, "nan", APFloat::opInvalidOp, APFloat::fcNaN }, in TEST()
2560 { PInf, QNaN, "nan", APFloat::opOK, APFloat::fcNaN }, in TEST()
2561 { PInf, SNaN, "nan123", APFloat::opInvalidOp, APFloat::fcNaN }, in TEST()
2562 { PInf, PNormalValue, "inf", APFloat::opOK, APFloat::fcInfinity }, in TEST()
2563 { PInf, MNormalValue, "-inf", APFloat::opOK, APFloat::fcInfinity }, in TEST()
2564 { PInf, PLargestValue, "inf", APFloat::opOK, APFloat::fcInfinity }, in TEST()
2565 { PInf, MLargestValue, "-inf", APFloat::opOK, APFloat::fcInfinity }, in TEST()
2566 { PInf, PSmallestValue, "inf", APFloat::opOK, APFloat::fcInfinity }, in TEST()
2567 { PInf, MSmallestValue, "-inf", APFloat::opOK, APFloat::fcInfinity }, in TEST()
2568 { PInf, PSmallestNormalized, "inf", APFloat::opOK, APFloat::fcInfinity }, in TEST()
2569 { PInf, MSmallestNormalized, "-inf", APFloat::opOK, APFloat::fcInfinity }, in TEST()
2570 { MInf, PInf, "-inf", APFloat::opOK, APFloat::fcInfinity }, in TEST()
2571 { MInf, MInf, "inf", APFloat::opOK, APFloat::fcInfinity }, in TEST()
2572 { MInf, PZero, "nan", APFloat::opInvalidOp, APFloat::fcNaN }, in TEST()
2573 { MInf, MZero, "nan", APFloat::opInvalidOp, APFloat::fcNaN }, in TEST()
2574 { MInf, QNaN, "nan", APFloat::opOK, APFloat::fcNaN }, in TEST()
2575 { MInf, SNaN, "nan123", APFloat::opInvalidOp, APFloat::fcNaN }, in TEST()
2576 { MInf, PNormalValue, "-inf", APFloat::opOK, APFloat::fcInfinity }, in TEST()
2577 { MInf, MNormalValue, "inf", APFloat::opOK, APFloat::fcInfinity }, in TEST()
2578 { MInf, PLargestValue, "-inf", APFloat::opOK, APFloat::fcInfinity }, in TEST()
2579 { MInf, MLargestValue, "inf", APFloat::opOK, APFloat::fcInfinity }, in TEST()
2580 { MInf, PSmallestValue, "-inf", APFloat::opOK, APFloat::fcInfinity }, in TEST()
2581 { MInf, MSmallestValue, "inf", APFloat::opOK, APFloat::fcInfinity }, in TEST()
2582 { MInf, PSmallestNormalized, "-inf", APFloat::opOK, APFloat::fcInfinity }, in TEST()
2583 { MInf, MSmallestNormalized, "inf", APFloat::opOK, APFloat::fcInfinity }, in TEST()
2584 { PZero, PInf, "nan", APFloat::opInvalidOp, APFloat::fcNaN }, in TEST()
2585 { PZero, MInf, "nan", APFloat::opInvalidOp, APFloat::fcNaN }, in TEST()
2586 { PZero, PZero, "0x0p+0", APFloat::opOK, APFloat::fcZero }, in TEST()
2587 { PZero, MZero, "-0x0p+0", APFloat::opOK, APFloat::fcZero }, in TEST()
2588 { PZero, QNaN, "nan", APFloat::opOK, APFloat::fcNaN }, in TEST()
2589 { PZero, SNaN, "nan123", APFloat::opInvalidOp, APFloat::fcNaN }, in TEST()
2590 { PZero, PNormalValue, "0x0p+0", APFloat::opOK, APFloat::fcZero }, in TEST()
2591 { PZero, MNormalValue, "-0x0p+0", APFloat::opOK, APFloat::fcZero }, in TEST()
2592 { PZero, PLargestValue, "0x0p+0", APFloat::opOK, APFloat::fcZero }, in TEST()
2593 { PZero, MLargestValue, "-0x0p+0", APFloat::opOK, APFloat::fcZero }, in TEST()
2594 { PZero, PSmallestValue, "0x0p+0", APFloat::opOK, APFloat::fcZero }, in TEST()
2595 { PZero, MSmallestValue, "-0x0p+0", APFloat::opOK, APFloat::fcZero }, in TEST()
2596 { PZero, PSmallestNormalized, "0x0p+0", APFloat::opOK, APFloat::fcZero }, in TEST()
2597 { PZero, MSmallestNormalized, "-0x0p+0", APFloat::opOK, APFloat::fcZero }, in TEST()
2598 { MZero, PInf, "nan", APFloat::opInvalidOp, APFloat::fcNaN }, in TEST()
2599 { MZero, MInf, "nan", APFloat::opInvalidOp, APFloat::fcNaN }, in TEST()
2600 { MZero, PZero, "-0x0p+0", APFloat::opOK, APFloat::fcZero }, in TEST()
2601 { MZero, MZero, "0x0p+0", APFloat::opOK, APFloat::fcZero }, in TEST()
2602 { MZero, QNaN, "nan", APFloat::opOK, APFloat::fcNaN }, in TEST()
2603 { MZero, SNaN, "nan123", APFloat::opInvalidOp, APFloat::fcNaN }, in TEST()
2604 { MZero, PNormalValue, "-0x0p+0", APFloat::opOK, APFloat::fcZero }, in TEST()
2605 { MZero, MNormalValue, "0x0p+0", APFloat::opOK, APFloat::fcZero }, in TEST()
2606 { MZero, PLargestValue, "-0x0p+0", APFloat::opOK, APFloat::fcZero }, in TEST()
2607 { MZero, MLargestValue, "0x0p+0", APFloat::opOK, APFloat::fcZero }, in TEST()
2608 { MZero, PSmallestValue, "-0x0p+0", APFloat::opOK, APFloat::fcZero }, in TEST()
2609 { MZero, MSmallestValue, "0x0p+0", APFloat::opOK, APFloat::fcZero }, in TEST()
2610 { MZero, PSmallestNormalized, "-0x0p+0", APFloat::opOK, APFloat::fcZero }, in TEST()
2611 { MZero, MSmallestNormalized, "0x0p+0", APFloat::opOK, APFloat::fcZero }, in TEST()
2612 { QNaN, PInf, "nan", APFloat::opOK, APFloat::fcNaN }, in TEST()
2613 { QNaN, MInf, "nan", APFloat::opOK, APFloat::fcNaN }, in TEST()
2614 { QNaN, PZero, "nan", APFloat::opOK, APFloat::fcNaN }, in TEST()
2615 { QNaN, MZero, "nan", APFloat::opOK, APFloat::fcNaN }, in TEST()
2616 { QNaN, QNaN, "nan", APFloat::opOK, APFloat::fcNaN }, in TEST()
2617 { QNaN, SNaN, "nan", APFloat::opInvalidOp, APFloat::fcNaN }, in TEST()
2618 { QNaN, PNormalValue, "nan", APFloat::opOK, APFloat::fcNaN }, in TEST()
2619 { QNaN, MNormalValue, "nan", APFloat::opOK, APFloat::fcNaN }, in TEST()
2620 { QNaN, PLargestValue, "nan", APFloat::opOK, APFloat::fcNaN }, in TEST()
2621 { QNaN, MLargestValue, "nan", APFloat::opOK, APFloat::fcNaN }, in TEST()
2622 { QNaN, PSmallestValue, "nan", APFloat::opOK, APFloat::fcNaN }, in TEST()
2623 { QNaN, MSmallestValue, "nan", APFloat::opOK, APFloat::fcNaN }, in TEST()
2624 { QNaN, PSmallestNormalized, "nan", APFloat::opOK, APFloat::fcNaN }, in TEST()
2625 { QNaN, MSmallestNormalized, "nan", APFloat::opOK, APFloat::fcNaN }, in TEST()
2626 { SNaN, PInf, "nan123", APFloat::opInvalidOp, APFloat::fcNaN }, in TEST()
2627 { SNaN, MInf, "nan123", APFloat::opInvalidOp, APFloat::fcNaN }, in TEST()
2628 { SNaN, PZero, "nan123", APFloat::opInvalidOp, APFloat::fcNaN }, in TEST()
2629 { SNaN, MZero, "nan123", APFloat::opInvalidOp, APFloat::fcNaN }, in TEST()
2630 { SNaN, QNaN, "nan123", APFloat::opInvalidOp, APFloat::fcNaN }, in TEST()
2631 { SNaN, SNaN, "nan123", APFloat::opInvalidOp, APFloat::fcNaN }, in TEST()
2632 { SNaN, PNormalValue, "nan123", APFloat::opInvalidOp, APFloat::fcNaN }, in TEST()
2633 { SNaN, MNormalValue, "nan123", APFloat::opInvalidOp, APFloat::fcNaN }, in TEST()
2634 { SNaN, PLargestValue, "nan123", APFloat::opInvalidOp, APFloat::fcNaN }, in TEST()
2635 { SNaN, MLargestValue, "nan123", APFloat::opInvalidOp, APFloat::fcNaN }, in TEST()
2636 { SNaN, PSmallestValue, "nan123", APFloat::opInvalidOp, APFloat::fcNaN }, in TEST()
2637 { SNaN, MSmallestValue, "nan123", APFloat::opInvalidOp, APFloat::fcNaN }, in TEST()
2638 { SNaN, PSmallestNormalized, "nan123", APFloat::opInvalidOp, APFloat::fcNaN }, in TEST()
2639 { SNaN, MSmallestNormalized, "nan123", APFloat::opInvalidOp, APFloat::fcNaN }, in TEST()
2640 { PNormalValue, PInf, "inf", APFloat::opOK, APFloat::fcInfinity }, in TEST()
2641 { PNormalValue, MInf, "-inf", APFloat::opOK, APFloat::fcInfinity }, in TEST()
2642 { PNormalValue, PZero, "0x0p+0", APFloat::opOK, APFloat::fcZero }, in TEST()
2643 { PNormalValue, MZero, "-0x0p+0", APFloat::opOK, APFloat::fcZero }, in TEST()
2644 { PNormalValue, QNaN, "nan", APFloat::opOK, APFloat::fcNaN }, in TEST()
2645 { PNormalValue, SNaN, "nan123", APFloat::opInvalidOp, APFloat::fcNaN }, in TEST()
2646 { PNormalValue, PNormalValue, "0x1p+0", APFloat::opOK, APFloat::fcNormal }, in TEST()
2647 { PNormalValue, MNormalValue, "-0x1p+0", APFloat::opOK, APFloat::fcNormal }, in TEST()
2648 { PNormalValue, PLargestValue, "0x1.fffffep+127", APFloat::opOK, APFloat::fcNormal }, in TEST()
2649 { PNormalValue, MLargestValue, "-0x1.fffffep+127", APFloat::opOK, APFloat::fcNormal }, in TEST()
2650 { PNormalValue, PSmallestValue, "0x1p-149", APFloat::opOK, APFloat::fcNormal }, in TEST()
2651 { PNormalValue, MSmallestValue, "-0x1p-149", APFloat::opOK, APFloat::fcNormal }, in TEST()
2652 { PNormalValue, PSmallestNormalized, "0x1p-126", APFloat::opOK, APFloat::fcNormal }, in TEST()
2653 { PNormalValue, MSmallestNormalized, "-0x1p-126", APFloat::opOK, APFloat::fcNormal }, in TEST()
2654 { MNormalValue, PInf, "-inf", APFloat::opOK, APFloat::fcInfinity }, in TEST()
2655 { MNormalValue, MInf, "inf", APFloat::opOK, APFloat::fcInfinity }, in TEST()
2656 { MNormalValue, PZero, "-0x0p+0", APFloat::opOK, APFloat::fcZero }, in TEST()
2657 { MNormalValue, MZero, "0x0p+0", APFloat::opOK, APFloat::fcZero }, in TEST()
2658 { MNormalValue, QNaN, "nan", APFloat::opOK, APFloat::fcNaN }, in TEST()
2659 { MNormalValue, SNaN, "nan123", APFloat::opInvalidOp, APFloat::fcNaN }, in TEST()
2660 { MNormalValue, PNormalValue, "-0x1p+0", APFloat::opOK, APFloat::fcNormal }, in TEST()
2661 { MNormalValue, MNormalValue, "0x1p+0", APFloat::opOK, APFloat::fcNormal }, in TEST()
2662 { MNormalValue, PLargestValue, "-0x1.fffffep+127", APFloat::opOK, APFloat::fcNormal }, in TEST()
2663 { MNormalValue, MLargestValue, "0x1.fffffep+127", APFloat::opOK, APFloat::fcNormal }, in TEST()
2664 { MNormalValue, PSmallestValue, "-0x1p-149", APFloat::opOK, APFloat::fcNormal }, in TEST()
2665 { MNormalValue, MSmallestValue, "0x1p-149", APFloat::opOK, APFloat::fcNormal }, in TEST()
2666 { MNormalValue, PSmallestNormalized, "-0x1p-126", APFloat::opOK, APFloat::fcNormal }, in TEST()
2667 { MNormalValue, MSmallestNormalized, "0x1p-126", APFloat::opOK, APFloat::fcNormal }, in TEST()
2668 { PLargestValue, PInf, "inf", APFloat::opOK, APFloat::fcInfinity }, in TEST()
2669 { PLargestValue, MInf, "-inf", APFloat::opOK, APFloat::fcInfinity }, in TEST()
2670 { PLargestValue, PZero, "0x0p+0", APFloat::opOK, APFloat::fcZero }, in TEST()
2671 { PLargestValue, MZero, "-0x0p+0", APFloat::opOK, APFloat::fcZero }, in TEST()
2672 { PLargestValue, QNaN, "nan", APFloat::opOK, APFloat::fcNaN }, in TEST()
2673 { PLargestValue, SNaN, "nan123", APFloat::opInvalidOp, APFloat::fcNaN }, in TEST()
2674 { PLargestValue, PNormalValue, "0x1.fffffep+127", APFloat::opOK, APFloat::fcNormal }, in TEST()
2675 { PLargestValue, MNormalValue, "-0x1.fffffep+127", APFloat::opOK, APFloat::fcNormal }, in TEST()
2676 { PLargestValue, PLargestValue, "inf", OverflowStatus, APFloat::fcInfinity }, in TEST()
2677 { PLargestValue, MLargestValue, "-inf", OverflowStatus, APFloat::fcInfinity }, in TEST()
2678 { PLargestValue, PSmallestValue, "0x1.fffffep-22", APFloat::opOK, APFloat::fcNormal }, in TEST()
2679 { PLargestValue, MSmallestValue, "-0x1.fffffep-22", APFloat::opOK, APFloat::fcNormal }, in TEST()
2680 { PLargestValue, PSmallestNormalized, "0x1.fffffep+1", APFloat::opOK, APFloat::fcNormal }, in TEST()
2681 { PLargestValue, MSmallestNormalized, "-0x1.fffffep+1", APFloat::opOK, APFloat::fcNormal }, in TEST()
2682 { MLargestValue, PInf, "-inf", APFloat::opOK, APFloat::fcInfinity }, in TEST()
2683 { MLargestValue, MInf, "inf", APFloat::opOK, APFloat::fcInfinity }, in TEST()
2684 { MLargestValue, PZero, "-0x0p+0", APFloat::opOK, APFloat::fcZero }, in TEST()
2685 { MLargestValue, MZero, "0x0p+0", APFloat::opOK, APFloat::fcZero }, in TEST()
2686 { MLargestValue, QNaN, "nan", APFloat::opOK, APFloat::fcNaN }, in TEST()
2687 { MLargestValue, SNaN, "nan123", APFloat::opInvalidOp, APFloat::fcNaN }, in TEST()
2688 { MLargestValue, PNormalValue, "-0x1.fffffep+127", APFloat::opOK, APFloat::fcNormal }, in TEST()
2689 { MLargestValue, MNormalValue, "0x1.fffffep+127", APFloat::opOK, APFloat::fcNormal }, in TEST()
2690 { MLargestValue, PLargestValue, "-inf", OverflowStatus, APFloat::fcInfinity }, in TEST()
2691 { MLargestValue, MLargestValue, "inf", OverflowStatus, APFloat::fcInfinity }, in TEST()
2692 { MLargestValue, PSmallestValue, "-0x1.fffffep-22", APFloat::opOK, APFloat::fcNormal }, in TEST()
2693 { MLargestValue, MSmallestValue, "0x1.fffffep-22", APFloat::opOK, APFloat::fcNormal }, in TEST()
2694 { MLargestValue, PSmallestNormalized, "-0x1.fffffep+1", APFloat::opOK, APFloat::fcNormal }, in TEST()
2695 { MLargestValue, MSmallestNormalized, "0x1.fffffep+1", APFloat::opOK, APFloat::fcNormal }, in TEST()
2696 { PSmallestValue, PInf, "inf", APFloat::opOK, APFloat::fcInfinity }, in TEST()
2697 { PSmallestValue, MInf, "-inf", APFloat::opOK, APFloat::fcInfinity }, in TEST()
2698 { PSmallestValue, PZero, "0x0p+0", APFloat::opOK, APFloat::fcZero }, in TEST()
2699 { PSmallestValue, MZero, "-0x0p+0", APFloat::opOK, APFloat::fcZero }, in TEST()
2700 { PSmallestValue, QNaN, "nan", APFloat::opOK, APFloat::fcNaN }, in TEST()
2701 { PSmallestValue, SNaN, "nan123", APFloat::opInvalidOp, APFloat::fcNaN }, in TEST()
2702 { PSmallestValue, PNormalValue, "0x1p-149", APFloat::opOK, APFloat::fcNormal }, in TEST()
2703 { PSmallestValue, MNormalValue, "-0x1p-149", APFloat::opOK, APFloat::fcNormal }, in TEST()
2704 { PSmallestValue, PLargestValue, "0x1.fffffep-22", APFloat::opOK, APFloat::fcNormal }, in TEST()
2705 { PSmallestValue, MLargestValue, "-0x1.fffffep-22", APFloat::opOK, APFloat::fcNormal }, in TEST()
2706 { PSmallestValue, PSmallestValue, "0x0p+0", UnderflowStatus, APFloat::fcZero }, in TEST()
2707 { PSmallestValue, MSmallestValue, "-0x0p+0", UnderflowStatus, APFloat::fcZero }, in TEST()
2708 { PSmallestValue, PSmallestNormalized, "0x0p+0", UnderflowStatus, APFloat::fcZero }, in TEST()
2709 { PSmallestValue, MSmallestNormalized, "-0x0p+0", UnderflowStatus, APFloat::fcZero }, in TEST()
2710 { MSmallestValue, PInf, "-inf", APFloat::opOK, APFloat::fcInfinity }, in TEST()
2711 { MSmallestValue, MInf, "inf", APFloat::opOK, APFloat::fcInfinity }, in TEST()
2712 { MSmallestValue, PZero, "-0x0p+0", APFloat::opOK, APFloat::fcZero }, in TEST()
2713 { MSmallestValue, MZero, "0x0p+0", APFloat::opOK, APFloat::fcZero }, in TEST()
2714 { MSmallestValue, QNaN, "nan", APFloat::opOK, APFloat::fcNaN }, in TEST()
2715 { MSmallestValue, SNaN, "nan123", APFloat::opInvalidOp, APFloat::fcNaN }, in TEST()
2716 { MSmallestValue, PNormalValue, "-0x1p-149", APFloat::opOK, APFloat::fcNormal }, in TEST()
2717 { MSmallestValue, MNormalValue, "0x1p-149", APFloat::opOK, APFloat::fcNormal }, in TEST()
2718 { MSmallestValue, PLargestValue, "-0x1.fffffep-22", APFloat::opOK, APFloat::fcNormal }, in TEST()
2719 { MSmallestValue, MLargestValue, "0x1.fffffep-22", APFloat::opOK, APFloat::fcNormal }, in TEST()
2720 { MSmallestValue, PSmallestValue, "-0x0p+0", UnderflowStatus, APFloat::fcZero }, in TEST()
2721 { MSmallestValue, MSmallestValue, "0x0p+0", UnderflowStatus, APFloat::fcZero }, in TEST()
2722 { MSmallestValue, PSmallestNormalized, "-0x0p+0", UnderflowStatus, APFloat::fcZero }, in TEST()
2723 { MSmallestValue, MSmallestNormalized, "0x0p+0", UnderflowStatus, APFloat::fcZero }, in TEST()
2724 { PSmallestNormalized, PInf, "inf", APFloat::opOK, APFloat::fcInfinity }, in TEST()
2725 { PSmallestNormalized, MInf, "-inf", APFloat::opOK, APFloat::fcInfinity }, in TEST()
2726 { PSmallestNormalized, PZero, "0x0p+0", APFloat::opOK, APFloat::fcZero }, in TEST()
2727 { PSmallestNormalized, MZero, "-0x0p+0", APFloat::opOK, APFloat::fcZero }, in TEST()
2728 { PSmallestNormalized, QNaN, "nan", APFloat::opOK, APFloat::fcNaN }, in TEST()
2729 { PSmallestNormalized, SNaN, "nan123", APFloat::opInvalidOp, APFloat::fcNaN }, in TEST()
2730 { PSmallestNormalized, PNormalValue, "0x1p-126", APFloat::opOK, APFloat::fcNormal }, in TEST()
2731 { PSmallestNormalized, MNormalValue, "-0x1p-126", APFloat::opOK, APFloat::fcNormal }, in TEST()
2732 { PSmallestNormalized, PLargestValue, "0x1.fffffep+1", APFloat::opOK, APFloat::fcNormal }, in TEST()
2733 { PSmallestNormalized, MLargestValue, "-0x1.fffffep+1", APFloat::opOK, APFloat::fcNormal }, in TEST()
2734 { PSmallestNormalized, PSmallestValue, "0x0p+0", UnderflowStatus, APFloat::fcZero }, in TEST()
2735 { PSmallestNormalized, MSmallestValue, "-0x0p+0", UnderflowStatus, APFloat::fcZero }, in TEST()
2736 { PSmallestNormalized, PSmallestNormalized, "0x0p+0", UnderflowStatus, APFloat::fcZero }, in TEST()
2737 { PSmallestNormalized, MSmallestNormalized, "-0x0p+0", UnderflowStatus, APFloat::fcZero }, in TEST()
2738 { MSmallestNormalized, PInf, "-inf", APFloat::opOK, APFloat::fcInfinity }, in TEST()
2739 { MSmallestNormalized, MInf, "inf", APFloat::opOK, APFloat::fcInfinity }, in TEST()
2740 { MSmallestNormalized, PZero, "-0x0p+0", APFloat::opOK, APFloat::fcZero }, in TEST()
2741 { MSmallestNormalized, MZero, "0x0p+0", APFloat::opOK, APFloat::fcZero }, in TEST()
2742 { MSmallestNormalized, QNaN, "nan", APFloat::opOK, APFloat::fcNaN }, in TEST()
2743 { MSmallestNormalized, SNaN, "nan123", APFloat::opInvalidOp, APFloat::fcNaN }, in TEST()
2744 { MSmallestNormalized, PNormalValue, "-0x1p-126", APFloat::opOK, APFloat::fcNormal }, in TEST()
2745 { MSmallestNormalized, MNormalValue, "0x1p-126", APFloat::opOK, APFloat::fcNormal }, in TEST()
2746 { MSmallestNormalized, PLargestValue, "-0x1.fffffep+1", APFloat::opOK, APFloat::fcNormal }, in TEST()
2747 { MSmallestNormalized, MLargestValue, "0x1.fffffep+1", APFloat::opOK, APFloat::fcNormal }, in TEST()
2748 { MSmallestNormalized, PSmallestValue, "-0x0p+0", UnderflowStatus, APFloat::fcZero }, in TEST()
2749 { MSmallestNormalized, MSmallestValue, "0x0p+0", UnderflowStatus, APFloat::fcZero }, in TEST()
2750 { MSmallestNormalized, PSmallestNormalized, "-0x0p+0", UnderflowStatus, APFloat::fcZero }, in TEST()
2751 { MSmallestNormalized, MSmallestNormalized, "0x0p+0", UnderflowStatus, APFloat::fcZero }, in TEST()
2753 {MaxQuad, MinQuad, "0x1.ffffffffffffffffffffffffffffp-111", APFloat::opOK, in TEST()
2754 APFloat::fcNormal, APFloat::rmNearestTiesToEven}, in TEST()
2755 {MaxQuad, MinQuad, "0x1.ffffffffffffffffffffffffffffp-111", APFloat::opOK, in TEST()
2756 APFloat::fcNormal, APFloat::rmTowardPositive}, in TEST()
2757 {MaxQuad, MinQuad, "0x1.ffffffffffffffffffffffffffffp-111", APFloat::opOK, in TEST()
2758 APFloat::fcNormal, APFloat::rmTowardNegative}, in TEST()
2759 {MaxQuad, MinQuad, "0x1.ffffffffffffffffffffffffffffp-111", APFloat::opOK, in TEST()
2760 APFloat::fcNormal, APFloat::rmTowardZero}, in TEST()
2761 {MaxQuad, MinQuad, "0x1.ffffffffffffffffffffffffffffp-111", APFloat::opOK, in TEST()
2762 APFloat::fcNormal, APFloat::rmNearestTiesToAway}, in TEST()
2764 {MaxQuad, NMinQuad, "-0x1.ffffffffffffffffffffffffffffp-111", APFloat::opOK, in TEST()
2765 APFloat::fcNormal, APFloat::rmNearestTiesToEven}, in TEST()
2766 {MaxQuad, NMinQuad, "-0x1.ffffffffffffffffffffffffffffp-111", APFloat::opOK, in TEST()
2767 APFloat::fcNormal, APFloat::rmTowardPositive}, in TEST()
2768 {MaxQuad, NMinQuad, "-0x1.ffffffffffffffffffffffffffffp-111", APFloat::opOK, in TEST()
2769 APFloat::fcNormal, APFloat::rmTowardNegative}, in TEST()
2770 {MaxQuad, NMinQuad, "-0x1.ffffffffffffffffffffffffffffp-111", APFloat::opOK, in TEST()
2771 APFloat::fcNormal, APFloat::rmTowardZero}, in TEST()
2772 {MaxQuad, NMinQuad, "-0x1.ffffffffffffffffffffffffffffp-111", APFloat::opOK, in TEST()
2773 APFloat::fcNormal, APFloat::rmNearestTiesToAway}, in TEST()
2775 {MaxQuad, MaxQuad, "inf", OverflowStatus, APFloat::fcInfinity, in TEST()
2776 APFloat::rmNearestTiesToEven}, in TEST()
2777 {MaxQuad, MaxQuad, "inf", OverflowStatus, APFloat::fcInfinity, in TEST()
2778 APFloat::rmTowardPositive}, in TEST()
2780 APFloat::opInexact, APFloat::fcNormal, APFloat::rmTowardNegative}, in TEST()
2782 APFloat::opInexact, APFloat::fcNormal, APFloat::rmTowardZero}, in TEST()
2783 {MaxQuad, MaxQuad, "inf", OverflowStatus, APFloat::fcInfinity, in TEST()
2784 APFloat::rmNearestTiesToAway}, in TEST()
2786 {MinQuad, MinQuad, "0", UnderflowStatus, APFloat::fcZero, in TEST()
2787 APFloat::rmNearestTiesToEven}, in TEST()
2789 UnderflowStatus, APFloat::fcNormal, APFloat::rmTowardPositive}, in TEST()
2790 {MinQuad, MinQuad, "0", UnderflowStatus, APFloat::fcZero, in TEST()
2791 APFloat::rmTowardNegative}, in TEST()
2792 {MinQuad, MinQuad, "0", UnderflowStatus, APFloat::fcZero, in TEST()
2793 APFloat::rmTowardZero}, in TEST()
2794 {MinQuad, MinQuad, "0", UnderflowStatus, APFloat::fcZero, in TEST()
2795 APFloat::rmNearestTiesToAway}, in TEST()
2797 {MinQuad, NMinQuad, "-0", UnderflowStatus, APFloat::fcZero, in TEST()
2798 APFloat::rmNearestTiesToEven}, in TEST()
2799 {MinQuad, NMinQuad, "-0", UnderflowStatus, APFloat::fcZero, in TEST()
2800 APFloat::rmTowardPositive}, in TEST()
2802 UnderflowStatus, APFloat::fcNormal, APFloat::rmTowardNegative}, in TEST()
2803 {MinQuad, NMinQuad, "-0", UnderflowStatus, APFloat::fcZero, in TEST()
2804 APFloat::rmTowardZero}, in TEST()
2805 {MinQuad, NMinQuad, "-0", UnderflowStatus, APFloat::fcZero, in TEST()
2806 APFloat::rmNearestTiesToAway}, in TEST()
2810 APFloat x(SpecialCaseTests[i].x); in TEST()
2811 APFloat y(SpecialCaseTests[i].y); in TEST()
2812 APFloat::opStatus status = x.multiply(y, SpecialCaseTests[i].roundingMode); in TEST()
2814 APFloat result(x.getSemantics(), SpecialCaseTests[i].result); in TEST()
2825 APFloat PInf = APFloat::getInf(APFloat::IEEEsingle(), false); in TEST()
2826 APFloat MInf = APFloat::getInf(APFloat::IEEEsingle(), true); in TEST()
2827 APFloat PZero = APFloat::getZero(APFloat::IEEEsingle(), false); in TEST()
2828 APFloat MZero = APFloat::getZero(APFloat::IEEEsingle(), true); in TEST()
2829 APFloat QNaN = APFloat::getNaN(APFloat::IEEEsingle(), false); in TEST()
2830 APFloat SNaN = APFloat(APFloat::IEEEsingle(), "snan123"); in TEST()
2831 APFloat PNormalValue = APFloat(APFloat::IEEEsingle(), "0x1p+0"); in TEST()
2832 APFloat MNormalValue = APFloat(APFloat::IEEEsingle(), "-0x1p+0"); in TEST()
2833 APFloat PLargestValue = APFloat::getLargest(APFloat::IEEEsingle(), false); in TEST()
2834 APFloat MLargestValue = APFloat::getLargest(APFloat::IEEEsingle(), true); in TEST()
2835 APFloat PSmallestValue = APFloat::getSmallest(APFloat::IEEEsingle(), false); in TEST()
2836 APFloat MSmallestValue = APFloat::getSmallest(APFloat::IEEEsingle(), true); in TEST()
2837 APFloat PSmallestNormalized = in TEST()
2838 APFloat::getSmallestNormalized(APFloat::IEEEsingle(), false); in TEST()
2839 APFloat MSmallestNormalized = in TEST()
2840 APFloat::getSmallestNormalized(APFloat::IEEEsingle(), true); in TEST()
2842 APFloat MaxQuad(APFloat::IEEEquad(), in TEST()
2844 APFloat MinQuad(APFloat::IEEEquad(), in TEST()
2846 APFloat NMinQuad(APFloat::IEEEquad(), in TEST()
2849 const int OverflowStatus = APFloat::opOverflow | APFloat::opInexact; in TEST()
2850 const int UnderflowStatus = APFloat::opUnderflow | APFloat::opInexact; in TEST()
2853 APFloat x; in TEST()
2854 APFloat y; in TEST()
2858 APFloat::roundingMode roundingMode = APFloat::rmNearestTiesToEven; in TEST()
2860 { PInf, PInf, "nan", APFloat::opInvalidOp, APFloat::fcNaN }, in TEST()
2861 { PInf, MInf, "nan", APFloat::opInvalidOp, APFloat::fcNaN }, in TEST()
2862 { PInf, PZero, "inf", APFloat::opOK, APFloat::fcInfinity }, in TEST()
2863 { PInf, MZero, "-inf", APFloat::opOK, APFloat::fcInfinity }, in TEST()
2864 { PInf, QNaN, "nan", APFloat::opOK, APFloat::fcNaN }, in TEST()
2865 { PInf, SNaN, "nan123", APFloat::opInvalidOp, APFloat::fcNaN }, in TEST()
2866 { PInf, PNormalValue, "inf", APFloat::opOK, APFloat::fcInfinity }, in TEST()
2867 { PInf, MNormalValue, "-inf", APFloat::opOK, APFloat::fcInfinity }, in TEST()
2868 { PInf, PLargestValue, "inf", APFloat::opOK, APFloat::fcInfinity }, in TEST()
2869 { PInf, MLargestValue, "-inf", APFloat::opOK, APFloat::fcInfinity }, in TEST()
2870 { PInf, PSmallestValue, "inf", APFloat::opOK, APFloat::fcInfinity }, in TEST()
2871 { PInf, MSmallestValue, "-inf", APFloat::opOK, APFloat::fcInfinity }, in TEST()
2872 { PInf, PSmallestNormalized, "inf", APFloat::opOK, APFloat::fcInfinity }, in TEST()
2873 { PInf, MSmallestNormalized, "-inf", APFloat::opOK, APFloat::fcInfinity }, in TEST()
2874 { MInf, PInf, "nan", APFloat::opInvalidOp, APFloat::fcNaN }, in TEST()
2875 { MInf, MInf, "nan", APFloat::opInvalidOp, APFloat::fcNaN }, in TEST()
2876 { MInf, PZero, "-inf", APFloat::opOK, APFloat::fcInfinity }, in TEST()
2877 { MInf, MZero, "inf", APFloat::opOK, APFloat::fcInfinity }, in TEST()
2878 { MInf, QNaN, "nan", APFloat::opOK, APFloat::fcNaN }, in TEST()
2879 { MInf, SNaN, "nan123", APFloat::opInvalidOp, APFloat::fcNaN }, in TEST()
2880 { MInf, PNormalValue, "-inf", APFloat::opOK, APFloat::fcInfinity }, in TEST()
2881 { MInf, MNormalValue, "inf", APFloat::opOK, APFloat::fcInfinity }, in TEST()
2882 { MInf, PLargestValue, "-inf", APFloat::opOK, APFloat::fcInfinity }, in TEST()
2883 { MInf, MLargestValue, "inf", APFloat::opOK, APFloat::fcInfinity }, in TEST()
2884 { MInf, PSmallestValue, "-inf", APFloat::opOK, APFloat::fcInfinity }, in TEST()
2885 { MInf, MSmallestValue, "inf", APFloat::opOK, APFloat::fcInfinity }, in TEST()
2886 { MInf, PSmallestNormalized, "-inf", APFloat::opOK, APFloat::fcInfinity }, in TEST()
2887 { MInf, MSmallestNormalized, "inf", APFloat::opOK, APFloat::fcInfinity }, in TEST()
2888 { PZero, PInf, "0x0p+0", APFloat::opOK, APFloat::fcZero }, in TEST()
2889 { PZero, MInf, "-0x0p+0", APFloat::opOK, APFloat::fcZero }, in TEST()
2890 { PZero, PZero, "nan", APFloat::opInvalidOp, APFloat::fcNaN }, in TEST()
2891 { PZero, MZero, "nan", APFloat::opInvalidOp, APFloat::fcNaN }, in TEST()
2892 { PZero, QNaN, "nan", APFloat::opOK, APFloat::fcNaN }, in TEST()
2893 { PZero, SNaN, "nan123", APFloat::opInvalidOp, APFloat::fcNaN }, in TEST()
2894 { PZero, PNormalValue, "0x0p+0", APFloat::opOK, APFloat::fcZero }, in TEST()
2895 { PZero, MNormalValue, "-0x0p+0", APFloat::opOK, APFloat::fcZero }, in TEST()
2896 { PZero, PLargestValue, "0x0p+0", APFloat::opOK, APFloat::fcZero }, in TEST()
2897 { PZero, MLargestValue, "-0x0p+0", APFloat::opOK, APFloat::fcZero }, in TEST()
2898 { PZero, PSmallestValue, "0x0p+0", APFloat::opOK, APFloat::fcZero }, in TEST()
2899 { PZero, MSmallestValue, "-0x0p+0", APFloat::opOK, APFloat::fcZero }, in TEST()
2900 { PZero, PSmallestNormalized, "0x0p+0", APFloat::opOK, APFloat::fcZero }, in TEST()
2901 { PZero, MSmallestNormalized, "-0x0p+0", APFloat::opOK, APFloat::fcZero }, in TEST()
2902 { MZero, PInf, "-0x0p+0", APFloat::opOK, APFloat::fcZero }, in TEST()
2903 { MZero, MInf, "0x0p+0", APFloat::opOK, APFloat::fcZero }, in TEST()
2904 { MZero, PZero, "nan", APFloat::opInvalidOp, APFloat::fcNaN }, in TEST()
2905 { MZero, MZero, "nan", APFloat::opInvalidOp, APFloat::fcNaN }, in TEST()
2906 { MZero, QNaN, "nan", APFloat::opOK, APFloat::fcNaN }, in TEST()
2907 { MZero, SNaN, "nan123", APFloat::opInvalidOp, APFloat::fcNaN }, in TEST()
2908 { MZero, PNormalValue, "-0x0p+0", APFloat::opOK, APFloat::fcZero }, in TEST()
2909 { MZero, MNormalValue, "0x0p+0", APFloat::opOK, APFloat::fcZero }, in TEST()
2910 { MZero, PLargestValue, "-0x0p+0", APFloat::opOK, APFloat::fcZero }, in TEST()
2911 { MZero, MLargestValue, "0x0p+0", APFloat::opOK, APFloat::fcZero }, in TEST()
2912 { MZero, PSmallestValue, "-0x0p+0", APFloat::opOK, APFloat::fcZero }, in TEST()
2913 { MZero, MSmallestValue, "0x0p+0", APFloat::opOK, APFloat::fcZero }, in TEST()
2914 { MZero, PSmallestNormalized, "-0x0p+0", APFloat::opOK, APFloat::fcZero }, in TEST()
2915 { MZero, MSmallestNormalized, "0x0p+0", APFloat::opOK, APFloat::fcZero }, in TEST()
2916 { QNaN, PInf, "nan", APFloat::opOK, APFloat::fcNaN }, in TEST()
2917 { QNaN, MInf, "nan", APFloat::opOK, APFloat::fcNaN }, in TEST()
2918 { QNaN, PZero, "nan", APFloat::opOK, APFloat::fcNaN }, in TEST()
2919 { QNaN, MZero, "nan", APFloat::opOK, APFloat::fcNaN }, in TEST()
2920 { QNaN, QNaN, "nan", APFloat::opOK, APFloat::fcNaN }, in TEST()
2921 { QNaN, SNaN, "nan", APFloat::opInvalidOp, APFloat::fcNaN }, in TEST()
2922 { QNaN, PNormalValue, "nan", APFloat::opOK, APFloat::fcNaN }, in TEST()
2923 { QNaN, MNormalValue, "nan", APFloat::opOK, APFloat::fcNaN }, in TEST()
2924 { QNaN, PLargestValue, "nan", APFloat::opOK, APFloat::fcNaN }, in TEST()
2925 { QNaN, MLargestValue, "nan", APFloat::opOK, APFloat::fcNaN }, in TEST()
2926 { QNaN, PSmallestValue, "nan", APFloat::opOK, APFloat::fcNaN }, in TEST()
2927 { QNaN, MSmallestValue, "nan", APFloat::opOK, APFloat::fcNaN }, in TEST()
2928 { QNaN, PSmallestNormalized, "nan", APFloat::opOK, APFloat::fcNaN }, in TEST()
2929 { QNaN, MSmallestNormalized, "nan", APFloat::opOK, APFloat::fcNaN }, in TEST()
2930 { SNaN, PInf, "nan123", APFloat::opInvalidOp, APFloat::fcNaN }, in TEST()
2931 { SNaN, MInf, "nan123", APFloat::opInvalidOp, APFloat::fcNaN }, in TEST()
2932 { SNaN, PZero, "nan123", APFloat::opInvalidOp, APFloat::fcNaN }, in TEST()
2933 { SNaN, MZero, "nan123", APFloat::opInvalidOp, APFloat::fcNaN }, in TEST()
2934 { SNaN, QNaN, "nan123", APFloat::opInvalidOp, APFloat::fcNaN }, in TEST()
2935 { SNaN, SNaN, "nan123", APFloat::opInvalidOp, APFloat::fcNaN }, in TEST()
2936 { SNaN, PNormalValue, "nan123", APFloat::opInvalidOp, APFloat::fcNaN }, in TEST()
2937 { SNaN, MNormalValue, "nan123", APFloat::opInvalidOp, APFloat::fcNaN }, in TEST()
2938 { SNaN, PLargestValue, "nan123", APFloat::opInvalidOp, APFloat::fcNaN }, in TEST()
2939 { SNaN, MLargestValue, "nan123", APFloat::opInvalidOp, APFloat::fcNaN }, in TEST()
2940 { SNaN, PSmallestValue, "nan123", APFloat::opInvalidOp, APFloat::fcNaN }, in TEST()
2941 { SNaN, MSmallestValue, "nan123", APFloat::opInvalidOp, APFloat::fcNaN }, in TEST()
2942 { SNaN, PSmallestNormalized, "nan123", APFloat::opInvalidOp, APFloat::fcNaN }, in TEST()
2943 { SNaN, MSmallestNormalized, "nan123", APFloat::opInvalidOp, APFloat::fcNaN }, in TEST()
2944 { PNormalValue, PInf, "0x0p+0", APFloat::opOK, APFloat::fcZero }, in TEST()
2945 { PNormalValue, MInf, "-0x0p+0", APFloat::opOK, APFloat::fcZero }, in TEST()
2946 { PNormalValue, PZero, "inf", APFloat::opDivByZero, APFloat::fcInfinity }, in TEST()
2947 { PNormalValue, MZero, "-inf", APFloat::opDivByZero, APFloat::fcInfinity }, in TEST()
2948 { PNormalValue, QNaN, "nan", APFloat::opOK, APFloat::fcNaN }, in TEST()
2949 { PNormalValue, SNaN, "nan123", APFloat::opInvalidOp, APFloat::fcNaN }, in TEST()
2950 { PNormalValue, PNormalValue, "0x1p+0", APFloat::opOK, APFloat::fcNormal }, in TEST()
2951 { PNormalValue, MNormalValue, "-0x1p+0", APFloat::opOK, APFloat::fcNormal }, in TEST()
2952 { PNormalValue, PLargestValue, "0x1p-128", UnderflowStatus, APFloat::fcNormal }, in TEST()
2953 { PNormalValue, MLargestValue, "-0x1p-128", UnderflowStatus, APFloat::fcNormal }, in TEST()
2954 { PNormalValue, PSmallestValue, "inf", OverflowStatus, APFloat::fcInfinity }, in TEST()
2955 { PNormalValue, MSmallestValue, "-inf", OverflowStatus, APFloat::fcInfinity }, in TEST()
2956 { PNormalValue, PSmallestNormalized, "0x1p+126", APFloat::opOK, APFloat::fcNormal }, in TEST()
2957 { PNormalValue, MSmallestNormalized, "-0x1p+126", APFloat::opOK, APFloat::fcNormal }, in TEST()
2958 { MNormalValue, PInf, "-0x0p+0", APFloat::opOK, APFloat::fcZero }, in TEST()
2959 { MNormalValue, MInf, "0x0p+0", APFloat::opOK, APFloat::fcZero }, in TEST()
2960 { MNormalValue, PZero, "-inf", APFloat::opDivByZero, APFloat::fcInfinity }, in TEST()
2961 { MNormalValue, MZero, "inf", APFloat::opDivByZero, APFloat::fcInfinity }, in TEST()
2962 { MNormalValue, QNaN, "nan", APFloat::opOK, APFloat::fcNaN }, in TEST()
2963 { MNormalValue, SNaN, "nan123", APFloat::opInvalidOp, APFloat::fcNaN }, in TEST()
2964 { MNormalValue, PNormalValue, "-0x1p+0", APFloat::opOK, APFloat::fcNormal }, in TEST()
2965 { MNormalValue, MNormalValue, "0x1p+0", APFloat::opOK, APFloat::fcNormal }, in TEST()
2966 { MNormalValue, PLargestValue, "-0x1p-128", UnderflowStatus, APFloat::fcNormal }, in TEST()
2967 { MNormalValue, MLargestValue, "0x1p-128", UnderflowStatus, APFloat::fcNormal }, in TEST()
2968 { MNormalValue, PSmallestValue, "-inf", OverflowStatus, APFloat::fcInfinity }, in TEST()
2969 { MNormalValue, MSmallestValue, "inf", OverflowStatus, APFloat::fcInfinity }, in TEST()
2970 { MNormalValue, PSmallestNormalized, "-0x1p+126", APFloat::opOK, APFloat::fcNormal }, in TEST()
2971 { MNormalValue, MSmallestNormalized, "0x1p+126", APFloat::opOK, APFloat::fcNormal }, in TEST()
2972 { PLargestValue, PInf, "0x0p+0", APFloat::opOK, APFloat::fcZero }, in TEST()
2973 { PLargestValue, MInf, "-0x0p+0", APFloat::opOK, APFloat::fcZero }, in TEST()
2974 { PLargestValue, PZero, "inf", APFloat::opDivByZero, APFloat::fcInfinity }, in TEST()
2975 { PLargestValue, MZero, "-inf", APFloat::opDivByZero, APFloat::fcInfinity }, in TEST()
2976 { PLargestValue, QNaN, "nan", APFloat::opOK, APFloat::fcNaN }, in TEST()
2977 { PLargestValue, SNaN, "nan123", APFloat::opInvalidOp, APFloat::fcNaN }, in TEST()
2978 { PLargestValue, PNormalValue, "0x1.fffffep+127", APFloat::opOK, APFloat::fcNormal }, in TEST()
2979 { PLargestValue, MNormalValue, "-0x1.fffffep+127", APFloat::opOK, APFloat::fcNormal }, in TEST()
2980 { PLargestValue, PLargestValue, "0x1p+0", APFloat::opOK, APFloat::fcNormal }, in TEST()
2981 { PLargestValue, MLargestValue, "-0x1p+0", APFloat::opOK, APFloat::fcNormal }, in TEST()
2982 { PLargestValue, PSmallestValue, "inf", OverflowStatus, APFloat::fcInfinity }, in TEST()
2983 { PLargestValue, MSmallestValue, "-inf", OverflowStatus, APFloat::fcInfinity }, in TEST()
2984 { PLargestValue, PSmallestNormalized, "inf", OverflowStatus, APFloat::fcInfinity }, in TEST()
2985 { PLargestValue, MSmallestNormalized, "-inf", OverflowStatus, APFloat::fcInfinity }, in TEST()
2986 { MLargestValue, PInf, "-0x0p+0", APFloat::opOK, APFloat::fcZero }, in TEST()
2987 { MLargestValue, MInf, "0x0p+0", APFloat::opOK, APFloat::fcZero }, in TEST()
2988 { MLargestValue, PZero, "-inf", APFloat::opDivByZero, APFloat::fcInfinity }, in TEST()
2989 { MLargestValue, MZero, "inf", APFloat::opDivByZero, APFloat::fcInfinity }, in TEST()
2990 { MLargestValue, QNaN, "nan", APFloat::opOK, APFloat::fcNaN }, in TEST()
2991 { MLargestValue, SNaN, "nan123", APFloat::opInvalidOp, APFloat::fcNaN }, in TEST()
2992 { MLargestValue, PNormalValue, "-0x1.fffffep+127", APFloat::opOK, APFloat::fcNormal }, in TEST()
2993 { MLargestValue, MNormalValue, "0x1.fffffep+127", APFloat::opOK, APFloat::fcNormal }, in TEST()
2994 { MLargestValue, PLargestValue, "-0x1p+0", APFloat::opOK, APFloat::fcNormal }, in TEST()
2995 { MLargestValue, MLargestValue, "0x1p+0", APFloat::opOK, APFloat::fcNormal }, in TEST()
2996 { MLargestValue, PSmallestValue, "-inf", OverflowStatus, APFloat::fcInfinity }, in TEST()
2997 { MLargestValue, MSmallestValue, "inf", OverflowStatus, APFloat::fcInfinity }, in TEST()
2998 { MLargestValue, PSmallestNormalized, "-inf", OverflowStatus, APFloat::fcInfinity }, in TEST()
2999 { MLargestValue, MSmallestNormalized, "inf", OverflowStatus, APFloat::fcInfinity }, in TEST()
3000 { PSmallestValue, PInf, "0x0p+0", APFloat::opOK, APFloat::fcZero }, in TEST()
3001 { PSmallestValue, MInf, "-0x0p+0", APFloat::opOK, APFloat::fcZero }, in TEST()
3002 { PSmallestValue, PZero, "inf", APFloat::opDivByZero, APFloat::fcInfinity }, in TEST()
3003 { PSmallestValue, MZero, "-inf", APFloat::opDivByZero, APFloat::fcInfinity }, in TEST()
3004 { PSmallestValue, QNaN, "nan", APFloat::opOK, APFloat::fcNaN }, in TEST()
3005 { PSmallestValue, SNaN, "nan123", APFloat::opInvalidOp, APFloat::fcNaN }, in TEST()
3006 { PSmallestValue, PNormalValue, "0x1p-149", APFloat::opOK, APFloat::fcNormal }, in TEST()
3007 { PSmallestValue, MNormalValue, "-0x1p-149", APFloat::opOK, APFloat::fcNormal }, in TEST()
3008 { PSmallestValue, PLargestValue, "0x0p+0", UnderflowStatus, APFloat::fcZero }, in TEST()
3009 { PSmallestValue, MLargestValue, "-0x0p+0", UnderflowStatus, APFloat::fcZero }, in TEST()
3010 { PSmallestValue, PSmallestValue, "0x1p+0", APFloat::opOK, APFloat::fcNormal }, in TEST()
3011 { PSmallestValue, MSmallestValue, "-0x1p+0", APFloat::opOK, APFloat::fcNormal }, in TEST()
3012 { PSmallestValue, PSmallestNormalized, "0x1p-23", APFloat::opOK, APFloat::fcNormal }, in TEST()
3013 { PSmallestValue, MSmallestNormalized, "-0x1p-23", APFloat::opOK, APFloat::fcNormal }, in TEST()
3014 { MSmallestValue, PInf, "-0x0p+0", APFloat::opOK, APFloat::fcZero }, in TEST()
3015 { MSmallestValue, MInf, "0x0p+0", APFloat::opOK, APFloat::fcZero }, in TEST()
3016 { MSmallestValue, PZero, "-inf", APFloat::opDivByZero, APFloat::fcInfinity }, in TEST()
3017 { MSmallestValue, MZero, "inf", APFloat::opDivByZero, APFloat::fcInfinity }, in TEST()
3018 { MSmallestValue, QNaN, "nan", APFloat::opOK, APFloat::fcNaN }, in TEST()
3019 { MSmallestValue, SNaN, "nan123", APFloat::opInvalidOp, APFloat::fcNaN }, in TEST()
3020 { MSmallestValue, PNormalValue, "-0x1p-149", APFloat::opOK, APFloat::fcNormal }, in TEST()
3021 { MSmallestValue, MNormalValue, "0x1p-149", APFloat::opOK, APFloat::fcNormal }, in TEST()
3022 { MSmallestValue, PLargestValue, "-0x0p+0", UnderflowStatus, APFloat::fcZero }, in TEST()
3023 { MSmallestValue, MLargestValue, "0x0p+0", UnderflowStatus, APFloat::fcZero }, in TEST()
3024 { MSmallestValue, PSmallestValue, "-0x1p+0", APFloat::opOK, APFloat::fcNormal }, in TEST()
3025 { MSmallestValue, MSmallestValue, "0x1p+0", APFloat::opOK, APFloat::fcNormal }, in TEST()
3026 { MSmallestValue, PSmallestNormalized, "-0x1p-23", APFloat::opOK, APFloat::fcNormal }, in TEST()
3027 { MSmallestValue, MSmallestNormalized, "0x1p-23", APFloat::opOK, APFloat::fcNormal }, in TEST()
3028 { PSmallestNormalized, PInf, "0x0p+0", APFloat::opOK, APFloat::fcZero }, in TEST()
3029 { PSmallestNormalized, MInf, "-0x0p+0", APFloat::opOK, APFloat::fcZero }, in TEST()
3030 { PSmallestNormalized, PZero, "inf", APFloat::opDivByZero, APFloat::fcInfinity }, in TEST()
3031 { PSmallestNormalized, MZero, "-inf", APFloat::opDivByZero, APFloat::fcInfinity }, in TEST()
3032 { PSmallestNormalized, QNaN, "nan", APFloat::opOK, APFloat::fcNaN }, in TEST()
3033 { PSmallestNormalized, SNaN, "nan123", APFloat::opInvalidOp, APFloat::fcNaN }, in TEST()
3034 { PSmallestNormalized, PNormalValue, "0x1p-126", APFloat::opOK, APFloat::fcNormal }, in TEST()
3035 { PSmallestNormalized, MNormalValue, "-0x1p-126", APFloat::opOK, APFloat::fcNormal }, in TEST()
3036 { PSmallestNormalized, PLargestValue, "0x0p+0", UnderflowStatus, APFloat::fcZero }, in TEST()
3037 { PSmallestNormalized, MLargestValue, "-0x0p+0", UnderflowStatus, APFloat::fcZero }, in TEST()
3038 { PSmallestNormalized, PSmallestValue, "0x1p+23", APFloat::opOK, APFloat::fcNormal }, in TEST()
3039 { PSmallestNormalized, MSmallestValue, "-0x1p+23", APFloat::opOK, APFloat::fcNormal }, in TEST()
3040 { PSmallestNormalized, PSmallestNormalized, "0x1p+0", APFloat::opOK, APFloat::fcNormal }, in TEST()
3041 { PSmallestNormalized, MSmallestNormalized, "-0x1p+0", APFloat::opOK, APFloat::fcNormal }, in TEST()
3042 { MSmallestNormalized, PInf, "-0x0p+0", APFloat::opOK, APFloat::fcZero }, in TEST()
3043 { MSmallestNormalized, MInf, "0x0p+0", APFloat::opOK, APFloat::fcZero }, in TEST()
3044 { MSmallestNormalized, PZero, "-inf", APFloat::opDivByZero, APFloat::fcInfinity }, in TEST()
3045 { MSmallestNormalized, MZero, "inf", APFloat::opDivByZero, APFloat::fcInfinity }, in TEST()
3046 { MSmallestNormalized, QNaN, "nan", APFloat::opOK, APFloat::fcNaN }, in TEST()
3047 { MSmallestNormalized, SNaN, "nan123", APFloat::opInvalidOp, APFloat::fcNaN }, in TEST()
3048 { MSmallestNormalized, PNormalValue, "-0x1p-126", APFloat::opOK, APFloat::fcNormal }, in TEST()
3049 { MSmallestNormalized, MNormalValue, "0x1p-126", APFloat::opOK, APFloat::fcNormal }, in TEST()
3050 { MSmallestNormalized, PLargestValue, "-0x0p+0", UnderflowStatus, APFloat::fcZero }, in TEST()
3051 { MSmallestNormalized, MLargestValue, "0x0p+0", UnderflowStatus, APFloat::fcZero }, in TEST()
3052 { MSmallestNormalized, PSmallestValue, "-0x1p+23", APFloat::opOK, APFloat::fcNormal }, in TEST()
3053 { MSmallestNormalized, MSmallestValue, "0x1p+23", APFloat::opOK, APFloat::fcNormal }, in TEST()
3054 { MSmallestNormalized, PSmallestNormalized, "-0x1p+0", APFloat::opOK, APFloat::fcNormal }, in TEST()
3055 { MSmallestNormalized, MSmallestNormalized, "0x1p+0", APFloat::opOK, APFloat::fcNormal }, in TEST()
3057 {MaxQuad, NMinQuad, "-inf", OverflowStatus, APFloat::fcInfinity, in TEST()
3058 APFloat::rmNearestTiesToEven}, in TEST()
3060 APFloat::opInexact, APFloat::fcNormal, APFloat::rmTowardPositive}, in TEST()
3061 {MaxQuad, NMinQuad, "-inf", OverflowStatus, APFloat::fcInfinity, in TEST()
3062 APFloat::rmTowardNegative}, in TEST()
3064 APFloat::opInexact, APFloat::fcNormal, APFloat::rmTowardZero}, in TEST()
3065 {MaxQuad, NMinQuad, "-inf", OverflowStatus, APFloat::fcInfinity, in TEST()
3066 APFloat::rmNearestTiesToAway}, in TEST()
3068 {MinQuad, MaxQuad, "0", UnderflowStatus, APFloat::fcZero, in TEST()
3069 APFloat::rmNearestTiesToEven}, in TEST()
3071 UnderflowStatus, APFloat::fcNormal, APFloat::rmTowardPositive}, in TEST()
3072 {MinQuad, MaxQuad, "0", UnderflowStatus, APFloat::fcZero, in TEST()
3073 APFloat::rmTowardNegative}, in TEST()
3074 {MinQuad, MaxQuad, "0", UnderflowStatus, APFloat::fcZero, in TEST()
3075 APFloat::rmTowardZero}, in TEST()
3076 {MinQuad, MaxQuad, "0", UnderflowStatus, APFloat::fcZero, in TEST()
3077 APFloat::rmNearestTiesToAway}, in TEST()
3079 {NMinQuad, MaxQuad, "-0", UnderflowStatus, APFloat::fcZero, in TEST()
3080 APFloat::rmNearestTiesToEven}, in TEST()
3081 {NMinQuad, MaxQuad, "-0", UnderflowStatus, APFloat::fcZero, in TEST()
3082 APFloat::rmTowardPositive}, in TEST()
3084 UnderflowStatus, APFloat::fcNormal, APFloat::rmTowardNegative}, in TEST()
3085 {NMinQuad, MaxQuad, "-0", UnderflowStatus, APFloat::fcZero, in TEST()
3086 APFloat::rmTowardZero}, in TEST()
3087 {NMinQuad, MaxQuad, "-0", UnderflowStatus, APFloat::fcZero, in TEST()
3088 APFloat::rmNearestTiesToAway}, in TEST()
3092 APFloat x(SpecialCaseTests[i].x); in TEST()
3093 APFloat y(SpecialCaseTests[i].y); in TEST()
3094 APFloat::opStatus status = x.divide(y, SpecialCaseTests[i].roundingMode); in TEST()
3096 APFloat result(x.getSemantics(), SpecialCaseTests[i].result); in TEST()
3106 APFloat One = APFloat(APFloat::IEEEsingle(), "0x1p+0"); in TEST()
3107 APFloat Two = APFloat(APFloat::IEEEsingle(), "0x2p+0"); in TEST()
3116 APFloat Vals[NumVals] = { in TEST()
3117 APFloat::getNaN(APFloat::IEEEsingle(), true), in TEST()
3118 APFloat::getInf(APFloat::IEEEsingle(), true), in TEST()
3119 APFloat::getLargest(APFloat::IEEEsingle(), true), in TEST()
3120 APFloat(APFloat::IEEEsingle(), "-0x1p+0"), in TEST()
3121 APFloat::getZero(APFloat::IEEEsingle(), true), in TEST()
3122 APFloat::getZero(APFloat::IEEEsingle(), false), in TEST()
3123 APFloat(APFloat::IEEEsingle(), "0x1p+0"), in TEST()
3124 APFloat::getLargest(APFloat::IEEEsingle(), false), in TEST()
3125 APFloat::getInf(APFloat::IEEEsingle(), false), in TEST()
3126 APFloat::getNaN(APFloat::IEEEsingle(), false), in TEST()
3128 using Relation = void (*)(const APFloat &, const APFloat &); in TEST()
3129 Relation LT = [](const APFloat &LHS, const APFloat &RHS) { in TEST()
3137 Relation EQ = [](const APFloat &LHS, const APFloat &RHS) { in TEST()
3145 Relation GT = [](const APFloat &LHS, const APFloat &RHS) { in TEST()
3153 Relation UN = [](const APFloat &LHS, const APFloat &RHS) { in TEST()
3180 APFloat PInf = APFloat::getInf(APFloat::IEEEsingle(), false); in TEST()
3181 APFloat MInf = APFloat::getInf(APFloat::IEEEsingle(), true); in TEST()
3182 APFloat PZero = APFloat::getZero(APFloat::IEEEsingle(), false); in TEST()
3183 APFloat MZero = APFloat::getZero(APFloat::IEEEsingle(), true); in TEST()
3184 APFloat PQNaN = APFloat::getNaN(APFloat::IEEEsingle(), false); in TEST()
3185 APFloat MQNaN = APFloat::getNaN(APFloat::IEEEsingle(), true); in TEST()
3186 APFloat PSNaN = APFloat::getSNaN(APFloat::IEEEsingle(), false); in TEST()
3187 APFloat MSNaN = APFloat::getSNaN(APFloat::IEEEsingle(), true); in TEST()
3188 APFloat PNormalValue = APFloat(APFloat::IEEEsingle(), "0x1p+0"); in TEST()
3189 APFloat MNormalValue = APFloat(APFloat::IEEEsingle(), "-0x1p+0"); in TEST()
3190 APFloat PLargestValue = APFloat::getLargest(APFloat::IEEEsingle(), false); in TEST()
3191 APFloat MLargestValue = APFloat::getLargest(APFloat::IEEEsingle(), true); in TEST()
3192 APFloat PSmallestValue = APFloat::getSmallest(APFloat::IEEEsingle(), false); in TEST()
3193 APFloat MSmallestValue = APFloat::getSmallest(APFloat::IEEEsingle(), true); in TEST()
3194 APFloat PSmallestNormalized = in TEST()
3195 APFloat::getSmallestNormalized(APFloat::IEEEsingle(), false); in TEST()
3196 APFloat MSmallestNormalized = in TEST()
3197 APFloat::getSmallestNormalized(APFloat::IEEEsingle(), true); in TEST()
3218 APFloat One = APFloat(APFloat::IEEEsingle(), "1.0"); in TEST()
3219 APFloat NegOne = APFloat(APFloat::IEEEsingle(), "-1.0"); in TEST()
3220 APFloat Zero = APFloat::getZero(APFloat::IEEEsingle(), false); in TEST()
3221 APFloat NegZero = APFloat::getZero(APFloat::IEEEsingle(), true); in TEST()
3222 APFloat Inf = APFloat::getInf(APFloat::IEEEsingle(), false); in TEST()
3223 APFloat NegInf = APFloat::getInf(APFloat::IEEEsingle(), true); in TEST()
3224 APFloat QNaN = APFloat::getNaN(APFloat::IEEEsingle(), false); in TEST()
3225 APFloat NegQNaN = APFloat::getNaN(APFloat::IEEEsingle(), true); in TEST()
3251 EXPECT_EQ(-1074, ilogb(APFloat::getSmallest(APFloat::IEEEdouble(), false))); in TEST()
3252 EXPECT_EQ(-1074, ilogb(APFloat::getSmallest(APFloat::IEEEdouble(), true))); in TEST()
3253 EXPECT_EQ(-1023, ilogb(APFloat(APFloat::IEEEdouble(), "0x1.ffffffffffffep-1024"))); in TEST()
3254 EXPECT_EQ(-1023, ilogb(APFloat(APFloat::IEEEdouble(), "0x1.ffffffffffffep-1023"))); in TEST()
3255 EXPECT_EQ(-1023, ilogb(APFloat(APFloat::IEEEdouble(), "-0x1.ffffffffffffep-1023"))); in TEST()
3256 EXPECT_EQ(-51, ilogb(APFloat(APFloat::IEEEdouble(), "0x1p-51"))); in TEST()
3257 EXPECT_EQ(-1023, ilogb(APFloat(APFloat::IEEEdouble(), "0x1.c60f120d9f87cp-1023"))); in TEST()
3258 EXPECT_EQ(-2, ilogb(APFloat(APFloat::IEEEdouble(), "0x0.ffffp-1"))); in TEST()
3259 EXPECT_EQ(-1023, ilogb(APFloat(APFloat::IEEEdouble(), "0x1.fffep-1023"))); in TEST()
3260 EXPECT_EQ(1023, ilogb(APFloat::getLargest(APFloat::IEEEdouble(), false))); in TEST()
3261 EXPECT_EQ(1023, ilogb(APFloat::getLargest(APFloat::IEEEdouble(), true))); in TEST()
3264 EXPECT_EQ(0, ilogb(APFloat(APFloat::IEEEsingle(), "0x1p+0"))); in TEST()
3265 EXPECT_EQ(0, ilogb(APFloat(APFloat::IEEEsingle(), "-0x1p+0"))); in TEST()
3266 EXPECT_EQ(42, ilogb(APFloat(APFloat::IEEEsingle(), "0x1p+42"))); in TEST()
3267 EXPECT_EQ(-42, ilogb(APFloat(APFloat::IEEEsingle(), "0x1p-42"))); in TEST()
3269 EXPECT_EQ(APFloat::IEK_Inf, in TEST()
3270 ilogb(APFloat::getInf(APFloat::IEEEsingle(), false))); in TEST()
3271 EXPECT_EQ(APFloat::IEK_Inf, in TEST()
3272 ilogb(APFloat::getInf(APFloat::IEEEsingle(), true))); in TEST()
3273 EXPECT_EQ(APFloat::IEK_Zero, in TEST()
3274 ilogb(APFloat::getZero(APFloat::IEEEsingle(), false))); in TEST()
3275 EXPECT_EQ(APFloat::IEK_Zero, in TEST()
3276 ilogb(APFloat::getZero(APFloat::IEEEsingle(), true))); in TEST()
3277 EXPECT_EQ(APFloat::IEK_NaN, in TEST()
3278 ilogb(APFloat::getNaN(APFloat::IEEEsingle(), false))); in TEST()
3279 EXPECT_EQ(APFloat::IEK_NaN, in TEST()
3280 ilogb(APFloat::getSNaN(APFloat::IEEEsingle(), false))); in TEST()
3282 EXPECT_EQ(127, ilogb(APFloat::getLargest(APFloat::IEEEsingle(), false))); in TEST()
3283 EXPECT_EQ(127, ilogb(APFloat::getLargest(APFloat::IEEEsingle(), true))); in TEST()
3285 EXPECT_EQ(-149, ilogb(APFloat::getSmallest(APFloat::IEEEsingle(), false))); in TEST()
3286 EXPECT_EQ(-149, ilogb(APFloat::getSmallest(APFloat::IEEEsingle(), true))); in TEST()
3288 ilogb(APFloat::getSmallestNormalized(APFloat::IEEEsingle(), false))); in TEST()
3290 ilogb(APFloat::getSmallestNormalized(APFloat::IEEEsingle(), true))); in TEST()
3295 const APFloat::roundingMode RM = APFloat::rmNearestTiesToEven; in TEST()
3297 APFloat(APFloat::IEEEsingle(), "0x1p+0") in TEST()
3298 .bitwiseIsEqual(scalbn(APFloat(APFloat::IEEEsingle(), "0x1p+0"), 0, RM))); in TEST()
3300 APFloat(APFloat::IEEEsingle(), "0x1p+42") in TEST()
3301 .bitwiseIsEqual(scalbn(APFloat(APFloat::IEEEsingle(), "0x1p+0"), 42, RM))); in TEST()
3303 APFloat(APFloat::IEEEsingle(), "0x1p-42") in TEST()
3304 .bitwiseIsEqual(scalbn(APFloat(APFloat::IEEEsingle(), "0x1p+0"), -42, RM))); in TEST()
3306 APFloat PInf = APFloat::getInf(APFloat::IEEEsingle(), false); in TEST()
3307 APFloat MInf = APFloat::getInf(APFloat::IEEEsingle(), true); in TEST()
3308 APFloat PZero = APFloat::getZero(APFloat::IEEEsingle(), false); in TEST()
3309 APFloat MZero = APFloat::getZero(APFloat::IEEEsingle(), true); in TEST()
3310 APFloat QPNaN = APFloat::getNaN(APFloat::IEEEsingle(), false); in TEST()
3311 APFloat QMNaN = APFloat::getNaN(APFloat::IEEEsingle(), true); in TEST()
3312 APFloat SNaN = APFloat::getSNaN(APFloat::IEEEsingle(), false); in TEST()
3322 APFloat ScalbnSNaN = scalbn(SNaN, 1, RM); in TEST()
3331 APFloat SNaNWithPayload = APFloat::getSNaN(APFloat::IEEEdouble(), false, in TEST()
3333 APFloat QuietPayload = scalbn(SNaNWithPayload, 1, RM); in TEST()
3338 scalbn(APFloat(APFloat::IEEEsingle(), "0x1p+0"), 128, RM))); in TEST()
3340 scalbn(APFloat(APFloat::IEEEsingle(), "-0x1p+0"), 128, RM))); in TEST()
3342 scalbn(APFloat(APFloat::IEEEsingle(), "0x1p+127"), 1, RM))); in TEST()
3344 scalbn(APFloat(APFloat::IEEEsingle(), "0x1p-127"), -127, RM))); in TEST()
3346 scalbn(APFloat(APFloat::IEEEsingle(), "-0x1p-127"), -127, RM))); in TEST()
3347 EXPECT_TRUE(APFloat(APFloat::IEEEsingle(), "-0x1p-149").bitwiseIsEqual( in TEST()
3348 scalbn(APFloat(APFloat::IEEEsingle(), "-0x1p-127"), -22, RM))); in TEST()
3350 scalbn(APFloat(APFloat::IEEEsingle(), "0x1p-126"), -24, RM))); in TEST()
3353 APFloat SmallestF64 = APFloat::getSmallest(APFloat::IEEEdouble(), false); in TEST()
3354 APFloat NegSmallestF64 = APFloat::getSmallest(APFloat::IEEEdouble(), true); in TEST()
3356 APFloat LargestF64 = APFloat::getLargest(APFloat::IEEEdouble(), false); in TEST()
3357 APFloat NegLargestF64 = APFloat::getLargest(APFloat::IEEEdouble(), true); in TEST()
3359 APFloat SmallestNormalizedF64 in TEST()
3360 = APFloat::getSmallestNormalized(APFloat::IEEEdouble(), false); in TEST()
3361 APFloat NegSmallestNormalizedF64 in TEST()
3362 = APFloat::getSmallestNormalized(APFloat::IEEEdouble(), true); in TEST()
3364 APFloat LargestDenormalF64(APFloat::IEEEdouble(), "0x1.ffffffffffffep-1023"); in TEST()
3365 APFloat NegLargestDenormalF64(APFloat::IEEEdouble(), "-0x1.ffffffffffffep-1023"); in TEST()
3369 scalbn(APFloat(APFloat::IEEEdouble(), "0x1p-1074"), 0, RM))); in TEST()
3371 scalbn(APFloat(APFloat::IEEEdouble(), "-0x1p-1074"), 0, RM))); in TEST()
3373 EXPECT_TRUE(APFloat(APFloat::IEEEdouble(), "0x1p+1023") in TEST()
3379 EXPECT_TRUE(APFloat(APFloat::IEEEdouble(), "0x1p+1022") in TEST()
3381 EXPECT_TRUE(APFloat(APFloat::IEEEdouble(), "0x1p+1023") in TEST()
3395 EXPECT_TRUE(APFloat(APFloat::IEEEdouble(), "0x1.ffffffffffffep-1022") in TEST()
3397 EXPECT_TRUE(APFloat(APFloat::IEEEdouble(), "-0x1.ffffffffffffep-1021") in TEST()
3400 EXPECT_TRUE(APFloat(APFloat::IEEEdouble(), "0x1.ffffffffffffep+1") in TEST()
3409 EXPECT_TRUE(APFloat(APFloat::IEEEdouble(), "0x1.ffffffffffffep-2") in TEST()
3411 EXPECT_TRUE(APFloat(APFloat::IEEEdouble(), "0x1.ffffffffffffep-1") in TEST()
3413 EXPECT_TRUE(APFloat(APFloat::IEEEdouble(), "0x1.ffffffffffffep+0") in TEST()
3415 EXPECT_TRUE(APFloat(APFloat::IEEEdouble(), "0x1.ffffffffffffep+1023") in TEST()
3417 EXPECT_TRUE(APFloat(APFloat::IEEEdouble(), "0x1p+974") in TEST()
3420 APFloat RandomDenormalF64(APFloat::IEEEdouble(), "0x1.c60f120d9f87cp+51"); in TEST()
3421 EXPECT_TRUE(APFloat(APFloat::IEEEdouble(), "0x1.c60f120d9f87cp-972") in TEST()
3423 EXPECT_TRUE(APFloat(APFloat::IEEEdouble(), "0x1.c60f120d9f87cp-1") in TEST()
3425 EXPECT_TRUE(APFloat(APFloat::IEEEdouble(), "0x1.c60f120d9f87cp-2") in TEST()
3427 EXPECT_TRUE(APFloat(APFloat::IEEEdouble(), "0x1.c60f120d9f87cp+0") in TEST()
3435 APFloat(APFloat::IEEEdouble(), "-0x1p-1073") in TEST()
3439 APFloat(APFloat::IEEEdouble(), "-0x1p-1024") in TEST()
3443 APFloat(APFloat::IEEEdouble(), "0x1p-1073") in TEST()
3447 APFloat(APFloat::IEEEdouble(), "0x1p-1074") in TEST()
3449 EXPECT_TRUE(APFloat(APFloat::IEEEdouble(), "-0x1p-1074") in TEST()
3456 APFloat(APFloat::IEEEdouble(), "0x1p+0") in TEST()
3457 .bitwiseIsEqual(scalbn(APFloat(APFloat::IEEEdouble(), "0x1p+52"), -52, RM))); in TEST()
3460 APFloat(APFloat::IEEEdouble(), "0x1p-103") in TEST()
3461 .bitwiseIsEqual(scalbn(APFloat(APFloat::IEEEdouble(), "0x1p-51"), -52, RM))); in TEST()
3465 const APFloat::roundingMode RM = APFloat::rmNearestTiesToEven; in TEST()
3467 APFloat PZero = APFloat::getZero(APFloat::IEEEdouble(), false); in TEST()
3468 APFloat MZero = APFloat::getZero(APFloat::IEEEdouble(), true); in TEST()
3469 APFloat One(1.0); in TEST()
3470 APFloat MOne(-1.0); in TEST()
3471 APFloat Two(2.0); in TEST()
3472 APFloat MTwo(-2.0); in TEST()
3474 APFloat LargestDenormal(APFloat::IEEEdouble(), "0x1.ffffffffffffep-1023"); in TEST()
3475 APFloat NegLargestDenormal(APFloat::IEEEdouble(), "-0x1.ffffffffffffep-1023"); in TEST()
3477 APFloat Smallest = APFloat::getSmallest(APFloat::IEEEdouble(), false); in TEST()
3478 APFloat NegSmallest = APFloat::getSmallest(APFloat::IEEEdouble(), true); in TEST()
3480 APFloat Largest = APFloat::getLargest(APFloat::IEEEdouble(), false); in TEST()
3481 APFloat NegLargest = APFloat::getLargest(APFloat::IEEEdouble(), true); in TEST()
3483 APFloat PInf = APFloat::getInf(APFloat::IEEEdouble(), false); in TEST()
3484 APFloat MInf = APFloat::getInf(APFloat::IEEEdouble(), true); in TEST()
3486 APFloat QPNaN = APFloat::getNaN(APFloat::IEEEdouble(), false); in TEST()
3487 APFloat QMNaN = APFloat::getNaN(APFloat::IEEEdouble(), true); in TEST()
3488 APFloat SNaN = APFloat::getSNaN(APFloat::IEEEdouble(), false); in TEST()
3496 APFloat SNaNWithPayload = APFloat::getSNaN(APFloat::IEEEdouble(), false, in TEST()
3499 APFloat SmallestNormalized in TEST()
3500 = APFloat::getSmallestNormalized(APFloat::IEEEdouble(), false); in TEST()
3501 APFloat NegSmallestNormalized in TEST()
3502 = APFloat::getSmallestNormalized(APFloat::IEEEdouble(), true); in TEST()
3505 APFloat Frac(APFloat::IEEEdouble()); in TEST()
3519 EXPECT_TRUE(APFloat(APFloat::IEEEdouble(), "0x1p-1").bitwiseIsEqual(Frac)); in TEST()
3523 EXPECT_TRUE(APFloat(APFloat::IEEEdouble(), "-0x1p-1").bitwiseIsEqual(Frac)); in TEST()
3527 EXPECT_TRUE(APFloat(APFloat::IEEEdouble(), "0x1.ffffffffffffep-1").bitwiseIsEqual(Frac)); in TEST()
3531 EXPECT_TRUE(APFloat(APFloat::IEEEdouble(), "-0x1.ffffffffffffep-1").bitwiseIsEqual(Frac)); in TEST()
3536 EXPECT_TRUE(APFloat(APFloat::IEEEdouble(), "0x1p-1").bitwiseIsEqual(Frac)); in TEST()
3540 EXPECT_TRUE(APFloat(APFloat::IEEEdouble(), "-0x1p-1").bitwiseIsEqual(Frac)); in TEST()
3545 EXPECT_TRUE(APFloat(APFloat::IEEEdouble(), "0x1.fffffffffffffp-1").bitwiseIsEqual(Frac)); in TEST()
3549 EXPECT_TRUE(APFloat(APFloat::IEEEdouble(), "-0x1.fffffffffffffp-1").bitwiseIsEqual(Frac)); in TEST()
3577 Frac = frexp(APFloat(APFloat::IEEEdouble(), "0x0.ffffp-1"), Exp, RM); in TEST()
3579 EXPECT_TRUE(APFloat(APFloat::IEEEdouble(), "0x1.fffep-1").bitwiseIsEqual(Frac)); in TEST()
3581 Frac = frexp(APFloat(APFloat::IEEEdouble(), "0x1p-51"), Exp, RM); in TEST()
3583 EXPECT_TRUE(APFloat(APFloat::IEEEdouble(), "0x1p-1").bitwiseIsEqual(Frac)); in TEST()
3585 Frac = frexp(APFloat(APFloat::IEEEdouble(), "0x1.c60f120d9f87cp+51"), Exp, RM); in TEST()
3587 EXPECT_TRUE(APFloat(APFloat::IEEEdouble(), "0x1.c60f120d9f87cp-1").bitwiseIsEqual(Frac)); in TEST()
3592 APFloat f1(APFloat::IEEEdouble(), "1.5"); in TEST()
3593 APFloat f2(APFloat::IEEEdouble(), "1.0"); in TEST()
3594 APFloat expected(APFloat::IEEEdouble(), "0.5"); in TEST()
3595 EXPECT_EQ(f1.mod(f2), APFloat::opOK); in TEST()
3599 APFloat f1(APFloat::IEEEdouble(), "0.5"); in TEST()
3600 APFloat f2(APFloat::IEEEdouble(), "1.0"); in TEST()
3601 APFloat expected(APFloat::IEEEdouble(), "0.5"); in TEST()
3602 EXPECT_EQ(f1.mod(f2), APFloat::opOK); in TEST()
3606 APFloat f1(APFloat::IEEEdouble(), "0x1.3333333333333p-2"); // 0.3 in TEST()
3607 APFloat f2(APFloat::IEEEdouble(), "0x1.47ae147ae147bp-7"); // 0.01 in TEST()
3608 APFloat expected(APFloat::IEEEdouble(), in TEST()
3610 EXPECT_EQ(f1.mod(f2), APFloat::opOK); in TEST()
3614 APFloat f1(APFloat::IEEEdouble(), "0x1p64"); // 1.8446744073709552e19 in TEST()
3615 APFloat f2(APFloat::IEEEdouble(), "1.5"); in TEST()
3616 APFloat expected(APFloat::IEEEdouble(), "1.0"); in TEST()
3617 EXPECT_EQ(f1.mod(f2), APFloat::opOK); in TEST()
3621 APFloat f1(APFloat::IEEEdouble(), "0x1p1000"); in TEST()
3622 APFloat f2(APFloat::IEEEdouble(), "0x1p-1000"); in TEST()
3623 APFloat expected(APFloat::IEEEdouble(), "0.0"); in TEST()
3624 EXPECT_EQ(f1.mod(f2), APFloat::opOK); in TEST()
3628 APFloat f1(APFloat::IEEEdouble(), "0.0"); in TEST()
3629 APFloat f2(APFloat::IEEEdouble(), "1.0"); in TEST()
3630 APFloat expected(APFloat::IEEEdouble(), "0.0"); in TEST()
3631 EXPECT_EQ(f1.mod(f2), APFloat::opOK); in TEST()
3635 APFloat f1(APFloat::IEEEdouble(), "1.0"); in TEST()
3636 APFloat f2(APFloat::IEEEdouble(), "0.0"); in TEST()
3637 EXPECT_EQ(f1.mod(f2), APFloat::opInvalidOp); in TEST()
3641 APFloat f1(APFloat::IEEEdouble(), "0.0"); in TEST()
3642 APFloat f2(APFloat::IEEEdouble(), "0.0"); in TEST()
3643 EXPECT_EQ(f1.mod(f2), APFloat::opInvalidOp); in TEST()
3647 APFloat f1 = APFloat::getInf(APFloat::IEEEdouble(), false); in TEST()
3648 APFloat f2(APFloat::IEEEdouble(), "1.0"); in TEST()
3649 EXPECT_EQ(f1.mod(f2), APFloat::opInvalidOp); in TEST()
3653 APFloat f1(APFloat::IEEEdouble(), "-4.0"); in TEST()
3654 APFloat f2(APFloat::IEEEdouble(), "-2.0"); in TEST()
3655 APFloat expected(APFloat::IEEEdouble(), "-0.0"); in TEST()
3656 EXPECT_EQ(f1.mod(f2), APFloat::opOK); in TEST()
3660 APFloat f1(APFloat::IEEEdouble(), "-4.0"); in TEST()
3661 APFloat f2(APFloat::IEEEdouble(), "2.0"); in TEST()
3662 APFloat expected(APFloat::IEEEdouble(), "-0.0"); in TEST()
3663 EXPECT_EQ(f1.mod(f2), APFloat::opOK); in TEST()
3671 APFloat PInf = APFloat::getInf(APFloat::IEEEsingle(), false); in TEST()
3672 APFloat MInf = APFloat::getInf(APFloat::IEEEsingle(), true); in TEST()
3673 APFloat PZero = APFloat::getZero(APFloat::IEEEsingle(), false); in TEST()
3674 APFloat MZero = APFloat::getZero(APFloat::IEEEsingle(), true); in TEST()
3675 APFloat QNaN = APFloat::getNaN(APFloat::IEEEsingle(), false); in TEST()
3676 APFloat SNaN = APFloat(APFloat::IEEEsingle(), "snan123"); in TEST()
3677 APFloat PNormalValue = APFloat(APFloat::IEEEsingle(), "0x1p+0"); in TEST()
3678 APFloat MNormalValue = APFloat(APFloat::IEEEsingle(), "-0x1p+0"); in TEST()
3679 APFloat PLargestValue = APFloat::getLargest(APFloat::IEEEsingle(), false); in TEST()
3680 APFloat MLargestValue = APFloat::getLargest(APFloat::IEEEsingle(), true); in TEST()
3681 APFloat PSmallestValue = APFloat::getSmallest(APFloat::IEEEsingle(), false); in TEST()
3682 APFloat MSmallestValue = APFloat::getSmallest(APFloat::IEEEsingle(), true); in TEST()
3683 APFloat PSmallestNormalized = in TEST()
3684 APFloat::getSmallestNormalized(APFloat::IEEEsingle(), false); in TEST()
3685 APFloat MSmallestNormalized = in TEST()
3686 APFloat::getSmallestNormalized(APFloat::IEEEsingle(), true); in TEST()
3688 APFloat PVal1(APFloat::IEEEsingle(), "0x1.fffffep+126"); in TEST()
3689 APFloat MVal1(APFloat::IEEEsingle(), "-0x1.fffffep+126"); in TEST()
3690 APFloat PVal2(APFloat::IEEEsingle(), "0x1.fffffep-126"); in TEST()
3691 APFloat MVal2(APFloat::IEEEsingle(), "-0x1.fffffep-126"); in TEST()
3692 APFloat PVal3(APFloat::IEEEsingle(), "0x1p-125"); in TEST()
3693 APFloat MVal3(APFloat::IEEEsingle(), "-0x1p-125"); in TEST()
3694 APFloat PVal4(APFloat::IEEEsingle(), "0x1p+127"); in TEST()
3695 APFloat MVal4(APFloat::IEEEsingle(), "-0x1p+127"); in TEST()
3696 APFloat PVal5(APFloat::IEEEsingle(), "1.5"); in TEST()
3697 APFloat MVal5(APFloat::IEEEsingle(), "-1.5"); in TEST()
3698 APFloat PVal6(APFloat::IEEEsingle(), "1"); in TEST()
3699 APFloat MVal6(APFloat::IEEEsingle(), "-1"); in TEST()
3702 APFloat x; in TEST()
3703 APFloat y; in TEST()
3708 { PInf, PInf, "nan", APFloat::opInvalidOp, APFloat::fcNaN }, in TEST()
3709 { PInf, MInf, "nan", APFloat::opInvalidOp, APFloat::fcNaN }, in TEST()
3710 { PInf, PZero, "nan", APFloat::opInvalidOp, APFloat::fcNaN }, in TEST()
3711 { PInf, MZero, "nan", APFloat::opInvalidOp, APFloat::fcNaN }, in TEST()
3712 { PInf, QNaN, "nan", APFloat::opOK, APFloat::fcNaN }, in TEST()
3713 { PInf, SNaN, "nan123", APFloat::opInvalidOp, APFloat::fcNaN }, in TEST()
3714 { PInf, PNormalValue, "nan", APFloat::opInvalidOp, APFloat::fcNaN }, in TEST()
3715 { PInf, MNormalValue, "nan", APFloat::opInvalidOp, APFloat::fcNaN }, in TEST()
3716 { PInf, PLargestValue, "nan", APFloat::opInvalidOp, APFloat::fcNaN }, in TEST()
3717 { PInf, MLargestValue, "nan", APFloat::opInvalidOp, APFloat::fcNaN }, in TEST()
3718 { PInf, PSmallestValue, "nan", APFloat::opInvalidOp, APFloat::fcNaN }, in TEST()
3719 { PInf, MSmallestValue, "nan", APFloat::opInvalidOp, APFloat::fcNaN }, in TEST()
3720 { PInf, PSmallestNormalized, "nan", APFloat::opInvalidOp, APFloat::fcNaN }, in TEST()
3721 { PInf, MSmallestNormalized, "nan", APFloat::opInvalidOp, APFloat::fcNaN }, in TEST()
3722 { MInf, PInf, "nan", APFloat::opInvalidOp, APFloat::fcNaN }, in TEST()
3723 { MInf, MInf, "nan", APFloat::opInvalidOp, APFloat::fcNaN }, in TEST()
3724 { MInf, PZero, "nan", APFloat::opInvalidOp, APFloat::fcNaN }, in TEST()
3725 { MInf, MZero, "nan", APFloat::opInvalidOp, APFloat::fcNaN }, in TEST()
3726 { MInf, QNaN, "nan", APFloat::opOK, APFloat::fcNaN }, in TEST()
3727 { MInf, SNaN, "nan123", APFloat::opInvalidOp, APFloat::fcNaN }, in TEST()
3728 { MInf, PNormalValue, "nan", APFloat::opInvalidOp, APFloat::fcNaN }, in TEST()
3729 { MInf, MNormalValue, "nan", APFloat::opInvalidOp, APFloat::fcNaN }, in TEST()
3730 { MInf, PLargestValue, "nan", APFloat::opInvalidOp, APFloat::fcNaN }, in TEST()
3731 { MInf, MLargestValue, "nan", APFloat::opInvalidOp, APFloat::fcNaN }, in TEST()
3732 { MInf, PSmallestValue, "nan", APFloat::opInvalidOp, APFloat::fcNaN }, in TEST()
3733 { MInf, MSmallestValue, "nan", APFloat::opInvalidOp, APFloat::fcNaN }, in TEST()
3734 { MInf, PSmallestNormalized, "nan", APFloat::opInvalidOp, APFloat::fcNaN }, in TEST()
3735 { MInf, MSmallestNormalized, "nan", APFloat::opInvalidOp, APFloat::fcNaN }, in TEST()
3736 { PZero, PInf, "0x0p+0", APFloat::opOK, APFloat::fcZero }, in TEST()
3737 { PZero, MInf, "0x0p+0", APFloat::opOK, APFloat::fcZero }, in TEST()
3738 { PZero, PZero, "nan", APFloat::opInvalidOp, APFloat::fcNaN }, in TEST()
3739 { PZero, MZero, "nan", APFloat::opInvalidOp, APFloat::fcNaN }, in TEST()
3740 { PZero, QNaN, "nan", APFloat::opOK, APFloat::fcNaN }, in TEST()
3741 { PZero, SNaN, "nan123", APFloat::opInvalidOp, APFloat::fcNaN }, in TEST()
3742 { PZero, PNormalValue, "0x0p+0", APFloat::opOK, APFloat::fcZero }, in TEST()
3743 { PZero, MNormalValue, "0x0p+0", APFloat::opOK, APFloat::fcZero }, in TEST()
3744 { PZero, PLargestValue, "0x0p+0", APFloat::opOK, APFloat::fcZero }, in TEST()
3745 { PZero, MLargestValue, "0x0p+0", APFloat::opOK, APFloat::fcZero }, in TEST()
3746 { PZero, PSmallestValue, "0x0p+0", APFloat::opOK, APFloat::fcZero }, in TEST()
3747 { PZero, MSmallestValue, "0x0p+0", APFloat::opOK, APFloat::fcZero }, in TEST()
3748 { PZero, PSmallestNormalized, "0x0p+0", APFloat::opOK, APFloat::fcZero }, in TEST()
3749 { PZero, MSmallestNormalized, "0x0p+0", APFloat::opOK, APFloat::fcZero }, in TEST()
3750 { MZero, PInf, "-0x0p+0", APFloat::opOK, APFloat::fcZero }, in TEST()
3751 { MZero, MInf, "-0x0p+0", APFloat::opOK, APFloat::fcZero }, in TEST()
3752 { MZero, PZero, "nan", APFloat::opInvalidOp, APFloat::fcNaN }, in TEST()
3753 { MZero, MZero, "nan", APFloat::opInvalidOp, APFloat::fcNaN }, in TEST()
3754 { MZero, QNaN, "nan", APFloat::opOK, APFloat::fcNaN }, in TEST()
3755 { MZero, SNaN, "nan123", APFloat::opInvalidOp, APFloat::fcNaN }, in TEST()
3756 { MZero, PNormalValue, "-0x0p+0", APFloat::opOK, APFloat::fcZero }, in TEST()
3757 { MZero, MNormalValue, "-0x0p+0", APFloat::opOK, APFloat::fcZero }, in TEST()
3758 { MZero, PLargestValue, "-0x0p+0", APFloat::opOK, APFloat::fcZero }, in TEST()
3759 { MZero, MLargestValue, "-0x0p+0", APFloat::opOK, APFloat::fcZero }, in TEST()
3760 { MZero, PSmallestValue, "-0x0p+0", APFloat::opOK, APFloat::fcZero }, in TEST()
3761 { MZero, MSmallestValue, "-0x0p+0", APFloat::opOK, APFloat::fcZero }, in TEST()
3762 { MZero, PSmallestNormalized, "-0x0p+0", APFloat::opOK, APFloat::fcZero }, in TEST()
3763 { MZero, MSmallestNormalized, "-0x0p+0", APFloat::opOK, APFloat::fcZero }, in TEST()
3764 { QNaN, PInf, "nan", APFloat::opOK, APFloat::fcNaN }, in TEST()
3765 { QNaN, MInf, "nan", APFloat::opOK, APFloat::fcNaN }, in TEST()
3766 { QNaN, PZero, "nan", APFloat::opOK, APFloat::fcNaN }, in TEST()
3767 { QNaN, MZero, "nan", APFloat::opOK, APFloat::fcNaN }, in TEST()
3768 { QNaN, QNaN, "nan", APFloat::opOK, APFloat::fcNaN }, in TEST()
3769 { QNaN, SNaN, "nan", APFloat::opInvalidOp, APFloat::fcNaN }, in TEST()
3770 { QNaN, PNormalValue, "nan", APFloat::opOK, APFloat::fcNaN }, in TEST()
3771 { QNaN, MNormalValue, "nan", APFloat::opOK, APFloat::fcNaN }, in TEST()
3772 { QNaN, PLargestValue, "nan", APFloat::opOK, APFloat::fcNaN }, in TEST()
3773 { QNaN, MLargestValue, "nan", APFloat::opOK, APFloat::fcNaN }, in TEST()
3774 { QNaN, PSmallestValue, "nan", APFloat::opOK, APFloat::fcNaN }, in TEST()
3775 { QNaN, MSmallestValue, "nan", APFloat::opOK, APFloat::fcNaN }, in TEST()
3776 { QNaN, PSmallestNormalized, "nan", APFloat::opOK, APFloat::fcNaN }, in TEST()
3777 { QNaN, MSmallestNormalized, "nan", APFloat::opOK, APFloat::fcNaN }, in TEST()
3778 { SNaN, PInf, "nan123", APFloat::opInvalidOp, APFloat::fcNaN }, in TEST()
3779 { SNaN, MInf, "nan123", APFloat::opInvalidOp, APFloat::fcNaN }, in TEST()
3780 { SNaN, PZero, "nan123", APFloat::opInvalidOp, APFloat::fcNaN }, in TEST()
3781 { SNaN, MZero, "nan123", APFloat::opInvalidOp, APFloat::fcNaN }, in TEST()
3782 { SNaN, QNaN, "nan123", APFloat::opInvalidOp, APFloat::fcNaN }, in TEST()
3783 { SNaN, SNaN, "nan123", APFloat::opInvalidOp, APFloat::fcNaN }, in TEST()
3784 { SNaN, PNormalValue, "nan123", APFloat::opInvalidOp, APFloat::fcNaN }, in TEST()
3785 { SNaN, MNormalValue, "nan123", APFloat::opInvalidOp, APFloat::fcNaN }, in TEST()
3786 { SNaN, PLargestValue, "nan123", APFloat::opInvalidOp, APFloat::fcNaN }, in TEST()
3787 { SNaN, MLargestValue, "nan123", APFloat::opInvalidOp, APFloat::fcNaN }, in TEST()
3788 { SNaN, PSmallestValue, "nan123", APFloat::opInvalidOp, APFloat::fcNaN }, in TEST()
3789 { SNaN, MSmallestValue, "nan123", APFloat::opInvalidOp, APFloat::fcNaN }, in TEST()
3790 { SNaN, PSmallestNormalized, "nan123", APFloat::opInvalidOp, APFloat::fcNaN }, in TEST()
3791 { SNaN, MSmallestNormalized, "nan123", APFloat::opInvalidOp, APFloat::fcNaN }, in TEST()
3792 { PNormalValue, PInf, "0x1p+0", APFloat::opOK, APFloat::fcNormal }, in TEST()
3793 { PNormalValue, MInf, "0x1p+0", APFloat::opOK, APFloat::fcNormal }, in TEST()
3794 { PNormalValue, PZero, "nan", APFloat::opInvalidOp, APFloat::fcNaN }, in TEST()
3795 { PNormalValue, MZero, "nan", APFloat::opInvalidOp, APFloat::fcNaN }, in TEST()
3796 { PNormalValue, QNaN, "nan", APFloat::opOK, APFloat::fcNaN }, in TEST()
3797 { PNormalValue, SNaN, "nan123", APFloat::opInvalidOp, APFloat::fcNaN }, in TEST()
3798 { PNormalValue, PNormalValue, "0x0p+0", APFloat::opOK, APFloat::fcZero }, in TEST()
3799 { PNormalValue, MNormalValue, "0x0p+0", APFloat::opOK, APFloat::fcZero }, in TEST()
3800 { PNormalValue, PLargestValue, "0x1p+0", APFloat::opOK, APFloat::fcNormal }, in TEST()
3801 { PNormalValue, MLargestValue, "0x1p+0", APFloat::opOK, APFloat::fcNormal }, in TEST()
3802 { PNormalValue, PSmallestValue, "0x0p+0", APFloat::opOK, APFloat::fcZero }, in TEST()
3803 { PNormalValue, MSmallestValue, "0x0p+0", APFloat::opOK, APFloat::fcZero }, in TEST()
3804 { PNormalValue, PSmallestNormalized, "0x0p+0", APFloat::opOK, APFloat::fcZero }, in TEST()
3805 { PNormalValue, MSmallestNormalized, "0x0p+0", APFloat::opOK, APFloat::fcZero }, in TEST()
3806 { MNormalValue, PInf, "-0x1p+0", APFloat::opOK, APFloat::fcNormal }, in TEST()
3807 { MNormalValue, MInf, "-0x1p+0", APFloat::opOK, APFloat::fcNormal }, in TEST()
3808 { MNormalValue, PZero, "nan", APFloat::opInvalidOp, APFloat::fcNaN }, in TEST()
3809 { MNormalValue, MZero, "nan", APFloat::opInvalidOp, APFloat::fcNaN }, in TEST()
3810 { MNormalValue, QNaN, "nan", APFloat::opOK, APFloat::fcNaN }, in TEST()
3811 { MNormalValue, SNaN, "nan123", APFloat::opInvalidOp, APFloat::fcNaN }, in TEST()
3812 { MNormalValue, PNormalValue, "-0x0p+0", APFloat::opOK, APFloat::fcZero }, in TEST()
3813 { MNormalValue, MNormalValue, "-0x0p+0", APFloat::opOK, APFloat::fcZero }, in TEST()
3814 { MNormalValue, PLargestValue, "-0x1p+0", APFloat::opOK, APFloat::fcNormal }, in TEST()
3815 { MNormalValue, MLargestValue, "-0x1p+0", APFloat::opOK, APFloat::fcNormal }, in TEST()
3816 { MNormalValue, PSmallestValue, "-0x0p+0", APFloat::opOK, APFloat::fcZero }, in TEST()
3817 { MNormalValue, MSmallestValue, "-0x0p+0", APFloat::opOK, APFloat::fcZero }, in TEST()
3818 { MNormalValue, PSmallestNormalized, "-0x0p+0", APFloat::opOK, APFloat::fcZero }, in TEST()
3819 { MNormalValue, MSmallestNormalized, "-0x0p+0", APFloat::opOK, APFloat::fcZero }, in TEST()
3820 { PLargestValue, PInf, "0x1.fffffep+127", APFloat::opOK, APFloat::fcNormal }, in TEST()
3821 { PLargestValue, MInf, "0x1.fffffep+127", APFloat::opOK, APFloat::fcNormal }, in TEST()
3822 { PLargestValue, PZero, "nan", APFloat::opInvalidOp, APFloat::fcNaN }, in TEST()
3823 { PLargestValue, MZero, "nan", APFloat::opInvalidOp, APFloat::fcNaN }, in TEST()
3824 { PLargestValue, QNaN, "nan", APFloat::opOK, APFloat::fcNaN }, in TEST()
3825 { PLargestValue, SNaN, "nan123", APFloat::opInvalidOp, APFloat::fcNaN }, in TEST()
3826 { PLargestValue, PNormalValue, "0x0p+0", APFloat::opOK, APFloat::fcZero }, in TEST()
3827 { PLargestValue, MNormalValue, "0x0p+0", APFloat::opOK, APFloat::fcZero }, in TEST()
3828 { PLargestValue, PLargestValue, "0x0p+0", APFloat::opOK, APFloat::fcZero }, in TEST()
3829 { PLargestValue, MLargestValue, "0x0p+0", APFloat::opOK, APFloat::fcZero }, in TEST()
3830 { PLargestValue, PSmallestValue, "0x0p+0", APFloat::opOK, APFloat::fcZero }, in TEST()
3831 { PLargestValue, MSmallestValue, "0x0p+0", APFloat::opOK, APFloat::fcZero }, in TEST()
3832 { PLargestValue, PSmallestNormalized, "0x0p+0", APFloat::opOK, APFloat::fcZero }, in TEST()
3833 { PLargestValue, MSmallestNormalized, "0x0p+0", APFloat::opOK, APFloat::fcZero }, in TEST()
3834 { MLargestValue, PInf, "-0x1.fffffep+127", APFloat::opOK, APFloat::fcNormal }, in TEST()
3835 { MLargestValue, MInf, "-0x1.fffffep+127", APFloat::opOK, APFloat::fcNormal }, in TEST()
3836 { MLargestValue, PZero, "nan", APFloat::opInvalidOp, APFloat::fcNaN }, in TEST()
3837 { MLargestValue, MZero, "nan", APFloat::opInvalidOp, APFloat::fcNaN }, in TEST()
3838 { MLargestValue, QNaN, "nan", APFloat::opOK, APFloat::fcNaN }, in TEST()
3839 { MLargestValue, SNaN, "nan123", APFloat::opInvalidOp, APFloat::fcNaN }, in TEST()
3840 { MLargestValue, PNormalValue, "-0x0p+0", APFloat::opOK, APFloat::fcZero }, in TEST()
3841 { MLargestValue, MNormalValue, "-0x0p+0", APFloat::opOK, APFloat::fcZero }, in TEST()
3842 { MLargestValue, PLargestValue, "-0x0p+0", APFloat::opOK, APFloat::fcZero }, in TEST()
3843 { MLargestValue, MLargestValue, "-0x0p+0", APFloat::opOK, APFloat::fcZero }, in TEST()
3844 { MLargestValue, PSmallestValue, "-0x0p+0", APFloat::opOK, APFloat::fcZero }, in TEST()
3845 { MLargestValue, MSmallestValue, "-0x0p+0", APFloat::opOK, APFloat::fcZero }, in TEST()
3846 { MLargestValue, PSmallestNormalized, "-0x0p+0", APFloat::opOK, APFloat::fcZero }, in TEST()
3847 { MLargestValue, MSmallestNormalized, "-0x0p+0", APFloat::opOK, APFloat::fcZero }, in TEST()
3848 { PSmallestValue, PInf, "0x1p-149", APFloat::opOK, APFloat::fcNormal }, in TEST()
3849 { PSmallestValue, MInf, "0x1p-149", APFloat::opOK, APFloat::fcNormal }, in TEST()
3850 { PSmallestValue, PZero, "nan", APFloat::opInvalidOp, APFloat::fcNaN }, in TEST()
3851 { PSmallestValue, MZero, "nan", APFloat::opInvalidOp, APFloat::fcNaN }, in TEST()
3852 { PSmallestValue, QNaN, "nan", APFloat::opOK, APFloat::fcNaN }, in TEST()
3853 { PSmallestValue, SNaN, "nan123", APFloat::opInvalidOp, APFloat::fcNaN }, in TEST()
3854 { PSmallestValue, PNormalValue, "0x1p-149", APFloat::opOK, APFloat::fcNormal }, in TEST()
3855 { PSmallestValue, MNormalValue, "0x1p-149", APFloat::opOK, APFloat::fcNormal }, in TEST()
3856 { PSmallestValue, PLargestValue, "0x1p-149", APFloat::opOK, APFloat::fcNormal }, in TEST()
3857 { PSmallestValue, MLargestValue, "0x1p-149", APFloat::opOK, APFloat::fcNormal }, in TEST()
3858 { PSmallestValue, PSmallestValue, "0x0p+0", APFloat::opOK, APFloat::fcZero }, in TEST()
3859 { PSmallestValue, MSmallestValue, "0x0p+0", APFloat::opOK, APFloat::fcZero }, in TEST()
3860 { PSmallestValue, PSmallestNormalized, "0x1p-149", APFloat::opOK, APFloat::fcNormal }, in TEST()
3861 { PSmallestValue, MSmallestNormalized, "0x1p-149", APFloat::opOK, APFloat::fcNormal }, in TEST()
3862 { MSmallestValue, PInf, "-0x1p-149", APFloat::opOK, APFloat::fcNormal }, in TEST()
3863 { MSmallestValue, MInf, "-0x1p-149", APFloat::opOK, APFloat::fcNormal }, in TEST()
3864 { MSmallestValue, PZero, "nan", APFloat::opInvalidOp, APFloat::fcNaN }, in TEST()
3865 { MSmallestValue, MZero, "nan", APFloat::opInvalidOp, APFloat::fcNaN }, in TEST()
3866 { MSmallestValue, QNaN, "nan", APFloat::opOK, APFloat::fcNaN }, in TEST()
3867 { MSmallestValue, SNaN, "nan123", APFloat::opInvalidOp, APFloat::fcNaN }, in TEST()
3868 { MSmallestValue, PNormalValue, "-0x1p-149", APFloat::opOK, APFloat::fcNormal }, in TEST()
3869 { MSmallestValue, MNormalValue, "-0x1p-149", APFloat::opOK, APFloat::fcNormal }, in TEST()
3870 { MSmallestValue, PLargestValue, "-0x1p-149", APFloat::opOK, APFloat::fcNormal }, in TEST()
3871 { MSmallestValue, MLargestValue, "-0x1p-149", APFloat::opOK, APFloat::fcNormal }, in TEST()
3872 { MSmallestValue, PSmallestValue, "-0x0p+0", APFloat::opOK, APFloat::fcZero }, in TEST()
3873 { MSmallestValue, MSmallestValue, "-0x0p+0", APFloat::opOK, APFloat::fcZero }, in TEST()
3874 { MSmallestValue, PSmallestNormalized, "-0x1p-149", APFloat::opOK, APFloat::fcNormal }, in TEST()
3875 { MSmallestValue, MSmallestNormalized, "-0x1p-149", APFloat::opOK, APFloat::fcNormal }, in TEST()
3876 { PSmallestNormalized, PInf, "0x1p-126", APFloat::opOK, APFloat::fcNormal }, in TEST()
3877 { PSmallestNormalized, MInf, "0x1p-126", APFloat::opOK, APFloat::fcNormal }, in TEST()
3878 { PSmallestNormalized, PZero, "nan", APFloat::opInvalidOp, APFloat::fcNaN }, in TEST()
3879 { PSmallestNormalized, MZero, "nan", APFloat::opInvalidOp, APFloat::fcNaN }, in TEST()
3880 { PSmallestNormalized, QNaN, "nan", APFloat::opOK, APFloat::fcNaN }, in TEST()
3881 { PSmallestNormalized, SNaN, "nan123", APFloat::opInvalidOp, APFloat::fcNaN }, in TEST()
3882 { PSmallestNormalized, PNormalValue, "0x1p-126", APFloat::opOK, APFloat::fcNormal }, in TEST()
3883 { PSmallestNormalized, MNormalValue, "0x1p-126", APFloat::opOK, APFloat::fcNormal }, in TEST()
3884 { PSmallestNormalized, PLargestValue, "0x1p-126", APFloat::opOK, APFloat::fcNormal }, in TEST()
3885 { PSmallestNormalized, MLargestValue, "0x1p-126", APFloat::opOK, APFloat::fcNormal }, in TEST()
3886 { PSmallestNormalized, PSmallestValue, "0x0p+0", APFloat::opOK, APFloat::fcZero }, in TEST()
3887 { PSmallestNormalized, MSmallestValue, "0x0p+0", APFloat::opOK, APFloat::fcZero }, in TEST()
3888 { PSmallestNormalized, PSmallestNormalized, "0x0p+0", APFloat::opOK, APFloat::fcZero }, in TEST()
3889 { PSmallestNormalized, MSmallestNormalized, "0x0p+0", APFloat::opOK, APFloat::fcZero }, in TEST()
3890 { MSmallestNormalized, PInf, "-0x1p-126", APFloat::opOK, APFloat::fcNormal }, in TEST()
3891 { MSmallestNormalized, MInf, "-0x1p-126", APFloat::opOK, APFloat::fcNormal }, in TEST()
3892 { MSmallestNormalized, PZero, "nan", APFloat::opInvalidOp, APFloat::fcNaN }, in TEST()
3893 { MSmallestNormalized, MZero, "nan", APFloat::opInvalidOp, APFloat::fcNaN }, in TEST()
3894 { MSmallestNormalized, QNaN, "nan", APFloat::opOK, APFloat::fcNaN }, in TEST()
3895 { MSmallestNormalized, SNaN, "nan123", APFloat::opInvalidOp, APFloat::fcNaN }, in TEST()
3896 { MSmallestNormalized, PNormalValue, "-0x1p-126", APFloat::opOK, APFloat::fcNormal }, in TEST()
3897 { MSmallestNormalized, MNormalValue, "-0x1p-126", APFloat::opOK, APFloat::fcNormal }, in TEST()
3898 { MSmallestNormalized, PLargestValue, "-0x1p-126", APFloat::opOK, APFloat::fcNormal }, in TEST()
3899 { MSmallestNormalized, MLargestValue, "-0x1p-126", APFloat::opOK, APFloat::fcNormal }, in TEST()
3900 { MSmallestNormalized, PSmallestValue, "-0x0p+0", APFloat::opOK, APFloat::fcZero }, in TEST()
3901 { MSmallestNormalized, MSmallestValue, "-0x0p+0", APFloat::opOK, APFloat::fcZero }, in TEST()
3902 { MSmallestNormalized, PSmallestNormalized, "-0x0p+0", APFloat::opOK, APFloat::fcZero }, in TEST()
3903 { MSmallestNormalized, MSmallestNormalized, "-0x0p+0", APFloat::opOK, APFloat::fcZero }, in TEST()
3905 { PVal1, PVal1, "0x0p+0", APFloat::opOK, APFloat::fcZero }, in TEST()
3906 { PVal1, MVal1, "0x0p+0", APFloat::opOK, APFloat::fcZero }, in TEST()
3907 { PVal1, PVal2, "0x0p+0", APFloat::opOK, APFloat::fcZero }, in TEST()
3908 { PVal1, MVal2, "0x0p+0", APFloat::opOK, APFloat::fcZero }, in TEST()
3909 { PVal1, PVal3, "0x0p+0", APFloat::opOK, APFloat::fcZero }, in TEST()
3910 { PVal1, MVal3, "0x0p+0", APFloat::opOK, APFloat::fcZero }, in TEST()
3911 { PVal1, PVal4, "-0x1p+103", APFloat::opOK, APFloat::fcNormal }, in TEST()
3912 { PVal1, MVal4, "-0x1p+103", APFloat::opOK, APFloat::fcNormal }, in TEST()
3913 { PVal1, PVal5, "0x0p+0", APFloat::opOK, APFloat::fcZero }, in TEST()
3914 { PVal1, MVal5, "0x0p+0", APFloat::opOK, APFloat::fcZero }, in TEST()
3915 { PVal1, PVal6, "0x0p+0", APFloat::opOK, APFloat::fcZero }, in TEST()
3916 { PVal1, MVal6, "0x0p+0", APFloat::opOK, APFloat::fcZero }, in TEST()
3917 { MVal1, PVal1, "-0x0p+0", APFloat::opOK, APFloat::fcZero }, in TEST()
3918 { MVal1, MVal1, "-0x0p+0", APFloat::opOK, APFloat::fcZero }, in TEST()
3919 { MVal1, PVal2, "-0x0p+0", APFloat::opOK, APFloat::fcZero }, in TEST()
3920 { MVal1, MVal2, "-0x0p+0", APFloat::opOK, APFloat::fcZero }, in TEST()
3921 { MVal1, PVal3, "-0x0p+0", APFloat::opOK, APFloat::fcZero }, in TEST()
3922 { MVal1, MVal3, "-0x0p+0", APFloat::opOK, APFloat::fcZero }, in TEST()
3923 { MVal1, PVal4, "0x1p+103", APFloat::opOK, APFloat::fcNormal }, in TEST()
3924 { MVal1, MVal4, "0x1p+103", APFloat::opOK, APFloat::fcNormal }, in TEST()
3925 { MVal1, PVal5, "-0x0p+0", APFloat::opOK, APFloat::fcZero }, in TEST()
3926 { MVal1, MVal5, "-0x0p+0", APFloat::opOK, APFloat::fcZero }, in TEST()
3927 { MVal1, PVal6, "-0x0p+0", APFloat::opOK, APFloat::fcZero }, in TEST()
3928 { MVal1, MVal6, "-0x0p+0", APFloat::opOK, APFloat::fcZero }, in TEST()
3929 { PVal2, PVal1, "0x1.fffffep-126", APFloat::opOK, APFloat::fcNormal }, in TEST()
3930 { PVal2, MVal1, "0x1.fffffep-126", APFloat::opOK, APFloat::fcNormal }, in TEST()
3931 { PVal2, PVal2, "0x0p+0", APFloat::opOK, APFloat::fcZero }, in TEST()
3932 { PVal2, MVal2, "0x0p+0", APFloat::opOK, APFloat::fcZero }, in TEST()
3933 { PVal2, PVal3, "-0x0.000002p-126", APFloat::opOK, APFloat::fcNormal }, in TEST()
3934 { PVal2, MVal3, "-0x0.000002p-126", APFloat::opOK, APFloat::fcNormal }, in TEST()
3935 { PVal2, PVal4, "0x1.fffffep-126", APFloat::opOK, APFloat::fcNormal }, in TEST()
3936 { PVal2, MVal4, "0x1.fffffep-126", APFloat::opOK, APFloat::fcNormal }, in TEST()
3937 { PVal2, PVal5, "0x1.fffffep-126", APFloat::opOK, APFloat::fcNormal }, in TEST()
3938 { PVal2, MVal5, "0x1.fffffep-126", APFloat::opOK, APFloat::fcNormal }, in TEST()
3939 { PVal2, PVal6, "0x1.fffffep-126", APFloat::opOK, APFloat::fcNormal }, in TEST()
3940 { PVal2, MVal6, "0x1.fffffep-126", APFloat::opOK, APFloat::fcNormal }, in TEST()
3941 { MVal2, PVal1, "-0x1.fffffep-126", APFloat::opOK, APFloat::fcNormal }, in TEST()
3942 { MVal2, MVal1, "-0x1.fffffep-126", APFloat::opOK, APFloat::fcNormal }, in TEST()
3943 { MVal2, PVal2, "-0x0p+0", APFloat::opOK, APFloat::fcZero }, in TEST()
3944 { MVal2, MVal2, "-0x0p+0", APFloat::opOK, APFloat::fcZero }, in TEST()
3945 { MVal2, PVal3, "0x0.000002p-126", APFloat::opOK, APFloat::fcNormal }, in TEST()
3946 { MVal2, MVal3, "0x0.000002p-126", APFloat::opOK, APFloat::fcNormal }, in TEST()
3947 { MVal2, PVal4, "-0x1.fffffep-126", APFloat::opOK, APFloat::fcNormal }, in TEST()
3948 { MVal2, MVal4, "-0x1.fffffep-126", APFloat::opOK, APFloat::fcNormal }, in TEST()
3949 { MVal2, PVal5, "-0x1.fffffep-126", APFloat::opOK, APFloat::fcNormal }, in TEST()
3950 { MVal2, MVal5, "-0x1.fffffep-126", APFloat::opOK, APFloat::fcNormal }, in TEST()
3951 { MVal2, PVal6, "-0x1.fffffep-126", APFloat::opOK, APFloat::fcNormal }, in TEST()
3952 { MVal2, MVal6, "-0x1.fffffep-126", APFloat::opOK, APFloat::fcNormal }, in TEST()
3953 { PVal3, PVal1, "0x1p-125", APFloat::opOK, APFloat::fcNormal }, in TEST()
3954 { PVal3, MVal1, "0x1p-125", APFloat::opOK, APFloat::fcNormal }, in TEST()
3955 { PVal3, PVal2, "0x0.000002p-126", APFloat::opOK, APFloat::fcNormal }, in TEST()
3956 { PVal3, MVal2, "0x0.000002p-126", APFloat::opOK, APFloat::fcNormal }, in TEST()
3957 { PVal3, PVal3, "0x0p+0", APFloat::opOK, APFloat::fcZero }, in TEST()
3958 { PVal3, MVal3, "0x0p+0", APFloat::opOK, APFloat::fcZero }, in TEST()
3959 { PVal3, PVal4, "0x1p-125", APFloat::opOK, APFloat::fcNormal }, in TEST()
3960 { PVal3, MVal4, "0x1p-125", APFloat::opOK, APFloat::fcNormal }, in TEST()
3961 { PVal3, PVal5, "0x1p-125", APFloat::opOK, APFloat::fcNormal }, in TEST()
3962 { PVal3, MVal5, "0x1p-125", APFloat::opOK, APFloat::fcNormal }, in TEST()
3963 { PVal3, PVal6, "0x1p-125", APFloat::opOK, APFloat::fcNormal }, in TEST()
3964 { PVal3, MVal6, "0x1p-125", APFloat::opOK, APFloat::fcNormal }, in TEST()
3965 { MVal3, PVal1, "-0x1p-125", APFloat::opOK, APFloat::fcNormal }, in TEST()
3966 { MVal3, MVal1, "-0x1p-125", APFloat::opOK, APFloat::fcNormal }, in TEST()
3967 { MVal3, PVal2, "-0x0.000002p-126", APFloat::opOK, APFloat::fcNormal }, in TEST()
3968 { MVal3, MVal2, "-0x0.000002p-126", APFloat::opOK, APFloat::fcNormal }, in TEST()
3969 { MVal3, PVal3, "-0x0p+0", APFloat::opOK, APFloat::fcZero }, in TEST()
3970 { MVal3, MVal3, "-0x0p+0", APFloat::opOK, APFloat::fcZero }, in TEST()
3971 { MVal3, PVal4, "-0x1p-125", APFloat::opOK, APFloat::fcNormal }, in TEST()
3972 { MVal3, MVal4, "-0x1p-125", APFloat::opOK, APFloat::fcNormal }, in TEST()
3973 { MVal3, PVal5, "-0x1p-125", APFloat::opOK, APFloat::fcNormal }, in TEST()
3974 { MVal3, MVal5, "-0x1p-125", APFloat::opOK, APFloat::fcNormal }, in TEST()
3975 { MVal3, PVal6, "-0x1p-125", APFloat::opOK, APFloat::fcNormal }, in TEST()
3976 { MVal3, MVal6, "-0x1p-125", APFloat::opOK, APFloat::fcNormal }, in TEST()
3977 { PVal4, PVal1, "0x1p+103", APFloat::opOK, APFloat::fcNormal }, in TEST()
3978 { PVal4, MVal1, "0x1p+103", APFloat::opOK, APFloat::fcNormal }, in TEST()
3979 { PVal4, PVal2, "0x0.002p-126", APFloat::opOK, APFloat::fcNormal }, in TEST()
3980 { PVal4, MVal2, "0x0.002p-126", APFloat::opOK, APFloat::fcNormal }, in TEST()
3981 { PVal4, PVal3, "0x0p+0", APFloat::opOK, APFloat::fcZero }, in TEST()
3982 { PVal4, MVal3, "0x0p+0", APFloat::opOK, APFloat::fcZero }, in TEST()
3983 { PVal4, PVal4, "0x0p+0", APFloat::opOK, APFloat::fcZero }, in TEST()
3984 { PVal4, MVal4, "0x0p+0", APFloat::opOK, APFloat::fcZero }, in TEST()
3985 { PVal4, PVal5, "0.5", APFloat::opOK, APFloat::fcNormal }, in TEST()
3986 { PVal4, MVal5, "0.5", APFloat::opOK, APFloat::fcNormal }, in TEST()
3987 { PVal4, PVal6, "0x0p+0", APFloat::opOK, APFloat::fcZero }, in TEST()
3988 { PVal4, MVal6, "0x0p+0", APFloat::opOK, APFloat::fcZero }, in TEST()
3989 { MVal4, PVal1, "-0x1p+103", APFloat::opOK, APFloat::fcNormal }, in TEST()
3990 { MVal4, MVal1, "-0x1p+103", APFloat::opOK, APFloat::fcNormal }, in TEST()
3991 { MVal4, PVal2, "-0x0.002p-126", APFloat::opOK, APFloat::fcNormal }, in TEST()
3992 { MVal4, MVal2, "-0x0.002p-126", APFloat::opOK, APFloat::fcNormal }, in TEST()
3993 { MVal4, PVal3, "-0x0p+0", APFloat::opOK, APFloat::fcZero }, in TEST()
3994 { MVal4, MVal3, "-0x0p+0", APFloat::opOK, APFloat::fcZero }, in TEST()
3995 { MVal4, PVal4, "-0x0p+0", APFloat::opOK, APFloat::fcZero }, in TEST()
3996 { MVal4, MVal4, "-0x0p+0", APFloat::opOK, APFloat::fcZero }, in TEST()
3997 { MVal4, PVal5, "-0.5", APFloat::opOK, APFloat::fcNormal }, in TEST()
3998 { MVal4, MVal5, "-0.5", APFloat::opOK, APFloat::fcNormal }, in TEST()
3999 { MVal4, PVal6, "-0x0p+0", APFloat::opOK, APFloat::fcZero }, in TEST()
4000 { MVal4, MVal6, "-0x0p+0", APFloat::opOK, APFloat::fcZero }, in TEST()
4001 { PVal5, PVal1, "1.5", APFloat::opOK, APFloat::fcNormal }, in TEST()
4002 { PVal5, MVal1, "1.5", APFloat::opOK, APFloat::fcNormal }, in TEST()
4003 { PVal5, PVal2, "0x0.00006p-126", APFloat::opOK, APFloat::fcNormal }, in TEST()
4004 { PVal5, MVal2, "0x0.00006p-126", APFloat::opOK, APFloat::fcNormal }, in TEST()
4005 { PVal5, PVal3, "0x0p+0", APFloat::opOK, APFloat::fcZero }, in TEST()
4006 { PVal5, MVal3, "0x0p+0", APFloat::opOK, APFloat::fcZero }, in TEST()
4007 { PVal5, PVal4, "1.5", APFloat::opOK, APFloat::fcNormal }, in TEST()
4008 { PVal5, MVal4, "1.5", APFloat::opOK, APFloat::fcNormal }, in TEST()
4009 { PVal5, PVal5, "0x0p+0", APFloat::opOK, APFloat::fcZero }, in TEST()
4010 { PVal5, MVal5, "0x0p+0", APFloat::opOK, APFloat::fcZero }, in TEST()
4011 { PVal5, PVal6, "-0.5", APFloat::opOK, APFloat::fcNormal }, in TEST()
4012 { PVal5, MVal6, "-0.5", APFloat::opOK, APFloat::fcNormal }, in TEST()
4013 { MVal5, PVal1, "-1.5", APFloat::opOK, APFloat::fcNormal }, in TEST()
4014 { MVal5, MVal1, "-1.5", APFloat::opOK, APFloat::fcNormal }, in TEST()
4015 { MVal5, PVal2, "-0x0.00006p-126", APFloat::opOK, APFloat::fcNormal }, in TEST()
4016 { MVal5, MVal2, "-0x0.00006p-126", APFloat::opOK, APFloat::fcNormal }, in TEST()
4017 { MVal5, PVal3, "-0x0p+0", APFloat::opOK, APFloat::fcZero }, in TEST()
4018 { MVal5, MVal3, "-0x0p+0", APFloat::opOK, APFloat::fcZero }, in TEST()
4019 { MVal5, PVal4, "-1.5", APFloat::opOK, APFloat::fcNormal }, in TEST()
4020 { MVal5, MVal4, "-1.5", APFloat::opOK, APFloat::fcNormal }, in TEST()
4021 { MVal5, PVal5, "-0x0p+0", APFloat::opOK, APFloat::fcZero }, in TEST()
4022 { MVal5, MVal5, "-0x0p+0", APFloat::opOK, APFloat::fcZero }, in TEST()
4023 { MVal5, PVal6, "0.5", APFloat::opOK, APFloat::fcNormal }, in TEST()
4024 { MVal5, MVal6, "0.5", APFloat::opOK, APFloat::fcNormal }, in TEST()
4025 { PVal6, PVal1, "0x1p+0", APFloat::opOK, APFloat::fcNormal }, in TEST()
4026 { PVal6, MVal1, "0x1p+0", APFloat::opOK, APFloat::fcNormal }, in TEST()
4027 { PVal6, PVal2, "0x0.00004p-126", APFloat::opOK, APFloat::fcNormal }, in TEST()
4028 { PVal6, MVal2, "0x0.00004p-126", APFloat::opOK, APFloat::fcNormal }, in TEST()
4029 { PVal6, PVal3, "0x0p+0", APFloat::opOK, APFloat::fcZero }, in TEST()
4030 { PVal6, MVal3, "0x0p+0", APFloat::opOK, APFloat::fcZero }, in TEST()
4031 { PVal6, PVal4, "0x1p+0", APFloat::opOK, APFloat::fcNormal }, in TEST()
4032 { PVal6, MVal4, "0x1p+0", APFloat::opOK, APFloat::fcNormal }, in TEST()
4033 { PVal6, PVal5, "-0.5", APFloat::opOK, APFloat::fcNormal }, in TEST()
4034 { PVal6, MVal5, "-0.5", APFloat::opOK, APFloat::fcNormal }, in TEST()
4035 { PVal6, PVal6, "0x0p+0", APFloat::opOK, APFloat::fcZero }, in TEST()
4036 { PVal6, MVal6, "0x0p+0", APFloat::opOK, APFloat::fcZero }, in TEST()
4037 { MVal6, PVal1, "-0x1p+0", APFloat::opOK, APFloat::fcNormal }, in TEST()
4038 { MVal6, MVal1, "-0x1p+0", APFloat::opOK, APFloat::fcNormal }, in TEST()
4039 { MVal6, PVal2, "-0x0.00004p-126", APFloat::opOK, APFloat::fcNormal }, in TEST()
4040 { MVal6, MVal2, "-0x0.00004p-126", APFloat::opOK, APFloat::fcNormal }, in TEST()
4041 { MVal6, PVal3, "-0x0p+0", APFloat::opOK, APFloat::fcZero }, in TEST()
4042 { MVal6, MVal3, "-0x0p+0", APFloat::opOK, APFloat::fcZero }, in TEST()
4043 { MVal6, PVal4, "-0x1p+0", APFloat::opOK, APFloat::fcNormal }, in TEST()
4044 { MVal6, MVal4, "-0x1p+0", APFloat::opOK, APFloat::fcNormal }, in TEST()
4045 { MVal6, PVal5, "0.5", APFloat::opOK, APFloat::fcNormal }, in TEST()
4046 { MVal6, MVal5, "0.5", APFloat::opOK, APFloat::fcNormal }, in TEST()
4047 { MVal6, PVal6, "-0x0p+0", APFloat::opOK, APFloat::fcZero }, in TEST()
4048 { MVal6, MVal6, "-0x0p+0", APFloat::opOK, APFloat::fcZero }, in TEST()
4052 APFloat x(SpecialCaseTests[i].x); in TEST()
4053 APFloat y(SpecialCaseTests[i].y); in TEST()
4054 APFloat::opStatus status = x.remainder(y); in TEST()
4056 APFloat result(x.getSemantics(), SpecialCaseTests[i].result); in TEST()
4064 APFloat f1(APFloat::IEEEdouble(), "0x1.3333333333333p-2"); // 0.3 in TEST()
4065 APFloat f2(APFloat::IEEEdouble(), "0x1.47ae147ae147bp-7"); // 0.01 in TEST()
4066 APFloat expected(APFloat::IEEEdouble(), "-0x1.4p-56"); in TEST()
4067 EXPECT_EQ(APFloat::opOK, f1.remainder(f2)); in TEST()
4071 APFloat f1(APFloat::IEEEdouble(), "0x1p64"); // 1.8446744073709552e19 in TEST()
4072 APFloat f2(APFloat::IEEEdouble(), "1.5"); in TEST()
4073 APFloat expected(APFloat::IEEEdouble(), "-0.5"); in TEST()
4074 EXPECT_EQ(APFloat::opOK, f1.remainder(f2)); in TEST()
4078 APFloat f1(APFloat::IEEEdouble(), "0x1p1000"); in TEST()
4079 APFloat f2(APFloat::IEEEdouble(), "0x1p-1000"); in TEST()
4080 APFloat expected(APFloat::IEEEdouble(), "0.0"); in TEST()
4081 EXPECT_EQ(APFloat::opOK, f1.remainder(f2)); in TEST()
4085 APFloat f1 = APFloat::getInf(APFloat::IEEEdouble(), false); in TEST()
4086 APFloat f2(APFloat::IEEEdouble(), "1.0"); in TEST()
4087 EXPECT_EQ(f1.remainder(f2), APFloat::opInvalidOp); in TEST()
4091 APFloat f1(APFloat::IEEEdouble(), "-4.0"); in TEST()
4092 APFloat f2(APFloat::IEEEdouble(), "-2.0"); in TEST()
4093 APFloat expected(APFloat::IEEEdouble(), "-0.0"); in TEST()
4094 EXPECT_EQ(APFloat::opOK, f1.remainder(f2)); in TEST()
4098 APFloat f1(APFloat::IEEEdouble(), "-4.0"); in TEST()
4099 APFloat f2(APFloat::IEEEdouble(), "2.0"); in TEST()
4100 APFloat expected(APFloat::IEEEdouble(), "-0.0"); in TEST()
4101 EXPECT_EQ(APFloat::opOK, f1.remainder(f2)); in TEST()
4108 APFloat::fltCategory, APFloat::roundingMode>; in TEST()
4112 APFloat::fcZero, APFloat::rmNearestTiesToEven), in TEST()
4115 0x7948000000000000ull, 0ull, APFloat::fcInfinity, in TEST()
4116 APFloat::rmNearestTiesToEven), in TEST()
4123 APFloat::fcNormal, APFloat::rmNearestTiesToEven), in TEST()
4127 APFloat::fcInfinity, APFloat::rmNearestTiesToEven), in TEST()
4130 APFloat::fcNaN, APFloat::rmNearestTiesToEven), in TEST()
4135 APFloat::fltCategory Expected; in TEST()
4136 APFloat::roundingMode RM; in TEST()
4140 APFloat A1(APFloat::PPCDoubleDouble(), APInt(128, 2, Op1)); in TEST()
4141 APFloat A2(APFloat::PPCDoubleDouble(), APInt(128, 2, Op2)); in TEST()
4150 APFloat A1(APFloat::PPCDoubleDouble(), APInt(128, 2, Op1)); in TEST()
4151 APFloat A2(APFloat::PPCDoubleDouble(), APInt(128, 2, Op2)); in TEST()
4164 uint64_t, APFloat::roundingMode>; in TEST()
4169 APFloat::rmNearestTiesToEven), in TEST()
4173 APFloat::rmNearestTiesToEven), in TEST()
4177 0x3960000000000000ull, APFloat::rmNearestTiesToEven), in TEST()
4181 APFloat::rmNearestTiesToEven), in TEST()
4188 0x7c8ffffffffffffeull, APFloat::rmNearestTiesToEven), in TEST()
4195 0x7c8ffffffffffffeull, APFloat::rmNearestTiesToEven), in TEST()
4200 APFloat::roundingMode RM; in TEST()
4204 APFloat A1(APFloat::PPCDoubleDouble(), APInt(128, 2, Op1)); in TEST()
4205 APFloat A2(APFloat::PPCDoubleDouble(), APInt(128, 2, Op2)); in TEST()
4218 APFloat A1(APFloat::PPCDoubleDouble(), APInt(128, 2, Op1)); in TEST()
4219 APFloat A2(APFloat::PPCDoubleDouble(), APInt(128, 2, Op2)); in TEST()
4236 uint64_t, APFloat::roundingMode>; in TEST()
4241 APFloat::rmNearestTiesToEven), in TEST()
4245 APFloat::rmNearestTiesToEven), in TEST()
4250 APFloat::roundingMode RM; in TEST()
4253 APFloat A1(APFloat::PPCDoubleDouble(), APInt(128, 2, Op1)); in TEST()
4254 APFloat A2(APFloat::PPCDoubleDouble(), APInt(128, 2, Op2)); in TEST()
4270 APFloat::fltCategory, APFloat::roundingMode>; in TEST()
4274 APFloat::fcNaN, APFloat::rmNearestTiesToEven), in TEST()
4276 std::make_tuple(0x7ff8000000000000ull, 0, 0, 0, APFloat::fcNaN, in TEST()
4277 APFloat::rmNearestTiesToEven), in TEST()
4280 APFloat::fcNaN, APFloat::rmNearestTiesToEven), in TEST()
4283 APFloat::fcNaN, APFloat::rmNearestTiesToEven), in TEST()
4286 APFloat::fcInfinity, APFloat::rmNearestTiesToEven), in TEST()
4288 std::make_tuple(0x7ff0000000000000ull, 0, 0, 0, APFloat::fcNaN, in TEST()
4289 APFloat::rmNearestTiesToEven), in TEST()
4292 APFloat::fcInfinity, APFloat::rmNearestTiesToEven), in TEST()
4294 std::make_tuple(0, 0, 0, 0, APFloat::fcZero, in TEST()
4295 APFloat::rmNearestTiesToEven), in TEST()
4297 std::make_tuple(0, 0, 0x3ff0000000000000ull, 0, APFloat::fcZero, in TEST()
4298 APFloat::rmNearestTiesToEven), in TEST()
4303 APFloat::fltCategory Expected; in TEST()
4304 APFloat::roundingMode RM; in TEST()
4308 APFloat A1(APFloat::PPCDoubleDouble(), APInt(128, 2, Op1)); in TEST()
4309 APFloat A2(APFloat::PPCDoubleDouble(), APInt(128, 2, Op2)); in TEST()
4318 APFloat A1(APFloat::PPCDoubleDouble(), APInt(128, 2, Op1)); in TEST()
4319 APFloat A2(APFloat::PPCDoubleDouble(), APInt(128, 2, Op2)); in TEST()
4332 uint64_t, APFloat::roundingMode>; in TEST()
4337 APFloat::rmNearestTiesToEven), in TEST()
4341 0x0000000000000001ull, APFloat::rmNearestTiesToEven), in TEST()
4346 APFloat::rmNearestTiesToEven), in TEST()
4350 0xbff0000000000000ull, 0, APFloat::rmNearestTiesToEven), in TEST()
4354 0x0000000000000001ull, APFloat::rmNearestTiesToEven), in TEST()
4358 APFloat::rmNearestTiesToEven), in TEST()
4362 0x7ff0000000000000ull, 0, APFloat::rmNearestTiesToEven), in TEST()
4367 APFloat::rmNearestTiesToEven), in TEST()
4372 APFloat::rmNearestTiesToEven), in TEST()
4377 APFloat::roundingMode RM; in TEST()
4381 APFloat A1(APFloat::PPCDoubleDouble(), APInt(128, 2, Op1)); in TEST()
4382 APFloat A2(APFloat::PPCDoubleDouble(), APInt(128, 2, Op2)); in TEST()
4395 APFloat A1(APFloat::PPCDoubleDouble(), APInt(128, 2, Op1)); in TEST()
4396 APFloat A2(APFloat::PPCDoubleDouble(), APInt(128, 2, Op2)); in TEST()
4413 uint64_t, APFloat::roundingMode>; in TEST()
4420 APFloat::rmNearestTiesToEven), in TEST()
4425 APFloat::roundingMode RM; in TEST()
4428 APFloat A1(APFloat::PPCDoubleDouble(), APInt(128, 2, Op1)); in TEST()
4429 APFloat A2(APFloat::PPCDoubleDouble(), APInt(128, 2, Op2)); in TEST()
4461 APFloat A1(APFloat::PPCDoubleDouble(), APInt(128, 2, Op1)); in TEST()
4462 APFloat A2(APFloat::PPCDoubleDouble(), APInt(128, 2, Op2)); in TEST()
4496 APFloat A1(APFloat::PPCDoubleDouble(), APInt(128, 2, Op1)); in TEST()
4497 APFloat A2(APFloat::PPCDoubleDouble(), APInt(128, 2, Op2)); in TEST()
4513 APFloat A(APFloat::PPCDoubleDouble(), "2"); in TEST()
4514 A.fusedMultiplyAdd(APFloat(APFloat::PPCDoubleDouble(), "3"), in TEST()
4515 APFloat(APFloat::PPCDoubleDouble(), "4"), in TEST()
4516 APFloat::rmNearestTiesToEven); in TEST()
4517 EXPECT_EQ(APFloat::cmpEqual, in TEST()
4518 APFloat(APFloat::PPCDoubleDouble(), "10").compare(A)); in TEST()
4523 APFloat A(APFloat::PPCDoubleDouble(), "1.5"); in TEST()
4524 A.roundToIntegral(APFloat::rmNearestTiesToEven); in TEST()
4525 EXPECT_EQ(APFloat::cmpEqual, in TEST()
4526 APFloat(APFloat::PPCDoubleDouble(), "2").compare(A)); in TEST()
4529 APFloat A(APFloat::PPCDoubleDouble(), "2.5"); in TEST()
4530 A.roundToIntegral(APFloat::rmNearestTiesToEven); in TEST()
4531 EXPECT_EQ(APFloat::cmpEqual, in TEST()
4532 APFloat(APFloat::PPCDoubleDouble(), "2").compare(A)); in TEST()
4538 std::tuple<uint64_t, uint64_t, uint64_t, uint64_t, APFloat::cmpResult>; in TEST()
4543 APFloat::cmpEqual), in TEST()
4546 APFloat::cmpLessThan), in TEST()
4549 APFloat::cmpGreaterThan), in TEST()
4552 0x0000000000000001ull, APFloat::cmpLessThan), in TEST()
4555 APFloat::cmpUnordered), in TEST()
4558 APFloat::cmpUnordered), in TEST()
4561 APFloat::cmpEqual), in TEST()
4566 APFloat::cmpResult Expected; in TEST()
4569 APFloat A1(APFloat::PPCDoubleDouble(), APInt(128, 2, Op1)); in TEST()
4570 APFloat A2(APFloat::PPCDoubleDouble(), APInt(128, 2, Op2)); in TEST()
4601 APFloat A1(APFloat::PPCDoubleDouble(), APInt(128, 2, Op1)); in TEST()
4602 APFloat A2(APFloat::PPCDoubleDouble(), APInt(128, 2, Op2)); in TEST()
4615 hash_value(APFloat(APFloat::PPCDoubleDouble(), APInt(128, 2, Data1))), in TEST()
4616 hash_value(APFloat(APFloat::PPCDoubleDouble(), APInt(128, 2, Data2)))); in TEST()
4623 APFloat Float(APFloat::PPCDoubleDouble(), APInt(128, 2, Data)); in TEST()
4625 APFloat Actual = in TEST()
4626 APFloat::copySign(Float, APFloat(APFloat::IEEEdouble(), "1")); in TEST()
4631 APFloat Actual = in TEST()
4632 APFloat::copySign(Float, APFloat(APFloat::IEEEdouble(), "-1")); in TEST()
4644 APFloat::getZero(APFloat::PPCDoubleDouble()).bitcastToAPInt()); in TEST()
4651 APFloat::getLargest(APFloat::PPCDoubleDouble()).bitcastToAPInt()); in TEST()
4659 APFloat::getSmallest(APFloat::PPCDoubleDouble()).bitcastToAPInt()); in TEST()
4664 APFloat::getSmallestNormalized(APFloat::PPCDoubleDouble()) in TEST()
4673 APFloat::getZero(APFloat::PPCDoubleDouble(), true).bitcastToAPInt()); in TEST()
4681 APFloat::getLargest(APFloat::PPCDoubleDouble(), true).bitcastToAPInt()); in TEST()
4688 APFloat::getSmallest(APFloat::PPCDoubleDouble(), true) in TEST()
4696 APFloat::getSmallestNormalized(APFloat::PPCDoubleDouble(), true) in TEST()
4699 EXPECT_TRUE(APFloat::getSmallest(APFloat::PPCDoubleDouble()).isSmallest()); in TEST()
4700 EXPECT_TRUE(APFloat::getLargest(APFloat::PPCDoubleDouble()).isLargest()); in TEST()
4704 EXPECT_TRUE(APFloat::getSmallest(APFloat::PPCDoubleDouble()).isDenormal()); in TEST()
4705 EXPECT_FALSE(APFloat::getLargest(APFloat::PPCDoubleDouble()).isDenormal()); in TEST()
4707 APFloat::getSmallestNormalized(APFloat::PPCDoubleDouble()).isDenormal()); in TEST()
4714 APFloat(APFloat::PPCDoubleDouble(), APInt(128, 2, Data)).isDenormal()); in TEST()
4723 APFloat Result = in TEST()
4724 scalbn(APFloat(APFloat::PPCDoubleDouble(), APInt(128, 2, Input)), 1, in TEST()
4725 APFloat::rmNearestTiesToEven); in TEST()
4738 APFloat Result = in TEST()
4739 frexp(APFloat(APFloat::PPCDoubleDouble(), APInt(128, 2, Input)), Exp, in TEST()
4740 APFloat::rmNearestTiesToEven); in TEST()
4747 APFloat MaxX87Val = APFloat::getLargest(APFloat::x87DoubleExtended()); in TEST()
4752 APFloat F(APFloat::x87DoubleExtended(), "-1.0"); in TEST()
4758 APFloat DPosZero(0.0); in TEST()
4759 APFloat DPosZeroToDouble(DPosZero.convertToDouble()); in TEST()
4761 APFloat DNegZero(-0.0); in TEST()
4762 APFloat DNegZeroToDouble(DNegZero.convertToDouble()); in TEST()
4765 APFloat DOne(1.0); in TEST()
4767 APFloat DPosLargest = APFloat::getLargest(APFloat::IEEEdouble(), false); in TEST()
4769 APFloat DNegLargest = APFloat::getLargest(APFloat::IEEEdouble(), true); in TEST()
4771 APFloat DPosSmallest = in TEST()
4772 APFloat::getSmallestNormalized(APFloat::IEEEdouble(), false); in TEST()
4774 APFloat DNegSmallest = in TEST()
4775 APFloat::getSmallestNormalized(APFloat::IEEEdouble(), true); in TEST()
4779 APFloat DSmallestDenorm = APFloat::getSmallest(APFloat::IEEEdouble(), false); in TEST()
4782 APFloat DLargestDenorm(APFloat::IEEEdouble(), "0x0.FFFFFFFFFFFFFp-1022"); in TEST()
4786 APFloat DPosInf = APFloat::getInf(APFloat::IEEEdouble()); in TEST()
4788 APFloat DNegInf = APFloat::getInf(APFloat::IEEEdouble(), true); in TEST()
4791 APFloat DQNaN = APFloat::getQNaN(APFloat::IEEEdouble()); in TEST()
4794 APFloat FPosZero(0.0F); in TEST()
4795 APFloat FPosZeroToDouble(FPosZero.convertToDouble()); in TEST()
4797 APFloat FNegZero(-0.0F); in TEST()
4798 APFloat FNegZeroToDouble(FNegZero.convertToDouble()); in TEST()
4801 APFloat FOne(1.0F); in TEST()
4803 APFloat FPosLargest = APFloat::getLargest(APFloat::IEEEsingle(), false); in TEST()
4805 APFloat FNegLargest = APFloat::getLargest(APFloat::IEEEsingle(), true); in TEST()
4807 APFloat FPosSmallest = in TEST()
4808 APFloat::getSmallestNormalized(APFloat::IEEEsingle(), false); in TEST()
4810 APFloat FNegSmallest = in TEST()
4811 APFloat::getSmallestNormalized(APFloat::IEEEsingle(), true); in TEST()
4814 APFloat FSmallestDenorm = APFloat::getSmallest(APFloat::IEEEsingle(), false); in TEST()
4817 APFloat FLargestDenorm(APFloat::IEEEdouble(), "0x0.FFFFFEp-126"); in TEST()
4821 APFloat FPosInf = APFloat::getInf(APFloat::IEEEsingle()); in TEST()
4823 APFloat FNegInf = APFloat::getInf(APFloat::IEEEsingle(), true); in TEST()
4826 APFloat FQNaN = APFloat::getQNaN(APFloat::IEEEsingle()); in TEST()
4829 APFloat HPosZero = APFloat::getZero(APFloat::IEEEhalf()); in TEST()
4830 APFloat HPosZeroToDouble(HPosZero.convertToDouble()); in TEST()
4832 APFloat HNegZero = APFloat::getZero(APFloat::IEEEhalf(), true); in TEST()
4833 APFloat HNegZeroToDouble(HNegZero.convertToDouble()); in TEST()
4836 APFloat HOne(APFloat::IEEEhalf(), "1.0"); in TEST()
4838 APFloat HPosLargest = APFloat::getLargest(APFloat::IEEEhalf(), false); in TEST()
4840 APFloat HNegLargest = APFloat::getLargest(APFloat::IEEEhalf(), true); in TEST()
4842 APFloat HPosSmallest = in TEST()
4843 APFloat::getSmallestNormalized(APFloat::IEEEhalf(), false); in TEST()
4845 APFloat HNegSmallest = in TEST()
4846 APFloat::getSmallestNormalized(APFloat::IEEEhalf(), true); in TEST()
4849 APFloat HSmallestDenorm = APFloat::getSmallest(APFloat::IEEEhalf(), false); in TEST()
4852 APFloat HLargestDenorm(APFloat::IEEEhalf(), "0x1.FFCp-14"); in TEST()
4856 APFloat HPosInf = APFloat::getInf(APFloat::IEEEhalf()); in TEST()
4858 APFloat HNegInf = APFloat::getInf(APFloat::IEEEhalf(), true); in TEST()
4861 APFloat HQNaN = APFloat::getQNaN(APFloat::IEEEhalf()); in TEST()
4864 APFloat BPosZero = APFloat::getZero(APFloat::IEEEhalf()); in TEST()
4865 APFloat BPosZeroToDouble(BPosZero.convertToDouble()); in TEST()
4867 APFloat BNegZero = APFloat::getZero(APFloat::IEEEhalf(), true); in TEST()
4868 APFloat BNegZeroToDouble(BNegZero.convertToDouble()); in TEST()
4871 APFloat BOne(APFloat::BFloat(), "1.0"); in TEST()
4873 APFloat BPosLargest = APFloat::getLargest(APFloat::BFloat(), false); in TEST()
4876 APFloat BNegLargest = APFloat::getLargest(APFloat::BFloat(), true); in TEST()
4879 APFloat BPosSmallest = in TEST()
4880 APFloat::getSmallestNormalized(APFloat::BFloat(), false); in TEST()
4883 APFloat BNegSmallest = in TEST()
4884 APFloat::getSmallestNormalized(APFloat::BFloat(), true); in TEST()
4888 APFloat BSmallestDenorm = APFloat::getSmallest(APFloat::BFloat(), false); in TEST()
4891 APFloat BLargestDenorm(APFloat::BFloat(), "0x1.FCp-127"); in TEST()
4895 APFloat BPosInf = APFloat::getInf(APFloat::BFloat()); in TEST()
4897 APFloat BNegInf = APFloat::getInf(APFloat::BFloat(), true); in TEST()
4900 APFloat BQNaN = APFloat::getQNaN(APFloat::BFloat()); in TEST()
4905 APFloat FPosZero(0.0F); in TEST()
4906 APFloat FPosZeroToFloat(FPosZero.convertToFloat()); in TEST()
4908 APFloat FNegZero(-0.0F); in TEST()
4909 APFloat FNegZeroToFloat(FNegZero.convertToFloat()); in TEST()
4912 APFloat FOne(1.0F); in TEST()
4914 APFloat FPosLargest = APFloat::getLargest(APFloat::IEEEsingle(), false); in TEST()
4916 APFloat FNegLargest = APFloat::getLargest(APFloat::IEEEsingle(), true); in TEST()
4918 APFloat FPosSmallest = in TEST()
4919 APFloat::getSmallestNormalized(APFloat::IEEEsingle(), false); in TEST()
4921 APFloat FNegSmallest = in TEST()
4922 APFloat::getSmallestNormalized(APFloat::IEEEsingle(), true); in TEST()
4925 APFloat FSmallestDenorm = APFloat::getSmallest(APFloat::IEEEsingle(), false); in TEST()
4928 APFloat FLargestDenorm(APFloat::IEEEsingle(), "0x1.FFFFFEp-126"); in TEST()
4932 APFloat FPosInf = APFloat::getInf(APFloat::IEEEsingle()); in TEST()
4934 APFloat FNegInf = APFloat::getInf(APFloat::IEEEsingle(), true); in TEST()
4936 APFloat FQNaN = APFloat::getQNaN(APFloat::IEEEsingle()); in TEST()
4939 APFloat HPosZero = APFloat::getZero(APFloat::IEEEhalf()); in TEST()
4940 APFloat HPosZeroToFloat(HPosZero.convertToFloat()); in TEST()
4942 APFloat HNegZero = APFloat::getZero(APFloat::IEEEhalf(), true); in TEST()
4943 APFloat HNegZeroToFloat(HNegZero.convertToFloat()); in TEST()
4946 APFloat HOne(APFloat::IEEEhalf(), "1.0"); in TEST()
4948 APFloat HPosLargest = APFloat::getLargest(APFloat::IEEEhalf(), false); in TEST()
4950 APFloat HNegLargest = APFloat::getLargest(APFloat::IEEEhalf(), true); in TEST()
4952 APFloat HPosSmallest = in TEST()
4953 APFloat::getSmallestNormalized(APFloat::IEEEhalf(), false); in TEST()
4955 APFloat HNegSmallest = in TEST()
4956 APFloat::getSmallestNormalized(APFloat::IEEEhalf(), true); in TEST()
4959 APFloat HSmallestDenorm = APFloat::getSmallest(APFloat::IEEEhalf(), false); in TEST()
4962 APFloat HLargestDenorm(APFloat::IEEEhalf(), "0x1.FFCp-14"); in TEST()
4966 APFloat HPosInf = APFloat::getInf(APFloat::IEEEhalf()); in TEST()
4968 APFloat HNegInf = APFloat::getInf(APFloat::IEEEhalf(), true); in TEST()
4970 APFloat HQNaN = APFloat::getQNaN(APFloat::IEEEhalf()); in TEST()
4973 APFloat BPosZero = APFloat::getZero(APFloat::BFloat()); in TEST()
4974 APFloat BPosZeroToDouble(BPosZero.convertToFloat()); in TEST()
4976 APFloat BNegZero = APFloat::getZero(APFloat::BFloat(), true); in TEST()
4977 APFloat BNegZeroToDouble(BNegZero.convertToFloat()); in TEST()
4980 APFloat BOne(APFloat::BFloat(), "1.0"); in TEST()
4982 APFloat BPosLargest = APFloat::getLargest(APFloat::BFloat(), false); in TEST()
4985 APFloat BNegLargest = APFloat::getLargest(APFloat::BFloat(), true); in TEST()
4988 APFloat BPosSmallest = in TEST()
4989 APFloat::getSmallestNormalized(APFloat::BFloat(), false); in TEST()
4992 APFloat BNegSmallest = in TEST()
4993 APFloat::getSmallestNormalized(APFloat::BFloat(), true); in TEST()
4997 APFloat BSmallestDenorm = APFloat::getSmallest(APFloat::BFloat(), false); in TEST()
5000 APFloat BLargestDenorm(APFloat::BFloat(), "0x1.FCp-127"); in TEST()
5004 APFloat BPosInf = APFloat::getInf(APFloat::BFloat()); in TEST()
5006 APFloat BNegInf = APFloat::getInf(APFloat::BFloat(), true); in TEST()
5008 APFloat BQNaN = APFloat::getQNaN(APFloat::BFloat()); in TEST()