.set p, 5
.set i, 8
+.set out2, 10
# floats
.set sum, 0
+.set sum2, 1
.machine power9
.abiversion 2
slwi incr, incr, 2 # incr *= 4, sizeof float
- # Loop 32 times
- li 0, 32
+ mulli 0, incr, 31
+ add out2, out, 0
+
+ # w2 = window + 31; TODO
+ lfiwax sum, 0, 9 # zero it
+ addi p, buf, 64
+ # SUM8(MACS, sum, w, p); TODO
+ addi p, buf, 192
+ # SUM8(MLSS, sum, w + 32, p); TODO
+ stfs sum, 0(out)
+ add out, out, incr
+ addi win, win, 4
+
+ # Loop 15 times
+ li 0, 15
mtctr 0
- li i, 0
+ li i, 4
.Lloop:
lfiwax sum, 0, 9 # zero it
addi p, buf, 64
add p, p, i
- # SUM8(MACS, sum, w, p) TODO
+ # SUM8P2(sum, MACS, sum2, MLSS, w, w2, p);TODO
addi p, buf, 192
subf p, i, p
- # SUM8(MLSS, sum, w + 32, p) TODO
+ # SUM8P2(sum, MLSS, sum2, MLSS, w + 32, w2 + 32, p); TODO
+
stfs sum, 0(out)
add out, out, incr
+ stfs sum2, 0(out2)
+ subf out2, incr, out2
+
addi i, i, 4
addi win, win, 4
+ subi win2, win2, 4
bdnz .Lloop
+ addi p, buf, 128
+ # SUM8(MLSS, sum, w + 32, p); TODO
+ stfs sum, 0(out)
+
blr
.size ff_mpadsp_apply_window_float_sv,.-ff_mpadsp_apply_window_float_sv