Lines Matching refs:APInt

21   APInt Zero = APInt();  in TEST()
29 APInt One = APInt::getZero(65) + 1; in TEST()
30 APInt Shl = One.shl(0); in TEST()
36 const APInt neg_one(64, static_cast<uint64_t>(-1), true); in TEST()
41 APInt Minus3(128, static_cast<uint64_t>(-3), true); in TEST()
45 APInt Minus1(128, static_cast<uint64_t>(-1), true); in TEST()
56 APInt i33minus2(33, static_cast<uint64_t>(-2), true); in TEST()
67 APInt i61(61, 1 << 15); in TEST()
87 APInt i65(65, 0, true); in TEST()
95 APInt i65minus(65, 0, true); in TEST()
105 APInt u128max = APInt::getAllOnes(128); in TEST()
113 APInt u64max(128, static_cast<uint64_t>(-1), false); in TEST()
122 APInt zero(128, 0, true); in TEST()
132 APInt one(128, 1, true); in TEST()
142 APInt s128(128, 2, true); in TEST()
187 APInt s256(256, 15, true); in TEST()
218 const APInt neg_two(1, static_cast<uint64_t>(-2), true); in TEST()
219 const APInt neg_one(1, static_cast<uint64_t>(-1), true); in TEST()
220 const APInt zero(1, 0); in TEST()
221 const APInt one(1, 1); in TEST()
222 const APInt two(1, 2); in TEST()
323 APInt q(8, 0); in TEST()
324 APInt r(8, 0); in TEST()
325 APInt one(8, 1); in TEST()
326 APInt two(8, 2); in TEST()
327 APInt nine(8, 9); in TEST()
328 APInt four(8, 4); in TEST()
335 APInt::sdivrem(nine, two, q, r); in TEST()
338 APInt::sdivrem(-nine, two, q, r); in TEST()
341 APInt::sdivrem(nine, -two, q, r); in TEST()
344 APInt::sdivrem(-nine, -two, q, r); in TEST()
351 std::array<APInt, 5> testVals{{ in TEST()
352 APInt{16, 2}, in TEST()
353 APInt{16, 1}, in TEST()
354 APInt{16, 0}, in TEST()
355 APInt{16, (uint64_t)-1, true}, in TEST()
356 APInt{16, (uint64_t)-2, true}, in TEST()
389 EXPECT_TRUE(!APInt(8, 1).uge(256)); in TEST()
390 EXPECT_TRUE(!APInt(8, 1).ugt(256)); in TEST()
391 EXPECT_TRUE( APInt(8, 1).ule(256)); in TEST()
392 EXPECT_TRUE( APInt(8, 1).ult(256)); in TEST()
393 EXPECT_TRUE(!APInt(8, 1).sge(256)); in TEST()
394 EXPECT_TRUE(!APInt(8, 1).sgt(256)); in TEST()
395 EXPECT_TRUE( APInt(8, 1).sle(256)); in TEST()
396 EXPECT_TRUE( APInt(8, 1).slt(256)); in TEST()
397 EXPECT_TRUE(!(APInt(8, 0) == 256)); in TEST()
398 EXPECT_TRUE( APInt(8, 0) != 256); in TEST()
399 EXPECT_TRUE(!(APInt(8, 1) == 256)); in TEST()
400 EXPECT_TRUE( APInt(8, 1) != 256); in TEST()
406 auto u64 = APInt{128, uint64max}; in TEST()
407 auto s64 = APInt{128, static_cast<uint64_t>(int64max), true}; in TEST()
466 auto a = APInt{64, static_cast<uint64_t>(edge), true}; in TEST()
486 auto a = APInt{64, edge}; in TEST()
517 auto One = APInt{128, static_cast<uint64_t>(1), true}; in TEST()
518 auto Two = APInt{128, static_cast<uint64_t>(2), true}; in TEST()
519 auto MinusOne = APInt{128, static_cast<uint64_t>(-1), true}; in TEST()
520 auto MinusTwo = APInt{128, static_cast<uint64_t>(-2), true}; in TEST()
546 APInt A1(64, E1); in TEST()
568 APInt::WordType E2[4] = { in TEST()
574 APInt A2(APInt::APINT_BITS_PER_WORD*4, E2); in TEST()
601 APInt V(129, HexString, 16); in TEST()
606 APInt One(129, "1", 16); in TEST()
607 APInt Two(129, "2", 16); in TEST()
608 APInt Three(129, "3", 16); in TEST()
609 APInt MinusOne = -One; in TEST()
616 APInt AddLL = One + One; in TEST()
619 APInt AddLR = One + getRValue("1", RawDataR); in TEST()
623 APInt AddRL = getRValue("1", RawDataL) + One; in TEST()
627 APInt AddRR = getRValue("1", RawDataL) + getRValue("1", RawDataR); in TEST()
632 APInt AddLK = One + 1; in TEST()
635 APInt AddKL = 1 + One; in TEST()
639 APInt AddRK = getRValue("1", RawDataL) + 1; in TEST()
643 APInt AddKR = 1 + getRValue("1", RawDataR); in TEST()
650 APInt AllOnes(129, "0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF", 16); in TEST()
651 APInt HighOneLowOne(129, "100000000000000000000000000000001", 16); in TEST()
653 APInt AddLL = AllOnes + Two; in TEST()
656 APInt AddLR = AllOnes + getRValue("2", RawDataR); in TEST()
660 APInt AddRL = getRValue("FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF", RawDataL) + Two; in TEST()
664 APInt AddRR = getRValue("FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF", RawDataL) + in TEST()
670 APInt AddLK = AllOnes + 2; in TEST()
673 APInt AddKL = 2 + AllOnes; in TEST()
677 APInt AddRK = getRValue("FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF", RawDataL) + 2; in TEST()
681 APInt AddKR = 2 + getRValue("FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF", RawDataR); in TEST()
688 APInt SubLL = Two - One; in TEST()
691 APInt SubLR = Two - getRValue("1", RawDataR); in TEST()
695 APInt SubRL = getRValue("2", RawDataL) - One; in TEST()
699 APInt SubRR = getRValue("2", RawDataL) - getRValue("1", RawDataR); in TEST()
704 APInt SubLK = Two - 1; in TEST()
707 APInt SubKL = 2 - One; in TEST()
711 APInt SubRK = getRValue("2", RawDataL) - 1; in TEST()
715 APInt SubKR = 2 - getRValue("1", RawDataR); in TEST()
722 APInt AllOnes(129, "0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF", 16); in TEST()
723 APInt HighOneLowOne(129, "100000000000000000000000000000001", 16); in TEST()
725 APInt SubLL = HighOneLowOne - AllOnes; in TEST()
728 APInt SubLR = HighOneLowOne - in TEST()
733 APInt SubRL = getRValue("100000000000000000000000000000001", RawDataL) - in TEST()
738 APInt SubRR = getRValue("100000000000000000000000000000001", RawDataL) - in TEST()
745 APInt SubLK = HighOneLowOne - 2; in TEST()
749 APInt SubKL = 2 - MinusOne; in TEST()
754 APInt SubRK = getRValue("100000000000000000000000000000001", RawDataL) - 2; in TEST()
758 APInt SubKR = 2 - getRValue("1FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF", RawDataR); in TEST()
770 APInt V(129, HexString, 16); in TEST()
775 APInt Ten(129, "A", 16); in TEST()
776 APInt Twelve(129, "C", 16); in TEST()
783 APInt AndLL = Ten & Twelve; in TEST()
786 APInt AndLR = Ten & getRValue("C", RawDataR); in TEST()
790 APInt AndRL = getRValue("A", RawDataL) & Twelve; in TEST()
794 APInt AndRR = getRValue("A", RawDataL) & getRValue("C", RawDataR); in TEST()
799 APInt AndLK = Ten & 0xc; in TEST()
802 APInt AndKL = 0xa & Twelve; in TEST()
806 APInt AndRK = getRValue("A", RawDataL) & 0xc; in TEST()
810 APInt AndKR = 0xa & getRValue("C", RawDataR); in TEST()
817 APInt OrLL = Ten | Twelve; in TEST()
820 APInt OrLR = Ten | getRValue("C", RawDataR); in TEST()
824 APInt OrRL = getRValue("A", RawDataL) | Twelve; in TEST()
828 APInt OrRR = getRValue("A", RawDataL) | getRValue("C", RawDataR); in TEST()
833 APInt OrLK = Ten | 0xc; in TEST()
836 APInt OrKL = 0xa | Twelve; in TEST()
840 APInt OrRK = getRValue("A", RawDataL) | 0xc; in TEST()
844 APInt OrKR = 0xa | getRValue("C", RawDataR); in TEST()
851 APInt XorLL = Ten ^ Twelve; in TEST()
854 APInt XorLR = Ten ^ getRValue("C", RawDataR); in TEST()
858 APInt XorRL = getRValue("A", RawDataL) ^ Twelve; in TEST()
862 APInt XorRR = getRValue("A", RawDataL) ^ getRValue("C", RawDataR); in TEST()
867 APInt XorLK = Ten ^ 0xc; in TEST()
870 APInt XorKL = 0xa ^ Twelve; in TEST()
874 APInt XorRK = getRValue("A", RawDataL) ^ 0xc; in TEST()
878 APInt XorKR = 0xa ^ getRValue("C", RawDataR); in TEST()
888 APInt V(129, HexString, 16); in TEST()
893 APInt One(129, 1); in TEST()
894 APInt NegativeTwo(129, -2ULL, true); in TEST()
900 APInt NegL = ~One; in TEST()
903 APInt NegR = ~getRValue("1", RawData); in TEST()
910 void testDiv(APInt a, APInt b, APInt c) { in testDiv()
920 APInt::udivrem(p, a, q, r); in testDiv()
927 APInt::sdivrem(p, a, q, r); in testDiv()
936 APInt::udivrem(p, b, q, r); in testDiv()
943 APInt::sdivrem(p, b, q, r); in testDiv()
979 testDiv(APInt{4096, 5}.shl(2001), in TEST()
980 APInt{4096, 1}.shl(2000), in TEST()
981 APInt{4096, 4219*13}); in TEST()
986 testDiv(APInt{1024, 19}.shl(811), in TEST()
987 APInt{1024, 4356013}, // one word in TEST()
988 APInt{1024, 1}); in TEST()
993 testDiv(APInt{512, "ffffffffffffffff00000000000000000000000001", 16}, in TEST()
994 APInt{512, "10000000000000001000000000000001", 16}, in TEST()
995 APInt{512, "10000000000000000000000000000000", 16}); in TEST()
1005 void testDiv(APInt a, uint64_t b, APInt c) { in testDiv()
1008 APInt q; in testDiv()
1016 APInt::udivrem(p, b, q, r); in testDiv()
1028 APInt::sdivrem(p, b, q, sr); in testDiv()
1038 testDiv(APInt{64, 9}, in TEST()
1040 APInt{64, 1}); in TEST()
1043 testDiv(-APInt{64, 9}, in TEST()
1045 -APInt{64, 1}); in TEST()
1048 testDiv(APInt{256, 9}, in TEST()
1050 APInt{256, 1}); in TEST()
1053 testDiv(-APInt{256, 9}, in TEST()
1055 -APInt{256, 1}); in TEST()
1058 testDiv(APInt{1024, 19}.shl(811), in TEST()
1060 APInt{1024, 1}); in TEST()
1065 APInt A(65, 2), B(65, 2); in TEST()
1066 APInt Q, R; in TEST()
1069 APInt::sdivrem(A, B, Q, R); in TEST()
1070 EXPECT_EQ(Q, APInt(65, 1)); in TEST()
1071 EXPECT_EQ(R, APInt(65, 0)); in TEST()
1072 APInt::udivrem(A, B, Q, R); in TEST()
1073 EXPECT_EQ(Q, APInt(65, 1)); in TEST()
1074 EXPECT_EQ(R, APInt(65, 0)); in TEST()
1077 APInt O(65, 0); in TEST()
1078 APInt::sdivrem(O, B, Q, R); in TEST()
1079 EXPECT_EQ(Q, APInt(65, 0)); in TEST()
1080 EXPECT_EQ(R, APInt(65, 0)); in TEST()
1081 APInt::udivrem(O, B, Q, R); in TEST()
1082 EXPECT_EQ(Q, APInt(65, 0)); in TEST()
1083 EXPECT_EQ(R, APInt(65, 0)); in TEST()
1086 APInt I(65, 1); in TEST()
1087 APInt::sdivrem(A, I, Q, R); in TEST()
1089 EXPECT_EQ(R, APInt(65, 0)); in TEST()
1090 APInt::udivrem(A, I, Q, R); in TEST()
1092 EXPECT_EQ(R, APInt(65, 0)); in TEST()
1096 EXPECT_EQ(APInt(32, 0), APInt(32, "0", 2)); in TEST()
1097 EXPECT_EQ(APInt(32, 1), APInt(32, "1", 2)); in TEST()
1098 EXPECT_EQ(APInt(32, 2), APInt(32, "10", 2)); in TEST()
1099 EXPECT_EQ(APInt(32, 3), APInt(32, "11", 2)); in TEST()
1100 EXPECT_EQ(APInt(32, 4), APInt(32, "100", 2)); in TEST()
1102 EXPECT_EQ(APInt(32, 0), APInt(32, "+0", 2)); in TEST()
1103 EXPECT_EQ(APInt(32, 1), APInt(32, "+1", 2)); in TEST()
1104 EXPECT_EQ(APInt(32, 2), APInt(32, "+10", 2)); in TEST()
1105 EXPECT_EQ(APInt(32, 3), APInt(32, "+11", 2)); in TEST()
1106 EXPECT_EQ(APInt(32, 4), APInt(32, "+100", 2)); in TEST()
1108 EXPECT_EQ(APInt(32, uint64_t(-0LL)), APInt(32, "-0", 2)); in TEST()
1109 EXPECT_EQ(APInt(32, uint64_t(-1LL)), APInt(32, "-1", 2)); in TEST()
1110 EXPECT_EQ(APInt(32, uint64_t(-2LL)), APInt(32, "-10", 2)); in TEST()
1111 EXPECT_EQ(APInt(32, uint64_t(-3LL)), APInt(32, "-11", 2)); in TEST()
1112 EXPECT_EQ(APInt(32, uint64_t(-4LL)), APInt(32, "-100", 2)); in TEST()
1114 EXPECT_EQ(APInt(32, 0), APInt(32, "0", 8)); in TEST()
1115 EXPECT_EQ(APInt(32, 1), APInt(32, "1", 8)); in TEST()
1116 EXPECT_EQ(APInt(32, 7), APInt(32, "7", 8)); in TEST()
1117 EXPECT_EQ(APInt(32, 8), APInt(32, "10", 8)); in TEST()
1118 EXPECT_EQ(APInt(32, 15), APInt(32, "17", 8)); in TEST()
1119 EXPECT_EQ(APInt(32, 16), APInt(32, "20", 8)); in TEST()
1121 EXPECT_EQ(APInt(32, +0), APInt(32, "+0", 8)); in TEST()
1122 EXPECT_EQ(APInt(32, +1), APInt(32, "+1", 8)); in TEST()
1123 EXPECT_EQ(APInt(32, +7), APInt(32, "+7", 8)); in TEST()
1124 EXPECT_EQ(APInt(32, +8), APInt(32, "+10", 8)); in TEST()
1125 EXPECT_EQ(APInt(32, +15), APInt(32, "+17", 8)); in TEST()
1126 EXPECT_EQ(APInt(32, +16), APInt(32, "+20", 8)); in TEST()
1128 EXPECT_EQ(APInt(32, uint64_t(-0LL)), APInt(32, "-0", 8)); in TEST()
1129 EXPECT_EQ(APInt(32, uint64_t(-1LL)), APInt(32, "-1", 8)); in TEST()
1130 EXPECT_EQ(APInt(32, uint64_t(-7LL)), APInt(32, "-7", 8)); in TEST()
1131 EXPECT_EQ(APInt(32, uint64_t(-8LL)), APInt(32, "-10", 8)); in TEST()
1132 EXPECT_EQ(APInt(32, uint64_t(-15LL)), APInt(32, "-17", 8)); in TEST()
1133 EXPECT_EQ(APInt(32, uint64_t(-16LL)), APInt(32, "-20", 8)); in TEST()
1135 EXPECT_EQ(APInt(32, 0), APInt(32, "0", 10)); in TEST()
1136 EXPECT_EQ(APInt(32, 1), APInt(32, "1", 10)); in TEST()
1137 EXPECT_EQ(APInt(32, 9), APInt(32, "9", 10)); in TEST()
1138 EXPECT_EQ(APInt(32, 10), APInt(32, "10", 10)); in TEST()
1139 EXPECT_EQ(APInt(32, 19), APInt(32, "19", 10)); in TEST()
1140 EXPECT_EQ(APInt(32, 20), APInt(32, "20", 10)); in TEST()
1142 EXPECT_EQ(APInt(32, uint64_t(-0LL)), APInt(32, "-0", 10)); in TEST()
1143 EXPECT_EQ(APInt(32, uint64_t(-1LL)), APInt(32, "-1", 10)); in TEST()
1144 EXPECT_EQ(APInt(32, uint64_t(-9LL)), APInt(32, "-9", 10)); in TEST()
1145 EXPECT_EQ(APInt(32, uint64_t(-10LL)), APInt(32, "-10", 10)); in TEST()
1146 EXPECT_EQ(APInt(32, uint64_t(-19LL)), APInt(32, "-19", 10)); in TEST()
1147 EXPECT_EQ(APInt(32, uint64_t(-20LL)), APInt(32, "-20", 10)); in TEST()
1149 EXPECT_EQ(APInt(32, 0), APInt(32, "0", 16)); in TEST()
1150 EXPECT_EQ(APInt(32, 1), APInt(32, "1", 16)); in TEST()
1151 EXPECT_EQ(APInt(32, 15), APInt(32, "F", 16)); in TEST()
1152 EXPECT_EQ(APInt(32, 16), APInt(32, "10", 16)); in TEST()
1153 EXPECT_EQ(APInt(32, 31), APInt(32, "1F", 16)); in TEST()
1154 EXPECT_EQ(APInt(32, 32), APInt(32, "20", 16)); in TEST()
1156 EXPECT_EQ(APInt(32, uint64_t(-0LL)), APInt(32, "-0", 16)); in TEST()
1157 EXPECT_EQ(APInt(32, uint64_t(-1LL)), APInt(32, "-1", 16)); in TEST()
1158 EXPECT_EQ(APInt(32, uint64_t(-15LL)), APInt(32, "-F", 16)); in TEST()
1159 EXPECT_EQ(APInt(32, uint64_t(-16LL)), APInt(32, "-10", 16)); in TEST()
1160 EXPECT_EQ(APInt(32, uint64_t(-31LL)), APInt(32, "-1F", 16)); in TEST()
1161 EXPECT_EQ(APInt(32, uint64_t(-32LL)), APInt(32, "-20", 16)); in TEST()
1163 EXPECT_EQ(APInt(32, 0), APInt(32, "0", 36)); in TEST()
1164 EXPECT_EQ(APInt(32, 1), APInt(32, "1", 36)); in TEST()
1165 EXPECT_EQ(APInt(32, 35), APInt(32, "Z", 36)); in TEST()
1166 EXPECT_EQ(APInt(32, 36), APInt(32, "10", 36)); in TEST()
1167 EXPECT_EQ(APInt(32, 71), APInt(32, "1Z", 36)); in TEST()
1168 EXPECT_EQ(APInt(32, 72), APInt(32, "20", 36)); in TEST()
1170 EXPECT_EQ(APInt(32, uint64_t(-0LL)), APInt(32, "-0", 36)); in TEST()
1171 EXPECT_EQ(APInt(32, uint64_t(-1LL)), APInt(32, "-1", 36)); in TEST()
1172 EXPECT_EQ(APInt(32, uint64_t(-35LL)), APInt(32, "-Z", 36)); in TEST()
1173 EXPECT_EQ(APInt(32, uint64_t(-36LL)), APInt(32, "-10", 36)); in TEST()
1174 EXPECT_EQ(APInt(32, uint64_t(-71LL)), APInt(32, "-1Z", 36)); in TEST()
1175 EXPECT_EQ(APInt(32, uint64_t(-72LL)), APInt(32, "-20", 36)); in TEST()
1179 APInt AP_10 = APInt(8, 10); in TEST()
1180 APInt AP_42 = APInt(8, 42); in TEST()
1181 APInt AP_100 = APInt(8, 100); in TEST()
1182 APInt AP_200 = APInt(8, 200); in TEST()
1184 EXPECT_EQ(APInt(8, 100), AP_100.truncUSat(8)); in TEST()
1185 EXPECT_EQ(APInt(7, 100), AP_100.truncUSat(7)); in TEST()
1186 EXPECT_EQ(APInt(6, 63), AP_100.truncUSat(6)); in TEST()
1187 EXPECT_EQ(APInt(5, 31), AP_100.truncUSat(5)); in TEST()
1189 EXPECT_EQ(APInt(8, 200), AP_200.truncUSat(8)); in TEST()
1190 EXPECT_EQ(APInt(7, 127), AP_200.truncUSat(7)); in TEST()
1191 EXPECT_EQ(APInt(6, 63), AP_200.truncUSat(6)); in TEST()
1192 EXPECT_EQ(APInt(5, 31), AP_200.truncUSat(5)); in TEST()
1194 EXPECT_EQ(APInt(8, 42), AP_42.truncSSat(8)); in TEST()
1195 EXPECT_EQ(APInt(7, 42), AP_42.truncSSat(7)); in TEST()
1196 EXPECT_EQ(APInt(6, 31), AP_42.truncSSat(6)); in TEST()
1197 EXPECT_EQ(APInt(5, 15), AP_42.truncSSat(5)); in TEST()
1199 EXPECT_EQ(APInt(8, -56), AP_200.truncSSat(8)); in TEST()
1200 EXPECT_EQ(APInt(7, -56), AP_200.truncSSat(7)); in TEST()
1201 EXPECT_EQ(APInt(6, -32), AP_200.truncSSat(6)); in TEST()
1202 EXPECT_EQ(APInt(5, -16), AP_200.truncSSat(5)); in TEST()
1204 EXPECT_EQ(APInt(8, 200), AP_100.uadd_sat(AP_100)); in TEST()
1205 EXPECT_EQ(APInt(8, 255), AP_100.uadd_sat(AP_200)); in TEST()
1206 EXPECT_EQ(APInt(8, 255), APInt(8, 255).uadd_sat(APInt(8, 255))); in TEST()
1208 EXPECT_EQ(APInt(8, 110), AP_10.sadd_sat(AP_100)); in TEST()
1209 EXPECT_EQ(APInt(8, 127), AP_100.sadd_sat(AP_100)); in TEST()
1210 EXPECT_EQ(APInt(8, -128), (-AP_100).sadd_sat(-AP_100)); in TEST()
1211 EXPECT_EQ(APInt(8, -128), APInt(8, -128).sadd_sat(APInt(8, -128))); in TEST()
1213 EXPECT_EQ(APInt(8, 90), AP_100.usub_sat(AP_10)); in TEST()
1214 EXPECT_EQ(APInt(8, 0), AP_100.usub_sat(AP_200)); in TEST()
1215 EXPECT_EQ(APInt(8, 0), APInt(8, 0).usub_sat(APInt(8, 255))); in TEST()
1217 EXPECT_EQ(APInt(8, -90), AP_10.ssub_sat(AP_100)); in TEST()
1218 EXPECT_EQ(APInt(8, 127), AP_100.ssub_sat(-AP_100)); in TEST()
1219 EXPECT_EQ(APInt(8, -128), (-AP_100).ssub_sat(AP_100)); in TEST()
1220 EXPECT_EQ(APInt(8, -128), APInt(8, -128).ssub_sat(APInt(8, 127))); in TEST()
1222 EXPECT_EQ(APInt(8, 250), APInt(8, 50).umul_sat(APInt(8, 5))); in TEST()
1223 EXPECT_EQ(APInt(8, 255), APInt(8, 50).umul_sat(APInt(8, 6))); in TEST()
1224 EXPECT_EQ(APInt(8, 255), APInt(8, -128).umul_sat(APInt(8, 3))); in TEST()
1225 EXPECT_EQ(APInt(8, 255), APInt(8, 3).umul_sat(APInt(8, -128))); in TEST()
1226 EXPECT_EQ(APInt(8, 255), APInt(8, -128).umul_sat(APInt(8, -128))); in TEST()
1228 EXPECT_EQ(APInt(8, 125), APInt(8, 25).smul_sat(APInt(8, 5))); in TEST()
1229 EXPECT_EQ(APInt(8, 127), APInt(8, 25).smul_sat(APInt(8, 6))); in TEST()
1230 EXPECT_EQ(APInt(8, 127), APInt(8, 127).smul_sat(APInt(8, 127))); in TEST()
1231 EXPECT_EQ(APInt(8, -125), APInt(8, -25).smul_sat(APInt(8, 5))); in TEST()
1232 EXPECT_EQ(APInt(8, -125), APInt(8, 25).smul_sat(APInt(8, -5))); in TEST()
1233 EXPECT_EQ(APInt(8, 125), APInt(8, -25).smul_sat(APInt(8, -5))); in TEST()
1234 EXPECT_EQ(APInt(8, 125), APInt(8, 25).smul_sat(APInt(8, 5))); in TEST()
1235 EXPECT_EQ(APInt(8, -128), APInt(8, -25).smul_sat(APInt(8, 6))); in TEST()
1236 EXPECT_EQ(APInt(8, -128), APInt(8, 25).smul_sat(APInt(8, -6))); in TEST()
1237 EXPECT_EQ(APInt(8, 127), APInt(8, -25).smul_sat(APInt(8, -6))); in TEST()
1238 EXPECT_EQ(APInt(8, 127), APInt(8, 25).smul_sat(APInt(8, 6))); in TEST()
1240 EXPECT_EQ(APInt(8, 128), APInt(8, 4).ushl_sat(APInt(8, 5))); in TEST()
1241 EXPECT_EQ(APInt(8, 255), APInt(8, 4).ushl_sat(APInt(8, 6))); in TEST()
1242 EXPECT_EQ(APInt(8, 128), APInt(8, 1).ushl_sat(APInt(8, 7))); in TEST()
1243 EXPECT_EQ(APInt(8, 255), APInt(8, 1).ushl_sat(APInt(8, 8))); in TEST()
1244 EXPECT_EQ(APInt(8, 255), APInt(8, -128).ushl_sat(APInt(8, 2))); in TEST()
1245 EXPECT_EQ(APInt(8, 255), APInt(8, 64).ushl_sat(APInt(8, 2))); in TEST()
1246 EXPECT_EQ(APInt(8, 255), APInt(8, 64).ushl_sat(APInt(8, -2))); in TEST()
1248 EXPECT_EQ(APInt(8, 64), APInt(8, 4).sshl_sat(APInt(8, 4))); in TEST()
1249 EXPECT_EQ(APInt(8, 127), APInt(8, 4).sshl_sat(APInt(8, 5))); in TEST()
1250 EXPECT_EQ(APInt(8, 127), APInt(8, 1).sshl_sat(APInt(8, 8))); in TEST()
1251 EXPECT_EQ(APInt(8, -64), APInt(8, -4).sshl_sat(APInt(8, 4))); in TEST()
1252 EXPECT_EQ(APInt(8, -128), APInt(8, -4).sshl_sat(APInt(8, 5))); in TEST()
1253 EXPECT_EQ(APInt(8, -128), APInt(8, -4).sshl_sat(APInt(8, 6))); in TEST()
1254 EXPECT_EQ(APInt(8, -128), APInt(8, -1).sshl_sat(APInt(8, 7))); in TEST()
1255 EXPECT_EQ(APInt(8, -128), APInt(8, -1).sshl_sat(APInt(8, 8))); in TEST()
1259 EXPECT_EQ(APInt(32, uint64_t(1)), APInt(32, ArrayRef<uint64_t>(1))); in TEST()
1263 EXPECT_EQ(1U, APInt::getBitsNeeded( "0", 2)); in TEST()
1264 EXPECT_EQ(1U, APInt::getBitsNeeded( "1", 2)); in TEST()
1265 EXPECT_EQ(2U, APInt::getBitsNeeded( "10", 2)); in TEST()
1266 EXPECT_EQ(2U, APInt::getBitsNeeded( "11", 2)); in TEST()
1267 EXPECT_EQ(3U, APInt::getBitsNeeded("100", 2)); in TEST()
1269 EXPECT_EQ(1U, APInt::getBitsNeeded( "+0", 2)); in TEST()
1270 EXPECT_EQ(1U, APInt::getBitsNeeded( "+1", 2)); in TEST()
1271 EXPECT_EQ(2U, APInt::getBitsNeeded( "+10", 2)); in TEST()
1272 EXPECT_EQ(2U, APInt::getBitsNeeded( "+11", 2)); in TEST()
1273 EXPECT_EQ(3U, APInt::getBitsNeeded("+100", 2)); in TEST()
1275 EXPECT_EQ(2U, APInt::getBitsNeeded( "-0", 2)); in TEST()
1276 EXPECT_EQ(2U, APInt::getBitsNeeded( "-1", 2)); in TEST()
1277 EXPECT_EQ(3U, APInt::getBitsNeeded( "-10", 2)); in TEST()
1278 EXPECT_EQ(3U, APInt::getBitsNeeded( "-11", 2)); in TEST()
1279 EXPECT_EQ(4U, APInt::getBitsNeeded("-100", 2)); in TEST()
1283 EXPECT_EQ(3U, APInt::getBitsNeeded( "0", 8)); in TEST()
1284 EXPECT_EQ(3U, APInt::getBitsNeeded( "7", 8)); in TEST()
1285 EXPECT_EQ(6U, APInt::getBitsNeeded("10", 8)); in TEST()
1286 EXPECT_EQ(6U, APInt::getBitsNeeded("17", 8)); in TEST()
1287 EXPECT_EQ(6U, APInt::getBitsNeeded("20", 8)); in TEST()
1289 EXPECT_EQ(3U, APInt::getBitsNeeded( "+0", 8)); in TEST()
1290 EXPECT_EQ(3U, APInt::getBitsNeeded( "+7", 8)); in TEST()
1291 EXPECT_EQ(6U, APInt::getBitsNeeded("+10", 8)); in TEST()
1292 EXPECT_EQ(6U, APInt::getBitsNeeded("+17", 8)); in TEST()
1293 EXPECT_EQ(6U, APInt::getBitsNeeded("+20", 8)); in TEST()
1295 EXPECT_EQ(4U, APInt::getBitsNeeded( "-0", 8)); in TEST()
1296 EXPECT_EQ(4U, APInt::getBitsNeeded( "-7", 8)); in TEST()
1297 EXPECT_EQ(7U, APInt::getBitsNeeded("-10", 8)); in TEST()
1298 EXPECT_EQ(7U, APInt::getBitsNeeded("-17", 8)); in TEST()
1299 EXPECT_EQ(7U, APInt::getBitsNeeded("-20", 8)); in TEST()
1303 EXPECT_EQ(1U, APInt::getBitsNeeded( "0", 10)); in TEST()
1304 EXPECT_EQ(2U, APInt::getBitsNeeded( "3", 10)); in TEST()
1305 EXPECT_EQ(4U, APInt::getBitsNeeded( "9", 10)); in TEST()
1306 EXPECT_EQ(4U, APInt::getBitsNeeded("10", 10)); in TEST()
1307 EXPECT_EQ(5U, APInt::getBitsNeeded("19", 10)); in TEST()
1308 EXPECT_EQ(5U, APInt::getBitsNeeded("20", 10)); in TEST()
1310 EXPECT_EQ(1U, APInt::getBitsNeeded( "+0", 10)); in TEST()
1311 EXPECT_EQ(4U, APInt::getBitsNeeded( "+9", 10)); in TEST()
1312 EXPECT_EQ(4U, APInt::getBitsNeeded("+10", 10)); in TEST()
1313 EXPECT_EQ(5U, APInt::getBitsNeeded("+19", 10)); in TEST()
1314 EXPECT_EQ(5U, APInt::getBitsNeeded("+20", 10)); in TEST()
1316 EXPECT_EQ(2U, APInt::getBitsNeeded( "-0", 10)); in TEST()
1317 EXPECT_EQ(5U, APInt::getBitsNeeded( "-9", 10)); in TEST()
1318 EXPECT_EQ(5U, APInt::getBitsNeeded("-10", 10)); in TEST()
1319 EXPECT_EQ(6U, APInt::getBitsNeeded("-19", 10)); in TEST()
1320 EXPECT_EQ(6U, APInt::getBitsNeeded("-20", 10)); in TEST()
1322 EXPECT_EQ(1U, APInt::getBitsNeeded("-1", 10)); in TEST()
1323 EXPECT_EQ(2U, APInt::getBitsNeeded("-2", 10)); in TEST()
1324 EXPECT_EQ(3U, APInt::getBitsNeeded("-4", 10)); in TEST()
1325 EXPECT_EQ(4U, APInt::getBitsNeeded("-8", 10)); in TEST()
1326 EXPECT_EQ(5U, APInt::getBitsNeeded("-16", 10)); in TEST()
1327 EXPECT_EQ(6U, APInt::getBitsNeeded("-23", 10)); in TEST()
1328 EXPECT_EQ(6U, APInt::getBitsNeeded("-32", 10)); in TEST()
1329 EXPECT_EQ(7U, APInt::getBitsNeeded("-64", 10)); in TEST()
1330 EXPECT_EQ(8U, APInt::getBitsNeeded("-127", 10)); in TEST()
1331 EXPECT_EQ(8U, APInt::getBitsNeeded("-128", 10)); in TEST()
1332 EXPECT_EQ(9U, APInt::getBitsNeeded("-255", 10)); in TEST()
1333 EXPECT_EQ(9U, APInt::getBitsNeeded("-256", 10)); in TEST()
1334 EXPECT_EQ(10U, APInt::getBitsNeeded("-512", 10)); in TEST()
1335 EXPECT_EQ(11U, APInt::getBitsNeeded("-1024", 10)); in TEST()
1336 EXPECT_EQ(12U, APInt::getBitsNeeded("-1025", 10)); in TEST()
1340 EXPECT_EQ(4U, APInt::getBitsNeeded( "0", 16)); in TEST()
1341 EXPECT_EQ(4U, APInt::getBitsNeeded( "F", 16)); in TEST()
1342 EXPECT_EQ(8U, APInt::getBitsNeeded("10", 16)); in TEST()
1343 EXPECT_EQ(8U, APInt::getBitsNeeded("1F", 16)); in TEST()
1344 EXPECT_EQ(8U, APInt::getBitsNeeded("20", 16)); in TEST()
1346 EXPECT_EQ(4U, APInt::getBitsNeeded( "+0", 16)); in TEST()
1347 EXPECT_EQ(4U, APInt::getBitsNeeded( "+F", 16)); in TEST()
1348 EXPECT_EQ(8U, APInt::getBitsNeeded("+10", 16)); in TEST()
1349 EXPECT_EQ(8U, APInt::getBitsNeeded("+1F", 16)); in TEST()
1350 EXPECT_EQ(8U, APInt::getBitsNeeded("+20", 16)); in TEST()
1352 EXPECT_EQ(5U, APInt::getBitsNeeded( "-0", 16)); in TEST()
1353 EXPECT_EQ(5U, APInt::getBitsNeeded( "-F", 16)); in TEST()
1354 EXPECT_EQ(9U, APInt::getBitsNeeded("-10", 16)); in TEST()
1355 EXPECT_EQ(9U, APInt::getBitsNeeded("-1F", 16)); in TEST()
1356 EXPECT_EQ(9U, APInt::getBitsNeeded("-20", 16)); in TEST()
1363 APInt(8, 0).toString(S, 2, true, true); in TEST()
1366 APInt(8, 0).toString(S, 8, true, true); in TEST()
1369 APInt(8, 0).toString(S, 10, true, true); in TEST()
1372 APInt(8, 0).toString(S, 16, true, true); in TEST()
1375 APInt(8, 0).toString(S, 36, true, false); in TEST()
1380 APInt(8, 255, isSigned).toString(S, 2, isSigned, true); in TEST()
1383 APInt(8, 255, isSigned).toString(S, 8, isSigned, true); in TEST()
1386 APInt(8, 255, isSigned).toString(S, 10, isSigned, true); in TEST()
1389 APInt(8, 255, isSigned).toString(S, 16, isSigned, true); in TEST()
1392 APInt(8, 255, isSigned).toString(S, 36, isSigned, false); in TEST()
1397 APInt(8, 255, isSigned).toString(S, 2, isSigned, true); in TEST()
1400 APInt(8, 255, isSigned).toString(S, 8, isSigned, true); in TEST()
1403 APInt(8, 255, isSigned).toString(S, 10, isSigned, true); in TEST()
1406 APInt(8, 255, isSigned).toString(S, 16, isSigned, true); in TEST()
1409 APInt(8, 255, isSigned).toString(S, 36, isSigned, false); in TEST()
1415 EXPECT_EQ(APInt(15, 7).logBase2(), 2U); in TEST()
1416 EXPECT_EQ(APInt(15, 7).ceilLogBase2(), 3U); in TEST()
1417 EXPECT_EQ(APInt(15, 7).exactLogBase2(), -1); in TEST()
1418 EXPECT_EQ(APInt(15, 8).logBase2(), 3U); in TEST()
1419 EXPECT_EQ(APInt(15, 8).ceilLogBase2(), 3U); in TEST()
1420 EXPECT_EQ(APInt(15, 8).exactLogBase2(), 3); in TEST()
1421 EXPECT_EQ(APInt(15, 9).logBase2(), 3U); in TEST()
1422 EXPECT_EQ(APInt(15, 9).ceilLogBase2(), 4U); in TEST()
1423 EXPECT_EQ(APInt(15, 9).exactLogBase2(), -1); in TEST()
1429 EXPECT_DEATH((void)APInt(32, "", 0), "Invalid string length"); in TEST()
1430 EXPECT_DEATH((void)APInt(32, "0", 0), "Radix should be 2, 8, 10, 16, or 36!"); in TEST()
1431 EXPECT_DEATH((void)APInt(32, "", 10), "Invalid string length"); in TEST()
1432 EXPECT_DEATH((void)APInt(32, "-", 10), "String is only a sign, needs a value."); in TEST()
1433 EXPECT_DEATH((void)APInt(1, "1234", 10), "Insufficient bit width"); in TEST()
1434 EXPECT_DEATH((void)APInt(32, "\0", 10), "Invalid string length"); in TEST()
1435 EXPECT_DEATH((void)APInt(32, StringRef("1\02", 3), 10), "Invalid character in digit string"); in TEST()
1436 EXPECT_DEATH((void)APInt(32, "1L", 10), "Invalid character in digit string"); in TEST()
1442 APInt ValA(65, -1ULL); in TEST()
1443 APInt ValB(65, 4); in TEST()
1444 APInt ValC(65, 0); in TEST()
1454 EXPECT_EQ(APInt(8, 1), APInt(8, 1).rotl(0)); in TEST()
1455 EXPECT_EQ(APInt(8, 2), APInt(8, 1).rotl(1)); in TEST()
1456 EXPECT_EQ(APInt(8, 4), APInt(8, 1).rotl(2)); in TEST()
1457 EXPECT_EQ(APInt(8, 16), APInt(8, 1).rotl(4)); in TEST()
1458 EXPECT_EQ(APInt(8, 1), APInt(8, 1).rotl(8)); in TEST()
1460 EXPECT_EQ(APInt(8, 16), APInt(8, 16).rotl(0)); in TEST()
1461 EXPECT_EQ(APInt(8, 32), APInt(8, 16).rotl(1)); in TEST()
1462 EXPECT_EQ(APInt(8, 64), APInt(8, 16).rotl(2)); in TEST()
1463 EXPECT_EQ(APInt(8, 1), APInt(8, 16).rotl(4)); in TEST()
1464 EXPECT_EQ(APInt(8, 16), APInt(8, 16).rotl(8)); in TEST()
1466 EXPECT_EQ(APInt(32, 2), APInt(32, 1).rotl(33)); in TEST()
1467 EXPECT_EQ(APInt(32, 2), APInt(32, 1).rotl(APInt(32, 33))); in TEST()
1469 EXPECT_EQ(APInt(32, 2), APInt(32, 1).rotl(33)); in TEST()
1470 EXPECT_EQ(APInt(32, 2), APInt(32, 1).rotl(APInt(32, 33))); in TEST()
1471 EXPECT_EQ(APInt(32, 2), APInt(32, 1).rotl(APInt(33, 33))); in TEST()
1472 EXPECT_EQ(APInt(32, (1 << 8)), APInt(32, 1).rotl(APInt(32, 40))); in TEST()
1473 EXPECT_EQ(APInt(32, (1 << 30)), APInt(32, 1).rotl(APInt(31, 30))); in TEST()
1474 EXPECT_EQ(APInt(32, (1 << 31)), APInt(32, 1).rotl(APInt(31, 31))); in TEST()
1476 EXPECT_EQ(APInt(32, 1), APInt(32, 1).rotl(APInt(1, 0))); in TEST()
1477 EXPECT_EQ(APInt(32, 2), APInt(32, 1).rotl(APInt(1, 1))); in TEST()
1479 EXPECT_EQ(APInt(32, 16), APInt(32, 1).rotl(APInt(3, 4))); in TEST()
1481 EXPECT_EQ(APInt(32, 1), APInt(32, 1).rotl(APInt(64, 64))); in TEST()
1482 EXPECT_EQ(APInt(32, 2), APInt(32, 1).rotl(APInt(64, 65))); in TEST()
1484 EXPECT_EQ(APInt(7, 24), APInt(7, 3).rotl(APInt(7, 3))); in TEST()
1485 EXPECT_EQ(APInt(7, 24), APInt(7, 3).rotl(APInt(7, 10))); in TEST()
1486 EXPECT_EQ(APInt(7, 24), APInt(7, 3).rotl(APInt(5, 10))); in TEST()
1487 EXPECT_EQ(APInt(7, 6), APInt(7, 3).rotl(APInt(12, 120))); in TEST()
1489 EXPECT_EQ(APInt(8, 16), APInt(8, 16).rotr(0)); in TEST()
1490 EXPECT_EQ(APInt(8, 8), APInt(8, 16).rotr(1)); in TEST()
1491 EXPECT_EQ(APInt(8, 4), APInt(8, 16).rotr(2)); in TEST()
1492 EXPECT_EQ(APInt(8, 1), APInt(8, 16).rotr(4)); in TEST()
1493 EXPECT_EQ(APInt(8, 16), APInt(8, 16).rotr(8)); in TEST()
1495 EXPECT_EQ(APInt(8, 1), APInt(8, 1).rotr(0)); in TEST()
1496 EXPECT_EQ(APInt(8, 128), APInt(8, 1).rotr(1)); in TEST()
1497 EXPECT_EQ(APInt(8, 64), APInt(8, 1).rotr(2)); in TEST()
1498 EXPECT_EQ(APInt(8, 16), APInt(8, 1).rotr(4)); in TEST()
1499 EXPECT_EQ(APInt(8, 1), APInt(8, 1).rotr(8)); in TEST()
1501 EXPECT_EQ(APInt(32, (1 << 31)), APInt(32, 1).rotr(33)); in TEST()
1502 EXPECT_EQ(APInt(32, (1 << 31)), APInt(32, 1).rotr(APInt(32, 33))); in TEST()
1504 EXPECT_EQ(APInt(32, (1 << 31)), APInt(32, 1).rotr(33)); in TEST()
1505 EXPECT_EQ(APInt(32, (1 << 31)), APInt(32, 1).rotr(APInt(32, 33))); in TEST()
1506 EXPECT_EQ(APInt(32, (1 << 31)), APInt(32, 1).rotr(APInt(33, 33))); in TEST()
1507 EXPECT_EQ(APInt(32, (1 << 24)), APInt(32, 1).rotr(APInt(32, 40))); in TEST()
1509 EXPECT_EQ(APInt(32, (1 << 2)), APInt(32, 1).rotr(APInt(31, 30))); in TEST()
1510 EXPECT_EQ(APInt(32, (1 << 1)), APInt(32, 1).rotr(APInt(31, 31))); in TEST()
1512 EXPECT_EQ(APInt(32, 1), APInt(32, 1).rotr(APInt(1, 0))); in TEST()
1513 EXPECT_EQ(APInt(32, (1 << 31)), APInt(32, 1).rotr(APInt(1, 1))); in TEST()
1515 EXPECT_EQ(APInt(32, (1 << 28)), APInt(32, 1).rotr(APInt(3, 4))); in TEST()
1517 EXPECT_EQ(APInt(32, 1), APInt(32, 1).rotr(APInt(64, 64))); in TEST()
1518 EXPECT_EQ(APInt(32, (1 << 31)), APInt(32, 1).rotr(APInt(64, 65))); in TEST()
1520 EXPECT_EQ(APInt(7, 48), APInt(7, 3).rotr(APInt(7, 3))); in TEST()
1521 EXPECT_EQ(APInt(7, 48), APInt(7, 3).rotr(APInt(7, 10))); in TEST()
1522 EXPECT_EQ(APInt(7, 48), APInt(7, 3).rotr(APInt(5, 10))); in TEST()
1523 EXPECT_EQ(APInt(7, 65), APInt(7, 3).rotr(APInt(12, 120))); in TEST()
1525 APInt Big(256, "00004000800000000000000000003fff8000000000000003", 16); in TEST()
1526 APInt Rot(256, "3fff80000000000000030000000000000000000040008000", 16); in TEST()
1529 EXPECT_EQ(APInt(32, 8), APInt(32, 1).rotl(Big)); in TEST()
1530 EXPECT_EQ(APInt(32, (1 << 29)), APInt(32, 1).rotr(Big)); in TEST()
1534 APInt ValA(8, 0x01); in TEST()
1535 EXPECT_EQ(ValA, APInt::getSplat(8, ValA)); in TEST()
1536 EXPECT_EQ(APInt(64, 0x0101010101010101ULL), APInt::getSplat(64, ValA)); in TEST()
1538 APInt ValB(3, 5); in TEST()
1539 EXPECT_EQ(APInt(4, 0xD), APInt::getSplat(4, ValB)); in TEST()
1540 EXPECT_EQ(APInt(15, 0xDB6D), APInt::getSplat(15, ValB)); in TEST()
1548 APInt::WordType singleWord = ~APInt::WordType(0) << (APInt::APINT_BITS_PER_WORD - 1); in TEST()
1549 APInt::WordType carry = APInt::tcDecrement(&singleWord, 1); in TEST()
1550 EXPECT_EQ(carry, APInt::WordType(0)); in TEST()
1551 EXPECT_EQ(singleWord, ~APInt::WordType(0) >> 1); in TEST()
1556 APInt::WordType singleWord = 0; in TEST()
1557 APInt::WordType carry = APInt::tcDecrement(&singleWord, 1); in TEST()
1558 EXPECT_EQ(carry, APInt::WordType(1)); in TEST()
1559 EXPECT_EQ(singleWord, ~APInt::WordType(0)); in TEST()
1566 APInt::WordType test[4] = {0x1, 0x1, 0x1, 0x1}; in TEST()
1567 APInt::WordType expected[4] = {0x0, 0x1, 0x1, 0x1}; in TEST()
1568 APInt::tcDecrement(test, 4); in TEST()
1569 EXPECT_EQ(APInt::tcCompare(test, expected, 4), 0); in TEST()
1574 APInt::WordType test[4] = {0x0, 0xF, 0x1, 0x1}; in TEST()
1575 APInt::WordType expected[4] = {~APInt::WordType(0), 0xE, 0x1, 0x1}; in TEST()
1576 APInt::WordType carry = APInt::tcDecrement(test, 4); in TEST()
1577 EXPECT_EQ(carry, APInt::WordType(0)); in TEST()
1578 EXPECT_EQ(APInt::tcCompare(test, expected, 4), 0); in TEST()
1583 APInt::WordType test[4] = {0x0, 0x0, 0xC, 0x1}; in TEST()
1584 APInt::WordType expected[4] = {~APInt::WordType(0), ~APInt::WordType(0), 0xB, 0x1}; in TEST()
1585 APInt::WordType carry = APInt::tcDecrement(test, 4); in TEST()
1586 EXPECT_EQ(carry, APInt::WordType(0)); in TEST()
1587 EXPECT_EQ(APInt::tcCompare(test, expected, 4), 0); in TEST()
1592 APInt::WordType test[4] = {0x0, 0x0, 0x0, 0x1}; in TEST()
1593APInt::WordType expected[4] = {~APInt::WordType(0), ~APInt::WordType(0), ~APInt::WordType(0), 0x0}; in TEST()
1594 APInt::WordType carry = APInt::tcDecrement(test, 4); in TEST()
1595 EXPECT_EQ(carry, APInt::WordType(0)); in TEST()
1596 EXPECT_EQ(APInt::tcCompare(test, expected, 4), 0); in TEST()
1601 APInt::WordType test[4] = {0x0, 0x0, 0x0, 0x0}; in TEST()
1602APInt::WordType expected[4] = {~APInt::WordType(0), ~APInt::WordType(0), ~APInt::WordType(0), ~API… in TEST()
1603 APInt::WordType carry = APInt::tcDecrement(test, 4); in TEST()
1604 EXPECT_EQ(carry, APInt::WordType(1)); in TEST()
1605 EXPECT_EQ(APInt::tcCompare(test, expected, 4), 0); in TEST()
1612 APInt A1(64, E1); in TEST()
1619 APInt::WordType E2[4] = { in TEST()
1625 APInt A2(APInt::APINT_BITS_PER_WORD*4, E2); in TEST()
1627 for (unsigned j = 0; j < APInt::APINT_BITS_PER_WORD; ++j) { in TEST()
1629 A2[i*APInt::APINT_BITS_PER_WORD + j]); in TEST()
1638 APInt A9(UINT32_MAX, 0); in TEST()
1647 APInt A1(64, I1); in TEST()
1652 APInt A2(64, I2); in TEST()
1657 APInt A3(64, I3); in TEST()
1663 APInt::WordType I4[4] = {0x0, 0xF, 0x18, 0x0}; in TEST()
1664 APInt A4(APInt::APINT_BITS_PER_WORD*4, I4); in TEST()
1668 APInt::WordType I5[4] = {0x0, 0xF, 0x10, 0x0}; in TEST()
1669 APInt A5(APInt::APINT_BITS_PER_WORD*4, I5); in TEST()
1674 APInt A6(APInt::APINT_BITS_PER_WORD*4, I6); in TEST()
1678 APInt A7(1, 1); in TEST()
1680 APInt A8(1, 0); in TEST()
1685 APInt A9(UINT32_MAX, 0); in TEST()
1690 APInt A(32, 0x01010101); in TEST()
1698 APInt B(24, 0xAAAAAA); in TEST()
1705 APInt C(24, 0xABAAAB); in TEST()
1712 APInt D(32, 0xABBAABBA); in TEST()
1720 APInt E(32, 0); in TEST()
1730 EXPECT_FALSE(APInt(32, 0x01010101).isMask()); in TEST()
1731 EXPECT_FALSE(APInt(32, 0xf0000000).isMask()); in TEST()
1732 EXPECT_FALSE(APInt(32, 0xffff0000).isMask()); in TEST()
1733 EXPECT_FALSE(APInt(32, 0xff << 1).isMask()); in TEST()
1736 EXPECT_FALSE(APInt(N, 0).isMask()); in TEST()
1738 APInt One(N, 1); in TEST()
1740 APInt MaskVal = One.shl(I) - 1; in TEST()
1748 EXPECT_FALSE(APInt(32, 0x01010101).isShiftedMask()); in TEST()
1749 EXPECT_TRUE(APInt(32, 0xf0000000).isShiftedMask()); in TEST()
1750 EXPECT_TRUE(APInt(32, 0xffff0000).isShiftedMask()); in TEST()
1751 EXPECT_TRUE(APInt(32, 0xff << 1).isShiftedMask()); in TEST()
1754 EXPECT_FALSE(APInt(32, 0x01010101).isShiftedMask(MaskIdx, MaskLen)); in TEST()
1755 EXPECT_TRUE(APInt(32, 0xf0000000).isShiftedMask(MaskIdx, MaskLen)); in TEST()
1758 EXPECT_TRUE(APInt(32, 0xffff0000).isShiftedMask(MaskIdx, MaskLen)); in TEST()
1761 EXPECT_TRUE(APInt(32, 0xff << 1).isShiftedMask(MaskIdx, MaskLen)); in TEST()
1766 EXPECT_FALSE(APInt(N, 0).isShiftedMask()); in TEST()
1767 EXPECT_FALSE(APInt(N, 0).isShiftedMask(MaskIdx, MaskLen)); in TEST()
1769 APInt One(N, 1); in TEST()
1771 APInt MaskVal = One.shl(I) - 1; in TEST()
1778 APInt MaskVal = One.shl(I); in TEST()
1785 APInt MaskVal = APInt::getHighBitsSet(N, I); in TEST()
1795 EXPECT_FALSE(APInt(5, 0x00).isPowerOf2()); in TEST()
1796 EXPECT_FALSE(APInt(32, 0x11).isPowerOf2()); in TEST()
1797 EXPECT_TRUE(APInt(17, 0x01).isPowerOf2()); in TEST()
1798 EXPECT_TRUE(APInt(32, (unsigned)(0xffu << 31)).isPowerOf2()); in TEST()
1801 EXPECT_FALSE(APInt(N, 0).isPowerOf2()); in TEST()
1802 EXPECT_TRUE(APInt::getSignedMinValue(N).isPowerOf2()); in TEST()
1804 APInt One(N, 1); in TEST()
1806 EXPECT_TRUE(APInt::getOneBitSet(N, I).isPowerOf2()); in TEST()
1808 APInt MaskVal = One.shl(I); in TEST()
1815 EXPECT_FALSE(APInt(5, 0x00).isNegatedPowerOf2()); in TEST()
1816 EXPECT_TRUE(APInt(15, 0x7ffe).isNegatedPowerOf2()); in TEST()
1817 EXPECT_TRUE(APInt(16, 0xfffc).isNegatedPowerOf2()); in TEST()
1818 EXPECT_TRUE(APInt(32, 0xffffffff).isNegatedPowerOf2()); in TEST()
1821 EXPECT_FALSE(APInt(N, 0).isNegatedPowerOf2()); in TEST()
1822 EXPECT_TRUE(APInt::getAllOnes(N).isNegatedPowerOf2()); in TEST()
1823 EXPECT_TRUE(APInt::getSignedMinValue(N).isNegatedPowerOf2()); in TEST()
1824 EXPECT_TRUE((-APInt::getSignedMinValue(N)).isNegatedPowerOf2()); in TEST()
1826 APInt One(N, 1); in TEST()
1828 EXPECT_FALSE(APInt::getOneBitSet(N, I).isNegatedPowerOf2()); in TEST()
1829 EXPECT_TRUE((-APInt::getOneBitSet(N, I)).isNegatedPowerOf2()); in TEST()
1831 APInt MaskVal = One.shl(I); in TEST()
1834 APInt ShiftMaskVal = One.getHighBitsSet(N, I); in TEST()
1852 APInt X(32, 0xdeadbeef); in TEST()
1858 APInt Y(128, Bits); in TEST()
1874 EXPECT_EQ(0x00000000, APInt(16, 0x0000).byteSwap()); in TEST()
1875 EXPECT_EQ(0x0000010f, APInt(16, 0x0f01).byteSwap()); in TEST()
1876 EXPECT_EQ(0x00ff8000, APInt(24, 0x0080ff).byteSwap()); in TEST()
1877 EXPECT_EQ(0x117700ff, APInt(32, 0xff007711).byteSwap()); in TEST()
1878 EXPECT_EQ(0x228811aaffULL, APInt(40, 0xffaa118822ULL).byteSwap()); in TEST()
1879 EXPECT_EQ(0x050403020100ULL, APInt(48, 0x000102030405ULL).byteSwap()); in TEST()
1880 EXPECT_EQ(0xff050403020100ULL, APInt(56, 0x000102030405ffULL).byteSwap()); in TEST()
1881 EXPECT_EQ(0xff050403020100aaULL, APInt(64, 0xaa000102030405ffULL).byteSwap()); in TEST()
1886 APInt X = APInt::getBitsSet(N, I, I + 8); in TEST()
1887 APInt Y = APInt::getBitsSet(N, N - I - 8, N - I); in TEST()
1895 EXPECT_EQ(1, APInt(1, 1).reverseBits()); in TEST()
1896 EXPECT_EQ(0, APInt(1, 0).reverseBits()); in TEST()
1898 EXPECT_EQ(3, APInt(2, 3).reverseBits()); in TEST()
1899 EXPECT_EQ(3, APInt(2, 3).reverseBits()); in TEST()
1901 EXPECT_EQ(0xb, APInt(4, 0xd).reverseBits()); in TEST()
1902 EXPECT_EQ(0xd, APInt(4, 0xb).reverseBits()); in TEST()
1903 EXPECT_EQ(0xf, APInt(4, 0xf).reverseBits()); in TEST()
1905 EXPECT_EQ(0x30, APInt(7, 0x6).reverseBits()); in TEST()
1906 EXPECT_EQ(0x5a, APInt(7, 0x2d).reverseBits()); in TEST()
1908 EXPECT_EQ(0x0f, APInt(8, 0xf0).reverseBits()); in TEST()
1909 EXPECT_EQ(0xf0, APInt(8, 0x0f).reverseBits()); in TEST()
1911 EXPECT_EQ(0x0f0f, APInt(16, 0xf0f0).reverseBits()); in TEST()
1912 EXPECT_EQ(0xf0f0, APInt(16, 0x0f0f).reverseBits()); in TEST()
1914 EXPECT_EQ(0x0f0f0f0f, APInt(32, 0xf0f0f0f0).reverseBits()); in TEST()
1915 EXPECT_EQ(0xf0f0f0f0, APInt(32, 0x0f0f0f0f).reverseBits()); in TEST()
1917 EXPECT_EQ(0x402880a0 >> 1, APInt(31, 0x05011402).reverseBits()); in TEST()
1919 EXPECT_EQ(0x0f0f0f0f, APInt(32, 0xf0f0f0f0).reverseBits()); in TEST()
1920 EXPECT_EQ(0xf0f0f0f0, APInt(32, 0x0f0f0f0f).reverseBits()); in TEST()
1922 EXPECT_EQ(0x0f0f0f0f0f0f0f0f, APInt(64, 0xf0f0f0f0f0f0f0f0).reverseBits()); in TEST()
1923 EXPECT_EQ(0xf0f0f0f0f0f0f0f0, APInt(64, 0x0f0f0f0f0f0f0f0f).reverseBits()); in TEST()
1928 APInt X = APInt::getOneBitSet(N, I); in TEST()
1929 APInt Y = APInt::getOneBitSet(N, N - (I + 1)); in TEST()
1937 APInt iSrc(31, 0x00123456); in TEST()
1940 APInt i31(31, 0x76543210ull); in TEST()
1945 APInt i63(63, 0x01234567FFFFFFFFull); in TEST()
1950 i31.insertBits(APInt::getZeroWidth(), 1); in TEST()
1954 APInt i120(120, UINT64_MAX, true); in TEST()
1959 APInt i127(127, UINT64_MAX, true); in TEST()
1965 APInt i128(128, 0); in TEST()
1966 i128.insertBits(APInt(64, UINT64_MAX, true), 0); in TEST()
1967 i128.insertBits(APInt(64, UINT64_MAX, true), 64); in TEST()
1970 APInt i256(256, UINT64_MAX, true); in TEST()
1971 i256.insertBits(APInt(65, 0), 0); in TEST()
1972 i256.insertBits(APInt(69, 0), 64); in TEST()
1973 i256.insertBits(APInt(128, 0), 128); in TEST()
1976 APInt i257(257, 0); in TEST()
1977 i257.insertBits(APInt(96, UINT64_MAX, true), 64); in TEST()
1984 APInt i260(260, UINT64_MAX, true); in TEST()
1985 i260.insertBits(APInt(129, 1ull << 48), 15); in TEST()
1998 APInt i31(31, 0x76543210ull); in TEST()
2003 APInt i63(63, 0x01234567FFFFFFFFull); in TEST()
2008 APInt i120(120, UINT64_MAX, true); in TEST()
2013 APInt i127(127, UINT64_MAX, true); in TEST()
2019 APInt i128(128, 0); in TEST()
2024 APInt i256(256, UINT64_MAX, true); in TEST()
2033 APInt i257(257, 0); in TEST()
2034 i257.insertBits(APInt(96, UINT64_MAX, true), 64); in TEST()
2042 APInt i260(260, UINT64_MAX, true); in TEST()
2043 i260.insertBits(APInt(129, 1ull << 48), 15); in TEST()
2052 APInt i32(32, 0x1234567); in TEST()
2055 APInt i64(64, 0x01234567FFFFFFFFull); in TEST()
2061 APInt i257(257, 0xFFFFFFFFFF0000FFull, true); in TEST()
2081 EXPECT_EQ(APInt(48, 0), in TEST()
2082 APInt(144, "281474976710655", 10).extractBits(48, 48)); in TEST()
2083 EXPECT_EQ(APInt(48, 0), in TEST()
2084 APInt(144, "281474976710655", 10).lshr(48).trunc(48)); in TEST()
2085 EXPECT_EQ(APInt(48, 0x0000ffffffffffffull), in TEST()
2086 APInt(144, "281474976710655", 10).extractBits(48, 0)); in TEST()
2087 EXPECT_EQ(APInt(48, 0x0000ffffffffffffull), in TEST()
2088 APInt(144, "281474976710655", 10).lshr(0).trunc(48)); in TEST()
2089 EXPECT_EQ(APInt(48, 0x00007fffffffffffull), in TEST()
2090 APInt(144, "281474976710655", 10).extractBits(48, 1)); in TEST()
2091 EXPECT_EQ(APInt(48, 0x00007fffffffffffull), in TEST()
2092 APInt(144, "281474976710655", 10).lshr(1).trunc(48)); in TEST()
2097 APInt i32(32, 0x1234567); in TEST()
2100 APInt i257(257, 0xFFFFFFFFFF0000FFull, true); in TEST()
2114 EXPECT_EQ(APInt(48, 0), in TEST()
2115 APInt(144, "281474976710655", 10).extractBitsAsZExtValue(48, 48)); in TEST()
2116 EXPECT_EQ(APInt(48, 0x0000ffffffffffffull), in TEST()
2117 APInt(144, "281474976710655", 10).extractBitsAsZExtValue(48, 0)); in TEST()
2118 EXPECT_EQ(APInt(48, 0x00007fffffffffffull), in TEST()
2119 APInt(144, "281474976710655", 10).extractBitsAsZExtValue(48, 1)); in TEST()
2123 APInt i128lo64 = APInt::getLowBitsSet(128, 64); in TEST()
2133 APInt i64hi1lo1 = APInt::getBitsSet(64, 1, 63); in TEST()
2141 APInt i127hi1lo1 = APInt::getBitsSet(127, 1, 126); in TEST()
2151 APInt i64hi1lo1 = APInt::getBitsSetWithWrap(64, 1, 63); in TEST()
2159 APInt i127hi1lo1 = APInt::getBitsSetWithWrap(127, 1, 126); in TEST()
2167 APInt i64hi1lo1wrap = APInt::getBitsSetWithWrap(64, 63, 1); in TEST()
2175 APInt i127hi1lo1wrap = APInt::getBitsSetWithWrap(127, 126, 1); in TEST()
2183 APInt i32hiequallowrap = APInt::getBitsSetWithWrap(32, 10, 10); in TEST()
2193 APInt i64hi32 = APInt::getHighBitsSet(64, 32); in TEST()
2203 APInt i64hi31 = APInt::getBitsSetFrom(64, 33); in TEST()
2213 APInt i64lo32(64, 0); in TEST()
2222 APInt i128lo64(128, 0); in TEST()
2231 APInt i128lo24(128, 0); in TEST()
2240 APInt i128lo104(128, 0); in TEST()
2249 APInt i128lo0(128, 0); in TEST()
2258 APInt i80lo79(80, 0); in TEST()
2269 APInt i64hi32(64, 0); in TEST()
2278 APInt i128hi64(128, 0); in TEST()
2287 APInt i128hi24(128, 0); in TEST()
2296 APInt i128hi104(128, 0); in TEST()
2305 APInt i128hi0(128, 0); in TEST()
2314 APInt i80hi1(80, 0); in TEST()
2323 APInt i32hi16(32, 0); in TEST()
2334 APInt i64from63(64, 0); in TEST()
2345 APInt i32(32, 0); in TEST()
2354 APInt i64(64, 0); in TEST()
2363 APInt i96(96, 0); in TEST()
2372 APInt i128(128, 0); in TEST()
2383 APInt i32(32, 0xfa); in TEST()
2386 APInt i128(128, 0xfa); in TEST()
2392 APInt i32(32, 0xfa); in TEST()
2395 APInt i128(128, 0xfa); in TEST()
2401 APInt i64hi32 = APInt::getAllOnes(64); in TEST()
2410 APInt i128hi64 = APInt::getAllOnes(128); in TEST()
2419 APInt i128hi24 = APInt::getAllOnes(128); in TEST()
2428 APInt i128hi104 = APInt::getAllOnes(128); in TEST()
2437 APInt i128hi0 = APInt::getAllOnes(128); in TEST()
2446 APInt i80hi1 = APInt::getAllOnes(80); in TEST()
2455 APInt i32hi16 = APInt::getAllOnes(32); in TEST()
2470 APInt Zero(Bits, 0), One(Bits, 1); in TEST()
2477 APInt Two(Bits, 2); in TEST()
2483 APInt Max(Bits, 0); in TEST()
2490 APInt MaxOver2 = Max.udiv(Two); in TEST()
2499 APInt HugePrime = APInt::getLowBitsSet(BitWidth, 4423); in TEST()
2502 APInt A = HugePrime * APInt(BitWidth, 9931); in TEST()
2503 APInt B = HugePrime * APInt(BitWidth, 123456); in TEST()
2504 APInt C = GreatestCommonDivisor(A, B); in TEST()
2509 APInt i256(APInt::getHighBitsSet(256, 2)); in TEST()
2537 const APInt neg_one(128, static_cast<uint64_t>(-1), true); in TEST()
2542 APInt i72(APInt::getHighBitsSet(72, 1)); in TEST()
2548 i72 = APInt::getHighBitsSet(72, 1); in TEST()
2554 APInt i128(APInt::getHighBitsSet(128, 1)); in TEST()
2561 const APInt signmin32(APInt::getSignedMinValue(32)); in TEST()
2565 const APInt umax32(APInt::getSignedMaxValue(32)); in TEST()
2569 const APInt signmin128(APInt::getSignedMinValue(128)); in TEST()
2573 const APInt umax128(APInt::getSignedMaxValue(128)); in TEST()
2578 APInt i256(APInt::getLowBitsSet(256, 2)); in TEST()
2606 const APInt neg_one(128, static_cast<uint64_t>(-1), true); in TEST()
2611 APInt i32_1(32, 1); in TEST()
2612 APInt i32_2(32, 2); in TEST()
2613 APInt i32_3(32, 3); in TEST()
2620 APInt i128_1(128, 1); in TEST()
2621 APInt i128_2(128, 2); in TEST()
2622 APInt i128_3(128, 3); in TEST()
2640 EXPECT_EQ(0, APInt(1, 0).sext(64)); in TEST()
2641 EXPECT_EQ(~uint64_t(0), APInt(1, 1).sext(64)); in TEST()
2643 APInt i32_max(APInt::getSignedMaxValue(32).sext(63)); in TEST()
2649 APInt i32_min(APInt::getSignedMinValue(32).sext(63)); in TEST()
2655 APInt i32_neg1(APInt(32, ~uint64_t(0)).sext(63)); in TEST()
2663 APInt val(32, 0xFFFFFFFF); in TEST()
2669 APInt Int1(4, 0x1ULL); in TEST()
2670 APInt Int3(4, 0x3ULL); in TEST()
2673 EXPECT_EQ(APInt(12, 0x313), Int3.concat(Int1).concat(Int3)); in TEST()
2674 EXPECT_EQ(APInt(16, 0x3313), Int3.concat(Int3).concat(Int1).concat(Int3)); in TEST()
2676 APInt I64(64, 0x3ULL); in TEST()
2679 APInt I65(65, 0x3ULL); in TEST()
2680 APInt I0 = APInt::getZeroWidth(); in TEST()
2686 APInt i64(64, 1234); in TEST()
2691 APInt i128 = APInt::getOneBitSet(128, 64); in TEST()
2692 APInt i128_1234(128, 1234); in TEST()
2697 APInt i96 = APInt::getOneBitSet(96, 64); in TEST()
2706 APInt A(8, Ai); in TEST()
2707 APInt Zero(8, 0); in TEST()
2708 EXPECT_EQ(0, APIntOps::RoundingUDiv(Zero, A, APInt::Rounding::UP)); in TEST()
2709 EXPECT_EQ(0, APIntOps::RoundingUDiv(Zero, A, APInt::Rounding::DOWN)); in TEST()
2710 EXPECT_EQ(0, APIntOps::RoundingUDiv(Zero, A, APInt::Rounding::TOWARD_ZERO)); in TEST()
2713 APInt B(8, Bi); in TEST()
2715 APInt Quo = APIntOps::RoundingUDiv(A, B, APInt::Rounding::UP); in TEST()
2723 APInt Quo = A.udiv(B); in TEST()
2724 EXPECT_EQ(Quo, APIntOps::RoundingUDiv(A, B, APInt::Rounding::TOWARD_ZERO)); in TEST()
2725 EXPECT_EQ(Quo, APIntOps::RoundingUDiv(A, B, APInt::Rounding::DOWN)); in TEST()
2733 APInt A(8, Ai); in TEST()
2736 APInt Zero(8, 0); in TEST()
2737 EXPECT_EQ(0, APIntOps::RoundingSDiv(Zero, A, APInt::Rounding::UP)); in TEST()
2738 EXPECT_EQ(0, APIntOps::RoundingSDiv(Zero, A, APInt::Rounding::DOWN)); in TEST()
2739 EXPECT_EQ(0, APIntOps::RoundingSDiv(Zero, A, APInt::Rounding::TOWARD_ZERO)); in TEST()
2746 APInt B(8, Bi); in TEST()
2747 APInt QuoTowardZero = A.sdiv(B); in TEST()
2749 APInt Quo = APIntOps::RoundingSDiv(A, B, APInt::Rounding::UP); in TEST()
2760 APInt Quo = APIntOps::RoundingSDiv(A, B, APInt::Rounding::DOWN); in TEST()
2771 APIntOps::RoundingSDiv(A, B, APInt::Rounding::TOWARD_ZERO)); in TEST()
2791 APInt A(64, X.first); in TEST()
2792 APInt B(64, X.second); in TEST()
2797 APInt A(64, X.first); in TEST()
2798 APInt B(64, X.second); in TEST()
2806 APInt N1 = APInt(Bits, A), N2 = APInt(Bits, B); in TEST()
2807 APInt Narrow = N1.umul_ov(N2, Overflow); in TEST()
2808 APInt Wide = N1.zext(2 * Bits) * N2.zext(2 * Bits); in TEST()
2819 APInt N1 = APInt(Bits, A), N2 = APInt(Bits, B); in TEST()
2820 APInt Narrow = N1.smul_ov(N2, Overflow); in TEST()
2821 APInt Wide = N1.sext(2 * Bits) * N2.sext(2 * Bits); in TEST()
2897 Optional<APInt> S = APIntOps::SolveQuadraticEquationWrap( in TEST()
2898 APInt(Width, A), APInt(Width, B), in TEST()
2899 APInt(Width, C), Width); in TEST()
2915 APInt V = APInt(BitWidth, Value); in TEST()
2916 APInt MulInv = in TEST()
2918 .multiplicativeInverse(APInt::getSignedMinValue(BitWidth + 1)) in TEST()
2920 APInt One = V * MulInv; in TEST()
2933 EXPECT_EQ(APIntOps::GetMostSignificantDifferentBit(APInt(8, 0), APInt(8, 0)), in TEST()
2936 APIntOps::GetMostSignificantDifferentBit(APInt(8, 42), APInt(8, 42)), in TEST()
2938 EXPECT_EQ(*APIntOps::GetMostSignificantDifferentBit(APInt(8, 0), APInt(8, 1)), in TEST()
2940 EXPECT_EQ(*APIntOps::GetMostSignificantDifferentBit(APInt(8, 0), APInt(8, 2)), in TEST()
2942 EXPECT_EQ(*APIntOps::GetMostSignificantDifferentBit(APInt(8, 0), APInt(8, 3)), in TEST()
2944 EXPECT_EQ(*APIntOps::GetMostSignificantDifferentBit(APInt(8, 1), APInt(8, 0)), in TEST()
2946 EXPECT_EQ(APIntOps::GetMostSignificantDifferentBit(APInt(8, 1), APInt(8, 1)), in TEST()
2948 EXPECT_EQ(*APIntOps::GetMostSignificantDifferentBit(APInt(8, 1), APInt(8, 2)), in TEST()
2950 EXPECT_EQ(*APIntOps::GetMostSignificantDifferentBit(APInt(8, 1), APInt(8, 3)), in TEST()
2953 *APIntOps::GetMostSignificantDifferentBit(APInt(8, 42), APInt(8, 112)), in TEST()
2959 [](const APInt &V0, const APInt &V1) -> llvm::Optional<unsigned> { in TEST()
2975 APInt A = APInt(BitWidth, V0); in TEST()
2976 APInt B = APInt(BitWidth, V1); in TEST()
2986 APInt Adash = A; in TEST()
2988 APInt Bdash = B; in TEST()
3004 EXPECT_TRUE(APInt(8, -1).isNegative()); in TEST()
3005 EXPECT_FALSE(APInt(8, -1).isNonNegative()); in TEST()
3006 EXPECT_FALSE(APInt(8, -1).isStrictlyPositive()); in TEST()
3007 EXPECT_TRUE(APInt(8, -1).isNonPositive()); in TEST()
3009 EXPECT_FALSE(APInt(8, 0).isNegative()); in TEST()
3010 EXPECT_TRUE(APInt(8, 0).isNonNegative()); in TEST()
3011 EXPECT_FALSE(APInt(8, 0).isStrictlyPositive()); in TEST()
3012 EXPECT_TRUE(APInt(8, 0).isNonPositive()); in TEST()
3014 EXPECT_FALSE(APInt(8, 1).isNegative()); in TEST()
3015 EXPECT_TRUE(APInt(8, 1).isNonNegative()); in TEST()
3016 EXPECT_TRUE(APInt(8, 1).isStrictlyPositive()); in TEST()
3017 EXPECT_FALSE(APInt(8, 1).isNonPositive()); in TEST()
3022 auto ZW = APInt::getZeroWidth(); in TEST()
3024 EXPECT_EQ(0U, APInt(0, ArrayRef<uint64_t>({0, 1, 2})).getBitWidth()); in TEST()
3025 EXPECT_EQ(0U, APInt(0, "0", 10).getBitWidth()); in TEST()
3028 EXPECT_EQ(1U, APInt().getBitWidth()); in TEST()
3031 APInt ZW2(ZW); in TEST()
3038 EXPECT_EQ(0U, APInt::getLowBitsSet(0, 0).getBitWidth()); in TEST()
3039 EXPECT_EQ(0U, APInt::getSplat(0, ZW).getBitWidth()); in TEST()
3040 EXPECT_EQ(0U, APInt(4, 10).extractBits(0, 2).getBitWidth()); in TEST()
3082 EXPECT_EQ(0U, APInt(4, 3).trunc(0).getBitWidth()); in TEST()
3093 APInt MZW1(std::move(ZW)); in TEST()
3101 EXPECT_EQ(APIntOps::ScaleBitMask(APInt(2, 0x00), 8), APInt(8, 0x00)); in TEST()
3102 EXPECT_EQ(APIntOps::ScaleBitMask(APInt(2, 0x01), 8), APInt(8, 0x0F)); in TEST()
3103 EXPECT_EQ(APIntOps::ScaleBitMask(APInt(2, 0x02), 8), APInt(8, 0xF0)); in TEST()
3104 EXPECT_EQ(APIntOps::ScaleBitMask(APInt(2, 0x03), 8), APInt(8, 0xFF)); in TEST()
3106 EXPECT_EQ(APIntOps::ScaleBitMask(APInt(8, 0x00), 4), APInt(4, 0x00)); in TEST()
3107 EXPECT_EQ(APIntOps::ScaleBitMask(APInt(8, 0xFF), 4), APInt(4, 0x0F)); in TEST()
3108 EXPECT_EQ(APIntOps::ScaleBitMask(APInt(8, 0xE4), 4), APInt(4, 0x0E)); in TEST()
3110 EXPECT_EQ(APIntOps::ScaleBitMask(APInt(8, 0x00), 8), APInt(8, 0x00)); in TEST()
3112 EXPECT_EQ(APIntOps::ScaleBitMask(APInt::getNullValue(1024), 4096), in TEST()
3113 APInt::getNullValue(4096)); in TEST()
3114 EXPECT_EQ(APIntOps::ScaleBitMask(APInt::getAllOnes(4096), 256), in TEST()
3115 APInt::getAllOnes(256)); in TEST()
3116 EXPECT_EQ(APIntOps::ScaleBitMask(APInt::getOneBitSet(4096, 32), 256), in TEST()
3117 APInt::getOneBitSet(256, 2)); in TEST()
3119 EXPECT_EQ(APIntOps::ScaleBitMask(APInt(2, 0x00), 8, true), APInt(8, 0x00)); in TEST()
3120 EXPECT_EQ(APIntOps::ScaleBitMask(APInt(2, 0x01), 8, true), APInt(8, 0x0F)); in TEST()
3121 EXPECT_EQ(APIntOps::ScaleBitMask(APInt(2, 0x02), 8, true), APInt(8, 0xF0)); in TEST()
3122 EXPECT_EQ(APIntOps::ScaleBitMask(APInt(2, 0x03), 8, true), APInt(8, 0xFF)); in TEST()
3124 EXPECT_EQ(APIntOps::ScaleBitMask(APInt(8, 0x00), 4, true), APInt(4, 0x00)); in TEST()
3125 EXPECT_EQ(APIntOps::ScaleBitMask(APInt(8, 0xFF), 4, true), APInt(4, 0x0F)); in TEST()
3126 EXPECT_EQ(APIntOps::ScaleBitMask(APInt(8, 0xE4), 4, true), APInt(4, 0x08)); in TEST()