uvector-0.1: examples/simple/Sum.hs
module Sum
where
import Data.Array.Parallel.Unlifted
test :: UArr Int -> Int
test = loopAcc . loopU (\a x -> (a + x :*: (Nothing::Maybe ()))) 0
{- Inner loop:
poly_$wtrans_sPp :: forall s1_aIm.
GHC.Prim.Int#
-> GHC.Base.Int
-> GHC.Prim.Int#
-> GHC.Prim.State# s1_aIm
-> (# GHC.Prim.State# s1_aIm, (GHC.Base.Int, GHC.Base.Int) #)
[Arity 4]
poly_$wtrans_sPp =
\ (@ s1_XJ3)
(ww_XPz :: GHC.Prim.Int#)
(w_XPC :: GHC.Base.Int)
(ww1_XPG :: GHC.Prim.Int#)
(w1_XPJ :: GHC.Prim.State# s1_XJ3) ->
case GHC.Prim.==# ww_XPz wild11_B1 of wild2_XHP {
GHC.Base.False ->
poly_$wtrans_sPp
@ s1_XJ3
(GHC.Prim.+# ww_XPz 1)
w_XPC
(GHC.Prim.+#
ww1_XPG (GHC.Prim.indexIntArray# rb2_aPT (GHC.Prim.+# rb_aKA ww_XPz)))
w1_XPJ;
GHC.Base.True ->
case w_XPC of tpl_aIu { GHC.Base.I# a1_aIv ->
(# w1_XPJ, ((GHC.Base.I# ww1_XPG), tpl_aIu) #)
}
};
-}