[Haskell-cafe] Re: Optimization fun

Matthew Brecknell haskell at brecknell.org
Mon Feb 12 21:57:22 EST 2007


Lennart Augustsson said:
> Many architectures gives both the quotient and remainder when you use
> the division instruction, so divMod (quotRem) shouldn't cost more  
> than a div or mod.  But if the code generator takes advantage of that
> is another matter.

You're quite right.

Bulat Ziganshin said:
> qoutRem# is primitive operation in GHC

I can see quotRemInteger# and divModInteger#, as well as quotInt#,
remInt#, divInt# and modInt#, but not quotRemInt# nor divModInt#. For
example:

$ ghc --show-iface Num.hi

divModInt :: GHC.Base.Int -> GHC.Base.Int -> (GHC.Base.Int,
GHC.Base.Int)
  {- Arity: 2 HasNoCafRefs Strictness: U(L)U(L)m
     Unfolding:
     (\ x :: GHC.Base.Int y :: GHC.Base.Int ->
      case @ (GHC.Base.Int, GHC.Base.Int) x of wild { I# ds ->
      case @ (GHC.Base.Int, GHC.Base.Int) y of wild1 { I# ds1 ->
      (GHC.Base.I# (GHC.Base.divInt#{1} ds ds1),
       GHC.Base.I# (GHC.Base.modInt#{1} ds ds1)) } }) -}



More information about the Haskell-Cafe mailing list