Source/Packages

Accelerator.SM86.InstructionEncoding

packages/hardware/architectures/nvidia-sm86/src/Accelerator/SM86/InstructionEncoding.alpha

2,401 lines164 declarations94.5 KiBSHA-256 92e7bf9c2555

def · lines 1719–2044

sm86EncodeInstruction

Full file
1719def sm86EncodeInstruction =
1720  (lambda unrestricted instruction : (family SM86Instruction) .
1721    (eliminate
1722      SM86Instruction
1723      (lambda unrestricted current : (family SM86Instruction) .
1724        (family SM86InstructionEncodingResult))
1725      instruction
1726      (branch
1727        SM86InstructionValue
1728        guard
1729        body
1730        .
1731        (eliminate
1732          SM86InstructionBody
1733          (lambda unrestricted current : (family SM86InstructionBody) .
1734            (family SM86InstructionEncodingResult))
1735          body
1736          (branch
1737            SM86MoveConstant
1738            destination
1739            bank
1740            offset
1741            control
1742            .
1743            (sm86EncodeMoveConstant guard destination bank offset control))
1744          (branch
1745            SM86SpecialToRegister
1746            destination
1747            special
1748            control
1749            .
1750            (sm86EncodeSpecialToRegister guard destination special control))
1751          (branch
1752            SM86MoveImmediate
1753            destination
1754            immediate
1755            control
1756            .
1757            (sm86EncodeMoveImmediate guard destination immediate control))
1758          (branch
1759            SM86IntegerMultiplyAddConstant
1760            destination
1761            left
1762            bank
1763            offset
1764            addend
1765            control
1766            .
1767            (sm86EncodeIntegerMultiplyAddConstant guard destination left bank offset addend control))
1768          (branch
1769            SM86IntegerMultiplyAddImmediate
1770            destination
1771            left
1772            immediate
1773            addend
1774            control
1775            .
1776            (sm86EncodeIntegerMultiplyAddImmediate guard destination left immediate addend control))
1777          (branch
1778            SM86IntegerMultiplyAddWideConstant
1779            destination
1780            left
1781            right
1782            bank
1783            offset
1784            control
1785            .
1786            (sm86EncodeIntegerMultiplyAddWideConstant
1787              guard
1788              destination
1789              left
1790              right
1791              bank
1792              offset
1793              control))
1794          (branch
1795            SM86IntegerAddThreeImmediate
1796            destination
1797            left
1798            immediate
1799            control
1800            .
1801            (sm86EncodeIntegerAdd3Immediate guard destination left immediate control))
1802          (branch
1803            SM86IntegerAddThreeRegister
1804            destination
1805            left
1806            right
1807            control
1808            .
1809            (sm86EncodeIntegerAdd3Register guard destination left right control))
1810          (branch
1811            SM86ShiftRightImmediate
1812            destination
1813            source
1814            amount
1815            control
1816            .
1817            (sm86EncodeShiftRightImmediate guard destination source amount control))
1818          (branch
1819            SM86LogicThreeInputTruthTable
1820            destination
1821            left
1822            right
1823            truthTable
1824            control
1825            .
1826            (sm86EncodeLogic3 guard destination left right truthTable control))
1827          (branch
1828            SM86IntegerToFloat
1829            destination
1830            source
1831            control
1832            .
1833            (sm86EncodeIntegerToFloat guard destination source control))
1834          (branch
1835            SM86FloatAdd
1836            destination
1837            left
1838            right
1839            control
1840            .
1841            (sm86EncodeFloatAdd guard destination left right control))
1842          (branch
1843            SM86FloatMultiply
1844            destination
1845            left
1846            right
1847            control
1848            .
1849            (sm86EncodeFloatMultiply guard destination left right control))
1850          (branch
1851            SM86FloatFusedMultiplyAdd
1852            destination
1853            left
1854            right
1855            addend
1856            control
1857            .
1858            (sm86EncodeFloatFusedMultiplyAdd guard destination left right addend control))
1859          (branch
1860            SM86MultiFunctionUnitApproximation
1861            destination
1862            source
1863            operation
1864            control
1865            .
1866            (sm86EncodeMultiFunction guard destination source operation control))
1867          (branch
1868            SM86FloatMinimumOrMaximum
1869            destination
1870            left
1871            right
1872            extremum
1873            control
1874            .
1875            (sm86EncodeFloatExtremum guard destination left right extremum control))
1876          (branch
1877            SM86FloatNegate
1878            destination
1879            source
1880            control
1881            .
1882            (sm86EncodeFloatNegate guard destination source control))
1883          (branch
1884            SM86FloatPairToPackedHalfPair
1885            destination
1886            sourceHigh
1887            sourceLow
1888            control
1889            .
1890            (sm86EncodeFloat32PairToHalf2 guard destination sourceHigh sourceLow control))
1891          (branch
1892            SM86FloatPairToPackedBFloat16Pair
1893            destination
1894            sourceHigh
1895            sourceLow
1896            control
1897            .
1898            (sm86EncodeFloat32PairToBFloat16Pair guard destination sourceHigh sourceLow control))
1899          (branch
1900            SM86HalfToFloat
1901            destination
1902            source
1903            selector
1904            control
1905            .
1906            (sm86EncodeHalfToFloat guard destination source selector control))
1907          (branch
1908            SM86BFloat16ToFloat
1909            destination
1910            source
1911            selector
1912            control
1913            .
1914            (sm86EncodeBFloat16ToFloat guard destination source selector control))
1915          (branch
1916            SM86TensorCoreHalfMatrixMultiplyAccumulate16x8x16Float32
1917            destination
1918            fragmentA
1919            fragmentB
1920            accumulator
1921            control
1922            .
1923            (sm86EncodeHMMA16816F32F16 guard destination fragmentA fragmentB accumulator control))
1924          (branch
1925            SM86TensorCoreBFloat16MatrixMultiplyAccumulate16x8x16Float32
1926            destination
1927            fragmentA
1928            fragmentB
1929            accumulator
1930            control
1931            .
1932            (sm86EncodeHMMA16816F32BF16 guard destination fragmentA fragmentB accumulator control))
1933          (branch
1934            SM86LoadGlobal
1935            destination
1936            address
1937            offset
1938            control
1939            .
1940            (sm86EncodeLoadGlobal guard destination address offset control))
1941          (branch
1942            SM86LoadGlobalWide
1943            destination
1944            address
1945            offset
1946            control
1947            .
1948            (sm86EncodeLoadGlobalWide guard destination address offset control))
1949          (branch
1950            SM86WarpShuffle
1951            destination
1952            source
1953            lane
1954            segment
1955            mode
1956            control
1957            .
1958            (sm86EncodeShuffle guard destination source lane segment mode control))
1959          (branch
1960            SM86LoadShared
1961            destination
1962            address
1963            offset
1964            control
1965            .
1966            (sm86EncodeLoadShared guard destination address offset control))
1967          (branch
1968            SM86LoadSharedMatrix
1969            destination
1970            address
1971            offset
1972            count
1973            transpose
1974            control
1975            .
1976            (sm86EncodeLoadSharedMatrix guard destination address offset count transpose control))
1977          (branch
1978            SM86StoreShared
1979            address
1980            value
1981            offset
1982            control
1983            .
1984            (sm86EncodeStoreShared guard address value offset control))
1985          (branch
1986            SM86LoadGlobalToShared
1987            address
1988            offset
1989            source
1990            sourceOffset
1991            control
1992            .
1993            (sm86EncodeLoadGlobalToShared guard address offset source sourceOffset control))
1994          (branch SM86CommitAsyncGroup control . (sm86EncodeCommitAsyncGroup guard control))
1995          (branch SM86WaitAsyncGroups count control . (sm86EncodeWaitAsyncGroups guard count control))
1996          (branch SM86BarrierSynchronize control . (sm86EncodeBarrierSynchronize guard control))
1997          (branch
1998            SM86StoreGlobal
1999            address
2000            value
2001            offset
2002            control
2003            .
2004            (sm86EncodeStoreGlobal guard address value offset control))
2005          (branch
2006            SM86StoreGlobalWide
2007            address
2008            value
2009            offset
2010            control
2011            .
2012            (sm86EncodeStoreGlobalWide guard address value offset control))
2013          (branch
2014            SM86StoreGlobal64
2015            address
2016            value
2017            offset
2018            control
2019            .
2020            (sm86EncodeStoreGlobal64 guard address value offset control))
2021          (branch
2022            SM86ReduceGlobalAddFloat32
2023            address
2024            value
2025            offset
2026            control
2027            .
2028            (sm86EncodeReduceGlobalAddFloat32 guard address value offset control))
2029          (branch
2030            SM86PredicateGreaterThanImmediate
2031            predicate
2032            source
2033            immediate
2034            control
2035            .
2036            (sm86EncodePredicateGreater guard predicate source immediate control))
2037          (branch
2038            SM86Branch
2039            offset
2040            descriptor
2041            control
2042            .
2043            (sm86EncodeBranch guard offset descriptor control))
2044          (branch SM86Exit control . (sm86EncodeExit guard control))))))

The compiler supplied declaration spans and resolved links from this source snapshot. This page does not assert that this file belongs to a checked closure.