Source/Packages

Accelerator.SM86.InstructionEncoding

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

2,478 lines168 declarations99.8 KiBSHA-256 b7c60128ad15

def · lines 1793–2121

sm86EncodeInstruction

Full file
1793def sm86EncodeInstruction =
1794  (lambda unrestricted instruction : (family SM86Instruction) .
1795    (eliminate
1796      SM86Instruction
1797      (lambda unrestricted current : (family SM86Instruction) .
1798        (family SM86InstructionEncodingResult))
1799      instruction
1800      (branch
1801        SM86InstructionValue
1802        guard
1803        body
1804        .
1805        (eliminate
1806          SM86InstructionBody
1807          (lambda unrestricted current : (family SM86InstructionBody) .
1808            (family SM86InstructionEncodingResult))
1809          body
1810          (branch
1811            SM86MoveConstant
1812            destination
1813            bank
1814            offset
1815            control
1816            .
1817            (sm86EncodeMoveConstant guard destination bank offset control))
1818          (branch
1819            SM86SpecialToRegister
1820            destination
1821            special
1822            control
1823            .
1824            (sm86EncodeSpecialToRegister guard destination special control))
1825          (branch
1826            SM86MoveImmediate
1827            destination
1828            immediate
1829            control
1830            .
1831            (sm86EncodeMoveImmediate guard destination immediate control))
1832          (branch
1833            SM86IntegerMultiplyAddConstant
1834            destination
1835            left
1836            bank
1837            offset
1838            addend
1839            control
1840            .
1841            (sm86EncodeIntegerMultiplyAddConstant guard destination left bank offset addend control))
1842          (branch
1843            SM86IntegerMultiplyAddImmediate
1844            destination
1845            left
1846            immediate
1847            addend
1848            control
1849            .
1850            (sm86EncodeIntegerMultiplyAddImmediate guard destination left immediate addend control))
1851          (branch
1852            SM86IntegerMultiplyAddWideConstant
1853            destination
1854            left
1855            right
1856            bank
1857            offset
1858            control
1859            .
1860            (sm86EncodeIntegerMultiplyAddWideConstant
1861              guard
1862              destination
1863              left
1864              right
1865              bank
1866              offset
1867              control))
1868          (branch
1869            SM86IntegerAddThreeImmediate
1870            destination
1871            left
1872            immediate
1873            control
1874            .
1875            (sm86EncodeIntegerAdd3Immediate guard destination left immediate control))
1876          (branch
1877            SM86IntegerAddThreeRegister
1878            destination
1879            left
1880            right
1881            control
1882            .
1883            (sm86EncodeIntegerAdd3Register guard destination left right control))
1884          (branch
1885            SM86ShiftRightImmediate
1886            destination
1887            source
1888            amount
1889            control
1890            .
1891            (sm86EncodeShiftRightImmediate guard destination source amount control))
1892          (branch
1893            SM86LogicThreeInputTruthTable
1894            destination
1895            left
1896            right
1897            truthTable
1898            control
1899            .
1900            (sm86EncodeLogic3 guard destination left right truthTable control))
1901          (branch
1902            SM86IntegerToFloat
1903            destination
1904            source
1905            control
1906            .
1907            (sm86EncodeIntegerToFloat guard destination source control))
1908          (branch
1909            SM86FloatAdd
1910            destination
1911            left
1912            right
1913            control
1914            .
1915            (sm86EncodeFloatAdd guard destination left right control))
1916          (branch
1917            SM86FloatMultiply
1918            destination
1919            left
1920            right
1921            control
1922            .
1923            (sm86EncodeFloatMultiply guard destination left right control))
1924      (branch SM86Float64Binary operation destination left right control . (sm86EncodeFloat64Binary guard operation destination left right control))
1925      (branch SM86FloatConvert conversion control . (sm86EncodeFloatConvert guard conversion control))
1926          (branch
1927            SM86FloatFusedMultiplyAdd
1928            destination
1929            left
1930            right
1931            addend
1932            control
1933            .
1934            (sm86EncodeFloatFusedMultiplyAdd guard destination left right addend control))
1935          (branch
1936            SM86MultiFunctionUnitApproximation
1937            destination
1938            source
1939            operation
1940            control
1941            .
1942            (sm86EncodeMultiFunction guard destination source operation control))
1943          (branch
1944            SM86FloatMinimumOrMaximum
1945            destination
1946            left
1947            right
1948            extremum
1949            control
1950            .
1951            (sm86EncodeFloatExtremum guard destination left right extremum control))
1952          (branch
1953            SM86FloatNegate
1954            destination
1955            source
1956            control
1957            .
1958            (sm86EncodeFloatNegate guard destination source control))
1959          (branch
1960            SM86FloatPairToPackedHalfPair
1961            destination
1962            sourceHigh
1963            sourceLow
1964            control
1965            .
1966            (sm86EncodeFloat32PairToHalf2 guard destination sourceHigh sourceLow control))
1967          (branch
1968            SM86FloatPairToPackedBFloat16Pair
1969            destination
1970            sourceHigh
1971            sourceLow
1972            control
1973            .
1974            (sm86EncodeFloat32PairToBFloat16Pair guard destination sourceHigh sourceLow control))
1975          (branch
1976            SM86HalfToFloat
1977            destination
1978            source
1979            selector
1980            control
1981            .
1982            (sm86EncodeHalfToFloat guard destination source selector control))
1983          (branch
1984            SM86BFloat16ToFloat
1985            destination
1986            source
1987            selector
1988            control
1989            .
1990            (sm86EncodeBFloat16ToFloat guard destination source selector control))
1991          (branch
1992            SM86TensorCoreHalfMatrixMultiplyAccumulate16x8x16Float32
1993            destination
1994            fragmentA
1995            fragmentB
1996            accumulator
1997            control
1998            .
1999            (sm86EncodeHMMA16816F32F16 guard destination fragmentA fragmentB accumulator control))
2000          (branch
2001            SM86TensorCoreBFloat16MatrixMultiplyAccumulate16x8x16Float32
2002            destination
2003            fragmentA
2004            fragmentB
2005            accumulator
2006            control
2007            .
2008            (sm86EncodeHMMA16816F32BF16 guard destination fragmentA fragmentB accumulator control))
2009          (branch
2010            SM86LoadGlobal
2011            destination
2012            address
2013            offset
2014            control
2015            .
2016            (sm86EncodeLoadGlobal guard destination address offset control))
2017          (branch
2018            SM86LoadGlobalWide
2019            destination
2020            address
2021            offset
2022            control
2023            .
2024            (sm86EncodeLoadGlobalWide guard destination address offset control))
2025          (branch
2026            SM86WarpShuffle
2027            destination
2028            source
2029            lane
2030            segment
2031            mode
2032            control
2033            .
2034            (sm86EncodeShuffle guard destination source lane segment mode control))
2035          (branch
2036            SM86LoadShared
2037            destination
2038            address
2039            offset
2040            control
2041            .
2042            (sm86EncodeLoadShared guard destination address offset control))
2043          (branch
2044            SM86LoadSharedMatrix
2045            destination
2046            address
2047            offset
2048            count
2049            transpose
2050            control
2051            .
2052            (sm86EncodeLoadSharedMatrix guard destination address offset count transpose control))
2053          (branch
2054            SM86StoreShared
2055            address
2056            value
2057            offset
2058            control
2059            .
2060            (sm86EncodeStoreShared guard address value offset control))
2061          (branch
2062            SM86LoadGlobalToShared
2063            address
2064            offset
2065            source
2066            sourceOffset
2067            control
2068            .
2069            (sm86EncodeLoadGlobalToShared guard address offset source sourceOffset control))
2070          (branch SM86CommitAsyncGroup control . (sm86EncodeCommitAsyncGroup guard control))
2071          (branch SM86WaitAsyncGroups count control . (sm86EncodeWaitAsyncGroups guard count control))
2072          (branch SM86BarrierSynchronize control . (sm86EncodeBarrierSynchronize guard control))
2073          (branch SM86BarrierSynchronizeCount barrier threads control . (sm86EncodeBarrierSynchronizeCount guard barrier threads control))
2074          (branch
2075            SM86StoreGlobal
2076            address
2077            value
2078            offset
2079            control
2080            .
2081            (sm86EncodeStoreGlobal guard address value offset control))
2082          (branch
2083            SM86StoreGlobalWide
2084            address
2085            value
2086            offset
2087            control
2088            .
2089            (sm86EncodeStoreGlobalWide guard address value offset control))
2090          (branch
2091            SM86StoreGlobal64
2092            address
2093            value
2094            offset
2095            control
2096            .
2097            (sm86EncodeStoreGlobal64 guard address value offset control))
2098          (branch
2099            SM86ReduceGlobalAddFloat32
2100            address
2101            value
2102            offset
2103            control
2104            .
2105            (sm86EncodeReduceGlobalAddFloat32 guard address value offset control))
2106          (branch
2107            SM86PredicateGreaterThanImmediate
2108            predicate
2109            source
2110            immediate
2111            control
2112            .
2113            (sm86EncodePredicateGreater guard predicate source immediate control))
2114          (branch
2115            SM86Branch
2116            offset
2117            descriptor
2118            control
2119            .
2120            (sm86EncodeBranch guard offset descriptor control))
2121          (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.