@@ -1565,3 +1565,124 @@ TEST(APIntTest, getHighBitsSet) {
1565
1565
EXPECT_EQ (0u , i64hi32.countTrailingOnes ());
1566
1566
EXPECT_EQ (32u , i64hi32.countPopulation ());
1567
1567
}
1568
+
1569
+ TEST (APIntTest, setLowBits) {
1570
+ APInt i64lo32 (64 , 0 );
1571
+ i64lo32.setLowBits (32 );
1572
+ EXPECT_EQ (0u , i64lo32.countLeadingOnes ());
1573
+ EXPECT_EQ (32u , i64lo32.countLeadingZeros ());
1574
+ EXPECT_EQ (32u , i64lo32.getActiveBits ());
1575
+ EXPECT_EQ (0u , i64lo32.countTrailingZeros ());
1576
+ EXPECT_EQ (32u , i64lo32.countTrailingOnes ());
1577
+ EXPECT_EQ (32u , i64lo32.countPopulation ());
1578
+
1579
+ APInt i128lo64 (128 , 0 );
1580
+ i128lo64.setLowBits (64 );
1581
+ EXPECT_EQ (0u , i128lo64.countLeadingOnes ());
1582
+ EXPECT_EQ (64u , i128lo64.countLeadingZeros ());
1583
+ EXPECT_EQ (64u , i128lo64.getActiveBits ());
1584
+ EXPECT_EQ (0u , i128lo64.countTrailingZeros ());
1585
+ EXPECT_EQ (64u , i128lo64.countTrailingOnes ());
1586
+ EXPECT_EQ (64u , i128lo64.countPopulation ());
1587
+
1588
+ APInt i128lo24 (128 , 0 );
1589
+ i128lo24.setLowBits (24 );
1590
+ EXPECT_EQ (0u , i128lo24.countLeadingOnes ());
1591
+ EXPECT_EQ (104u , i128lo24.countLeadingZeros ());
1592
+ EXPECT_EQ (24u , i128lo24.getActiveBits ());
1593
+ EXPECT_EQ (0u , i128lo24.countTrailingZeros ());
1594
+ EXPECT_EQ (24u , i128lo24.countTrailingOnes ());
1595
+ EXPECT_EQ (24u , i128lo24.countPopulation ());
1596
+
1597
+ APInt i128lo104 (128 , 0 );
1598
+ i128lo104.setLowBits (104 );
1599
+ EXPECT_EQ (0u , i128lo104.countLeadingOnes ());
1600
+ EXPECT_EQ (24u , i128lo104.countLeadingZeros ());
1601
+ EXPECT_EQ (104u , i128lo104.getActiveBits ());
1602
+ EXPECT_EQ (0u , i128lo104.countTrailingZeros ());
1603
+ EXPECT_EQ (104u , i128lo104.countTrailingOnes ());
1604
+ EXPECT_EQ (104u , i128lo104.countPopulation ());
1605
+
1606
+ APInt i128lo0 (128 , 0 );
1607
+ i128lo0.setLowBits (0 );
1608
+ EXPECT_EQ (0u , i128lo0.countLeadingOnes ());
1609
+ EXPECT_EQ (128u , i128lo0.countLeadingZeros ());
1610
+ EXPECT_EQ (0u , i128lo0.getActiveBits ());
1611
+ EXPECT_EQ (128u , i128lo0.countTrailingZeros ());
1612
+ EXPECT_EQ (0u , i128lo0.countTrailingOnes ());
1613
+ EXPECT_EQ (0u , i128lo0.countPopulation ());
1614
+
1615
+ APInt i80lo79 (80 , 0 );
1616
+ i80lo79.setLowBits (79 );
1617
+ EXPECT_EQ (0u , i80lo79.countLeadingOnes ());
1618
+ EXPECT_EQ (1u , i80lo79.countLeadingZeros ());
1619
+ EXPECT_EQ (79u , i80lo79.getActiveBits ());
1620
+ EXPECT_EQ (0u , i80lo79.countTrailingZeros ());
1621
+ EXPECT_EQ (79u , i80lo79.countTrailingOnes ());
1622
+ EXPECT_EQ (79u , i80lo79.countPopulation ());
1623
+ }
1624
+
1625
+ TEST (APIntTest, setHighBits) {
1626
+ APInt i64hi32 (64 , 0 );
1627
+ i64hi32.setHighBits (32 );
1628
+ EXPECT_EQ (32u , i64hi32.countLeadingOnes ());
1629
+ EXPECT_EQ (0u , i64hi32.countLeadingZeros ());
1630
+ EXPECT_EQ (64u , i64hi32.getActiveBits ());
1631
+ EXPECT_EQ (32u , i64hi32.countTrailingZeros ());
1632
+ EXPECT_EQ (0u , i64hi32.countTrailingOnes ());
1633
+ EXPECT_EQ (32u , i64hi32.countPopulation ());
1634
+
1635
+ APInt i128hi64 (128 , 0 );
1636
+ i128hi64.setHighBits (64 );
1637
+ EXPECT_EQ (64u , i128hi64.countLeadingOnes ());
1638
+ EXPECT_EQ (0u , i128hi64.countLeadingZeros ());
1639
+ EXPECT_EQ (128u , i128hi64.getActiveBits ());
1640
+ EXPECT_EQ (64u , i128hi64.countTrailingZeros ());
1641
+ EXPECT_EQ (0u , i128hi64.countTrailingOnes ());
1642
+ EXPECT_EQ (64u , i128hi64.countPopulation ());
1643
+
1644
+ APInt i128hi24 (128 , 0 );
1645
+ i128hi24.setHighBits (24 );
1646
+ EXPECT_EQ (24u , i128hi24.countLeadingOnes ());
1647
+ EXPECT_EQ (0u , i128hi24.countLeadingZeros ());
1648
+ EXPECT_EQ (128u , i128hi24.getActiveBits ());
1649
+ EXPECT_EQ (104u , i128hi24.countTrailingZeros ());
1650
+ EXPECT_EQ (0u , i128hi24.countTrailingOnes ());
1651
+ EXPECT_EQ (24u , i128hi24.countPopulation ());
1652
+
1653
+ APInt i128hi104 (128 , 0 );
1654
+ i128hi104.setHighBits (104 );
1655
+ EXPECT_EQ (104u , i128hi104.countLeadingOnes ());
1656
+ EXPECT_EQ (0u , i128hi104.countLeadingZeros ());
1657
+ EXPECT_EQ (128u , i128hi104.getActiveBits ());
1658
+ EXPECT_EQ (24u , i128hi104.countTrailingZeros ());
1659
+ EXPECT_EQ (0u , i128hi104.countTrailingOnes ());
1660
+ EXPECT_EQ (104u , i128hi104.countPopulation ());
1661
+
1662
+ APInt i128hi0 (128 , 0 );
1663
+ i128hi0.setHighBits (0 );
1664
+ EXPECT_EQ (0u , i128hi0.countLeadingOnes ());
1665
+ EXPECT_EQ (128u , i128hi0.countLeadingZeros ());
1666
+ EXPECT_EQ (0u , i128hi0.getActiveBits ());
1667
+ EXPECT_EQ (128u , i128hi0.countTrailingZeros ());
1668
+ EXPECT_EQ (0u , i128hi0.countTrailingOnes ());
1669
+ EXPECT_EQ (0u , i128hi0.countPopulation ());
1670
+
1671
+ APInt i80hi1 (80 , 0 );
1672
+ i80hi1.setHighBits (1 );
1673
+ EXPECT_EQ (1u , i80hi1.countLeadingOnes ());
1674
+ EXPECT_EQ (0u , i80hi1.countLeadingZeros ());
1675
+ EXPECT_EQ (80u , i80hi1.getActiveBits ());
1676
+ EXPECT_EQ (79u , i80hi1.countTrailingZeros ());
1677
+ EXPECT_EQ (0u , i80hi1.countTrailingOnes ());
1678
+ EXPECT_EQ (1u , i80hi1.countPopulation ());
1679
+
1680
+ APInt i32hi16 (32 , 0 );
1681
+ i32hi16.setHighBits (16 );
1682
+ EXPECT_EQ (16u , i32hi16.countLeadingOnes ());
1683
+ EXPECT_EQ (0u , i32hi16.countLeadingZeros ());
1684
+ EXPECT_EQ (32u , i32hi16.getActiveBits ());
1685
+ EXPECT_EQ (16u , i32hi16.countTrailingZeros ());
1686
+ EXPECT_EQ (0u , i32hi16.countTrailingOnes ());
1687
+ EXPECT_EQ (16u , i32hi16.countPopulation ());
1688
+ }
0 commit comments