Source/Packages

Realization.Nvidia.SM86.AdamWHalfSM86

packages/realizations/cooperative/nvidia-sm86/src/Realization/Nvidia/SM86/AdamWHalfSM86.alpha

428 lines73 declarations26.3 KiBSHA-256 9692515bc485

def · lines 272–291

ahwUpdate

Full file
element e of quad q: ahUpdate's instructions on its registers, the first waiting for every bank's loads
272def ahwUpdate = (lambda unrestricted wide : Nat . (lambda unrestricted q : Nat . (lambda unrestricted e : Nat .
273  (lambda unrestricted tail : (family SM86Program) .
274  (let unrestricted p = (ahwValue q e 0) in (let unrestricted g = (ahwValue q e 1) in
275  (let unrestricted m = (ahwValue q e 2) in (let unrestricted v = (ahwValue q e 3) in
276  (let unrestricted t0 = (ahwTemporary wide e 0) in (let unrestricted t1 = (ahwTemporary wide e 1) in
277  (let unrestricted t2 = (ahwTemporary wide e 2) in
278  (saFmul g g 18 (naturalSelect (naturalAdd q e) saWaitNone (naturalAdd saWait0 (naturalAdd saWait1 (naturalAdd saWait2 saWait3))))
279  (saFmul t0 g 20 saWaitNone
280  (saFfma m m 19 t0
281  (saFmul t2 g g saWaitNone
282  (saFmul t2 t2 22 saWaitNone
283  (saFfma v v 21 t2
284  (saMufu t1 v (constructor SM86MultiFunction SM86SquareRoot) saWaitNone
285  (saFadd t1 t1 25 saWait4
286  (saMufu t1 t1 (constructor SM86MultiFunction SM86Reciprocal) saWaitNone
287  (saFmul t0 m 24 saWaitNone
288  (saFmul t0 t0 t1 saWait4
289  (saFneg t0 t0
290  (saFmul p p 23 saWaitNone
291  (saFadd p p t0 saWaitNone tail)))))))))))))))))))))))))

The compiler supplied declaration spans and resolved links from this source snapshot. This page does not assert that this file belongs to a checked closure.