@@ -1613,9 +1613,9 @@ _mm256_blendv_ps(__m256 __a, __m256 __b, __m256 __c)
1613
1613
#define _CMP_NEQ_UQ 0x04 /* Not-equal (unordered, non-signaling) */
1614
1614
#define _CMP_NLT_US 0x05 /* Not-less-than (unordered, signaling) */
1615
1615
#define _CMP_NLE_US 0x06 /* Not-less-than-or-equal (unordered, signaling) */
1616
- #define _CMP_ORD_Q 0x07 /* Ordered (nonsignaling ) */
1616
+ #define _CMP_ORD_Q 0x07 /* Ordered (non-signaling ) */
1617
1617
#define _CMP_EQ_UQ 0x08 /* Equal (unordered, non-signaling) */
1618
- #define _CMP_NGE_US 0x09 /* Not-greater-than-or-equal (unord , signaling) */
1618
+ #define _CMP_NGE_US 0x09 /* Not-greater-than-or-equal (unordered , signaling) */
1619
1619
#define _CMP_NGT_US 0x0a /* Not-greater-than (unordered, signaling) */
1620
1620
#define _CMP_FALSE_OQ 0x0b /* False (ordered, non-signaling) */
1621
1621
#define _CMP_NEQ_OQ 0x0c /* Not-equal (ordered, non-signaling) */
@@ -1628,10 +1628,10 @@ _mm256_blendv_ps(__m256 __a, __m256 __b, __m256 __c)
1628
1628
#define _CMP_UNORD_S 0x13 /* Unordered (signaling) */
1629
1629
#define _CMP_NEQ_US 0x14 /* Not-equal (unordered, signaling) */
1630
1630
#define _CMP_NLT_UQ 0x15 /* Not-less-than (unordered, non-signaling) */
1631
- #define _CMP_NLE_UQ 0x16 /* Not-less-than-or-equal (unord , non-signaling) */
1631
+ #define _CMP_NLE_UQ 0x16 /* Not-less-than-or-equal (unordered , non-signaling) */
1632
1632
#define _CMP_ORD_S 0x17 /* Ordered (signaling) */
1633
1633
#define _CMP_EQ_US 0x18 /* Equal (unordered, signaling) */
1634
- #define _CMP_NGE_UQ 0x19 /* Not-greater-than-or-equal (unord , non-sign ) */
1634
+ #define _CMP_NGE_UQ 0x19 /* Not-greater-than-or-equal (unordered , non-signaling ) */
1635
1635
#define _CMP_NGT_UQ 0x1a /* Not-greater-than (unordered, non-signaling) */
1636
1636
#define _CMP_FALSE_OS 0x1b /* False (ordered, signaling) */
1637
1637
#define _CMP_NEQ_OS 0x1c /* Not-equal (ordered, signaling) */
@@ -1660,17 +1660,38 @@ _mm256_blendv_ps(__m256 __a, __m256 __b, __m256 __c)
1660
1660
/// \param c
1661
1661
/// An immediate integer operand, with bits [4:0] specifying which comparison
1662
1662
/// operation to use: \n
1663
- /// 00h, 08h, 10h, 18h: Equal \n
1664
- /// 01h, 09h, 11h, 19h: Less than \n
1665
- /// 02h, 0Ah, 12h, 1Ah: Less than or equal / Greater than or equal
1666
- /// (swapped operands) \n
1667
- /// 03h, 0Bh, 13h, 1Bh: Unordered \n
1668
- /// 04h, 0Ch, 14h, 1Ch: Not equal \n
1669
- /// 05h, 0Dh, 15h, 1Dh: Not less than / Not greater than
1670
- /// (swapped operands) \n
1671
- /// 06h, 0Eh, 16h, 1Eh: Not less than or equal / Not greater than or equal
1672
- /// (swapped operands) \n
1673
- /// 07h, 0Fh, 17h, 1Fh: Ordered
1663
+ /// 0x00 : Equal (ordered, non-signaling)
1664
+ /// 0x01 : Less-than (ordered, signaling)
1665
+ /// 0x02 : Less-than-or-equal (ordered, signaling)
1666
+ /// 0x03 : Unordered (non-signaling)
1667
+ /// 0x04 : Not-equal (unordered, non-signaling)
1668
+ /// 0x05 : Not-less-than (unordered, signaling)
1669
+ /// 0x06 : Not-less-than-or-equal (unordered, signaling)
1670
+ /// 0x07 : Ordered (non-signaling)
1671
+ /// 0x08 : Equal (unordered, non-signaling)
1672
+ /// 0x09 : Not-greater-than-or-equal (unordered, signaling)
1673
+ /// 0x0a : Not-greater-than (unordered, signaling)
1674
+ /// 0x0b : False (ordered, non-signaling)
1675
+ /// 0x0c : Not-equal (ordered, non-signaling)
1676
+ /// 0x0d : Greater-than-or-equal (ordered, signaling)
1677
+ /// 0x0e : Greater-than (ordered, signaling)
1678
+ /// 0x0f : True (unordered, non-signaling)
1679
+ /// 0x10 : Equal (ordered, signaling)
1680
+ /// 0x11 : Less-than (ordered, non-signaling)
1681
+ /// 0x12 : Less-than-or-equal (ordered, non-signaling)
1682
+ /// 0x13 : Unordered (signaling)
1683
+ /// 0x14 : Not-equal (unordered, signaling)
1684
+ /// 0x15 : Not-less-than (unordered, non-signaling)
1685
+ /// 0x16 : Not-less-than-or-equal (unordered, non-signaling)
1686
+ /// 0x17 : Ordered (signaling)
1687
+ /// 0x18 : Equal (unordered, signaling)
1688
+ /// 0x19 : Not-greater-than-or-equal (unordered, non-signaling)
1689
+ /// 0x1a : Not-greater-than (unordered, non-signaling)
1690
+ /// 0x1b : False (ordered, signaling)
1691
+ /// 0x1c : Not-equal (ordered, signaling)
1692
+ /// 0x1d : Greater-than-or-equal (ordered, non-signaling)
1693
+ /// 0x1e : Greater-than (ordered, non-signaling)
1694
+ /// 0x1f : True (unordered, signaling)
1674
1695
/// \returns A 128-bit vector of [2 x double] containing the comparison results.
1675
1696
#define _mm_cmp_pd (a , b , c ) __extension__ ({ \
1676
1697
(__m128d)__builtin_ia32_cmppd((__v2df)(__m128d)(a), \
@@ -1697,17 +1718,38 @@ _mm256_blendv_ps(__m256 __a, __m256 __b, __m256 __c)
1697
1718
/// \param c
1698
1719
/// An immediate integer operand, with bits [4:0] specifying which comparison
1699
1720
/// operation to use: \n
1700
- /// 00h, 08h, 10h, 18h: Equal \n
1701
- /// 01h, 09h, 11h, 19h: Less than \n
1702
- /// 02h, 0Ah, 12h, 1Ah: Less than or equal / Greater than or equal
1703
- /// (swapped operands) \n
1704
- /// 03h, 0Bh, 13h, 1Bh: Unordered \n
1705
- /// 04h, 0Ch, 14h, 1Ch: Not equal \n
1706
- /// 05h, 0Dh, 15h, 1Dh: Not less than / Not greater than
1707
- /// (swapped operands) \n
1708
- /// 06h, 0Eh, 16h, 1Eh: Not less than or equal / Not greater than or equal
1709
- /// (swapped operands) \n
1710
- /// 07h, 0Fh, 17h, 1Fh: Ordered
1721
+ /// 0x00 : Equal (ordered, non-signaling)
1722
+ /// 0x01 : Less-than (ordered, signaling)
1723
+ /// 0x02 : Less-than-or-equal (ordered, signaling)
1724
+ /// 0x03 : Unordered (non-signaling)
1725
+ /// 0x04 : Not-equal (unordered, non-signaling)
1726
+ /// 0x05 : Not-less-than (unordered, signaling)
1727
+ /// 0x06 : Not-less-than-or-equal (unordered, signaling)
1728
+ /// 0x07 : Ordered (non-signaling)
1729
+ /// 0x08 : Equal (unordered, non-signaling)
1730
+ /// 0x09 : Not-greater-than-or-equal (unordered, signaling)
1731
+ /// 0x0a : Not-greater-than (unordered, signaling)
1732
+ /// 0x0b : False (ordered, non-signaling)
1733
+ /// 0x0c : Not-equal (ordered, non-signaling)
1734
+ /// 0x0d : Greater-than-or-equal (ordered, signaling)
1735
+ /// 0x0e : Greater-than (ordered, signaling)
1736
+ /// 0x0f : True (unordered, non-signaling)
1737
+ /// 0x10 : Equal (ordered, signaling)
1738
+ /// 0x11 : Less-than (ordered, non-signaling)
1739
+ /// 0x12 : Less-than-or-equal (ordered, non-signaling)
1740
+ /// 0x13 : Unordered (signaling)
1741
+ /// 0x14 : Not-equal (unordered, signaling)
1742
+ /// 0x15 : Not-less-than (unordered, non-signaling)
1743
+ /// 0x16 : Not-less-than-or-equal (unordered, non-signaling)
1744
+ /// 0x17 : Ordered (signaling)
1745
+ /// 0x18 : Equal (unordered, signaling)
1746
+ /// 0x19 : Not-greater-than-or-equal (unordered, non-signaling)
1747
+ /// 0x1a : Not-greater-than (unordered, non-signaling)
1748
+ /// 0x1b : False (ordered, signaling)
1749
+ /// 0x1c : Not-equal (ordered, signaling)
1750
+ /// 0x1d : Greater-than-or-equal (ordered, non-signaling)
1751
+ /// 0x1e : Greater-than (ordered, non-signaling)
1752
+ /// 0x1f : True (unordered, signaling)
1711
1753
/// \returns A 128-bit vector of [4 x float] containing the comparison results.
1712
1754
#define _mm_cmp_ps (a , b , c ) __extension__ ({ \
1713
1755
(__m128)__builtin_ia32_cmpps((__v4sf)(__m128)(a), \
@@ -1734,17 +1776,38 @@ _mm256_blendv_ps(__m256 __a, __m256 __b, __m256 __c)
1734
1776
/// \param c
1735
1777
/// An immediate integer operand, with bits [4:0] specifying which comparison
1736
1778
/// operation to use: \n
1737
- /// 00h, 08h, 10h, 18h: Equal \n
1738
- /// 01h, 09h, 11h, 19h: Less than \n
1739
- /// 02h, 0Ah, 12h, 1Ah: Less than or equal / Greater than or equal
1740
- /// (swapped operands) \n
1741
- /// 03h, 0Bh, 13h, 1Bh: Unordered \n
1742
- /// 04h, 0Ch, 14h, 1Ch: Not equal \n
1743
- /// 05h, 0Dh, 15h, 1Dh: Not less than / Not greater than
1744
- /// (swapped operands) \n
1745
- /// 06h, 0Eh, 16h, 1Eh: Not less than or equal / Not greater than or equal
1746
- /// (swapped operands) \n
1747
- /// 07h, 0Fh, 17h, 1Fh: Ordered
1779
+ /// 0x00 : Equal (ordered, non-signaling)
1780
+ /// 0x01 : Less-than (ordered, signaling)
1781
+ /// 0x02 : Less-than-or-equal (ordered, signaling)
1782
+ /// 0x03 : Unordered (non-signaling)
1783
+ /// 0x04 : Not-equal (unordered, non-signaling)
1784
+ /// 0x05 : Not-less-than (unordered, signaling)
1785
+ /// 0x06 : Not-less-than-or-equal (unordered, signaling)
1786
+ /// 0x07 : Ordered (non-signaling)
1787
+ /// 0x08 : Equal (unordered, non-signaling)
1788
+ /// 0x09 : Not-greater-than-or-equal (unordered, signaling)
1789
+ /// 0x0a : Not-greater-than (unordered, signaling)
1790
+ /// 0x0b : False (ordered, non-signaling)
1791
+ /// 0x0c : Not-equal (ordered, non-signaling)
1792
+ /// 0x0d : Greater-than-or-equal (ordered, signaling)
1793
+ /// 0x0e : Greater-than (ordered, signaling)
1794
+ /// 0x0f : True (unordered, non-signaling)
1795
+ /// 0x10 : Equal (ordered, signaling)
1796
+ /// 0x11 : Less-than (ordered, non-signaling)
1797
+ /// 0x12 : Less-than-or-equal (ordered, non-signaling)
1798
+ /// 0x13 : Unordered (signaling)
1799
+ /// 0x14 : Not-equal (unordered, signaling)
1800
+ /// 0x15 : Not-less-than (unordered, non-signaling)
1801
+ /// 0x16 : Not-less-than-or-equal (unordered, non-signaling)
1802
+ /// 0x17 : Ordered (signaling)
1803
+ /// 0x18 : Equal (unordered, signaling)
1804
+ /// 0x19 : Not-greater-than-or-equal (unordered, non-signaling)
1805
+ /// 0x1a : Not-greater-than (unordered, non-signaling)
1806
+ /// 0x1b : False (ordered, signaling)
1807
+ /// 0x1c : Not-equal (ordered, signaling)
1808
+ /// 0x1d : Greater-than-or-equal (ordered, non-signaling)
1809
+ /// 0x1e : Greater-than (ordered, non-signaling)
1810
+ /// 0x1f : True (unordered, signaling)
1748
1811
/// \returns A 256-bit vector of [4 x double] containing the comparison results.
1749
1812
#define _mm256_cmp_pd (a , b , c ) __extension__ ({ \
1750
1813
(__m256d)__builtin_ia32_cmppd256((__v4df)(__m256d)(a), \
@@ -1771,17 +1834,38 @@ _mm256_blendv_ps(__m256 __a, __m256 __b, __m256 __c)
1771
1834
/// \param c
1772
1835
/// An immediate integer operand, with bits [4:0] specifying which comparison
1773
1836
/// operation to use: \n
1774
- /// 00h, 08h, 10h, 18h: Equal \n
1775
- /// 01h, 09h, 11h, 19h: Less than \n
1776
- /// 02h, 0Ah, 12h, 1Ah: Less than or equal / Greater than or equal
1777
- /// (swapped operands) \n
1778
- /// 03h, 0Bh, 13h, 1Bh: Unordered \n
1779
- /// 04h, 0Ch, 14h, 1Ch: Not equal \n
1780
- /// 05h, 0Dh, 15h, 1Dh: Not less than / Not greater than
1781
- /// (swapped operands) \n
1782
- /// 06h, 0Eh, 16h, 1Eh: Not less than or equal / Not greater than or equal
1783
- /// (swapped operands) \n
1784
- /// 07h, 0Fh, 17h, 1Fh: Ordered
1837
+ /// 0x00 : Equal (ordered, non-signaling)
1838
+ /// 0x01 : Less-than (ordered, signaling)
1839
+ /// 0x02 : Less-than-or-equal (ordered, signaling)
1840
+ /// 0x03 : Unordered (non-signaling)
1841
+ /// 0x04 : Not-equal (unordered, non-signaling)
1842
+ /// 0x05 : Not-less-than (unordered, signaling)
1843
+ /// 0x06 : Not-less-than-or-equal (unordered, signaling)
1844
+ /// 0x07 : Ordered (non-signaling)
1845
+ /// 0x08 : Equal (unordered, non-signaling)
1846
+ /// 0x09 : Not-greater-than-or-equal (unordered, signaling)
1847
+ /// 0x0a : Not-greater-than (unordered, signaling)
1848
+ /// 0x0b : False (ordered, non-signaling)
1849
+ /// 0x0c : Not-equal (ordered, non-signaling)
1850
+ /// 0x0d : Greater-than-or-equal (ordered, signaling)
1851
+ /// 0x0e : Greater-than (ordered, signaling)
1852
+ /// 0x0f : True (unordered, non-signaling)
1853
+ /// 0x10 : Equal (ordered, signaling)
1854
+ /// 0x11 : Less-than (ordered, non-signaling)
1855
+ /// 0x12 : Less-than-or-equal (ordered, non-signaling)
1856
+ /// 0x13 : Unordered (signaling)
1857
+ /// 0x14 : Not-equal (unordered, signaling)
1858
+ /// 0x15 : Not-less-than (unordered, non-signaling)
1859
+ /// 0x16 : Not-less-than-or-equal (unordered, non-signaling)
1860
+ /// 0x17 : Ordered (signaling)
1861
+ /// 0x18 : Equal (unordered, signaling)
1862
+ /// 0x19 : Not-greater-than-or-equal (unordered, non-signaling)
1863
+ /// 0x1a : Not-greater-than (unordered, non-signaling)
1864
+ /// 0x1b : False (ordered, signaling)
1865
+ /// 0x1c : Not-equal (ordered, signaling)
1866
+ /// 0x1d : Greater-than-or-equal (ordered, non-signaling)
1867
+ /// 0x1e : Greater-than (ordered, non-signaling)
1868
+ /// 0x1f : True (unordered, signaling)
1785
1869
/// \returns A 256-bit vector of [8 x float] containing the comparison results.
1786
1870
#define _mm256_cmp_ps (a , b , c ) __extension__ ({ \
1787
1871
(__m256)__builtin_ia32_cmpps256((__v8sf)(__m256)(a), \
@@ -1807,17 +1891,38 @@ _mm256_blendv_ps(__m256 __a, __m256 __b, __m256 __c)
1807
1891
/// \param c
1808
1892
/// An immediate integer operand, with bits [4:0] specifying which comparison
1809
1893
/// operation to use: \n
1810
- /// 00h, 08h, 10h, 18h: Equal \n
1811
- /// 01h, 09h, 11h, 19h: Less than \n
1812
- /// 02h, 0Ah, 12h, 1Ah: Less than or equal / Greater than or equal
1813
- /// (swapped operands) \n
1814
- /// 03h, 0Bh, 13h, 1Bh: Unordered \n
1815
- /// 04h, 0Ch, 14h, 1Ch: Not equal \n
1816
- /// 05h, 0Dh, 15h, 1Dh: Not less than / Not greater than
1817
- /// (swapped operands) \n
1818
- /// 06h, 0Eh, 16h, 1Eh: Not less than or equal / Not greater than or equal
1819
- /// (swapped operands) \n
1820
- /// 07h, 0Fh, 17h, 1Fh: Ordered
1894
+ /// 0x00 : Equal (ordered, non-signaling)
1895
+ /// 0x01 : Less-than (ordered, signaling)
1896
+ /// 0x02 : Less-than-or-equal (ordered, signaling)
1897
+ /// 0x03 : Unordered (non-signaling)
1898
+ /// 0x04 : Not-equal (unordered, non-signaling)
1899
+ /// 0x05 : Not-less-than (unordered, signaling)
1900
+ /// 0x06 : Not-less-than-or-equal (unordered, signaling)
1901
+ /// 0x07 : Ordered (non-signaling)
1902
+ /// 0x08 : Equal (unordered, non-signaling)
1903
+ /// 0x09 : Not-greater-than-or-equal (unordered, signaling)
1904
+ /// 0x0a : Not-greater-than (unordered, signaling)
1905
+ /// 0x0b : False (ordered, non-signaling)
1906
+ /// 0x0c : Not-equal (ordered, non-signaling)
1907
+ /// 0x0d : Greater-than-or-equal (ordered, signaling)
1908
+ /// 0x0e : Greater-than (ordered, signaling)
1909
+ /// 0x0f : True (unordered, non-signaling)
1910
+ /// 0x10 : Equal (ordered, signaling)
1911
+ /// 0x11 : Less-than (ordered, non-signaling)
1912
+ /// 0x12 : Less-than-or-equal (ordered, non-signaling)
1913
+ /// 0x13 : Unordered (signaling)
1914
+ /// 0x14 : Not-equal (unordered, signaling)
1915
+ /// 0x15 : Not-less-than (unordered, non-signaling)
1916
+ /// 0x16 : Not-less-than-or-equal (unordered, non-signaling)
1917
+ /// 0x17 : Ordered (signaling)
1918
+ /// 0x18 : Equal (unordered, signaling)
1919
+ /// 0x19 : Not-greater-than-or-equal (unordered, non-signaling)
1920
+ /// 0x1a : Not-greater-than (unordered, non-signaling)
1921
+ /// 0x1b : False (ordered, signaling)
1922
+ /// 0x1c : Not-equal (ordered, signaling)
1923
+ /// 0x1d : Greater-than-or-equal (ordered, non-signaling)
1924
+ /// 0x1e : Greater-than (ordered, non-signaling)
1925
+ /// 0x1f : True (unordered, signaling)
1821
1926
/// \returns A 128-bit vector of [2 x double] containing the comparison results.
1822
1927
#define _mm_cmp_sd (a , b , c ) __extension__ ({ \
1823
1928
(__m128d)__builtin_ia32_cmpsd((__v2df)(__m128d)(a), \
@@ -1843,17 +1948,38 @@ _mm256_blendv_ps(__m256 __a, __m256 __b, __m256 __c)
1843
1948
/// \param c
1844
1949
/// An immediate integer operand, with bits [4:0] specifying which comparison
1845
1950
/// operation to use: \n
1846
- /// 00h, 08h, 10h, 18h: Equal \n
1847
- /// 01h, 09h, 11h, 19h: Less than \n
1848
- /// 02h, 0Ah, 12h, 1Ah: Less than or equal / Greater than or equal
1849
- /// (swapped operands) \n
1850
- /// 03h, 0Bh, 13h, 1Bh: Unordered \n
1851
- /// 04h, 0Ch, 14h, 1Ch: Not equal \n
1852
- /// 05h, 0Dh, 15h, 1Dh: Not less than / Not greater than
1853
- /// (swapped operands) \n
1854
- /// 06h, 0Eh, 16h, 1Eh: Not less than or equal / Not greater than or equal
1855
- /// (swapped operands) \n
1856
- /// 07h, 0Fh, 17h, 1Fh: Ordered
1951
+ /// 0x00 : Equal (ordered, non-signaling)
1952
+ /// 0x01 : Less-than (ordered, signaling)
1953
+ /// 0x02 : Less-than-or-equal (ordered, signaling)
1954
+ /// 0x03 : Unordered (non-signaling)
1955
+ /// 0x04 : Not-equal (unordered, non-signaling)
1956
+ /// 0x05 : Not-less-than (unordered, signaling)
1957
+ /// 0x06 : Not-less-than-or-equal (unordered, signaling)
1958
+ /// 0x07 : Ordered (non-signaling)
1959
+ /// 0x08 : Equal (unordered, non-signaling)
1960
+ /// 0x09 : Not-greater-than-or-equal (unordered, signaling)
1961
+ /// 0x0a : Not-greater-than (unordered, signaling)
1962
+ /// 0x0b : False (ordered, non-signaling)
1963
+ /// 0x0c : Not-equal (ordered, non-signaling)
1964
+ /// 0x0d : Greater-than-or-equal (ordered, signaling)
1965
+ /// 0x0e : Greater-than (ordered, signaling)
1966
+ /// 0x0f : True (unordered, non-signaling)
1967
+ /// 0x10 : Equal (ordered, signaling)
1968
+ /// 0x11 : Less-than (ordered, non-signaling)
1969
+ /// 0x12 : Less-than-or-equal (ordered, non-signaling)
1970
+ /// 0x13 : Unordered (signaling)
1971
+ /// 0x14 : Not-equal (unordered, signaling)
1972
+ /// 0x15 : Not-less-than (unordered, non-signaling)
1973
+ /// 0x16 : Not-less-than-or-equal (unordered, non-signaling)
1974
+ /// 0x17 : Ordered (signaling)
1975
+ /// 0x18 : Equal (unordered, signaling)
1976
+ /// 0x19 : Not-greater-than-or-equal (unordered, non-signaling)
1977
+ /// 0x1a : Not-greater-than (unordered, non-signaling)
1978
+ /// 0x1b : False (ordered, signaling)
1979
+ /// 0x1c : Not-equal (ordered, signaling)
1980
+ /// 0x1d : Greater-than-or-equal (ordered, non-signaling)
1981
+ /// 0x1e : Greater-than (ordered, non-signaling)
1982
+ /// 0x1f : True (unordered, signaling)
1857
1983
/// \returns A 128-bit vector of [4 x float] containing the comparison results.
1858
1984
#define _mm_cmp_ss (a , b , c ) __extension__ ({ \
1859
1985
(__m128)__builtin_ia32_cmpss((__v4sf)(__m128)(a), \
0 commit comments