@@ -1111,11 +1111,11 @@ TEST(APIntTest, fromString) {
1111
1111
EXPECT_EQ (APInt (32 , 3 ), APInt (32 , " +11" , 2 ));
1112
1112
EXPECT_EQ (APInt (32 , 4 ), APInt (32 , " +100" , 2 ));
1113
1113
1114
- EXPECT_EQ (APInt (32 , uint64_t (-0LL )), APInt (32 , " -0" , 2 ));
1115
- EXPECT_EQ (APInt (32 , uint64_t (-1LL )), APInt (32 , " -1" , 2 ));
1116
- EXPECT_EQ (APInt (32 , uint64_t (-2LL )), APInt (32 , " -10" , 2 ));
1117
- EXPECT_EQ (APInt (32 , uint64_t (-3LL )), APInt (32 , " -11" , 2 ));
1118
- EXPECT_EQ (APInt (32 , uint64_t (-4LL )), APInt (32 , " -100" , 2 ));
1114
+ EXPECT_EQ (APInt (32 , uint32_t (-0LL )), APInt (32 , " -0" , 2 ));
1115
+ EXPECT_EQ (APInt (32 , uint32_t (-1LL )), APInt (32 , " -1" , 2 ));
1116
+ EXPECT_EQ (APInt (32 , uint32_t (-2LL )), APInt (32 , " -10" , 2 ));
1117
+ EXPECT_EQ (APInt (32 , uint32_t (-3LL )), APInt (32 , " -11" , 2 ));
1118
+ EXPECT_EQ (APInt (32 , uint32_t (-4LL )), APInt (32 , " -100" , 2 ));
1119
1119
1120
1120
EXPECT_EQ (APInt (32 , 0 ), APInt (32 , " 0" , 8 ));
1121
1121
EXPECT_EQ (APInt (32 , 1 ), APInt (32 , " 1" , 8 ));
@@ -1131,12 +1131,12 @@ TEST(APIntTest, fromString) {
1131
1131
EXPECT_EQ (APInt (32 , +15 ), APInt (32 , " +17" , 8 ));
1132
1132
EXPECT_EQ (APInt (32 , +16 ), APInt (32 , " +20" , 8 ));
1133
1133
1134
- EXPECT_EQ (APInt (32 , uint64_t (-0LL )), APInt (32 , " -0" , 8 ));
1135
- EXPECT_EQ (APInt (32 , uint64_t (-1LL )), APInt (32 , " -1" , 8 ));
1136
- EXPECT_EQ (APInt (32 , uint64_t (-7LL )), APInt (32 , " -7" , 8 ));
1137
- EXPECT_EQ (APInt (32 , uint64_t (-8LL )), APInt (32 , " -10" , 8 ));
1138
- EXPECT_EQ (APInt (32 , uint64_t (-15LL )), APInt (32 , " -17" , 8 ));
1139
- EXPECT_EQ (APInt (32 , uint64_t (-16LL )), APInt (32 , " -20" , 8 ));
1134
+ EXPECT_EQ (APInt (32 , uint32_t (-0LL )), APInt (32 , " -0" , 8 ));
1135
+ EXPECT_EQ (APInt (32 , uint32_t (-1LL )), APInt (32 , " -1" , 8 ));
1136
+ EXPECT_EQ (APInt (32 , uint32_t (-7LL )), APInt (32 , " -7" , 8 ));
1137
+ EXPECT_EQ (APInt (32 , uint32_t (-8LL )), APInt (32 , " -10" , 8 ));
1138
+ EXPECT_EQ (APInt (32 , uint32_t (-15LL )), APInt (32 , " -17" , 8 ));
1139
+ EXPECT_EQ (APInt (32 , uint32_t (-16LL )), APInt (32 , " -20" , 8 ));
1140
1140
1141
1141
EXPECT_EQ (APInt (32 , 0 ), APInt (32 , " 0" , 10 ));
1142
1142
EXPECT_EQ (APInt (32 , 1 ), APInt (32 , " 1" , 10 ));
@@ -1145,12 +1145,12 @@ TEST(APIntTest, fromString) {
1145
1145
EXPECT_EQ (APInt (32 , 19 ), APInt (32 , " 19" , 10 ));
1146
1146
EXPECT_EQ (APInt (32 , 20 ), APInt (32 , " 20" , 10 ));
1147
1147
1148
- EXPECT_EQ (APInt (32 , uint64_t (-0LL )), APInt (32 , " -0" , 10 ));
1149
- EXPECT_EQ (APInt (32 , uint64_t (-1LL )), APInt (32 , " -1" , 10 ));
1150
- EXPECT_EQ (APInt (32 , uint64_t (-9LL )), APInt (32 , " -9" , 10 ));
1151
- EXPECT_EQ (APInt (32 , uint64_t (-10LL )), APInt (32 , " -10" , 10 ));
1152
- EXPECT_EQ (APInt (32 , uint64_t (-19LL )), APInt (32 , " -19" , 10 ));
1153
- EXPECT_EQ (APInt (32 , uint64_t (-20LL )), APInt (32 , " -20" , 10 ));
1148
+ EXPECT_EQ (APInt (32 , uint32_t (-0LL )), APInt (32 , " -0" , 10 ));
1149
+ EXPECT_EQ (APInt (32 , uint32_t (-1LL )), APInt (32 , " -1" , 10 ));
1150
+ EXPECT_EQ (APInt (32 , uint32_t (-9LL )), APInt (32 , " -9" , 10 ));
1151
+ EXPECT_EQ (APInt (32 , uint32_t (-10LL )), APInt (32 , " -10" , 10 ));
1152
+ EXPECT_EQ (APInt (32 , uint32_t (-19LL )), APInt (32 , " -19" , 10 ));
1153
+ EXPECT_EQ (APInt (32 , uint32_t (-20LL )), APInt (32 , " -20" , 10 ));
1154
1154
1155
1155
EXPECT_EQ (APInt (32 , 0 ), APInt (32 , " 0" , 16 ));
1156
1156
EXPECT_EQ (APInt (32 , 1 ), APInt (32 , " 1" , 16 ));
@@ -1159,12 +1159,12 @@ TEST(APIntTest, fromString) {
1159
1159
EXPECT_EQ (APInt (32 , 31 ), APInt (32 , " 1F" , 16 ));
1160
1160
EXPECT_EQ (APInt (32 , 32 ), APInt (32 , " 20" , 16 ));
1161
1161
1162
- EXPECT_EQ (APInt (32 , uint64_t (-0LL )), APInt (32 , " -0" , 16 ));
1163
- EXPECT_EQ (APInt (32 , uint64_t (-1LL )), APInt (32 , " -1" , 16 ));
1164
- EXPECT_EQ (APInt (32 , uint64_t (-15LL )), APInt (32 , " -F" , 16 ));
1165
- EXPECT_EQ (APInt (32 , uint64_t (-16LL )), APInt (32 , " -10" , 16 ));
1166
- EXPECT_EQ (APInt (32 , uint64_t (-31LL )), APInt (32 , " -1F" , 16 ));
1167
- EXPECT_EQ (APInt (32 , uint64_t (-32LL )), APInt (32 , " -20" , 16 ));
1162
+ EXPECT_EQ (APInt (32 , uint32_t (-0LL )), APInt (32 , " -0" , 16 ));
1163
+ EXPECT_EQ (APInt (32 , uint32_t (-1LL )), APInt (32 , " -1" , 16 ));
1164
+ EXPECT_EQ (APInt (32 , uint32_t (-15LL )), APInt (32 , " -F" , 16 ));
1165
+ EXPECT_EQ (APInt (32 , uint32_t (-16LL )), APInt (32 , " -10" , 16 ));
1166
+ EXPECT_EQ (APInt (32 , uint32_t (-31LL )), APInt (32 , " -1F" , 16 ));
1167
+ EXPECT_EQ (APInt (32 , uint32_t (-32LL )), APInt (32 , " -20" , 16 ));
1168
1168
1169
1169
EXPECT_EQ (APInt (32 , 0 ), APInt (32 , " 0" , 36 ));
1170
1170
EXPECT_EQ (APInt (32 , 1 ), APInt (32 , " 1" , 36 ));
@@ -1173,12 +1173,12 @@ TEST(APIntTest, fromString) {
1173
1173
EXPECT_EQ (APInt (32 , 71 ), APInt (32 , " 1Z" , 36 ));
1174
1174
EXPECT_EQ (APInt (32 , 72 ), APInt (32 , " 20" , 36 ));
1175
1175
1176
- EXPECT_EQ (APInt (32 , uint64_t (-0LL )), APInt (32 , " -0" , 36 ));
1177
- EXPECT_EQ (APInt (32 , uint64_t (-1LL )), APInt (32 , " -1" , 36 ));
1178
- EXPECT_EQ (APInt (32 , uint64_t (-35LL )), APInt (32 , " -Z" , 36 ));
1179
- EXPECT_EQ (APInt (32 , uint64_t (-36LL )), APInt (32 , " -10" , 36 ));
1180
- EXPECT_EQ (APInt (32 , uint64_t (-71LL )), APInt (32 , " -1Z" , 36 ));
1181
- EXPECT_EQ (APInt (32 , uint64_t (-72LL )), APInt (32 , " -20" , 36 ));
1176
+ EXPECT_EQ (APInt (32 , uint32_t (-0LL )), APInt (32 , " -0" , 36 ));
1177
+ EXPECT_EQ (APInt (32 , uint32_t (-1LL )), APInt (32 , " -1" , 36 ));
1178
+ EXPECT_EQ (APInt (32 , uint32_t (-35LL )), APInt (32 , " -Z" , 36 ));
1179
+ EXPECT_EQ (APInt (32 , uint32_t (-36LL )), APInt (32 , " -10" , 36 ));
1180
+ EXPECT_EQ (APInt (32 , uint32_t (-71LL )), APInt (32 , " -1Z" , 36 ));
1181
+ EXPECT_EQ (APInt (32 , uint32_t (-72LL )), APInt (32 , " -20" , 36 ));
1182
1182
}
1183
1183
1184
1184
TEST (APIntTest, SaturatingMath) {
@@ -1202,63 +1202,64 @@ TEST(APIntTest, SaturatingMath) {
1202
1202
EXPECT_EQ (APInt (6 , 31 ), AP_42.truncSSat (6 ));
1203
1203
EXPECT_EQ (APInt (5 , 15 ), AP_42.truncSSat (5 ));
1204
1204
1205
- EXPECT_EQ (APInt (8 , -56 ), AP_200.truncSSat (8 ));
1206
- EXPECT_EQ (APInt (7 , -56 ), AP_200.truncSSat (7 ));
1207
- EXPECT_EQ (APInt (6 , -32 ), AP_200.truncSSat (6 ));
1208
- EXPECT_EQ (APInt (5 , -16 ), AP_200.truncSSat (5 ));
1205
+ EXPECT_EQ (APInt (8 , -56 , true ), AP_200.truncSSat (8 ));
1206
+ EXPECT_EQ (APInt (7 , -56 , true ), AP_200.truncSSat (7 ));
1207
+ EXPECT_EQ (APInt (6 , -32 , true ), AP_200.truncSSat (6 ));
1208
+ EXPECT_EQ (APInt (5 , -16 , true ), AP_200.truncSSat (5 ));
1209
1209
1210
1210
EXPECT_EQ (APInt (8 , 200 ), AP_100.uadd_sat (AP_100));
1211
1211
EXPECT_EQ (APInt (8 , 255 ), AP_100.uadd_sat (AP_200));
1212
1212
EXPECT_EQ (APInt (8 , 255 ), APInt (8 , 255 ).uadd_sat (APInt (8 , 255 )));
1213
1213
1214
1214
EXPECT_EQ (APInt (8 , 110 ), AP_10.sadd_sat (AP_100));
1215
1215
EXPECT_EQ (APInt (8 , 127 ), AP_100.sadd_sat (AP_100));
1216
- EXPECT_EQ (APInt (8 , -128 ), (-AP_100).sadd_sat (-AP_100));
1217
- EXPECT_EQ (APInt (8 , -128 ), APInt (8 , -128 ).sadd_sat (APInt (8 , -128 )));
1216
+ EXPECT_EQ (APInt (8 , -128 , true ), (-AP_100).sadd_sat (-AP_100));
1217
+ EXPECT_EQ (APInt (8 , -128 , true ),
1218
+ APInt (8 , -128 , true ).sadd_sat (APInt (8 , -128 , true )));
1218
1219
1219
1220
EXPECT_EQ (APInt (8 , 90 ), AP_100.usub_sat (AP_10));
1220
1221
EXPECT_EQ (APInt (8 , 0 ), AP_100.usub_sat (AP_200));
1221
1222
EXPECT_EQ (APInt (8 , 0 ), APInt (8 , 0 ).usub_sat (APInt (8 , 255 )));
1222
1223
1223
- EXPECT_EQ (APInt (8 , -90 ), AP_10.ssub_sat (AP_100));
1224
+ EXPECT_EQ (APInt (8 , -90 , true ), AP_10.ssub_sat (AP_100));
1224
1225
EXPECT_EQ (APInt (8 , 127 ), AP_100.ssub_sat (-AP_100));
1225
- EXPECT_EQ (APInt (8 , -128 ), (-AP_100).ssub_sat (AP_100));
1226
- EXPECT_EQ (APInt (8 , -128 ), APInt (8 , -128 ).ssub_sat (APInt (8 , 127 )));
1226
+ EXPECT_EQ (APInt (8 , -128 , true ), (-AP_100).ssub_sat (AP_100));
1227
+ EXPECT_EQ (APInt (8 , -128 , true ), APInt (8 , -128 , true ).ssub_sat (APInt (8 , 127 )));
1227
1228
1228
1229
EXPECT_EQ (APInt (8 , 250 ), APInt (8 , 50 ).umul_sat (APInt (8 , 5 )));
1229
1230
EXPECT_EQ (APInt (8 , 255 ), APInt (8 , 50 ).umul_sat (APInt (8 , 6 )));
1230
- EXPECT_EQ (APInt (8 , 255 ), APInt (8 , -128 ).umul_sat (APInt (8 , 3 )));
1231
- EXPECT_EQ (APInt (8 , 255 ), APInt (8 , 3 ).umul_sat (APInt (8 , -128 )));
1232
- EXPECT_EQ (APInt (8 , 255 ), APInt (8 , -128 ).umul_sat (APInt (8 , -128 )));
1231
+ EXPECT_EQ (APInt (8 , 255 ), APInt (8 , -128 , true ).umul_sat (APInt (8 , 3 )));
1232
+ EXPECT_EQ (APInt (8 , 255 ), APInt (8 , 3 ).umul_sat (APInt (8 , -128 , true )));
1233
+ EXPECT_EQ (APInt (8 , 255 ), APInt (8 , -128 , true ).umul_sat (APInt (8 , -128 , true )));
1233
1234
1234
1235
EXPECT_EQ (APInt (8 , 125 ), APInt (8 , 25 ).smul_sat (APInt (8 , 5 )));
1235
1236
EXPECT_EQ (APInt (8 , 127 ), APInt (8 , 25 ).smul_sat (APInt (8 , 6 )));
1236
1237
EXPECT_EQ (APInt (8 , 127 ), APInt (8 , 127 ).smul_sat (APInt (8 , 127 )));
1237
- EXPECT_EQ (APInt (8 , -125 ), APInt (8 , -25 ).smul_sat (APInt (8 , 5 )));
1238
- EXPECT_EQ (APInt (8 , -125 ), APInt (8 , 25 ).smul_sat (APInt (8 , -5 )));
1239
- EXPECT_EQ (APInt (8 , 125 ), APInt (8 , -25 ).smul_sat (APInt (8 , -5 )));
1238
+ EXPECT_EQ (APInt (8 , -125 , true ), APInt (8 , -25 , true ).smul_sat (APInt (8 , 5 )));
1239
+ EXPECT_EQ (APInt (8 , -125 , true ), APInt (8 , 25 ).smul_sat (APInt (8 , -5 , true )));
1240
+ EXPECT_EQ (APInt (8 , 125 ), APInt (8 , -25 , true ).smul_sat (APInt (8 , -5 , true )));
1240
1241
EXPECT_EQ (APInt (8 , 125 ), APInt (8 , 25 ).smul_sat (APInt (8 , 5 )));
1241
- EXPECT_EQ (APInt (8 , -128 ), APInt (8 , -25 ).smul_sat (APInt (8 , 6 )));
1242
- EXPECT_EQ (APInt (8 , -128 ), APInt (8 , 25 ).smul_sat (APInt (8 , -6 )));
1243
- EXPECT_EQ (APInt (8 , 127 ), APInt (8 , -25 ).smul_sat (APInt (8 , -6 )));
1242
+ EXPECT_EQ (APInt (8 , -128 , true ), APInt (8 , -25 , true ).smul_sat (APInt (8 , 6 )));
1243
+ EXPECT_EQ (APInt (8 , -128 , true ), APInt (8 , 25 ).smul_sat (APInt (8 , -6 , true )));
1244
+ EXPECT_EQ (APInt (8 , 127 ), APInt (8 , -25 , true ).smul_sat (APInt (8 , -6 , true )));
1244
1245
EXPECT_EQ (APInt (8 , 127 ), APInt (8 , 25 ).smul_sat (APInt (8 , 6 )));
1245
1246
1246
1247
EXPECT_EQ (APInt (8 , 128 ), APInt (8 , 4 ).ushl_sat (APInt (8 , 5 )));
1247
1248
EXPECT_EQ (APInt (8 , 255 ), APInt (8 , 4 ).ushl_sat (APInt (8 , 6 )));
1248
1249
EXPECT_EQ (APInt (8 , 128 ), APInt (8 , 1 ).ushl_sat (APInt (8 , 7 )));
1249
1250
EXPECT_EQ (APInt (8 , 255 ), APInt (8 , 1 ).ushl_sat (APInt (8 , 8 )));
1250
- EXPECT_EQ (APInt (8 , 255 ), APInt (8 , -128 ).ushl_sat (APInt (8 , 2 )));
1251
+ EXPECT_EQ (APInt (8 , 255 ), APInt (8 , -128 , true ).ushl_sat (APInt (8 , 2 )));
1251
1252
EXPECT_EQ (APInt (8 , 255 ), APInt (8 , 64 ).ushl_sat (APInt (8 , 2 )));
1252
- EXPECT_EQ (APInt (8 , 255 ), APInt (8 , 64 ).ushl_sat (APInt (8 , -2 )));
1253
+ EXPECT_EQ (APInt (8 , 255 ), APInt (8 , 64 ).ushl_sat (APInt (8 , -2 , true )));
1253
1254
1254
1255
EXPECT_EQ (APInt (8 , 64 ), APInt (8 , 4 ).sshl_sat (APInt (8 , 4 )));
1255
1256
EXPECT_EQ (APInt (8 , 127 ), APInt (8 , 4 ).sshl_sat (APInt (8 , 5 )));
1256
1257
EXPECT_EQ (APInt (8 , 127 ), APInt (8 , 1 ).sshl_sat (APInt (8 , 8 )));
1257
- EXPECT_EQ (APInt (8 , -64 ), APInt (8 , -4 ).sshl_sat (APInt (8 , 4 )));
1258
- EXPECT_EQ (APInt (8 , -128 ), APInt (8 , -4 ).sshl_sat (APInt (8 , 5 )));
1259
- EXPECT_EQ (APInt (8 , -128 ), APInt (8 , -4 ).sshl_sat (APInt (8 , 6 )));
1260
- EXPECT_EQ (APInt (8 , -128 ), APInt (8 , -1 ).sshl_sat (APInt (8 , 7 )));
1261
- EXPECT_EQ (APInt (8 , -128 ), APInt (8 , -1 ).sshl_sat (APInt (8 , 8 )));
1258
+ EXPECT_EQ (APInt (8 , -64 , true ), APInt (8 , -4 , true ).sshl_sat (APInt (8 , 4 )));
1259
+ EXPECT_EQ (APInt (8 , -128 , true ), APInt (8 , -4 , true ).sshl_sat (APInt (8 , 5 )));
1260
+ EXPECT_EQ (APInt (8 , -128 , true ), APInt (8 , -4 , true ).sshl_sat (APInt (8 , 6 )));
1261
+ EXPECT_EQ (APInt (8 , -128 , true ), APInt (8 , -1 , true ).sshl_sat (APInt (8 , 7 )));
1262
+ EXPECT_EQ (APInt (8 , -128 , true ), APInt (8 , -1 , true ).sshl_sat (APInt (8 , 8 )));
1262
1263
}
1263
1264
1264
1265
TEST (APIntTest, FromArray) {
@@ -1400,39 +1401,39 @@ TEST(APIntTest, toString) {
1400
1401
S.clear ();
1401
1402
1402
1403
isSigned = false ;
1403
- APInt (8 , 255 , isSigned ).toString (S, 2 , isSigned, true );
1404
+ APInt (8 , 255 ).toString (S, 2 , isSigned, true );
1404
1405
EXPECT_EQ (std::string (S), " 0b11111111" );
1405
1406
S.clear ();
1406
- APInt (8 , 255 , isSigned ).toString (S, 8 , isSigned, true );
1407
+ APInt (8 , 255 ).toString (S, 8 , isSigned, true );
1407
1408
EXPECT_EQ (std::string (S), " 0377" );
1408
1409
S.clear ();
1409
- APInt (8 , 255 , isSigned ).toString (S, 10 , isSigned, true );
1410
+ APInt (8 , 255 ).toString (S, 10 , isSigned, true );
1410
1411
EXPECT_EQ (std::string (S), " 255" );
1411
1412
S.clear ();
1412
- APInt (8 , 255 , isSigned ).toString (S, 16 , isSigned, true , /* UpperCase=*/ false );
1413
+ APInt (8 , 255 ).toString (S, 16 , isSigned, true , /* UpperCase=*/ false );
1413
1414
EXPECT_EQ (std::string (S), " 0xff" );
1414
1415
S.clear ();
1415
- APInt (8 , 255 , isSigned ).toString (S, 16 , isSigned, true );
1416
+ APInt (8 , 255 ).toString (S, 16 , isSigned, true );
1416
1417
EXPECT_EQ (std::string (S), " 0xFF" );
1417
1418
S.clear ();
1418
- APInt (8 , 255 , isSigned ).toString (S, 36 , isSigned, false );
1419
+ APInt (8 , 255 ).toString (S, 36 , isSigned, false );
1419
1420
EXPECT_EQ (std::string (S), " 73" );
1420
1421
S.clear ();
1421
1422
1422
1423
isSigned = true ;
1423
- APInt (8 , 255 , isSigned ).toString (S, 2 , isSigned, true );
1424
+ APInt (8 , 255 ).toString (S, 2 , isSigned, true );
1424
1425
EXPECT_EQ (std::string (S), " -0b1" );
1425
1426
S.clear ();
1426
- APInt (8 , 255 , isSigned ).toString (S, 8 , isSigned, true );
1427
+ APInt (8 , 255 ).toString (S, 8 , isSigned, true );
1427
1428
EXPECT_EQ (std::string (S), " -01" );
1428
1429
S.clear ();
1429
- APInt (8 , 255 , isSigned ).toString (S, 10 , isSigned, true );
1430
+ APInt (8 , 255 ).toString (S, 10 , isSigned, true );
1430
1431
EXPECT_EQ (std::string (S), " -1" );
1431
1432
S.clear ();
1432
- APInt (8 , 255 , isSigned ).toString (S, 16 , isSigned, true );
1433
+ APInt (8 , 255 ).toString (S, 16 , isSigned, true );
1433
1434
EXPECT_EQ (std::string (S), " -0x1" );
1434
1435
S.clear ();
1435
- APInt (8 , 255 , isSigned ).toString (S, 36 , isSigned, false );
1436
+ APInt (8 , 255 ).toString (S, 36 , isSigned, false );
1436
1437
EXPECT_EQ (std::string (S), " -1" );
1437
1438
S.clear ();
1438
1439
@@ -1515,7 +1516,7 @@ TEST(APIntTest, Rotate) {
1515
1516
EXPECT_EQ (APInt (32 , 2 ), APInt (32 , 1 ).rotl (APInt (33 , 33 )));
1516
1517
EXPECT_EQ (APInt (32 , (1 << 8 )), APInt (32 , 1 ).rotl (APInt (32 , 40 )));
1517
1518
EXPECT_EQ (APInt (32 , (1 << 30 )), APInt (32 , 1 ).rotl (APInt (31 , 30 )));
1518
- EXPECT_EQ (APInt (32 , (1 << 31 )), APInt (32 , 1 ).rotl (APInt (31 , 31 )));
1519
+ EXPECT_EQ (APInt (32 , (1u << 31 )), APInt (32 , 1 ).rotl (APInt (31 , 31 )));
1519
1520
1520
1521
EXPECT_EQ (APInt (32 , 1 ), APInt (32 , 1 ).rotl (APInt (1 , 0 )));
1521
1522
EXPECT_EQ (APInt (32 , 2 ), APInt (32 , 1 ).rotl (APInt (1 , 1 )));
@@ -1542,24 +1543,24 @@ TEST(APIntTest, Rotate) {
1542
1543
EXPECT_EQ (APInt (8 , 16 ), APInt (8 , 1 ).rotr (4 ));
1543
1544
EXPECT_EQ (APInt (8 , 1 ), APInt (8 , 1 ).rotr (8 ));
1544
1545
1545
- EXPECT_EQ (APInt (32 , (1 << 31 )), APInt (32 , 1 ).rotr (33 ));
1546
- EXPECT_EQ (APInt (32 , (1 << 31 )), APInt (32 , 1 ).rotr (APInt (32 , 33 )));
1546
+ EXPECT_EQ (APInt (32 , (1u << 31 )), APInt (32 , 1 ).rotr (33 ));
1547
+ EXPECT_EQ (APInt (32 , (1u << 31 )), APInt (32 , 1 ).rotr (APInt (32 , 33 )));
1547
1548
1548
- EXPECT_EQ (APInt (32 , (1 << 31 )), APInt (32 , 1 ).rotr (33 ));
1549
- EXPECT_EQ (APInt (32 , (1 << 31 )), APInt (32 , 1 ).rotr (APInt (32 , 33 )));
1550
- EXPECT_EQ (APInt (32 , (1 << 31 )), APInt (32 , 1 ).rotr (APInt (33 , 33 )));
1549
+ EXPECT_EQ (APInt (32 , (1u << 31 )), APInt (32 , 1 ).rotr (33 ));
1550
+ EXPECT_EQ (APInt (32 , (1u << 31 )), APInt (32 , 1 ).rotr (APInt (32 , 33 )));
1551
+ EXPECT_EQ (APInt (32 , (1u << 31 )), APInt (32 , 1 ).rotr (APInt (33 , 33 )));
1551
1552
EXPECT_EQ (APInt (32 , (1 << 24 )), APInt (32 , 1 ).rotr (APInt (32 , 40 )));
1552
1553
1553
1554
EXPECT_EQ (APInt (32 , (1 << 2 )), APInt (32 , 1 ).rotr (APInt (31 , 30 )));
1554
1555
EXPECT_EQ (APInt (32 , (1 << 1 )), APInt (32 , 1 ).rotr (APInt (31 , 31 )));
1555
1556
1556
1557
EXPECT_EQ (APInt (32 , 1 ), APInt (32 , 1 ).rotr (APInt (1 , 0 )));
1557
- EXPECT_EQ (APInt (32 , (1 << 31 )), APInt (32 , 1 ).rotr (APInt (1 , 1 )));
1558
+ EXPECT_EQ (APInt (32 , (1u << 31 )), APInt (32 , 1 ).rotr (APInt (1 , 1 )));
1558
1559
1559
1560
EXPECT_EQ (APInt (32 , (1 << 28 )), APInt (32 , 1 ).rotr (APInt (3 , 4 )));
1560
1561
1561
1562
EXPECT_EQ (APInt (32 , 1 ), APInt (32 , 1 ).rotr (APInt (64 , 64 )));
1562
- EXPECT_EQ (APInt (32 , (1 << 31 )), APInt (32 , 1 ).rotr (APInt (64 , 65 )));
1563
+ EXPECT_EQ (APInt (32 , (1u << 31 )), APInt (32 , 1 ).rotr (APInt (64 , 65 )));
1563
1564
1564
1565
EXPECT_EQ (APInt (7 , 48 ), APInt (7 , 3 ).rotr (APInt (7 , 3 )));
1565
1566
EXPECT_EQ (APInt (7 , 48 ), APInt (7 , 3 ).rotr (APInt (7 , 10 )));
@@ -1581,7 +1582,7 @@ TEST(APIntTest, Splat) {
1581
1582
1582
1583
APInt ValB (3 , 5 );
1583
1584
EXPECT_EQ (APInt (4 , 0xD ), APInt::getSplat (4 , ValB));
1584
- EXPECT_EQ (APInt (15 , 0xDB6D ), APInt::getSplat (15 , ValB));
1585
+ EXPECT_EQ (APInt (15 , 0x5B6D ), APInt::getSplat (15 , ValB));
1585
1586
}
1586
1587
1587
1588
TEST (APIntTest, tcDecrement) {
@@ -2858,7 +2859,7 @@ TEST(APIntTest, sext) {
2858
2859
EXPECT_EQ (31U , i32_min.countr_zero ());
2859
2860
EXPECT_EQ (32U , i32_min.popcount ());
2860
2861
2861
- APInt i32_neg1 (APInt (32 , ~uint64_t (0 )).sext (63 ));
2862
+ APInt i32_neg1 (APInt (32 , ~uint32_t (0 )).sext (63 ));
2862
2863
EXPECT_EQ (i32_neg1, i32_neg1.sext (63 ));
2863
2864
EXPECT_EQ (63U , i32_neg1.countl_one ());
2864
2865
EXPECT_EQ (0U , i32_neg1.countr_zero ());
@@ -2991,7 +2992,7 @@ TEST(APIntTest, RoundingUDiv) {
2991
2992
2992
2993
TEST (APIntTest, RoundingSDiv) {
2993
2994
for (int64_t Ai = -128 ; Ai <= 127 ; Ai++) {
2994
- APInt A (8 , Ai);
2995
+ APInt A (8 , Ai, true );
2995
2996
2996
2997
if (Ai != 0 ) {
2997
2998
APInt Zero (8 , 0 );
@@ -3004,7 +3005,7 @@ TEST(APIntTest, RoundingSDiv) {
3004
3005
if (Bi == 0 )
3005
3006
continue ;
3006
3007
3007
- APInt B (8 , Bi);
3008
+ APInt B (8 , Bi, true );
3008
3009
APInt QuoTowardZero = A.sdiv (B);
3009
3010
{
3010
3011
APInt Quo = APIntOps::RoundingSDiv (A, B, APInt::Rounding::UP);
@@ -3063,10 +3064,10 @@ TEST(APIntTest, Average) {
3063
3064
APInt Ap100 (32 , +100 );
3064
3065
APInt Ap101 (32 , +101 );
3065
3066
APInt Ap200 (32 , +200 );
3066
- APInt Am1 (32 , -1 );
3067
- APInt Am100 (32 , -100 );
3068
- APInt Am101 (32 , -101 );
3069
- APInt Am200 (32 , -200 );
3067
+ APInt Am1 (32 , -1 , true );
3068
+ APInt Am100 (32 , -100 , true );
3069
+ APInt Am101 (32 , -101 , true );
3070
+ APInt Am200 (32 , -200 , true );
3070
3071
APInt AmSMin = APInt::getSignedMinValue (32 );
3071
3072
APInt ApSMax = APInt::getSignedMaxValue (32 );
3072
3073
@@ -3076,7 +3077,7 @@ TEST(APIntTest, Average) {
3076
3077
EXPECT_EQ (APIntOps::RoundingSDiv (Ap100 + Ap200, A2, APInt::Rounding::UP),
3077
3078
APIntOps::avgCeilS (Ap100, Ap200));
3078
3079
3079
- EXPECT_EQ (APInt (32 , -150 ), APIntOps::avgFloorS (Am100, Am200));
3080
+ EXPECT_EQ (APInt (32 , -150 , true ), APIntOps::avgFloorS (Am100, Am200));
3080
3081
EXPECT_EQ (APIntOps::RoundingSDiv (Am100 + Am200, A2, APInt::Rounding::DOWN),
3081
3082
APIntOps::avgFloorS (Am100, Am200));
3082
3083
EXPECT_EQ (APIntOps::RoundingSDiv (Am100 + Am200, A2, APInt::Rounding::UP),
@@ -3089,10 +3090,10 @@ TEST(APIntTest, Average) {
3089
3090
EXPECT_EQ (APIntOps::RoundingSDiv (Ap100 + Ap101, A2, APInt::Rounding::UP),
3090
3091
APIntOps::avgCeilS (Ap100, Ap101));
3091
3092
3092
- EXPECT_EQ (APInt (32 , -101 ), APIntOps::avgFloorS (Am100, Am101));
3093
+ EXPECT_EQ (APInt (32 , -101 , true ), APIntOps::avgFloorS (Am100, Am101));
3093
3094
EXPECT_EQ (APIntOps::RoundingSDiv (Am100 + Am101, A2, APInt::Rounding::DOWN),
3094
3095
APIntOps::avgFloorS (Am100, Am101));
3095
- EXPECT_EQ (APInt (32 , -100 ), APIntOps::avgCeilS (Am100, Am101));
3096
+ EXPECT_EQ (APInt (32 , -100 , true ), APIntOps::avgCeilS (Am100, Am101));
3096
3097
EXPECT_EQ (APIntOps::RoundingSDiv (Am100 + Am101, A2, APInt::Rounding::UP),
3097
3098
APIntOps::avgCeilS (Am100, Am101));
3098
3099
@@ -3304,7 +3305,8 @@ TEST(APIntTest, SolveQuadraticEquationWrap) {
3304
3305
for (int B = Low; B != High; ++B) {
3305
3306
for (int C = Low; C != High; ++C) {
3306
3307
std::optional<APInt> S = APIntOps::SolveQuadraticEquationWrap (
3307
- APInt (Width, A), APInt (Width, B), APInt (Width, C), Width);
3308
+ APInt (Width, A, true ), APInt (Width, B, true ),
3309
+ APInt (Width, C, true ), Width);
3308
3310
if (S)
3309
3311
Validate (A, B, C, Width, S->getSExtValue ());
3310
3312
}
@@ -3399,10 +3401,10 @@ TEST(APIntTest, GetMostSignificantDifferentBitExaustive) {
3399
3401
}
3400
3402
3401
3403
TEST (APIntTest, SignbitZeroChecks) {
3402
- EXPECT_TRUE (APInt (8 , -1 ).isNegative ());
3403
- EXPECT_FALSE (APInt (8 , -1 ).isNonNegative ());
3404
- EXPECT_FALSE (APInt (8 , -1 ).isStrictlyPositive ());
3405
- EXPECT_TRUE (APInt (8 , -1 ).isNonPositive ());
3404
+ EXPECT_TRUE (APInt (8 , -1 , true ).isNegative ());
3405
+ EXPECT_FALSE (APInt (8 , -1 , true ).isNonNegative ());
3406
+ EXPECT_FALSE (APInt (8 , -1 , true ).isStrictlyPositive ());
3407
+ EXPECT_TRUE (APInt (8 , -1 , true ).isNonPositive ());
3406
3408
3407
3409
EXPECT_FALSE (APInt (8 , 0 ).isNegative ());
3408
3410
EXPECT_TRUE (APInt (8 , 0 ).isNonNegative ());
0 commit comments