use fnmsubs instead of fmadds followed by fsubs
authorLuke Kenneth Casson Leighton <lkcl@lkcl.net>
Wed, 16 Jun 2021 12:14:48 +0000 (13:14 +0100)
committerLuke Kenneth Casson Leighton <lkcl@lkcl.net>
Wed, 16 Jun 2021 12:14:48 +0000 (13:14 +0100)
media/audio/mp3/mp3_0_apply_window_float_basicsv.s

index 2a9bdaf4aa85d3f1ea6f8276da0f27c42072e730..2f4902b75a7638c352031c720335974c33d673d9 100644 (file)
@@ -27,8 +27,6 @@
 # floats
 .set sum, 0
 .set sum2, 1
-.set tmpsum, 2
-.set tmpsum2, 3
 
        .machine power9
        .abiversion 2
@@ -62,14 +60,12 @@ ff_mpadsp_apply_window_float_sv:
        # sv.lfs/els fv1.v, 256(p)
        # sv.fmadds/mr sum, fv0.v, fv1.v, sum
 
-       lfiwax tmpsum, 0, 9 # zero it
        addi p, buf, 192
        addi win, win, 128
        # SUM8(MLSS, sum, w + 32, p)
        # sv.lfs/els fv0.v, 256(win)
        # sv.lfs/els fv1.v, 256(p)
-       # sv.fmadds/mr tmpsum, fv0.v, fv1.v, tmpsum
-       fsubs sum, sum, tmpsum
+       # sv.fnmsubs/mr sum, fv0.v, fv1.v, sum
        subi win, win, 128
 
        stfs sum, 0(out)
@@ -91,13 +87,10 @@ ff_mpadsp_apply_window_float_sv:
                # sv.lfs/els fv1.v, 256(win)
                # sv.lfs/els fv2.v, 256(win2)
                # sv.fmadds/mr sum, fv0.v, fv1.v, sum
-               # sv.fmadds/mr sum2, fv0.v, fv2.v, sum2
-               fneg sum2, sum2
+               # sv.fnmsubs/mr sum2, fv0.v, fv2.v, sum2
 
                addi p, buf, 192
                subf p, i, p
-               lfiwax tmpsum, 0, 9 # zero it
-               lfiwax tmpsum2, 0, 9 # zero it
                addi win, win, 128
                # sv.addi win2, win2, 128
 
@@ -105,10 +98,8 @@ ff_mpadsp_apply_window_float_sv:
                # sv.lfs/els fv0.v, 256(p)
                # sv.lfs/els fv1.v, 256(win)
                # sv.lfs/els fv2.v, 256(win2)
-               # sv.fmadds/mr tmpsum, fv0.v, fv1.v, tmpsum
-               # sv.fmadds/mr tmpsum2, fv0.v, fv2.v, tmpsum2
-               fsubs sum, sum, tmpsum
-               fsubs sum2, sum2, tmpsum2
+               # sv.fnmsubs/mr sum, fv0.v, fv1.v, sum
+               # sv.fnmsubs/mr sum2, fv0.v, fv2.v, sum2
 
                subi win, win, 128
                # sv.addi win2, win2, -128
@@ -125,13 +116,11 @@ ff_mpadsp_apply_window_float_sv:
 
        addi p, buf, 128
        addi win, win, 128
-       lfiwax tmpsum, 0, 9 # zero it
        lfiwax sum, 0, 9 # zero it
        # SUM8(MLSS, sum, w + 32, p)
        # sv.lfs/els fv0.v, 256(win)
        # sv.lfs/els fv1.v, 256(p)
-       # sv.fmadds/mr tmpsum, fv0.v, fv1.v, tmpsum
-       fsubs sum, sum, tmpsum
+       # sv.fnmsubs/mr sum, fv0.v, fv1.v, sum
 
        stfs sum, 0(out)