I've added two primops: 'timesInt2#' and 'mulIntC#'.
'timesInt2#' is like 'timesWord2#' but performs signed multiplication,
and 'mulIntC#' is like 'addIntC#' and 'subIntC#' but reports signed multiplicative overflow.
I did attempt to use this new primops in 'GHC.Integer.Type' in an attempt to speed up Integer
arithmetic but my success there has been mixed, so I decided just to submit this patch
on it's own.
This is my first GHC patch.
I have defined LLVM, x86 and PowerPC code for both of the new primops, and also CMM code,
although the CMM code for 'timesInt2#' is quite horrific.
I have ran the full test suite with "timesInteger" redefined to use both these primops
and also done some informal testing, however I have omitted the changes to 'GHC.Integer.Type'
I this patch so this primops are currently unused. Hence there probably needs to be some
test cases but I haven't included them yet.