[ { "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#" , "workInfo" : "Never" , "kind" : "Expression" , "type" : "int2Word# :: Int# -> Word#" , "template" : "$unsigned(~ARG[0])" } } , { "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#" , "workInfo" : "Never" , "kind" : "Expression" , "type" : "int2Word# :: Word# -> Int#" , "template" : "$signed(~ARG[0])" } } , { "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#" , "workInfo" : "Never" , "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" } } , { "BlackBox" : { "name" : "GHC.Prim.byteSwap32#" , "workInfo" : "Never" , "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" } } , { "BlackBox" : { "name" : "GHC.Prim.byteSwap64#" , "workInfo" : "Never" , "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" } } , { "BlackBox" : { "name" : "GHC.Prim.byteSwap#" , "workInfo" : "Never" , "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" } } , { "BlackBox" : { "name" : "GHC.Prim.narrow8Int#" , "workInfo" : "Never" , "kind" : "Declaration" , "type" : "narrow8Int# :: Int# -> Int#" , "template" : "// narrow8Int begin assign ~RESULT = $signed(~VAR[i][0][7:0]); // narrow8Int end" } } , { "BlackBox" : { "name" : "GHC.Prim.narrow16Int#" , "workInfo" : "Never" , "kind" : "Declaration" , "type" : "narrow16Int# :: Int# -> Int#" , "template" : "// narrow16Int begin assign ~RESULT = $signed(~VAR[i][0][15:0]); // narrow16Int end" } } , { "BlackBox" : { "name" : "GHC.Prim.narrow32Int#" , "workInfo" : "Never" , "kind" : "Declaration" , "type" : "narrow32Int# :: Int# -> Int#" , "template" : "// narrow32Int begin assign ~RESULT = $signed(~VAR[i][0][31:0]); // narrow32Int end" } } , { "BlackBox" : { "name" : "GHC.Prim.narrow8Word#" , "workInfo" : "Never" , "kind" : "Declaration" , "type" : "narrow8Int# :: Word# -> Word#" , "template" : "// narrow8Word begin assign ~RESULT = $unsigned(~VAR[w][0][7:0]); // narrow8Word end" } } , { "BlackBox" : { "name" : "GHC.Prim.narrow16Word#" , "workInfo" : "Never" , "kind" : "Declaration" , "type" : "narrow16Word# :: Word# -> Word#" , "template" : "// narrow16Word begin assign ~RESULT = $unsigned(~VAR[w][0][15:0]); // narrow16Word end" } } , { "BlackBox" : { "name" : "GHC.Prim.narrow32Word#" , "workInfo" : "Never" , "kind" : "Declaration" , "type" : "narrow32Int# :: Word# -> Word#" , "template" : "// narrow32Word begin assign ~RESULT = $unsigned(~VAR[w][0][31:0]); // narrow32Word end" } } , { "BlackBox" : { "name" : "GHC.Prim.bitReverse#" , "workInfo" : "Never" , "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" } } , { "BlackBox" : { "name" : "GHC.Prim.bitReverse8#" , "workInfo" : "Never" , "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" } } , { "BlackBox" : { "name" : "GHC.Prim.bitReverse16#" , "workInfo" : "Never" , "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" } } , { "BlackBox" : { "name" : "GHC.Prim.bitReverse32#" , "workInfo" : "Never" , "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" } } , { "BlackBox" : { "name" : "GHC.Prim.bitReverse64#" , "workInfo" : "Never" , "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" } } ]