Source/Packages

Realization.Nvidia.SM86.AdamWHalfSM86

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

205 lines38 declarations10.6 KiBSHA-256 557f99a5eb69

def · lines 119–137

ahUpdate

Full file
element e's update: adamWF32MathProgram's instructions on its registers
119def ahUpdate = (lambda unrestricted e : Nat . (lambda unrestricted tail : (family SM86Program) .
120  (let unrestricted p = (ahValue e 0) in (let unrestricted g = (ahValue e 1) in
121  (let unrestricted m = (ahValue e 2) in (let unrestricted v = (ahValue e 3) in
122  (let unrestricted t0 = (ahTemporary e 0) in (let unrestricted t1 = (ahTemporary e 1) in
123  (let unrestricted t2 = (ahTemporary e 2) in
124  (saFmul g g 18 (naturalSelect e saWaitNone (naturalAdd saWait0 (naturalAdd saWait1 (naturalAdd saWait2 saWait3))))
125  (saFmul t0 g 20 saWaitNone
126  (saFfma m m 19 t0
127  (saFmul t2 g g saWaitNone
128  (saFmul t2 t2 22 saWaitNone
129  (saFfma v v 21 t2
130  (saMufu t1 v (constructor SM86MultiFunction SM86SquareRoot) saWaitNone
131  (saFadd t1 t1 25 saWait4
132  (saMufu t1 t1 (constructor SM86MultiFunction SM86Reciprocal) saWaitNone
133  (saFmul t0 m 24 saWaitNone
134  (saFmul t0 t0 t1 saWait4
135  (saFneg t0 t0
136  (saFmul p p 23 saWaitNone
137  (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.