Source/Packages

Accelerator.SM86.InstructionEncoding

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

2,580 lines175 declarations106.3 KiBSHA-256 13b25e5394ea

def · lines 1873–2223

sm86EncodeInstruction

Full file
1873def sm86EncodeInstruction =
1874  (lambda unrestricted instruction : (family SM86Instruction) .
1875    (eliminate
1876      SM86Instruction
1877      (lambda unrestricted current : (family SM86Instruction) .
1878        (family SM86InstructionEncodingResult))
1879      instruction
1880      (branch
1881        SM86InstructionValue
1882        guard
1883        body
1884        .
1885        (eliminate
1886          SM86InstructionBody
1887          (lambda unrestricted current : (family SM86InstructionBody) .
1888            (family SM86InstructionEncodingResult))
1889          body
1890          (branch
1891            SM86MoveConstant
1892            destination
1893            bank
1894            offset
1895            control
1896            .
1897            (sm86EncodeMoveConstant guard destination bank offset control))
1898          (branch
1899            SM86SpecialToRegister
1900            destination
1901            special
1902            control
1903            .
1904            (sm86EncodeSpecialToRegister guard destination special control))
1905          (branch
1906            SM86MoveImmediate
1907            destination
1908            immediate
1909            control
1910            .
1911            (sm86EncodeMoveImmediate guard destination immediate control))
1912          (branch
1913            SM86IntegerMultiplyAddConstant
1914            destination
1915            left
1916            bank
1917            offset
1918            addend
1919            control
1920            .
1921            (sm86EncodeIntegerMultiplyAddConstant guard destination left bank offset addend control))
1922          (branch
1923            SM86IntegerMultiplyAddImmediate
1924            destination
1925            left
1926            immediate
1927            addend
1928            control
1929            .
1930            (sm86EncodeIntegerMultiplyAddImmediate guard destination left immediate addend control))
1931          (branch
1932            SM86IntegerMultiplyAddWideConstant
1933            destination
1934            left
1935            right
1936            bank
1937            offset
1938            control
1939            .
1940            (sm86EncodeIntegerMultiplyAddWideConstant
1941              guard
1942              destination
1943              left
1944              right
1945              bank
1946              offset
1947              control))
1948          (branch
1949            SM86IntegerAddThreeImmediate
1950            destination
1951            left
1952            immediate
1953            control
1954            .
1955            (sm86EncodeIntegerAdd3Immediate guard destination left immediate control))
1956          (branch
1957            SM86IntegerAddThreeRegister
1958            destination
1959            left
1960            right
1961            control
1962            .
1963            (sm86EncodeIntegerAdd3Register guard destination left right control))
1964          (branch
1965            SM86ShiftRightImmediate
1966            destination
1967            source
1968            amount
1969            control
1970            .
1971            (sm86EncodeShiftRightImmediate guard destination source amount control))
1972          (branch
1973            SM86LogicThreeInputTruthTable
1974            destination
1975            left
1976            right
1977            truthTable
1978            control
1979            .
1980            (sm86EncodeLogic3 guard destination left right truthTable control))
1981          (branch
1982            SM86IntegerToFloat
1983            destination
1984            source
1985            control
1986            .
1987            (sm86EncodeIntegerToFloat guard destination source control))
1988          (branch
1989            SM86FloatAdd
1990            destination
1991            left
1992            right
1993            control
1994            .
1995            (sm86EncodeFloatAdd guard destination left right control))
1996          (branch
1997            SM86FloatMultiply
1998            destination
1999            left
2000            right
2001            control
2002            .
2003            (sm86EncodeFloatMultiply guard destination left right control))
2004      (branch SM86Float64Binary operation destination left right control . (sm86EncodeFloat64Binary guard operation destination left right control))
2005      (branch SM86FloatConvert conversion control . (sm86EncodeFloatConvert guard conversion control))
2006          (branch
2007            SM86FloatFusedMultiplyAdd
2008            destination
2009            left
2010            right
2011            addend
2012            control
2013            .
2014            (sm86EncodeFloatFusedMultiplyAdd guard destination left right addend control))
2015          (branch
2016            SM86MultiFunctionUnitApproximation
2017            destination
2018            source
2019            operation
2020            control
2021            .
2022            (sm86EncodeMultiFunction guard destination source operation control))
2023          (branch
2024            SM86FloatMinimumOrMaximum
2025            destination
2026            left
2027            right
2028            extremum
2029            control
2030            .
2031            (sm86EncodeFloatExtremum guard destination left right extremum control))
2032          (branch
2033            SM86FloatNegate
2034            destination
2035            source
2036            control
2037            .
2038            (sm86EncodeFloatNegate guard destination source control))
2039          (branch
2040            SM86FloatPairToPackedHalfPair
2041            destination
2042            sourceHigh
2043            sourceLow
2044            control
2045            .
2046            (sm86EncodeFloat32PairToHalf2 guard destination sourceHigh sourceLow control))
2047          (branch
2048            SM86FloatPairToPackedBFloat16Pair
2049            destination
2050            sourceHigh
2051            sourceLow
2052            control
2053            .
2054            (sm86EncodeFloat32PairToBFloat16Pair guard destination sourceHigh sourceLow control))
2055          (branch
2056            SM86FloatPairToPackedFloat8Pair
2057            destination
2058            sourceHigh
2059            sourceLow
2060            merge
2061            mergeHalf
2062            format
2063            control
2064            .
2065            (sm86EncodeFloat32PairToFloat8Pair guard destination sourceHigh sourceLow merge mergeHalf format control))
2066          (branch
2067            SM86FloatArithmetic
2068            operation
2069            destination
2070            left
2071            right
2072            addend
2073            modifiers
2074            control
2075            .
2076            (sm86EncodeFloatArithmetic guard operation destination left right addend modifiers control))
2077          (branch
2078            SM86HalfToFloat
2079            destination
2080            source
2081            selector
2082            control
2083            .
2084            (sm86EncodeHalfToFloat guard destination source selector control))
2085          (branch
2086            SM86BFloat16ToFloat
2087            destination
2088            source
2089            selector
2090            control
2091            .
2092            (sm86EncodeBFloat16ToFloat guard destination source selector control))
2093          (branch
2094            SM86TensorCoreHalfMatrixMultiplyAccumulate16x8x16Float32
2095            destination
2096            fragmentA
2097            fragmentB
2098            accumulator
2099            control
2100            .
2101            (sm86EncodeHMMA16816F32F16 guard destination fragmentA fragmentB accumulator control))
2102          (branch
2103            SM86TensorCoreBFloat16MatrixMultiplyAccumulate16x8x16Float32
2104            destination
2105            fragmentA
2106            fragmentB
2107            accumulator
2108            control
2109            .
2110            (sm86EncodeHMMA16816F32BF16 guard destination fragmentA fragmentB accumulator control))
2111          (branch
2112            SM86LoadGlobal
2113            destination
2114            address
2115            offset
2116            control
2117            .
2118            (sm86EncodeLoadGlobal guard destination address offset control))
2119          (branch
2120            SM86LoadGlobalWide
2121            destination
2122            address
2123            offset
2124            control
2125            .
2126            (sm86EncodeLoadGlobalWide guard destination address offset control))
2127          (branch
2128            SM86WarpShuffle
2129            destination
2130            source
2131            lane
2132            segment
2133            mode
2134            control
2135            .
2136            (sm86EncodeShuffle guard destination source lane segment mode control))
2137          (branch
2138            SM86LoadShared
2139            destination
2140            address
2141            offset
2142            control
2143            .
2144            (sm86EncodeLoadShared guard destination address offset control))
2145          (branch
2146            SM86LoadSharedMatrix
2147            destination
2148            address
2149            offset
2150            count
2151            transpose
2152            control
2153            .
2154            (sm86EncodeLoadSharedMatrix guard destination address offset count transpose control))
2155          (branch
2156            SM86StoreShared
2157            address
2158            value
2159            offset
2160            control
2161            .
2162            (sm86EncodeStoreShared guard address value offset control))
2163          (branch
2164            SM86LoadGlobalToShared
2165            address
2166            offset
2167            source
2168            sourceOffset
2169            control
2170            .
2171            (sm86EncodeLoadGlobalToShared guard address offset source sourceOffset control))
2172          (branch SM86CommitAsyncGroup control . (sm86EncodeCommitAsyncGroup guard control))
2173          (branch SM86WaitAsyncGroups count control . (sm86EncodeWaitAsyncGroups guard count control))
2174          (branch SM86BarrierSynchronize control . (sm86EncodeBarrierSynchronize guard control))
2175          (branch SM86BarrierSynchronizeCount barrier threads control . (sm86EncodeBarrierSynchronizeCount guard barrier threads control))
2176          (branch
2177            SM86StoreGlobal
2178            address
2179            value
2180            offset
2181            control
2182            .
2183            (sm86EncodeStoreGlobal guard address value offset control))
2184          (branch
2185            SM86StoreGlobalWide
2186            address
2187            value
2188            offset
2189            control
2190            .
2191            (sm86EncodeStoreGlobalWide guard address value offset control))
2192          (branch
2193            SM86StoreGlobal64
2194            address
2195            value
2196            offset
2197            control
2198            .
2199            (sm86EncodeStoreGlobal64 guard address value offset control))
2200          (branch
2201            SM86ReduceGlobalAddFloat32
2202            address
2203            value
2204            offset
2205            control
2206            .
2207            (sm86EncodeReduceGlobalAddFloat32 guard address value offset control))
2208          (branch
2209            SM86PredicateGreaterThanImmediate
2210            predicate
2211            source
2212            immediate
2213            control
2214            .
2215            (sm86EncodePredicateGreater guard predicate source immediate control))
2216          (branch
2217            SM86Branch
2218            offset
2219            descriptor
2220            control
2221            .
2222            (sm86EncodeBranch guard offset descriptor control))
2223          (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.