clash-lib-1.6.0: prims/commonverilog/GHC_Prim.primitives.yaml
- BlackBox:
name: GHC.Prim.gtChar#
kind: Expression
type: 'gtChar# :: Char#
-> Char# -> Int#'
template: '(~ARG[0] > ~ARG[1]) ? ~SIZE[~TYPO]''sd1 : ~SIZE[~TYPO]''sd0'
- BlackBox:
name: GHC.Prim.geChar#
kind: Expression
type: 'geChar# :: Char#
-> Char# -> Int#'
template: '(~ARG[0] >= ~ARG[1]) ? ~SIZE[~TYPO]''sd1 : ~SIZE[~TYPO]''sd0'
- BlackBox:
name: GHC.Prim.eqChar#
kind: Expression
type: 'eqChar# :: Char#
-> Char# -> Int#'
template: '(~ARG[0] == ~ARG[1]) ? ~SIZE[~TYPO]''sd1 : ~SIZE[~TYPO]''sd0'
- BlackBox:
name: GHC.Prim.neChar#
kind: Expression
type: 'neChar# :: Char#
-> Char# -> Int#'
template: '(~ARG[0] != ~ARG[1]) ? ~SIZE[~TYPO]''sd1 : ~SIZE[~TYPO]''sd0'
- BlackBox:
name: GHC.Prim.ltChar#
kind: Expression
type: 'ltChar# :: Char#
-> Char# -> Int#'
template: '(~ARG[0] < ~ARG[1]) ? ~SIZE[~TYPO]''sd1 : ~SIZE[~TYPO]''sd0'
- BlackBox:
name: GHC.Prim.leChar#
kind: Expression
type: 'leChar# :: Char#
-> Char# -> Int#'
template: '(~ARG[0] <= ~ARG[1]) ? ~SIZE[~TYPO]''sd1 : ~SIZE[~TYPO]''sd0'
- BlackBox:
name: GHC.Prim.ord#
kind: Expression
type: 'ord :: Char# ->
Int#'
template: $signed({{(~SIZE[~TYPO]-~SIZE[~TYP[0]]) {1'b0}},~VAR[c][0]})
- BlackBox:
name: GHC.Prim.*#
kind: Expression
type: '(*#) :: Int# ->
Int# -> Int#'
template: ~ARG[0] * ~ARG[1]
- BlackBox:
name: GHC.Prim.remInt#
kind: Expression
type: 'remInt# :: Int#
-> Int# -> Int#'
template: ~ARG[0] % ~ARG[1]
- BlackBox:
name: GHC.Prim.andI#
kind: Expression
type: 'andI# :: Int# ->
Int# -> Int#'
template: ~ARG[0] & ~ARG[1]
- BlackBox:
name: GHC.Prim.orI#
kind: Expression
type: 'orI# :: Int# ->
Int# -> Int#'
template: ~ARG[0] | ~ARG[1]
- BlackBox:
name: GHC.Prim.xorI#
kind: Expression
type: 'xorI# :: Int# ->
Int# -> Int#'
template: ~ARG[0] ^ ~ARG[1]
- BlackBox:
name: GHC.Prim.notI#
kind: Expression
type: 'notI# :: Int# ->
Int#'
template: ~ ~ARG[0]
- BlackBox:
name: GHC.Prim.negateInt#
kind: Expression
type: 'negateInt# :: Int#
-> Int#'
template: -(~ARG[0])
- BlackBox:
name: GHC.Prim.>#
kind: Expression
type: '(>#) :: Int# ->
Int# -> Int#'
template: '(~ARG[0] > ~ARG[1]) ? ~SIZE[~TYPO]''sd1 : ~SIZE[~TYPO]''sd0'
- BlackBox:
name: GHC.Prim.>=#
kind: Expression
type: '(>=#) :: Int# ->
Int# -> Int#'
template: '(~ARG[0] >= ~ARG[1]) ? ~SIZE[~TYPO]''sd1 : ~SIZE[~TYPO]''sd0'
- BlackBox:
name: GHC.Prim.==#
kind: Expression
type: '(==) :: Int# ->
Int# -> Int#'
template: '(~ARG[0] == ~ARG[1]) ? ~SIZE[~TYPO]''sd1 : ~SIZE[~TYPO]''sd0'
- BlackBox:
name: GHC.Prim./=#
kind: Expression
type: '(/=#) :: Int# ->
Int# -> Int#'
template: '(~ARG[0] != ~ARG[1]) ? ~SIZE[~TYPO]''sd1 : ~SIZE[~TYPO]''sd0'
- BlackBox:
name: GHC.Prim.<#
kind: Expression
type: '(<#) :: Int# ->
Int# -> Int#'
template: '(~ARG[0] < ~ARG[1]) ? ~SIZE[~TYPO]''sd1 : ~SIZE[~TYPO]''sd0'
- BlackBox:
name: GHC.Prim.<=#
kind: Expression
type: '(<=#) :: Int# ->
Int# -> Int#'
template: '(~ARG[0] <= ~ARG[1]) ? ~SIZE[~TYPO]''sd1 : ~SIZE[~TYPO]''sd0'
- BlackBox:
name: GHC.Prim.chr#
kind: Expression
type: 'ord :: Int# ->
Char#'
template: $unsigned(~VAR[i][0][0+:~SIZE[~TYPO]])
- BlackBox:
name: GHC.Prim.int2Word#
kind: Expression
type: 'int2Word# :: Int#
-> Word#'
template: $unsigned(~ARG[0])
workInfo: Never
- BlackBox:
name: GHC.Prim.uncheckedIShiftL#
kind: Expression
type: 'uncheckedIShiftL#
:: Int# -> Int# -> Int#'
template: ~ARG[0] <<< ~ARG[1]
- BlackBox:
name: GHC.Prim.uncheckedIShiftRA#
kind: Expression
type: 'uncheckedIShiftRA#
:: Int# -> Int# -> Int#'
template: ~ARG[0] >>> ~ARG[1]
- BlackBox:
name: GHC.Prim.uncheckedIShiftRL#
kind: Expression
type: 'uncheckedIShiftRL#
:: Int# -> Int# -> Int#'
template: ~ARG[0] >> ~ARG[1]
- BlackBox:
name: GHC.Prim.timesWord#
kind: Expression
type: 'timesWord# :: Word#
-> Word# -> Word#'
template: ~ARG[0] * ~ARG[1]
- BlackBox:
name: GHC.Prim.remWord#
kind: Expression
type: 'remWord# :: Word#
-> Word# -> Word#'
template: ~ARG[0] % ~ARG[1]
- BlackBox:
name: GHC.Prim.and#
kind: Expression
type: 'and# :: Word# ->
Word# -> Word#'
template: ~ARG[0] & ~ARG[1]
- BlackBox:
name: GHC.Prim.or#
kind: Expression
type: 'or# :: Word# ->
Word# -> Word#'
template: ~ARG[0] | ~ARG[1]
- BlackBox:
name: GHC.Prim.xor#
kind: Expression
type: 'xor# :: Word# ->
Word# -> Word#'
template: ~ARG[0] ^ ~ARG[1]
- BlackBox:
name: GHC.Prim.not#
kind: Expression
type: 'not# :: Word# ->
Word#'
template: ~ ~ARG[0]
- BlackBox:
name: GHC.Prim.uncheckedShiftL#
kind: Expression
type: 'uncheckedShiftL#
:: Word# -> Int# -> Word#'
template: ~ARG[0] << ~ARG[1]
- BlackBox:
name: GHC.Prim.uncheckedShiftRL#
kind: Expression
type: 'uncheckedShiftRL#
:: Word# -> Int# -> Word#'
template: ~ARG[0] >> ~ARG[1]
- BlackBox:
name: GHC.Prim.word2Int#
kind: Expression
type: 'int2Word# :: Word#
-> Int#'
template: $signed(~ARG[0])
workInfo: Never
- BlackBox:
name: GHC.Prim.gtWord#
kind: Expression
type: 'gtWord# :: Word#
-> Word# -> Int#'
template: '(~ARG[0] > ~ARG[1]) ? ~SIZE[~TYPO]''sd1 : ~SIZE[~TYPO]''sd0'
- BlackBox:
name: GHC.Prim.geWord#
kind: Expression
type: 'geWord# :: Word#
-> Word# -> Int#'
template: '(~ARG[0] >= ~ARG[1]) ? ~SIZE[~TYPO]''sd1 : ~SIZE[~TYPO]''sd0'
- BlackBox:
name: GHC.Prim.eqWord#
kind: Expression
type: 'eqWord# :: Word#
-> Word# -> Int#'
template: '(~ARG[0] == ~ARG[1]) ? ~SIZE[~TYPO]''sd1 : ~SIZE[~TYPO]''sd0'
- BlackBox:
name: GHC.Prim.neWord#
kind: Expression
type: 'neWord# :: Word#
-> Word# -> Int#'
template: '(~ARG[0] != ~ARG[1]) ? ~SIZE[~TYPO]''sd1 : ~SIZE[~TYPO]''sd0'
- BlackBox:
name: GHC.Prim.ltWord#
kind: Expression
type: 'ltWord# :: Word#
-> Word# -> Int#'
template: '(~ARG[0] < ~ARG[1]) ? ~SIZE[~TYPO]''sd1 : ~SIZE[~TYPO]''sd0'
- BlackBox:
name: GHC.Prim.leWord#
kind: Expression
type: 'leWord# :: Word#
-> Word# -> Int#'
template: '(~ARG[0] <= ~ARG[1]) ? ~SIZE[~TYPO]''sd1 : ~SIZE[~TYPO]''sd0'
- BlackBox:
name: GHC.Prim.byteSwap16#
kind: Declaration
type: 'byteSwap16# ::
Word# -> Word#'
template: |-
// byteSwap16 begin~IF ~IW64 ~THEN
assign ~RESULT = {~VAR[w][0][63:16],~VAR[w][0][7:0],~VAR[w][0][15:8]};~ELSE
assign ~RESULT = {~VAR[w][0][31:16],~VAR[w][0][7:0],~VAR[w][0][15:8]};~FI
// byteSwap16 end
workInfo: Never
- BlackBox:
name: GHC.Prim.byteSwap32#
kind: Declaration
type: 'byteSwap32# ::
Word# -> Word#'
template: |-
// byteSwap32 begin~IF ~IW64 ~THEN
assign ~RESULT = {~VAR[w][0][63:32],~VAR[w][0][7:0],~VAR[w][0][15:8],~VAR[w][0][23:16],~VAR[w][0][31:24]};~ELSE
assign ~RESULT = {~VAR[w][0][7:0],~VAR[w][0][15:8],~VAR[w][0][23:16],~VAR[w][0][31:24]};~FI
// byteSwap32 end
workInfo: Never
- BlackBox:
name: GHC.Prim.byteSwap64#
kind: Declaration
type: 'byteSwap64# ::
Word# -> Word#'
template: |-
// byteSwap64 begin
assign ~RESULT = {~VAR[w][0][7:0],~VAR[w][0][15:8],~VAR[w][0][23:16],~VAR[w][0][31:24]
,~VAR[w][0][39:32],~VAR[w][0][47:40],~VAR[w][0][55:48],~VAR[w][0][63:56]};
// byteSwap64 end
workInfo: Never
- BlackBox:
name: GHC.Prim.byteSwap#
kind: Declaration
type: 'byteSwap# :: Word#
-> Word#'
template: |-
// byteSwap begin~IF ~IW64 ~THEN
assign ~RESULT = {~VAR[w][0][7:0],~VAR[w][0][15:8],~VAR[w][0][23:16],~VAR[w][0][31:24]
,~VAR[w][0][39:32],~VAR[w][0][47:40],~VAR[w][0][55:48],~VAR[w][0][63:56]};~ELSE
assign ~RESULT = {~VAR[w][0][7:0],~VAR[w][0][15:8],~VAR[w][0][23:16],~VAR[w][0][31:24]};~FI
// byteSwap end
workInfo: Never
- BlackBox:
name: GHC.Prim.narrow8Int#
kind: Declaration
type: 'narrow8Int# ::
Int# -> Int#'
template: |-
// narrow8Int begin
assign ~RESULT = $signed(~VAR[i][0][7:0]);
// narrow8Int end
workInfo: Never
- BlackBox:
name: GHC.Prim.narrow16Int#
kind: Declaration
type: 'narrow16Int# ::
Int# -> Int#'
template: |-
// narrow16Int begin
assign ~RESULT = $signed(~VAR[i][0][15:0]);
// narrow16Int end
workInfo: Never
- BlackBox:
name: GHC.Prim.narrow32Int#
kind: Declaration
type: 'narrow32Int# ::
Int# -> Int#'
template: |-
// narrow32Int begin
assign ~RESULT = $signed(~VAR[i][0][31:0]);
// narrow32Int end
workInfo: Never
- BlackBox:
name: GHC.Prim.narrow8Word#
kind: Declaration
type: 'narrow8Int# ::
Word# -> Word#'
template: |-
// narrow8Word begin
assign ~RESULT = $unsigned(~VAR[w][0][7:0]);
// narrow8Word end
workInfo: Never
- BlackBox:
name: GHC.Prim.narrow16Word#
kind: Declaration
type: 'narrow16Word# ::
Word# -> Word#'
template: |-
// narrow16Word begin
assign ~RESULT = $unsigned(~VAR[w][0][15:0]);
// narrow16Word end
workInfo: Never
- BlackBox:
name: GHC.Prim.narrow32Word#
kind: Declaration
type: 'narrow32Int# ::
Word# -> Word#'
template: |-
// narrow32Word begin
assign ~RESULT = $unsigned(~VAR[w][0][31:0]);
// narrow32Word end
workInfo: Never
- BlackBox:
name: GHC.Prim.bitReverse#
kind: Declaration
type: 'bitReverse# ::
Word# -> Word#'
template: |-
// bitReverse begin
genvar ~GENSYM[i][0];
~GENERATE
for (~SYM[0] = 0; ~SYM[0] < ~IF ~IW64 ~THEN 64 ~ELSE 32 ~FI; ~SYM[0]=~SYM[0]+1) begin : ~GENSYM[bitReverse][2]
assign ~RESULT[~SYM[0]] = ~VAR[x][0][~IF ~IW64 ~THEN 63 ~ELSE 31 ~FI-~SYM[0]];
end
~ENDGENERATE
// bitReverse end
workInfo: Never
- BlackBox:
name: GHC.Prim.bitReverse8#
kind: Declaration
type: 'bitReverse8# ::
Word# -> Word#'
template: |-
// bitReverse8 begin
genvar ~GENSYM[i][0];
~GENERATE
for (~SYM[0] = 0; ~SYM[0] < 8; ~SYM[0]=~SYM[0]+1) begin : ~GENSYM[bitReverse8][2]
assign ~RESULT[~SYM[0]] = ~VAR[x][0][7-~SYM[0]];
end
~ENDGENERATE
// bitReverse8 end
workInfo: Never
- BlackBox:
name: GHC.Prim.bitReverse16#
kind: Declaration
type: 'bitReverse16# ::
Word# -> Word#'
template: |-
// bitReverse16 begin
genvar ~GENSYM[i][0];
~GENERATE
for (~SYM[0] = 0; ~SYM[0] < 16; ~SYM[0]=~SYM[0]+1) begin : ~GENSYM[bitReverse16][2]
assign ~RESULT[~SYM[0]] = ~VAR[x][0][15-~SYM[0]];
end
~ENDGENERATE
// bitReverse16 end
workInfo: Never
- BlackBox:
name: GHC.Prim.bitReverse32#
kind: Declaration
type: 'bitReverse32# ::
Word# -> Word#'
template: |-
// bitReverse32 begin
genvar ~GENSYM[i][0];
~GENERATE
for (~SYM[0] = 0; ~SYM[0] < 32; ~SYM[0]=~SYM[0]+1) begin : ~GENSYM[bitReverse32][2]
assign ~RESULT[~SYM[0]] = ~VAR[x][0][31-~SYM[0]];
end
~ENDGENERATE
// bitReverse32 end
workInfo: Never
- BlackBox:
name: GHC.Prim.bitReverse64#
kind: Declaration
type: 'bitReverse64# ::
Word# -> Word#'
template: |-
// bitReverse64 begin
genvar ~GENSYM[i][0];
~GENERATE
for (~SYM[0] = 0; ~SYM[0] < 64; ~SYM[0]=~SYM[0]+1) begin : ~GENSYM[bitReverse64][2]
assign ~RESULT[~SYM[0]] = ~VAR[x][0][63-~SYM[0]];
end
~ENDGENERATE
// bitReverse64 end
workInfo: Never
- BlackBox:
name: GHC.Prim.quotInt#
kind: Expression
type: 'quotInt# :: Int#
-> Int# -> Int#'
template: ~ARG[0] / ~ARG[1]
- BlackBox:
name: GHC.Prim.quotWord#
kind: Expression
type: 'quotWord# :: Word#
-> Word# -> Word#'
template: ~ARG[0] / ~ARG[1]