From: Luke Kenneth Casson Leighton Date: Wed, 26 Apr 2023 13:35:07 +0000 (+0100) Subject: add binutils entry indicating "done" etc to ls012 X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=1612a779c718fef1bec4f0384d4121119665f32e;p=libreriscv.git add binutils entry indicating "done" etc to ls012 --- diff --git a/openpower/sv/rfc/ls012/optable.csv b/openpower/sv/rfc/ls012/optable.csv index 7c98111d7..526b2813f 100644 --- a/openpower/sv/rfc/ls012/optable.csv +++ b/openpower/sv/rfc/ls012/optable.csv @@ -1,194 +1,194 @@ -op, rfc, priority, cost, SVP64, group, PO1, page, regs, level +op, rfc, priority, cost, SVP64, group, PO1, page, regs, level, binutils # LD/ST-Postincrement -lbzup, ls011, high, PO, yes, EXT2xx, no, isa/pifixedload, 1R2W, SFFS -lbzupx, ls011, high, 10, yes, EXT2xx, no, isa/pifixedload, 2R2W, SFFS -lhzup, ls011, high, PO, yes, EXT2xx, no, isa/pifixedload, 1R2W, SFFS -lhzupx, ls011, high, 10, yes, EXT2xx, no, isa/pifixedload, 2R2W, SFFS -lhaup, ls011, high, PO, yes, EXT2xx, no, isa/pifixedload, 1R2W, SFFS -lhaupx, ls011, high, 10, yes, EXT2xx, no, isa/pifixedload, 2R2W, SFFS -lwzup, ls011, high, PO, yes, EXT2xx, no, isa/pifixedload, 1R2W, SFFS -lwzupx, ls011, high, 10, yes, EXT2xx, no, isa/pifixedload, 2R2W, SFFS -lwaupx, ls011, high, 10, yes, EXT2xx, no, isa/pifixedload, 2R2W, SFFS -ldup, ls011, high, PO, yes, EXT2xx, no, isa/pifixedload, 1R2W, SFFS -ldupx, ls011, high, 10, yes, EXT2xx, no, isa/pifixedload, 2R2W, SFFS -stbup, ls011, high, PO, yes, EXT2xx, no, isa/pifixedstore, 2R1W, SFFS -stbupx, ls011, high, 10, yes, EXT2xx, no, isa/pifixedstore, 3R1W, SFFS -sthup, ls011, high, PO, yes, EXT2xx, no, isa/pifixedstore, 2R1W, SFFS -sthupx, ls011, high, 10, yes, EXT2xx, no, isa/pifixedstore, 3R1W, SFFS -stwup, ls011, high, PO, yes, EXT2xx, no, isa/pifixedstore, 2R1W, SFFS -stwupx, ls011, high, 10, yes, EXT2xx, no, isa/pifixedstore, 3R1W, SFFS -stdup, ls011, high, PO, yes, EXT2xx, no, isa/pifixedstore, 2R1W, SFFS -stdupx, ls011, high, 10, yes, EXT2xx, no, isa/pifixedstore, 3R1W, SFFS +lbzup, ls011, high, PO, yes, EXT2xx, no, isa/pifixedload, 1R2W, SFFS, TBD +lbzupx, ls011, high, 10, yes, EXT2xx, no, isa/pifixedload, 2R2W, SFFS, TBD +lhzup, ls011, high, PO, yes, EXT2xx, no, isa/pifixedload, 1R2W, SFFS, TBD +lhzupx, ls011, high, 10, yes, EXT2xx, no, isa/pifixedload, 2R2W, SFFS, TBD +lhaup, ls011, high, PO, yes, EXT2xx, no, isa/pifixedload, 1R2W, SFFS, TBD +lhaupx, ls011, high, 10, yes, EXT2xx, no, isa/pifixedload, 2R2W, SFFS, TBD +lwzup, ls011, high, PO, yes, EXT2xx, no, isa/pifixedload, 1R2W, SFFS, TBD +lwzupx, ls011, high, 10, yes, EXT2xx, no, isa/pifixedload, 2R2W, SFFS, TBD +lwaupx, ls011, high, 10, yes, EXT2xx, no, isa/pifixedload, 2R2W, SFFS, TBD +ldup, ls011, high, PO, yes, EXT2xx, no, isa/pifixedload, 1R2W, SFFS, TBD +ldupx, ls011, high, 10, yes, EXT2xx, no, isa/pifixedload, 2R2W, SFFS, TBD +stbup, ls011, high, PO, yes, EXT2xx, no, isa/pifixedstore, 2R1W, SFFS, TBD +stbupx, ls011, high, 10, yes, EXT2xx, no, isa/pifixedstore, 3R1W, SFFS, TBD +sthup, ls011, high, PO, yes, EXT2xx, no, isa/pifixedstore, 2R1W, SFFS, TBD +sthupx, ls011, high, 10, yes, EXT2xx, no, isa/pifixedstore, 3R1W, SFFS, TBD +stwup, ls011, high, PO, yes, EXT2xx, no, isa/pifixedstore, 2R1W, SFFS, TBD +stwupx, ls011, high, 10, yes, EXT2xx, no, isa/pifixedstore, 3R1W, SFFS, TBD +stdup, ls011, high, PO, yes, EXT2xx, no, isa/pifixedstore, 2R1W, SFFS, TBD +stdupx, ls011, high, 10, yes, EXT2xx, no, isa/pifixedstore, 3R1W, SFFS, TBD # FP LD/ST-Postincrement -lfdu, ls011, high, PO, yes, EXT2xx, no, isa/pifixedload, 1R2W, SFFS -lfsup, ls011, high, PO, yes, EXT2xx, no, isa/pifixedload, 1R2W, SFFS -lfdupx, ls011, high, 10, yes, EXT2xx, no, isa/pifixedload, 2R2W, SFFS -lsdupx, ls011, high, 10, yes, EXT2xx, no, isa/pifixedload, 2R2W, SFFS -stfdup, ls011, high, PO, yes, EXT2xx, no, isa/pifixedstore, 2R1W, SFFS -stfsup, ls011, high, PO, yes, EXT2xx, no, isa/pifixedstore, 2R1W, SFFS -stfdupx, ls011, high, 10, yes, EXT2xx, no, isa/pifixedstore, 3R1W, SFFS -stfsupx, ls011, high, 10, yes, EXT2xx, no, isa/pifixedstore, 3R1W, SFFS +lfdu, ls011, high, PO, yes, EXT2xx, no, isa/pifixedload, 1R2W, SFFS, TBD +lfsup, ls011, high, PO, yes, EXT2xx, no, isa/pifixedload, 1R2W, SFFS, TBD +lfdupx, ls011, high, 10, yes, EXT2xx, no, isa/pifixedload, 2R2W, SFFS, TBD +lsdupx, ls011, high, 10, yes, EXT2xx, no, isa/pifixedload, 2R2W, SFFS, TBD +stfdup, ls011, high, PO, yes, EXT2xx, no, isa/pifixedstore, 2R1W, SFFS, TBD +stfsup, ls011, high, PO, yes, EXT2xx, no, isa/pifixedstore, 2R1W, SFFS, TBD +stfdupx, ls011, high, 10, yes, EXT2xx, no, isa/pifixedstore, 3R1W, SFFS, TBD +stfsupx, ls011, high, 10, yes, EXT2xx, no, isa/pifixedstore, 3R1W, SFFS, TBD # LD/ST-Shifted-Postincrement -lbzuspx, ls011, med, 9, yes, EXT2xx, no, ls011, 2R2W, SFFS -lhzuspx, ls011, med, 9, yes, EXT2xx, no, ls011, 2R2W, SFFS -lhauspx, ls011, med, 9, yes, EXT2xx, no, ls011, 2R2W, SFFS -lwzuspx, ls011, med, 9, yes, EXT2xx, no, ls011, 2R2W, SFFS -lwauspx, ls011, med, 9, yes, EXT2xx, no, ls011, 2R2W, SFFS -lduspx, ls011, med, 9, yes, EXT2xx, no, ls011, 2R2W, SFFS -stbuspx, ls011, med, 9, yes, EXT2xx, no, ls011, 3R1W, SFFS -sthuspx, ls011, med, 9, yes, EXT2xx, no, ls011, 3R1W, SFFS -stwuspx, ls011, med, 9, yes, EXT2xx, no, ls011, 3R1W, SFFS -stduspx, ls011, med, 9, yes, EXT2xx, no, ls011, 3R1W, SFFS +lbzuspx, ls011, med, 9, yes, EXT2xx, no, ls011, 2R2W, SFFS, TBD +lhzuspx, ls011, med, 9, yes, EXT2xx, no, ls011, 2R2W, SFFS, TBD +lhauspx, ls011, med, 9, yes, EXT2xx, no, ls011, 2R2W, SFFS, TBD +lwzuspx, ls011, med, 9, yes, EXT2xx, no, ls011, 2R2W, SFFS, TBD +lwauspx, ls011, med, 9, yes, EXT2xx, no, ls011, 2R2W, SFFS, TBD +lduspx, ls011, med, 9, yes, EXT2xx, no, ls011, 2R2W, SFFS, TBD +stbuspx, ls011, med, 9, yes, EXT2xx, no, ls011, 3R1W, SFFS, TBD +sthuspx, ls011, med, 9, yes, EXT2xx, no, ls011, 3R1W, SFFS, TBD +stwuspx, ls011, med, 9, yes, EXT2xx, no, ls011, 3R1W, SFFS, TBD +stduspx, ls011, med, 9, yes, EXT2xx, no, ls011, 3R1W, SFFS, TBD # FP LD/ST-Shifted-Postincrement -lfdupsx, ls011, med, 9, yes, EXT2xx, no, ls011, 2R2W, SFFS -lsdupsx, ls011, med, 9, yes, EXT2xx, no, ls011, 2R2W, SFFS -stfdupsx, ls011, med, 9, yes, EXT2xx, no, ls011, 3R1W, SFFS -stfsupsx, ls011, med, 9, yes, EXT2xx, no, ls011, 3R1W, SFFS +lfdupsx, ls011, med, 9, yes, EXT2xx, no, ls011, 2R2W, SFFS, TBD +lsdupsx, ls011, med, 9, yes, EXT2xx, no, ls011, 2R2W, SFFS, TBD +stfdupsx, ls011, med, 9, yes, EXT2xx, no, ls011, 3R1W, SFFS, TBD +stfsupsx, ls011, med, 9, yes, EXT2xx, no, ls011, 3R1W, SFFS, TBD # LD/ST-Index-Shifted (w/Update) -lbzsx, ls004, high, 9, yes, EXT0xx, no, ls004, 2R1W, SFFS -lbzusx, ls004, high, 9, yes, EXT0xx, no, ls004, 2R2W, SFFS -lhzsx, ls004, high, 9, yes, EXT0xx, no, ls004, 2R1W, SFFS -lhzusx, ls004, high, 9, yes, EXT0xx, no, ls004, 2R2W, SFFS -lhasx, ls004, high, 9, yes, EXT0xx, no, ls004, 2R1W, SFFS -lhausx, ls004, high, 9, yes, EXT0xx, no, ls004, 2R2W, SFFS -lwzsx, ls004, high, 9, yes, EXT0xx, no, ls004, 2R1W, SFFS -lwzusx, ls004, high, 9, yes, EXT0xx, no, ls004, 2R2W, SFFS -lwasx, ls004, high, 9, yes, EXT0xx, no, ls004, 2R1W, SFFS -lwausx, ls004, high, 9, yes, EXT0xx, no, ls004, 2R2W, SFFS -ldsx, ls004, high, 9, yes, EXT0xx, no, ls004, 2R1W, SFFS -ldusx, ls004, high, 9, yes, EXT0xx, no, ls004, 2R2W, SFFS -lhbrsx, ls004, high, 9, yes, EXT0xx, no, ls004, 2R1W, SFFS -lwbrsx, ls004, high, 9, yes, EXT0xx, no, ls004, 2R1W, SFFS -ldbrsx, ls004, high, 9, yes, EXT0xx, no, ls004, 2R1W, SFFS -stbsx, ls004, high, 9, yes, EXT0xx, no, ls004, 3R, SFFS -stbusx, ls004, high, 9, yes, EXT0xx, no, ls004, 3R1W, SFFS -sthsx, ls004, high, 9, yes, EXT0xx, no, ls004, 3R, SFFS -sthusx, ls004, high, 9, yes, EXT0xx, no, ls004, 3R1W, SFFS -stwsx, ls004, high, 9, yes, EXT0xx, no, ls004, 3R, SFFS -stwusx, ls004, high, 9, yes, EXT0xx, no, ls004, 3R1W, SFFS -stdsx, ls004, high, 9, yes, EXT0xx, no, ls004, 3R, SFFS -stdusx, ls004, high, 9, yes, EXT0xx, no, ls004, 3R1W, SFFS -sthbrsx, ls004, high, 9, yes, EXT0xx, no, ls004, 3R, SFFS -stwbrsx, ls004, high, 9, yes, EXT0xx, no, ls004, 3R, SFFS -stdbrsx, ls004, high, 9, yes, EXT0xx, no, ls004, 3R, SFFS +lbzsx, ls004, high, 9, yes, EXT0xx, no, ls004, 2R1W, SFFS, TBD +lbzusx, ls004, high, 9, yes, EXT0xx, no, ls004, 2R2W, SFFS, TBD +lhzsx, ls004, high, 9, yes, EXT0xx, no, ls004, 2R1W, SFFS, TBD +lhzusx, ls004, high, 9, yes, EXT0xx, no, ls004, 2R2W, SFFS, TBD +lhasx, ls004, high, 9, yes, EXT0xx, no, ls004, 2R1W, SFFS, TBD +lhausx, ls004, high, 9, yes, EXT0xx, no, ls004, 2R2W, SFFS, TBD +lwzsx, ls004, high, 9, yes, EXT0xx, no, ls004, 2R1W, SFFS, TBD +lwzusx, ls004, high, 9, yes, EXT0xx, no, ls004, 2R2W, SFFS, TBD +lwasx, ls004, high, 9, yes, EXT0xx, no, ls004, 2R1W, SFFS, TBD +lwausx, ls004, high, 9, yes, EXT0xx, no, ls004, 2R2W, SFFS, TBD +ldsx, ls004, high, 9, yes, EXT0xx, no, ls004, 2R1W, SFFS, TBD +ldusx, ls004, high, 9, yes, EXT0xx, no, ls004, 2R2W, SFFS, TBD +lhbrsx, ls004, high, 9, yes, EXT0xx, no, ls004, 2R1W, SFFS, TBD +lwbrsx, ls004, high, 9, yes, EXT0xx, no, ls004, 2R1W, SFFS, TBD +ldbrsx, ls004, high, 9, yes, EXT0xx, no, ls004, 2R1W, SFFS, TBD +stbsx, ls004, high, 9, yes, EXT0xx, no, ls004, 3R, SFFS, TBD +stbusx, ls004, high, 9, yes, EXT0xx, no, ls004, 3R1W, SFFS, TBD +sthsx, ls004, high, 9, yes, EXT0xx, no, ls004, 3R, SFFS, TBD +sthusx, ls004, high, 9, yes, EXT0xx, no, ls004, 3R1W, SFFS, TBD +stwsx, ls004, high, 9, yes, EXT0xx, no, ls004, 3R, SFFS, TBD +stwusx, ls004, high, 9, yes, EXT0xx, no, ls004, 3R1W, SFFS, TBD +stdsx, ls004, high, 9, yes, EXT0xx, no, ls004, 3R, SFFS, TBD +stdusx, ls004, high, 9, yes, EXT0xx, no, ls004, 3R1W, SFFS, TBD +sthbrsx, ls004, high, 9, yes, EXT0xx, no, ls004, 3R, SFFS, TBD +stwbrsx, ls004, high, 9, yes, EXT0xx, no, ls004, 3R, SFFS, TBD +stdbrsx, ls004, high, 9, yes, EXT0xx, no, ls004, 3R, SFFS, TBD # FP LD/ST-Index-Shifted (w/Update) -lfsxs, ls004, high, 9, yes, EXT0xx, no, ls004, 2R1W, SFFS -lfsuxs, ls004, high, 9, yes, EXT0xx, no, ls004, 2R1W, SFFS -lfdxs, ls004, high, 9, yes, EXT0xx, no, ls004, 2R1W, SFFS -lfduxs, ls004, high, 9, yes, EXT0xx, no, ls004, 2R1W, SFFS -lfiwaxs, ls004, high, 9, yes, EXT0xx, no, ls004, 2R1W, SFFS -lfiwzxs, ls004, high, 9, yes, EXT0xx, no, ls004, 2R1W, SFFS -stfsxs, ls004, high, 9, yes, EXT0xx, no, ls004, 3R, SFFS -stfsuxs, ls004, high, 9, yes, EXT0xx, no, ls004, 3R1W, SFFS -stfdxs, ls004, high, 9, yes, EXT0xx, no, ls004, 3R, SFFS -stfduxs, ls004, high, 9, yes, EXT0xx, no, ls004, 3R1W, SFFS -stfiwxs, ls004, high, 9, yes, EXT0xx, no, ls004, 3R, SFFS +lfsxs, ls004, high, 9, yes, EXT0xx, no, ls004, 2R1W, SFFS, TBD +lfsuxs, ls004, high, 9, yes, EXT0xx, no, ls004, 2R1W, SFFS, TBD +lfdxs, ls004, high, 9, yes, EXT0xx, no, ls004, 2R1W, SFFS, TBD +lfduxs, ls004, high, 9, yes, EXT0xx, no, ls004, 2R1W, SFFS, TBD +lfiwaxs, ls004, high, 9, yes, EXT0xx, no, ls004, 2R1W, SFFS, TBD +lfiwzxs, ls004, high, 9, yes, EXT0xx, no, ls004, 2R1W, SFFS, TBD +stfsxs, ls004, high, 9, yes, EXT0xx, no, ls004, 3R, SFFS, TBD +stfsuxs, ls004, high, 9, yes, EXT0xx, no, ls004, 3R1W, SFFS, TBD +stfdxs, ls004, high, 9, yes, EXT0xx, no, ls004, 3R, SFFS, TBD +stfduxs, ls004, high, 9, yes, EXT0xx, no, ls004, 3R1W, SFFS, TBD +stfiwxs, ls004, high, 9, yes, EXT0xx, no, ls004, 3R, SFFS, TBD # Bitmanip LUT2/3 operations. high cost high reward -grevlut, TBD, high, 3, yes, TBD, no, sv/bitmanip, 2R1W, opt -grevluti, TBD, high, 3, yes, TBD, yes, sv/bitmanip, 1R1W, opt -ternlogi, ls007, high, 2, yes, TBD, yes, sv/bitmanip, 3R1W1w, SFFS -crternlogi, ls007, high, 5, yes, TBD, yes, sv/bitmanip, 3r1w, SV/D -binlut, ls007, high, 6, yes, TBD, no, sv/bitmanip, 3R1W, SFFS -crbinlut, ls007, high, 5, yes, TBD, no, sv/bitmanip, 3r1w, SV/D +grevlut, TBD, high, 3, yes, TBD, no, sv/bitmanip, 2R1W, opt, no +grevluti, TBD, high, 3, yes, TBD, yes, sv/bitmanip, 1R1W, opt, no +ternlogi, ls007, high, 2, yes, TBD, yes, sv/bitmanip, 3R1W1w, SFFS, no +crternlogi, ls007, high, 5, yes, TBD, yes, sv/bitmanip, 3r1w, SV/D, no +binlut, ls007, high, 6, yes, TBD, no, sv/bitmanip, 3R1W, SFFS, no +crbinlut, ls007, high, 5, yes, TBD, no, sv/bitmanip, 3r1w, SV/D, no # Float-Load-Immediate (always saves one LD L1/2/3 D-Cache op) -fmvis, ls002, high, 5, yes, TBD, no, sv/bitmanip, 1W, SFFS -fishmv, ls002, high, 5, yes, TBD, no, sv/bitmanip, 1R1W, SFFS +fmvis, ls002, high, 5, yes, TBD, no, sv/bitmanip, 1W, SFFS, yes +fishmv, ls002, high, 5, yes, TBD, no, sv/bitmanip, 1R1W, SFFS, yes # Shift-and-Add (mitigates LD-ST-Shift; Cryptography e.g. twofish) -shadd, ls004, med, 7, yes, EXT0xx, no, sv/bitmanip, 2R1W1w, SFFS -shadduw, ls004, med, 7, yes, EXT0xx, no, sv/bitmanip, 2R1W1w, SFFS -shaddw, ls004, med, 7, yes, EXT0xx, no, sv/bitmanip, 2R1W1w, SFFS +shadd, ls004, med, 7, yes, EXT0xx, no, sv/bitmanip, 2R1W1w, SFFS, yes +shadduw, ls004, med, 7, yes, EXT0xx, no, sv/bitmanip, 2R1W1w, SFFS, yes +shaddw, ls004, med, 7, yes, EXT0xx, no, sv/bitmanip, 2R1W1w, SFFS, yes # Audio-Video -absdu, TBD, TBD, 10, yes, TBD, no, sv/av_opcodes, 2R1W1w, SV/D -avgadd, TBD, TBD, 10, yes, TBD, no, sv/av_opcodes, 2R1W1w, SV/D -minmax, ls013, high, 6, yes, EXT0xx, no, sv/av_opcodes, 2R1W1w, SFFS -absaccs, TBD, TBD, 10, yes, TBD, no, sv/av_opcodes, 3R1W1w, SV/D -absaccu, TBD, TBD, 10, yes, TBD, no, sv/av_opcodes, 3R1W1w, SV/D -# BMI group -bmask, TBD, high, 5, yes, EXT0xx, yes, sv/vector_ops, 2R1W1w, SFFS -cprop, TBD, high, 5, yes, TBD, yes, sv/vector_ops, 2R1W1w, opt -# SVP64 Management. -setvl, ls008, high, 5, no, EXT0xx, yes, sv/setvl, 3R2W1w, SV/E -svstep, ls008, high, 5, yes, EXT0xx, yes, sv/svstep, 1R2W1w, SV/E -svremap, ls009, high, 5, no, EXT0xx, yes, sv/remap, 1R1W, SV/D -svshape, ls009, high, 5, no, EXT0xx, yes, sv/remap, 5R5W, SV/D -svshape2, ls009, high, 5, no, EXT0xx, yes, sv/remap, 5R5W, SV/D -svindex, ls009, high, 5, no, EXT0xx, yes, sv/remap, 5R5W, SV/D +absdu, TBD, TBD, 10, yes, TBD, no, sv/av_opcodes, 2R1W1w, SV/D, TODO +avgadd, TBD, TBD, 10, yes, TBD, no, sv/av_opcodes, 2R1W1w, SV/D, yes +minmax, ls013, high, 6, yes, EXT0xx, no, sv/av_opcodes, 2R1W1w, SFFS, REDO +absaccs, TBD, TBD, 10, yes, TBD, no, sv/av_opcodes, 3R1W1w, SV/D, TODO +absaccu, TBD, TBD, 10, yes, TBD, no, sv/av_opcodes, 3R1W1w, SV/D, TODO +# BMI group, TBD +bmask, TBD, high, 5, yes, EXT0xx, yes, sv/vector_ops, 2R1W1w, SFFS, yes +cprop, TBD, high, 5, yes, TBD, yes, sv/vector_ops, 2R1W1w, opt, yes +# SVP64 Management +setvl, ls008, high, 5, no, EXT0xx, yes, sv/setvl, 3R2W1w, SV/E, yes +svstep, ls008, high, 5, yes, EXT0xx, yes, sv/svstep, 1R2W1w, SV/E, yes +svremap, ls009, high, 5, no, EXT0xx, yes, sv/remap, 1R1W, SV/D, yes +svshape, ls009, high, 5, no, EXT0xx, yes, sv/remap, 5R5W, SV/D, yes +svshape2, ls009, high, 5, no, EXT0xx, yes, sv/remap, 5R5W, SV/D, yes +svindex, ls009, high, 5, no, EXT0xx, yes, sv/remap, 5R5W, SV/D, yes # GPU swizzle -mv.swizzle, TBD, TBD, 4, yes, TBD, yes, sv/mv.swizzle, 2R2W, opt -fmv.swizzle, TBD, TBD, 4, yes, TBD, yes, sv/mv.swizzle, 2R2W, opt -# CR weirds -crrweird, ls015, high, 8, yes, TBD, no, sv/cr_int_predication, 1r1W1w, SV/D -mfcrweird, ls015, high, 8, yes, TBD, no, sv/cr_int_predication, 1r1W1w, SV/D -mtcrrweird, ls015, high, 9, yes, TBD, no, sv/cr_int_predication, 1R1r1w, SV/D -mtcrweird, ls015, high, 9, yes, TBD, no, sv/cr_int_predication, 1R1r1w, SV/D -crweirder, ls015, high, 9, yes, TBD, no, sv/cr_int_predication, 2r1w, SV/D -mcrfm, ls015, high, 9, yes, EXT0xx, no, sv/cr_int_predication, 2r1w, SFFS +mv.swizzle, TBD, TBD, 4, yes, TBD, yes, sv/mv.swizzle, 2R2W, opt, TBD +fmv.swizzle, TBD, TBD, 4, yes, TBD, yes, sv/mv.swizzle, 2R2W, opt, TBD +# CR weirds, TBD +crrweird, ls015, high, 8, yes, TBD, no, sv/cr_int_predication, 1r1W1w, SV/D, TODO +mfcrweird, ls015, high, 8, yes, TBD, no, sv/cr_int_predication, 1r1W1w, SV/D, TODO +mtcrrweird,ls015, high, 9, yes, TBD, no, sv/cr_int_predication, 1R1r1w, SV/D, TODO +mtcrweird, ls015, high, 9, yes, TBD, no, sv/cr_int_predication, 1R1r1w, SV/D, TODO +crweirder, ls015, high, 9, yes, TBD, no, sv/cr_int_predication, 2r1w, SV/D, TODO +mcrfm, ls015, high, 9, yes, EXT0xx, no, sv/cr_int_predication, 2r1w, SFFS, TODO # fclass (Scalar variant of xvtstdcsp) -fptstp(s), TBD, high, 10, yes, EXT0xx, no, sv/fclass, 1R1w, SFFS -# INT<->FP mv -fmvtg(s), ls006, high, 10, yes, EXT0xx, no, sv/int_fp_mv, 1R1W1w, SFFS -fmvfg(s), ls006, high, 10, yes, EXT0xx, no, sv/int_fp_mv, 1R1W1w, SFFS -fcvtfg(s), ls006, high, 10, yes, EXT0xx, no, sv/int_fp_mv, 1R1W1w, SFFS -fcvttg(s), ls006, high, 9, yes, EXT0xx, no, sv/int_fp_mv, 1R1W1w, SFFS +fptstp(s), TBD, high, 10, yes, EXT0xx, no, sv/fclass, 1R1w, SFFS, TODO +# INT<->FP mv, TBD +fmvtg(s), ls006, high, 10, yes, EXT0xx, no, sv/int_fp_mv, 1R1W1w, SFFS, TODO +fmvfg(s), ls006, high, 10, yes, EXT0xx, no, sv/int_fp_mv, 1R1W1w, SFFS, TODO +fcvtfg(s), ls006, high, 10, yes, EXT0xx, no, sv/int_fp_mv, 1R1W1w, SFFS, TODO +fcvttg(s), ls006, high, 9, yes, EXT0xx, no, sv/int_fp_mv, 1R1W1w, SFFS, TODO # Big-Integer Chained 3-in 2-out (64-bit Carry) -dsld, ls003, high, 5, yes, EXT0xx, no, sv/biginteger, 3R2W1w, SFFS -dsrd, ls003, high, 5, yes, EXT0xx, no, sv/biginteger, 3R2W1w, SFFS -maddedu, ls003, high, 6, yes, EXT0xx, no, sv/biginteger, 3R2W, SFFS -maddedus, ls003, high, 6, yes, EXT0xx, no, sv/biginteger, 3R2W, SFFS -divmod2du, ls003, high, 6, yes, EXT0xx, no, sv/biginteger, 3R2W1w, SFFS +dsld, ls003, high, 5, yes, EXT0xx, no, sv/biginteger, 3R2W1w, SFFS, TODO +dsrd, ls003, high, 5, yes, EXT0xx, no, sv/biginteger, 3R2W1w, SFFS, TODO +maddedu, ls003, high, 6, yes, EXT0xx, no, sv/biginteger, 3R2W, SFFS, yes +maddedus, ls003, high, 6, yes, EXT0xx, no, sv/biginteger, 3R2W, SFFS, TODO +divmod2du, ls003, high, 6, yes, EXT0xx, no, sv/biginteger, 3R2W1w, SFFS, TODO # FP DCT/FFT Butterfly (2/3-in 2-out) -ffadd(s), TBD, med, 10, yes, EXT2xx, no, isa/svfparith, 2R1W1w, opt -ffsub(s), TBD, med, 10, yes, EXT2xx, no, isa/svfparith, 2R1W1w, opt -ffmul(s), TBD, med, 10, yes, EXT2xx, no, isa/svfparith, 2R1W1w, opt -ffdiv(s), TBD, med, 10, yes, EXT2xx, no, isa/svfparith, 2R1W1w, opt -fdmadd(s), TBD, med, 5, yes, EXT2xx, no, isa/svfparith, 3R2W1w, opt -ffmadd(s), TBD, med, 5, yes, EXT2xx, no, isa/svfparith, 3R2W1w, opt -ffmsub(s), TBD, med, 5, yes, EXT2xx, no, isa/svfparith, 3R2W1w, opt -ffnmadd(s), TBD, med, 5, yes, EXT2xx, no, isa/svfparith, 3R2W1w, opt -ffnmsub(s), TBD, med, 5, yes, EXT2xx, no, isa/svfparith, 3R2W1w, opt +ffadd(s), TBD, med, 10, yes, EXT2xx, no, isa/svfparith, 2R1W1w, opt, TODO +ffsub(s), TBD, med, 10, yes, EXT2xx, no, isa/svfparith, 2R1W1w, opt, TODO +ffmul(s), TBD, med, 10, yes, EXT2xx, no, isa/svfparith, 2R1W1w, opt, TODO +ffdiv(s), TBD, med, 10, yes, EXT2xx, no, isa/svfparith, 2R1W1w, opt, TODO +fdmadd(s), TBD, med, 5, yes, EXT2xx, no, isa/svfparith, 3R2W1w, opt, TODO +ffmadd(s), TBD, med, 5, yes, EXT2xx, no, isa/svfparith, 3R2W1w, opt, TODO +ffmsub(s), TBD, med, 5, yes, EXT2xx, no, isa/svfparith, 3R2W1w, opt, TODO +ffnmadd(s), TBD, med, 5, yes, EXT2xx, no, isa/svfparith, 3R2W1w, opt, TODO +ffnmsub(s), TBD, med, 5, yes, EXT2xx, no, isa/svfparith, 3R2W1w, opt, TODO # Trigonometric (1-arg) -fsin(s), TBD, high, 10, yes, EXT0xx, no, transcendentals, 1R1W1w, SV/S -fcos(s), TBD, high, 10, yes, EXT0xx, no, transcendentals, 1R1W1w, SV/S -ftan(s), TBD, high, 10, yes, EXT0xx, no, transcendentals, 1R1W1w, SV/S -fasin(s), TBD, low, 10, yes, EXT2xx, no, transcendentals, 1R1W1w, opt -facos(s), TBD, low, 10, yes, EXT2xx, no, transcendentals, 1R1W1w, opt -fatan(s), TBD, low, 10, yes, EXT2xx, no, transcendentals, 1R1W1w, opt -fsinpi(s), TBD, high, 10, yes, TBD, no, transcendentals, 1R1W1w, SV/S -fcospi(s), TBD, high, 10, yes, TBD, no, transcendentals, 1R1W1w, SV/S -ftanpi(s), TBD, high, 10, yes, TBD, no, transcendentals, 1R1W1w, SV/S -fasinpi(s), TBD, low, 10, yes, EXT2xx, no, transcendentals, 1R1W1w, opt -facospi(s), TBD, low, 10, yes, EXT2xx, no, transcendentals, 1R1W1w, opt -fatanpi(s), TBD, low, 10, yes, EXT2xx, no, transcendentals, 1R1W1w, opt -fsinh(s), TBD, low, 10, yes, EXT2xx, no, transcendentals, 1R1W1w, opt -fcosh(s), TBD, low, 10, yes, EXT2xx, no, transcendentals, 1R1W1w, opt -ftanh(s), TBD, low, 10, yes, EXT2xx, no, transcendentals, 1R1W1w, opt -fasinh(s), TBD, low, 10, yes, EXT2xx, no, transcendentals, 1R1W1w, opt -facosh(s), TBD, low, 10, yes, EXT2xx, no, transcendentals, 1R1W1w, opt -fatanh(s), TBD, low, 10, yes, EXT2xx, no, transcendentals, 1R1W1w, opt +fsin(s), TBD, high, 10, yes, EXT0xx, no, transcendentals, 1R1W1w, SV/S, yes +fcos(s), TBD, high, 10, yes, EXT0xx, no, transcendentals, 1R1W1w, SV/S, yes +ftan(s), TBD, high, 10, yes, EXT0xx, no, transcendentals, 1R1W1w, SV/S, yes +fasin(s), TBD, low, 10, yes, EXT2xx, no, transcendentals, 1R1W1w, opt, yes +facos(s), TBD, low, 10, yes, EXT2xx, no, transcendentals, 1R1W1w, opt, yes +fatan(s), TBD, low, 10, yes, EXT2xx, no, transcendentals, 1R1W1w, opt, yes +fsinpi(s), TBD, high, 10, yes, TBD, no, transcendentals, 1R1W1w, SV/S, yes +fcospi(s), TBD, high, 10, yes, TBD, no, transcendentals, 1R1W1w, SV/S, yes +ftanpi(s), TBD, high, 10, yes, TBD, no, transcendentals, 1R1W1w, SV/S, yes +fasinpi(s), TBD, low, 10, yes, EXT2xx, no, transcendentals, 1R1W1w, opt, yes +facospi(s), TBD, low, 10, yes, EXT2xx, no, transcendentals, 1R1W1w, opt, yes +fatanpi(s), TBD, low, 10, yes, EXT2xx, no, transcendentals, 1R1W1w, opt, yes +fsinh(s), TBD, low, 10, yes, EXT2xx, no, transcendentals, 1R1W1w, opt, yes +fcosh(s), TBD, low, 10, yes, EXT2xx, no, transcendentals, 1R1W1w, opt, yes +ftanh(s), TBD, low, 10, yes, EXT2xx, no, transcendentals, 1R1W1w, opt, yes +fasinh(s), TBD, low, 10, yes, EXT2xx, no, transcendentals, 1R1W1w, opt, yes +facosh(s), TBD, low, 10, yes, EXT2xx, no, transcendentals, 1R1W1w, opt, yes +fatanh(s), TBD, low, 10, yes, EXT2xx, no, transcendentals, 1R1W1w, opt, yes # Transcendentals (1-arg) -frsqrt(s), TBD, high, 10, yes, EXT0xx, no, transcendentals, 1R1W1w, SV/S -fcbrt(s), TBD, low, 10, yes, EXT2xx, no, transcendentals, 1R1W1w, opt -frecip(s), TBD, high, 10, yes, EXT0xx, no, transcendentals, 1R1W1w, SV/S -fexp2m1(s), TBD, high, 10, yes, EXT0xx, no, transcendentals, 1R1W1w, SV/S -flog2p1(s), TBD, high, 10, yes, EXT0xx, no, transcendentals, 1R1W1w, SV/S -fexp2(s), TBD, high, 10, yes, EXT0xx, no, transcendentals, 1R1W1w, SV/S -flog2(s), TBD, high, 10, yes, EXT0xx, no, transcendentals, 1R1W1w, SV/S -fexpm1(s), TBD, med, 10, yes, TBD, no, transcendentals, 1R1W1w, opt -flogp1(s), TBD, med, 10, yes, TBD, no, transcendentals, 1R1W1w, opt -fexp(s), TBD, med, 10, yes, TBD, no, transcendentals, 1R1W1w, opt -flog(s), TBD, med, 10, yes, TBD, no, transcendentals, 1R1W1w, opt -fexp10m1(s), TBD, med, 10, yes, TBD, no, transcendentals, 1R1W1w, opt -flog10p1(s), TBD, med, 10, yes, TBD, no, transcendentals, 1R1W1w, opt -fexp10(s), TBD, med, 10, yes, TBD, no, transcendentals, 1R1W1w, opt -flog10(s), TBD, med, 10, yes, TBD, no, transcendentals, 1R1W1w, opt +frsqrt(s), TBD, high, 10, yes, EXT0xx, no, transcendentals, 1R1W1w, SV/S, yes +fcbrt(s), TBD, low, 10, yes, EXT2xx, no, transcendentals, 1R1W1w, opt, yes +frecip(s), TBD, high, 10, yes, EXT0xx, no, transcendentals, 1R1W1w, SV/S, yes +fexp2m1(s), TBD, high, 10, yes, EXT0xx, no, transcendentals, 1R1W1w, SV/S, yes +flog2p1(s), TBD, high, 10, yes, EXT0xx, no, transcendentals, 1R1W1w, SV/S, yes +fexp2(s), TBD, high, 10, yes, EXT0xx, no, transcendentals, 1R1W1w, SV/S, yes +flog2(s), TBD, high, 10, yes, EXT0xx, no, transcendentals, 1R1W1w, SV/S, yes +fexpm1(s), TBD, med, 10, yes, TBD, no, transcendentals, 1R1W1w, opt, yes +flogp1(s), TBD, med, 10, yes, TBD, no, transcendentals, 1R1W1w, opt, yes +fexp(s), TBD, med, 10, yes, TBD, no, transcendentals, 1R1W1w, opt, yes +flog(s), TBD, med, 10, yes, TBD, no, transcendentals, 1R1W1w, opt, yes +fexp10m1(s), TBD, med, 10, yes, TBD, no, transcendentals, 1R1W1w, opt, yes +flog10p1(s), TBD, med, 10, yes, TBD, no, transcendentals, 1R1W1w, opt, yes +fexp10(s), TBD, med, 10, yes, TBD, no, transcendentals, 1R1W1w, opt, yes +flog10(s), TBD, med, 10, yes, TBD, no, transcendentals, 1R1W1w, opt, yes # Transcendentals (2-arg) -fatan2(s), TBD, med, 10, yes, EXT2xx, no, transcendentals, 2R1W1w, opt -fatan2pi(s), TBD, med, 10, yes, EXT2xx, no, transcendentals, 2R1W1w, opt -fpow(s), TBD, low, 10, yes, EXT2xx, no, transcendentals, 2R1W1w, opt -fpown(s), TBD, low, 10, yes, EXT2xx, no, transcendentals, 2R1W1w, opt -fpowr(s), TBD, low, 10, yes, EXT2xx, no, transcendentals, 2R1W1w, opt -frootn(s), TBD, low, 10, yes, EXT2xx, no, transcendentals, 2R1W1w, opt -fhypot(s), TBD, TBD, 10, yes, TBD, no, transcendentals, 2R1W1w, opt -fminmax, ls013, high, 6, yes, EXT0xx, no, transcendentals, 2R1W1w, SFFS -fmod(s), TBD, TBD, 10, yes, TBD, no, transcendentals, 2R1W1w, opt -fremainder(s), TBD, TBD, 10, yes, TBD, no, transcendentals, 2R1W1w, opt +fatan2(s), TBD, med, 10, yes, EXT2xx, no, transcendentals, 2R1W1w, opt, yes +fatan2pi(s), TBD, med, 10, yes, EXT2xx, no, transcendentals, 2R1W1w, opt, yes +fpow(s), TBD, low, 10, yes, EXT2xx, no, transcendentals, 2R1W1w, opt, yes +fpown(s), TBD, low, 10, yes, EXT2xx, no, transcendentals, 2R1W1w, opt, yes +fpowr(s), TBD, low, 10, yes, EXT2xx, no, transcendentals, 2R1W1w, opt, yes +frootn(s), TBD, low, 10, yes, EXT2xx, no, transcendentals, 2R1W1w, opt, yes +fhypot(s), TBD, TBD, 10, yes, TBD, no, transcendentals, 2R1W1w, opt, yes +fminmax, ls013, high, 6, yes, EXT0xx, no, transcendentals, 2R1W1w, SFFS, REDO +fmod(s), TBD, TBD, 10, yes, TBD, no, transcendentals, 2R1W1w, opt, yes +fremainder(s), TBD, TBD, 10, yes, TBD, no, transcendentals, 2R1W1w, opt, yes