clash-lib-1.10.3: prims/commonverilog/GHC_Num_Integer.primitives.yaml
- BlackBox:
name: ["GHC.Num.Integer.integerToNatural", "GHC.Internal.Bignum.Integer.integerToNatural"]
kind: Expression
type: 'integerToNatural
:: Integer -> Natural'
template: $unsigned(~VAR[n][0][(~SIZE[~TYPO]-1):0])
warning: 'GHC.Num.Integer.integerToNatural: Naturals are dynamically sized in
simulation, but fixed-length after synthesis. Use carefully.'
workInfo: Never
- BlackBox:
name: ["GHC.Num.Integer.integerToNaturalThrow", "GHC.Internal.Bignum.Integer.integerToNaturalThrow"]
kind: Expression
type: 'integerToNaturalThrow
:: Integer -> Natural'
template: '(~ARG[0] < ~SIZE[~TYP[0]]''d0 ? ~ERRORO: $unsigned(~VAR[n][0][(~SIZE[~TYPO]-1):0]))'
warning: 'GHC.Num.Integer.integerToNaturalThrow: Naturals are dynamically sized
in simulation, but fixed-length after synthesis. Use carefully.'
workInfo: Never
- BlackBox:
name: ["GHC.Num.Integer.integerToNaturalClamp", "GHC.Internal.Bignum.Integer.integerToNaturalClamp"]
kind: Expression
type: 'integerToNatural
:: Integer -> Natural'
template: '(~ARG[0] < ~SIZE[~TYP[0]]''d0 ? ~SIZE[~TYPO]''d0 : $unsigned(~VAR[n][0][(~SIZE[~TYPO]-1):0]))'
warning: 'GHC.Num.Integer.integerToNaturalClamp: Naturals are dynamically sized
in simulation, but fixed-length after synthesis. Use carefully.'
workInfo: Never
- BlackBox:
name: ["GHC.Num.Integer.integerToInt#", "GHC.Internal.Bignum.Integer.integerToInt#"]
kind: Declaration
type: 'integerToInt ::
Integer -> Int#'
template: assign ~RESULT = $signed(~ARG[0]);
warning: 'GHC.Num.Integer.integerToInt#: Integers are dynamically sized in simulation,
but fixed-length after synthesis. Use carefully.'
workInfo: Never
- BlackBox:
name: ["GHC.Num.Integer.integerMul", "GHC.Internal.Bignum.Integer.integerMul"]
kind: Expression
type: 'integerMul :: Integer
-> Integer -> Integer'
template: ~ARG[0] * ~ARG[1]
warning: 'GHC.Num.Integer.integerMul: Integers are dynamically sized in simulation,
but fixed-length after synthesis. Use carefully.'
- BlackBox:
name: ["GHC.Num.Integer.integerNegate", "GHC.Internal.Bignum.Integer.integerNegate"]
kind: Expression
type: 'integerNegate ::
Integer -> Integer'
template: -~ARG[0]
warning: 'GHC.Num.Integer.integerNegate: Integers are dynamically sized in simulation,
but fixed-length after synthesis. Use carefully.'
- BlackBox:
name: ["GHC.Num.Integer.integerAbs", "GHC.Internal.Bignum.Integer.integerAbs"]
kind: Expression
type: 'integerAbs :: Integer
-> Integer'
template: '(~ARG[0] < ~SIZE[~TYPO]''sd0) ? -~ARG[0] : ~ARG[0]'
warning: 'GHC.Num.Integer.integerAbs: Integers are dynamically sized in simulation,
but fixed-length after synthesis. Use carefully.'
- BlackBox:
name: ["GHC.Num.Integer.integerRem", "GHC.Internal.Bignum.Integer.integerRem"]
kind: Expression
type: 'integerRem :: Integer
-> Integer -> Integer'
template: ~ARG[0] % ~ARG[1]
warning: 'GHC.Num.Integer.integerRem: Integers are dynamically sized in simulation,
but fixed-length after synthesis. Use carefully.'
- BlackBox:
name: ["GHC.Num.Integer.integerEq", "GHC.Internal.Bignum.Integer.integerEq"]
kind: Expression
type: 'integerEq :: Integer
-> Integer -> Bool'
template: ~ARG[0] == ~ARG[1]
warning: 'GHC.Num.Integer.integerEq: Integers are dynamically sized in simulation,
but fixed-length after synthesis. Use carefully.'
- BlackBox:
name: ["GHC.Num.Integer.integerNe", "GHC.Internal.Bignum.Integer.integerNe"]
kind: Expression
type: 'integerNe :: Integer
-> Integer -> Bool'
template: ~ARG[0] != ~ARG[1]
warning: 'GHC.Num.Integer.integerNe: Integers are dynamically sized in simulation,
but fixed-length after synthesis. Use carefully.'
- BlackBox:
name: ["GHC.Num.Integer.integerEq#", "GHC.Internal.Bignum.Integer.integerEq#"]
kind: Expression
type: 'integerEq :: Integer
-> Integer -> Int#'
template: '(~ARG[0] == ~ARG[1]) ? ~SIZE[~TYPO]''sd1 : ~SIZE[~TYPO]''sd0'
warning: 'GHC.Num.Integer.integerEq#: Integers are dynamically sized in simulation,
but fixed-length after synthesis. Use carefully.'
- BlackBox:
name: ["GHC.Num.Integer.integerNe#", "GHC.Internal.Bignum.Integer.integerNe#"]
kind: Expression
type: 'integerNe# :: Integer
-> Integer -> Int#'
template: '(~ARG[0] != ~ARG[1]) ? ~SIZE[~TYPO]''sd1 : ~SIZE[~TYPO]''sd0'
warning: 'GHC.Num.Integer.integerNe#: Integers are dynamically sized in simulation,
but fixed-length after synthesis. Use carefully.'
- BlackBox:
name: ["GHC.Num.Integer.integerLe#", "GHC.Internal.Bignum.Integer.integerLe#"]
kind: Expression
type: 'integerLe :: Integer
-> Integer -> Int#'
template: '(~ARG[0] <= ~ARG[1]) ? ~SIZE[~TYPO]''sd1 : ~SIZE[~TYPO]''sd0'
warning: 'GHC.Num.Integer.integerLe#: Integers are dynamically sized in simulation,
but fixed-length after synthesis. Use carefully.'
- BlackBox:
name: ["GHC.Num.Integer.integerGt#", "GHC.Internal.Bignum.Integer.integerGt#"]
kind: Expression
type: 'integerGt# :: Integer
-> Integer -> Int#'
template: '(~ARG[0] > ~ARG[1]) ? ~SIZE[~TYPO]''sd1 : ~SIZE[~TYPO]''sd0'
warning: 'GHC.Num.Integer.integerGt#: Integers are dynamically sized in simulation,
but fixed-length after synthesis. Use carefully.'
- BlackBox:
name: ["GHC.Num.Integer.integerLt#", "GHC.Internal.Bignum.Integer.integerLt#"]
kind: Expression
type: 'integerLt# :: Integer
-> Integer -> Int#'
template: '(~ARG[0] < ~ARG[1]) ? ~SIZE[~TYPO]''sd1 : ~SIZE[~TYPO]''sd0'
warning: 'GHC.Num.Integer.integerLt#: Integers are dynamically sized in simulation,
but fixed-length after synthesis. Use carefully.'
- BlackBox:
name: ["GHC.Num.Integer.integerGe#", "GHC.Internal.Bignum.Integer.integerGe#"]
kind: Expression
type: 'integerGe# :: Integer
-> Integer -> Int#'
template: '(~ARG[0] >= ~ARG[1]) ? ~SIZE[~TYPO]''sd1 : ~SIZE[~TYPO]''sd0'
warning: 'GHC.Num.Integer.integerGe#: Integers are dynamically sized in simulation,
but fixed-length after synthesis. Use carefully.'
- BlackBox:
name: ["GHC.Num.Integer.integerShiftR#", "GHC.Internal.Bignum.Integer.integerShiftR#"]
kind: Expression
type: 'integerShiftR ::
Integer -> Word# -> Integer'
template: ~ARG[0] >>> ~ARG[1]
warning: 'GHC.Num.Integer.integerShiftR#: Integers are dynamically sized in simulation,
but fixed-length after synthesis. Use carefully.'
- BlackBox:
name: ["GHC.Num.Integer.integerShiftL#", "GHC.Internal.Bignum.Integer.integerShiftL#"]
kind: Expression
type: 'integerShiftL ::
Integer -> Word# -> Integer'
template: ~ARG[0] <<< ~ARG[1]
warning: 'GHC.Num.Integer.integerShiftL#: Integers are dynamically sized in simulation,
but fixed-length after synthesis. Use carefully.'
- BlackBox:
name: ["GHC.Num.Integer.integerTestBit#", "GHC.Internal.Bignum.Integer.integerTestBit#"]
kind: Expression
type: 'integerTestBit
:: Integer -> Word# -> Int#'
template: "((~VAR[input][0][~ARG[1]] == 1'b1) ? ~SIZE[~TYPO]'sd1 : ~SIZE[~TYPO]'sd0)"
warning: 'GHC.Num.Integer.integerTestBit#: Integers are dynamically sized in simulation,
but fixed-length after synthesis. Use carefully.'
- BlackBox:
name: ["GHC.Num.Integer.integerFromWord#", "GHC.Internal.Bignum.Integer.integerFromWord#"]
kind: Declaration
type: 'integerFromWord#
:: Word# -> Integer'
template: assign ~RESULT = $signed(~ARG[0]);
warning: 'GHC.Num.Integer.integerFromWord#: Integers are dynamically sized in
simulation, but fixed-length after synthesis. Use carefully.'
workInfo: Never
- BlackBox:
name: ["GHC.Num.Integer.integerToWord#", "GHC.Internal.Bignum.Integer.integerToWord#"]
kind: Declaration
type: 'integerToWord#
:: Integer -> Word#'
template: assign ~RESULT = $unsigned(~ARG[0]);
warning: 'GHC.Num.Integer.integerToWord#: Integers are dynamically sized in simulation,
but fixed-length after synthesis. Use carefully.'
workInfo: Never
- BlackBox:
name: ["GHC.Num.Integer.integerToInt64#", "GHC.Internal.Bignum.Integer.integerToInt64#"]
kind: Expression
type: 'integerToInt64#:: Integer -> Int64#'
template: ~ARG[0]
warning: 'GHC.Num.Integer.integerToInt64#: Integers are dynamically sized in
simulation, but fixed-length after synthesis. Use carefully.'
workInfo: Never
- BlackBox:
name: ["GHC.Num.Integer.integerToWord64#", "GHC.Internal.Bignum.Integer.integerToWord64#"]
comment: only used by 32 bit GHC
kind: Declaration
type: 'integerToWord64#
:: Integer -> Word64#'
template: assign ~RESULT = $unsigned(~ARG[0]);
warning: 'GHC.Num.Integer.integerToWord64#: Integers are dynamically sized in
simulation, but fixed-length after synthesis. Use carefully.'
workInfo: Never
- BlackBox:
name: ["GHC.Num.Integer.integerFromWord64#", "GHC.Internal.Bignum.Integer.integerFromWord64#"]
kind: Declaration
type: 'integerFromWord64# :: Word64# -> Integer'
template: assign ~RESULT = $signed(~ARG[0]);
warning: 'GHC.Num.Integer.integerFromWord64#: Integers are dynamically sized in
simulation, but fixed-length after synthesis. Use carefully.'
workInfo: Never
- BlackBox:
name: ["GHC.Num.Integer.integerBit#", "GHC.Internal.Bignum.Integer.integerBit#"]
kind: Expression
type: 'integerBit# ::
Word# -> Integer'
template: 1 << ~ARG[0]
warning: 'GHC.Num.Integer.integerBit#: Integers are dynamically sized in simulation,
but fixed-length after synthesis. Use carefully.'
- BlackBox:
name: ["GHC.Num.Integer.integerComplement", "GHC.Internal.Bignum.Integer.integerComplement"]
kind: Expression
type: 'integerComplement
:: Integer -> Integer'
template: ~ ~ARG[0]
warning: 'GHC.Num.Integer.integerComplement: Integers are dynamically sized in
simulation, but fixed-length after synthesis. Use carefully.'
- BlackBox:
name: ["GHC.Num.Integer.integerXor", "GHC.Internal.Bignum.Integer.integerXor"]
kind: Expression
type: 'integerXor :: Integer
-> Integer -> Integer'
template: ~ARG[0] ^ ~ARG[1]
warning: 'GHC.Num.Integer.integerXor: Integers are dynamically sized in simulation,
but fixed-length after synthesis. Use carefully.'
- BlackBox:
name: ["GHC.Num.Integer.integerOr", "GHC.Internal.Bignum.Integer.integerOr"]
kind: Expression
type: 'integerOr :: Integer
-> Integer -> Integer'
template: ~ARG[0] | ~ARG[1]
warning: 'GHC.Num.Integer.integerOr: Integers are dynamically sized in simulation,
but fixed-length after synthesis. Use carefully.'
- BlackBox:
name: ["GHC.Num.Integer.integerAnd", "GHC.Internal.Bignum.Integer.integerAnd"]
kind: Expression
type: 'andInteger :: Integer
-> Integer -> Integer'
template: ~ARG[0] & ~ARG[1]
warning: 'GHC.Num.Integer.integerAnd: Integers are dynamically sized in simulation,
but fixed-length after synthesis. Use carefully.'
- BlackBox:
name: ["GHC.Num.Integer.integerSignum", "GHC.Internal.Bignum.Integer.integerSignum"]
kind: Expression
type: 'integerSignum ::
Integer -> Integer'
template: '(~ARG[0] < ~SIZE[~TYPO]''sd0) ? -~SIZE[~TYPO]''sd1 : ((~ARG[0] == ~SIZE[~TYPO]''sd0)
? ~SIZE[~TYPO]''sd0 : ~SIZE[~TYPO]''sd1)'
warning: 'GHC.Num.Integer.integerSignum: Integers are dynamically sized in simulation,
but fixed-length after synthesis. Use carefully.'
- BlackBox:
name: ["GHC.Num.Integer.$wintegerSignum", "GHC.Internal.Bignum.Integer.$wintegerSignum"]
kind: Expression
type: 'integerSignum ::
Integer -> Int#'
template: '(~ARG[0] < ~SIZE[~TYPO]''sd0) ? -~SIZE[~TYPO]''sd1 : ((~ARG[0] == ~SIZE[~TYPO]''sd0)
? ~SIZE[~TYPO]''sd0 : ~SIZE[~TYPO]''sd1)'
warning: 'GHC.Num.Integer.$wintegerSignum: Integers are dynamically sized in simulation,
but fixed-length after synthesis. Use carefully.'
- BlackBox:
name: ["GHC.Num.Integer.integerLogBase#", "GHC.Internal.Bignum.Integer.integerLogBase#"]
imports:
- ~INCLUDENAME[0].inc
includes:
- name: integerLogBase
extension: inc
template: |-
// integer logBase
function integer ~INCLUDENAME[0];
input integer base, value;
begin
for (~INCLUDENAME[0] = 0; value >= base; ~INCLUDENAME[0]=~INCLUDENAME[0]+1)
value = value / base;
end
endfunction
kind: Expression
type: 'integerLogBase#
:: Integer -> Integer -> Word#'
template: ~INCLUDENAME[0](~ARG[0],~ARG[1])
warning: 'GHC.Num.Integer.integerLogBase#: Integers are dynamically sized in simulation,
but fixed-length after synthesis. Use carefully.'
- BlackBox:
name: ["GHC.Num.Integer.integerCompare", "GHC.Internal.Bignum.Integer.integerCompare"]
kind: Expression
type: 'integerCompare
:: Integer -> Integer -> Ordering'
template: '(~ARG[0] < ~ARG[1]) ? -~SIZE[~TYPO]''d0 : ((~ARG[0] == ~ARG[1]) ? ~SIZE[~TYPO]''d1
: ~SIZE[~TYPO]''d2)'
warning: 'GHC.Num.Integer.integerCompare: Integers are dynamically sized in simulation,
but fixed-length after synthesis. Use carefully.'
- BlackBox:
name: ["GHC.Num.Integer.integerQuot", "GHC.Internal.Bignum.Integer.integerQuot"]
kind: Expression
type: 'integerQuot ::
Integer -> Integer -> Integer'
template: ~ARG[0] / ~ARG[1]
warning: 'GHC.Num.Integer.integerQuot: Integers are dynamically sized in simulation,
but fixed-length after synthesis. Use carefully.'
- BlackBox:
name: ["GHC.Num.Integer.$wintegerFromInt64#", "GHC.Internal.Bignum.Integer.$wintegerFromInt64#"]
kind: Declaration
type: '$wintegerFromInt64# :: Int64# -> Int#'
template: |-
// wintegerFromInt64 begin
assign ~RESULT = ~ARG[0];
// wintegerFromInt64 end
workInfo: Never