Skip to content

Commit 06a8835

Browse files
committed
add missing paas.hx pasa.hx, reformat blank line to separate table, use RVPTernary_rrr when necessary
1 parent ebf74b9 commit 06a8835

File tree

3 files changed

+148
-70
lines changed

3 files changed

+148
-70
lines changed

llvm/lib/Target/RISCV/RISCVInstrInfoP.td

Lines changed: 130 additions & 64 deletions
Original file line numberDiff line numberDiff line change
@@ -578,204 +578,270 @@ let Predicates = [HasStdExtP, IsRV64] in {
578578
def PPACKT_W : RVPBinary_rr<0b0110, 0b01, 0b100, "ppackt.w">;
579579
def PACKT_RV64 : RVPBinary_rr<0b0110, 0b11, 0b100, "packt">;
580580
} // Predicates = [HasStdExtP, IsRV64]
581+
581582
let Predicates = [HasStdExtP] in {
582583
def PM2ADD_H : RVPBinary_rr<0b0000, 0b00, 0b101, "pm2add.h">;
583584
def PM4ADD_B : RVPBinary_rr<0b0000, 0b10, 0b101, "pm4add.b">;
584-
def PM2ADDA_H : RVPBinary_rr<0b0001, 0b00, 0b101, "pm2adda.h">;
585-
def PM4ADDA_B : RVPBinary_rr<0b0001, 0b10, 0b101, "pm4adda.b">;
585+
586+
def PM2ADDA_H : RVPTernary_rrr<0b0001, 0b00, 0b101, "pm2adda.h">;
587+
def PM4ADDA_B : RVPTernary_rrr<0b0001, 0b10, 0b101, "pm4adda.b">;
588+
586589
def PM2ADD_HX : RVPBinary_rr<0b0010, 0b00, 0b101, "pm2add.hx">;
587-
def PM2ADDA_HX : RVPBinary_rr<0b0011, 0b00, 0b101, "pm2adda.hx">;
590+
591+
def PM2ADDA_HX : RVPTernary_rrr<0b0011, 0b00, 0b101, "pm2adda.hx">;
588592

589593
def PM2ADDU_H : RVPBinary_rr<0b0100, 0b00, 0b101, "pm2addu.h">;
590594
def PM4ADDU_B : RVPBinary_rr<0b0100, 0b10, 0b101, "pm4addu.b">;
591-
def PM2ADDAU_H : RVPBinary_rr<0b0101, 0b00, 0b101, "pm2addau.h">;
592-
def PM4ADDAU_B : RVPBinary_rr<0b0101, 0b10, 0b101, "pm4addau.b">;
595+
596+
def PM2ADDAU_H : RVPTernary_rrr<0b0101, 0b00, 0b101, "pm2addau.h">;
597+
def PM4ADDAU_B : RVPTernary_rrr<0b0101, 0b10, 0b101, "pm4addau.b">;
598+
593599
def PMQ2ADD_H : RVPBinary_rr<0b0110, 0b00, 0b101, "pmq2add.h">;
594600
def PMQR2ADD_H : RVPBinary_rr<0b0110, 0b10, 0b101, "pmqr2add.h">;
595-
def PMQ2ADDA_H : RVPBinary_rr<0b0111, 0b00, 0b101, "pmq2adda.h">;
596-
def PMQR2ADDA_H : RVPBinary_rr<0b0111, 0b10, 0b101, "pmqr2adda.h">;
601+
602+
def PMQ2ADDA_H : RVPTernary_rrr<0b0111, 0b00, 0b101, "pmq2adda.h">;
603+
def PMQR2ADDA_H : RVPTernary_rrr<0b0111, 0b10, 0b101, "pmqr2adda.h">;
597604

598605
def PM2SUB_H : RVPBinary_rr<0b1000, 0b00, 0b101, "pm2sub.h">;
599606
def PM2SADD_H : RVPBinary_rr<0b1000, 0b10, 0b101, "pm2sadd.h">;
600-
def PM2SUBA_H : RVPBinary_rr<0b1001, 0b00, 0b101, "pm2suba.h">;
607+
608+
def PM2SUBA_H : RVPTernary_rrr<0b1001, 0b00, 0b101, "pm2suba.h">;
609+
601610
def PM2SUB_HX : RVPBinary_rr<0b1010, 0b00, 0b101, "pm2sub.hx">;
602611
def PM2SADD_HX : RVPBinary_rr<0b1010, 0b10, 0b101, "pm2sadd.hx">;
603-
def PM2SUBA_HX : RVPBinary_rr<0b1011, 0b00, 0b101, "pm2suba.hx">;
612+
613+
def PM2SUBA_HX : RVPTernary_rrr<0b1011, 0b00, 0b101, "pm2suba.hx">;
604614

605615
def PM2ADDSU_H : RVPBinary_rr<0b1100, 0b00, 0b101, "pm2addsu.h">;
606616
def PM4ADDSU_B : RVPBinary_rr<0b1100, 0b10, 0b101, "pm4addsu.b">;
617+
607618
def PM2ADDASU_H : RVPBinary_rr<0b1101, 0b00, 0b101, "pm2addasu.h">;
608619
def PM4ADDASU_B : RVPBinary_rr<0b1101, 0b10, 0b101, "pm4addasu.b">;
609620
} // Predicates = [HasStdExtP]
621+
610622
let Predicates = [HasStdExtP, IsRV32], DecoderNamespace = "RV32Only" in {
611623
def MQACC_H01 : RVPBinary_rr<0b1111, 0b00, 0b101, "mqacc.h01">;
612624
def MQRACC_H01 : RVPBinary_rr<0b1111, 0b10, 0b101, "mqracc.h01">;
613625
} // // Predicates = [HasStdExtP, IsRV32], DecoderNamespace = "RV32Only"
614626
let Predicates = [HasStdExtP, IsRV64] in {
615627
def PM2ADD_W : RVPBinary_rr<0b0000, 0b01, 0b101, "pm2add.w">;
616628
def PM4ADD_H : RVPBinary_rr<0b0000, 0b11, 0b101, "pm4add.h">;
617-
def PM2ADDA_W : RVPBinary_rr<0b0001, 0b01, 0b101, "pm2adda.w">;
618-
def PM4ADDA_H : RVPBinary_rr<0b0001, 0b11, 0b101, "pm4adda.h">;
629+
630+
def PM2ADDA_W : RVPTernary_rrr<0b0001, 0b01, 0b101, "pm2adda.w">;
631+
def PM4ADDA_H : RVPTernary_rrr<0b0001, 0b11, 0b101, "pm4adda.h">;
632+
619633
def PM2ADD_WX : RVPBinary_rr<0b0010, 0b01, 0b101, "pm2add.wx">;
620-
def PM2ADDA_WX : RVPBinary_rr<0b0011, 0b01, 0b101, "pm2adda.wx">;
634+
635+
def PM2ADDA_WX : RVPTernary_rrr<0b0011, 0b01, 0b101, "pm2adda.wx">;
621636

622637
def PM2ADDU_W : RVPBinary_rr<0b0100, 0b01, 0b101, "pm2addu.w">;
623638
def PM4ADDU_H : RVPBinary_rr<0b0100, 0b11, 0b101, "pm4addu.h">;
624-
def PM2ADDAU_W : RVPBinary_rr<0b0101, 0b01, 0b101, "pm2addau.w">;
625-
def PM4ADDAU_H : RVPBinary_rr<0b0101, 0b11, 0b101, "pm4addau.h">;
639+
640+
def PM2ADDAU_W : RVPTernary_rrr<0b0101, 0b01, 0b101, "pm2addau.w">;
641+
def PM4ADDAU_H : RVPTernary_rrr<0b0101, 0b11, 0b101, "pm4addau.h">;
642+
626643
def PMQ2ADD_W : RVPBinary_rr<0b0110, 0b01, 0b101, "pmq2add.w">;
627644
def PMQR2ADD_W : RVPBinary_rr<0b0110, 0b11, 0b101, "pmqr2add.w">;
628-
def PMQ2ADDA_W : RVPBinary_rr<0b0111, 0b01, 0b101, "pmq2adda.w">;
629-
def PMQR2ADDA_W : RVPBinary_rr<0b0111, 0b11, 0b101, "pmqr2adda.w">;
645+
646+
def PMQ2ADDA_W : RVPTernary_rrr<0b0111, 0b01, 0b101, "pmq2adda.w">;
647+
def PMQR2ADDA_W : RVPTernary_rrr<0b0111, 0b11, 0b101, "pmqr2adda.w">;
630648

631649
def PM2SUB_W : RVPBinary_rr<0b1000, 0b01, 0b101, "pm2sub.w">;
632-
def PM2SUBA_W : RVPBinary_rr<0b1001, 0b01, 0b101, "pm2suba.w">;
650+
651+
def PM2SUBA_W : RVPTernary_rrr<0b1001, 0b01, 0b101, "pm2suba.w">;
652+
633653
def PM2SUB_WX : RVPBinary_rr<0b1010, 0b01, 0b101, "pm2sub.wx">;
654+
634655
def PM2SUBA_WX : RVPBinary_rr<0b1011, 0b01, 0b101, "pm2suba.wx">;
635656

636657
def PM2ADDSU_W : RVPBinary_rr<0b1100, 0b01, 0b101, "pm2addsu.w">;
637658
def PM4ADDSU_H : RVPBinary_rr<0b1100, 0b11, 0b101, "pm4addsu.h">;
638-
def PM2ADDASU_W : RVPBinary_rr<0b1101, 0b01, 0b101, "pm2addasu.w">;
639-
def PM4ADDASU_H : RVPBinary_rr<0b1101, 0b11, 0b101, "pm4addasu.h">;
640659

641-
def PMQACC_W_H01 : RVPBinary_rr<0b1111, 0b00, 0b101, "pmqacc.w.h01">;
642-
def MQACC_W01 : RVPBinary_rr<0b1111, 0b01, 0b101, "mqacc.w01">;
643-
def PMQRACC_W_H01 : RVPBinary_rr<0b1111, 0b10, 0b101, "pmqracc.w.h01">;
644-
def MQRACC_W01 : RVPBinary_rr<0b1111, 0b11, 0b101, "mqracc.w01">;
660+
def PM2ADDASU_W : RVPTernary_rrr<0b1101, 0b01, 0b101, "pm2addasu.w">;
661+
def PM4ADDASU_H : RVPTernary_rrr<0b1101, 0b11, 0b101, "pm4addasu.h">;
662+
663+
def PMQACC_W_H01 : RVPTernary_rrr<0b1111, 0b00, 0b101, "pmqacc.w.h01">;
664+
def MQACC_W01 : RVPTernary_rrr<0b1111, 0b01, 0b101, "mqacc.w01">;
665+
666+
def PMQRACC_W_H01 : RVPTernary_rrr<0b1111, 0b10, 0b101, "pmqracc.w.h01">;
667+
def MQRACC_W01 : RVPTernary_rrr<0b1111, 0b11, 0b101, "mqracc.w01">;
645668
} // Predicates = [HasStdExtP, IsRV64]
669+
646670
let Predicates = [HasStdExtP] in {
647671
def PAS_HX : RVPBinary_rr<0b0000, 0b00, 0b110, "pas.hx">;
648672
def PSA_HX : RVPBinary_rr<0b0000, 0b10, 0b110, "psa.hx">;
673+
649674
def PSAS_HX : RVPBinary_rr<0b0010, 0b00, 0b110, "psas.hx">;
650675
def PSSA_HX : RVPBinary_rr<0b0010, 0b10, 0b110, "pssa.hx">;
651676

677+
def PAAS_HX : RVPBinary_rr<0b0011, 0b00, 0b110, "paas.hx">;
678+
def PASA_HX : RVPBinary_rr<0b0011, 0b10, 0b110, "pasa.hx">;
679+
652680
def PMSEQ_H : RVPBinary_rr<0b1000, 0b00, 0b110, "pmseq.h">;
653681
def PMSEQ_B : RVPBinary_rr<0b1000, 0b10, 0b110, "pmseq.b">;
682+
654683
def PMSLT_H : RVPBinary_rr<0b1010, 0b00, 0b110, "pmslt.h">;
655684
def PMSLT_B : RVPBinary_rr<0b1010, 0b10, 0b110, "pmslt.b">;
685+
656686
def PMSLTU_H : RVPBinary_rr<0b1011, 0b00, 0b110, "pmsltu.h">;
657687
def PMSLTU_B : RVPBinary_rr<0b1011, 0b10, 0b110, "pmsltu.b">;
658688

659689
def PMIN_H : RVPBinary_rr<0b1100, 0b00, 0b110, "pmin.h">;
660690
def PMIN_B : RVPBinary_rr<0b1100, 0b10, 0b110, "pmin.b">;
691+
661692
def PMINU_H : RVPBinary_rr<0b1101, 0b00, 0b110, "pminu.h">;
662693
def PMINU_B : RVPBinary_rr<0b1101, 0b10, 0b110, "pminu.b">;
694+
663695
def PMAX_H : RVPBinary_rr<0b1110, 0b00, 0b110, "pmax.h">;
664696
def PMAX_B : RVPBinary_rr<0b1110, 0b10, 0b110, "pmax.b">;
697+
665698
def PMAXU_H : RVPBinary_rr<0b1111, 0b00, 0b110, "pmaxu.h">;
666699
def PMAXU_B : RVPBinary_rr<0b1111, 0b10, 0b110, "pmaxu.b">;
667700
} // Predicates = [HasStdExtP]
668701
let Predicates = [HasStdExtP, IsRV32], DecoderNamespace = "RV32Only" in {
669702
def MSEQ : RVPBinary_rr<0b1000, 0b01, 0b110, "mseq">;
703+
670704
def MSLT : RVPBinary_rr<0b1010, 0b01, 0b110, "mslt">;
705+
671706
def MSLTU : RVPBinary_rr<0b1011, 0b01, 0b110, "msltu">;
672707
} // Predicates = [HasStdExtP, IsRV32], DecoderNamespace = "RV32Only"
673708
let Predicates = [HasStdExtP, IsRV64] in {
674709
def PAS_WX : RVPBinary_rr<0b0000, 0b01, 0b110, "pas.wx">;
675710
def PSA_WX : RVPBinary_rr<0b0000, 0b11, 0b110, "psa.wx">;
711+
676712
def PSAS_WX : RVPBinary_rr<0b0010, 0b01, 0b110, "psas.wx">;
677713
def PSSA_WX : RVPBinary_rr<0b0010, 0b11, 0b110, "pssa.wx">;
714+
678715
def PAAS_WX : RVPBinary_rr<0b0011, 0b01, 0b110, "paas.wx">;
679716
def PASA_WX : RVPBinary_rr<0b0011, 0b11, 0b110, "pasa.wx">;
680717

681718
def PMSEQ_W : RVPBinary_rr<0b1000, 0b01, 0b110, "pmseq.w">;
719+
682720
def PMSLT_W : RVPBinary_rr<0b1010, 0b01, 0b110, "pmslt.w">;
721+
683722
def PMSLTU_W : RVPBinary_rr<0b1011, 0b01, 0b110, "pmsltu.w">;
684723

685724
def PMIN_W : RVPBinary_rr<0b1100, 0b01, 0b110, "pmin.w">;
725+
686726
def PMINU_W : RVPBinary_rr<0b1101, 0b01, 0b110, "pminu.w">;
727+
687728
def PMAX_W : RVPBinary_rr<0b1110, 0b01, 0b110, "pmax.w">;
729+
688730
def PMAXU_W : RVPBinary_rr<0b1111, 0b01, 0b110, "pmaxu.w">;
689731
} // Predicates = [HasStdExtP, IsRV64]
690732

691-
692733
let Predicates = [HasStdExtP] in {
693734
def PMULH_H : RVPBinary_rr<0b0000, 0b00, 0b111, "pmulh.h">;
694735
def PMULHR_H : RVPBinary_rr<0b0000, 0b10, 0b111, "pmulhr.h">;
695-
def PMHACC_H : RVPBinary_rr<0b0001, 0b00, 0b111, "pmhacc.h">;
696-
def PMHRACC_H : RVPBinary_rr<0b0001, 0b10, 0b111, "pmhracc.h">;
736+
737+
def PMHACC_H : RVPTernary_rrr<0b0001, 0b00, 0b111, "pmhacc.h">;
738+
def PMHRACC_H : RVPTernary_rrr<0b0001, 0b10, 0b111, "pmhracc.h">;
739+
697740
def PMULHU_H : RVPBinary_rr<0b0010, 0b00, 0b111, "pmulhu.h">;
698741
def PMULHRU_H : RVPBinary_rr<0b0010, 0b10, 0b111, "pmulhru.h">;
699-
def PMHACCU_H : RVPBinary_rr<0b0011, 0b00, 0b111, "pmhaccu.h">;
700-
def PMHRACCU_H : RVPBinary_rr<0b0011, 0b10, 0b111, "pmhraccu.h">;
742+
743+
def PMHACCU_H : RVPTernary_rrr<0b0011, 0b00, 0b111, "pmhaccu.h">;
744+
def PMHRACCU_H : RVPTernary_rrr<0b0011, 0b10, 0b111, "pmhraccu.h">;
701745

702746
def PMULH_H_B0 : RVPBinary_rr<0b0100, 0b00, 0b111, "pmulh.h.b0">;
703747
def PMULHSU_H_B0 : RVPBinary_rr<0b0100, 0b10, 0b111, "pmulhsu.h.b0">;
704-
def PMHACCU_H_B0 : RVPBinary_rr<0b0101, 0b00, 0b111, "pmhaccu.h.b0">;
705-
def PMHACCSU_H_B0 : RVPBinary_rr<0b0101, 0b10, 0b111, "pmhaccsu.h.b0">;
748+
749+
def PMHACC_H_B0 : RVPTernary_rrr<0b0101, 0b00, 0b111, "pmhacc.h.b0">;
750+
def PMHACCSU_H_B0 : RVPTernary_rrr<0b0101, 0b10, 0b111, "pmhaccsu.h.b0">;
751+
706752
def PMULH_H_B1 : RVPBinary_rr<0b0110, 0b00, 0b111, "pmulh.h.b1">;
707753
def PMULHSU_H_B1 : RVPBinary_rr<0b0110, 0b10, 0b111, "pmulhsu.h.b1">;
708-
def PMHACC_H_B1 : RVPBinary_rr<0b0111, 0b00, 0b111, "pmhacc.h.b1">;
709-
def PMHACCSU_H_B1 : RVPBinary_rr<0b0111, 0b10, 0b111, "pmhaccsu.h.b1">;
754+
755+
def PMHACC_H_B1 : RVPTernary_rrr<0b0111, 0b00, 0b111, "pmhacc.h.b1">;
756+
def PMHACCSU_H_B1 : RVPTernary_rrr<0b0111, 0b10, 0b111, "pmhaccsu.h.b1">;
710757

711758
def PMULHSU_H : RVPBinary_rr<0b1000, 0b00, 0b111, "pmulhsu.h">;
712759
def PMULHRSU_H : RVPBinary_rr<0b1000, 0b10, 0b111, "pmulhrsu.h">;
760+
713761
def PMHACCSU_H : RVPBinary_rr<0b1001, 0b00, 0b111, "pmhaccsu.h">;
714762
def PMHRACCSU_H : RVPBinary_rr<0b1001, 0b10, 0b111, "pmhraccsu.h">;
763+
715764
def PMULQ_H : RVPBinary_rr<0b1010, 0b00, 0b111, "pmulq.h">;
716765
def PMULQR_H : RVPBinary_rr<0b1010, 0b10, 0b111, "pmulqr.h">;
717766
} // Predicates = [HasStdExtP]
718-
719767
let Predicates = [HasStdExtP, IsRV32], DecoderNamespace = "RV32Only" in {
720768
def MULHR : RVPBinary_rr<0b0000, 0b11, 0b111, "mulhr">;
721-
def MHACC : RVPBinary_rr<0b0001, 0b01, 0b111, "mhacc">;
722-
def MHRACC : RVPBinary_rr<0b0001, 0b11, 0b111, "mhracc">;
769+
770+
def MHACC : RVPTernary_rrr<0b0001, 0b01, 0b111, "mhacc">;
771+
def MHRACC : RVPTernary_rrr<0b0001, 0b11, 0b111, "mhracc">;
772+
723773
def MULHRU : RVPBinary_rr<0b0010, 0b11, 0b111, "mulhru">;
724-
def MHACCU : RVPBinary_rr<0b0011, 0b01, 0b111, "mhaccu">;
725-
def MHRACCU : RVPBinary_rr<0b0011, 0b11, 0b111, "mhraccu">;
774+
775+
def MHACCU : RVPTernary_rrr<0b0011, 0b01, 0b111, "mhaccu">;
776+
def MHRACCU : RVPTernary_rrr<0b0011, 0b11, 0b111, "mhraccu">;
726777

727778
def MULH_H0 : RVPBinary_rr<0b0100, 0b01, 0b111, "mulh.h0">;
728779
def MULHSU_H0 : RVPBinary_rr<0b0100, 0b11, 0b111, "mulhsu.h0">;
729-
def MHACC_H0 : RVPBinary_rr<0b0101, 0b01, 0b111, "mhacc.h0">;
730-
def MHACCSU_H0 : RVPBinary_rr<0b0101, 0b11, 0b111, "mhaccsu.h0">;
780+
781+
def MHACC_H0 : RVPTernary_rrr<0b0101, 0b01, 0b111, "mhacc.h0">;
782+
def MHACCSU_H0 : RVPTernary_rrr<0b0101, 0b11, 0b111, "mhaccsu.h0">;
783+
731784
def MULH_H1 : RVPBinary_rr<0b0110, 0b01, 0b111, "mulh.h1">;
732785
def MULHSU_H1 : RVPBinary_rr<0b0110, 0b11, 0b111, "mulhsu.h1">;
733-
def MHACC_H1 : RVPBinary_rr<0b0111, 0b01, 0b111, "mhacc.h1">;
734-
def MHACCSU_H1 : RVPBinary_rr<0b0111, 0b11, 0b111, "mhaccsu.h1">;
735786

736-
def MULHRSU_H : RVPBinary_rr<0b1000, 0b11, 0b111, "mulhrsu.h">;
737-
def MHACCSU : RVPBinary_rr<0b1001, 0b01, 0b111, "mhaccsu">;
738-
def MHRACCSU : RVPBinary_rr<0b1001, 0b11, 0b111, "mhraccsu">;
787+
def MHACC_H1 : RVPTernary_rrr<0b0111, 0b01, 0b111, "mhacc.h1">;
788+
def MHACCSU_H1 : RVPTernary_rrr<0b0111, 0b11, 0b111, "mhaccsu.h1">;
789+
790+
def MULHRSU : RVPBinary_rr<0b1000, 0b11, 0b111, "mulhrsu">;
791+
792+
def MHACCSU : RVPTernary_rrr<0b1001, 0b01, 0b111, "mhaccsu">;
793+
def MHRACCSU : RVPTernary_rrr<0b1001, 0b11, 0b111, "mhraccsu">;
794+
739795
def MULQ : RVPBinary_rr<0b1010, 0b01, 0b111, "mulq">;
740796
def MULQR : RVPBinary_rr<0b1010, 0b11, 0b111, "mulqr">;
741797

742-
def MQACC_H00 : RVPBinary_rr<0b1101, 0b00, 0b111, "mqacc.h00">;
743-
def MQRACC_H00 : RVPBinary_rr<0b1101, 0b10, 0b111, "mqracc.h00">;
744-
def MQACC_H11 : RVPBinary_rr<0b1111, 0b00, 0b111, "mqacc.h11">;
745-
def MQRACC_H11 : RVPBinary_rr<0b1111, 0b10, 0b111, "mqracc.h11">;
798+
def MQACC_H00 : RVPTernary_rrr<0b1101, 0b00, 0b111, "mqacc.h00">;
799+
def MQRACC_H00 : RVPTernary_rrr<0b1101, 0b10, 0b111, "mqracc.h00">;
800+
801+
def MQACC_H11 : RVPTernary_rrr<0b1111, 0b00, 0b111, "mqacc.h11">;
802+
def MQRACC_H11 : RVPTernary_rrr<0b1111, 0b10, 0b111, "mqracc.h11">;
746803
} // Predicates = [HasStdExtP, IsRV32], DecoderNamespace = "RV32Only" in
747804
let Predicates = [HasStdExtP, IsRV64] in {
748805
def PMULH_W : RVPBinary_rr<0b0000, 0b01, 0b111, "pmulh.w">;
749806
def PMULHR_W : RVPBinary_rr<0b0000, 0b11, 0b111, "pmulhr.w">;
750-
def PMHACC_W : RVPBinary_rr<0b0001, 0b01, 0b111, "pmhacc.w">;
751-
def PMHRACC_W : RVPBinary_rr<0b0001, 0b11, 0b111, "pmhracc.w">;
807+
808+
def PMHACC_W : RVPTernary_rrr<0b0001, 0b01, 0b111, "pmhacc.w">;
809+
def PMHRACC_W : RVPTernary_rrr<0b0001, 0b11, 0b111, "pmhracc.w">;
810+
752811
def PMULHU_W : RVPBinary_rr<0b0010, 0b01, 0b111, "pmulhu.w">;
753812
def PMULHRU_W : RVPBinary_rr<0b0010, 0b11, 0b111, "pmulhru.w">;
754-
def PMHACCU_W : RVPBinary_rr<0b0011, 0b01, 0b111, "pmhaccu.w">;
755-
def PMHRACCU_W : RVPBinary_rr<0b0011, 0b11, 0b111, "pmhraccu.w">;
813+
814+
def PMHACCU_W : RVPTernary_rrr<0b0011, 0b01, 0b111, "pmhaccu.w">;
815+
def PMHRACCU_W : RVPTernary_rrr<0b0011, 0b11, 0b111, "pmhraccu.w">;
756816

757817
def PMULH_W_H0 : RVPBinary_rr<0b0100, 0b01, 0b111, "pmulh.w.h0">;
758818
def PMULHSU_W_H0 : RVPBinary_rr<0b0100, 0b11, 0b111, "pmulhsu.w.h0">;
819+
759820
def PMHACC_W_H0 : RVPBinary_rr<0b0101, 0b01, 0b111, "pmhacc.w.h0">;
760821
def PMHACCSU_W_H0 : RVPBinary_rr<0b0101, 0b11, 0b111, "pmhaccsu.w.h0">;
822+
761823
def PMULH_W_H1 : RVPBinary_rr<0b0110, 0b01, 0b111, "pmulh.w.h1">;
762824
def PMULHSU_W_H1 : RVPBinary_rr<0b0110, 0b11, 0b111, "pmulhsu.w.h1">;
763-
def PMHACC_W_H1 : RVPBinary_rr<0b0111, 0b01, 0b111, "pmhacc.w.h1">;
764-
def PMHACCSU_W_H1 : RVPBinary_rr<0b0111, 0b11, 0b111, "pmhaccsu.w.h1">;
825+
826+
def PMHACC_W_H1 : RVPTernary_rrr<0b0111, 0b01, 0b111, "pmhacc.w.h1">;
827+
def PMHACCSU_W_H1 : RVPTernary_rrr<0b0111, 0b11, 0b111, "pmhaccsu.w.h1">;
765828

766829
def PMULHSU_W : RVPBinary_rr<0b1000, 0b01, 0b111, "pmulhsu.w">;
767830
def PMULHRSU_W : RVPBinary_rr<0b1000, 0b11, 0b111, "pmulhrsu.w">;
768-
def PMHACCSU_W : RVPBinary_rr<0b1001, 0b01, 0b111, "pmhaccsu.w">;
769-
def PMHRACCSU_W : RVPBinary_rr<0b1001, 0b11, 0b111, "pmhraccsu.w">;
831+
832+
def PMHACCSU_W : RVPTernary_rrr<0b1001, 0b01, 0b111, "pmhaccsu.w">;
833+
def PMHRACCSU_W : RVPTernary_rrr<0b1001, 0b11, 0b111, "pmhraccsu.w">;
834+
770835
def PMULQ_W : RVPBinary_rr<0b1010, 0b01, 0b111, "pmulq.w">;
771836
def PMULQR_W : RVPBinary_rr<0b1010, 0b11, 0b111, "pmulqr.w">;
772837

773-
def PMQACC_W_H00 : RVPBinary_rr<0b1101, 0b00, 0b111, "pmqacc.w.h00">;
774-
def MQACC_W00 : RVPBinary_rr<0b1101, 0b01, 0b111, "mqacc.w00">;
775-
def PMQRACC_W_H00 : RVPBinary_rr<0b1101, 0b10, 0b111, "pmqracc.w.h00">;
776-
def MQRACC_W00 : RVPBinary_rr<0b1101, 0b11, 0b111, "mqracc.w00">;
777-
def PMQACC_W_H11 : RVPBinary_rr<0b1111, 0b00, 0b111, "pmqacc.w.h11">;
778-
def MQACC_W11 : RVPBinary_rr<0b1111, 0b01, 0b111, "mqacc.w11">;
779-
def PMQRACC_W_H11 : RVPBinary_rr<0b1111, 0b10, 0b111, "pmqracc.w.h11">;
780-
def MQRACC_W11 : RVPBinary_rr<0b1111, 0b11, 0b111, "mqracc.w11">;
838+
def PMQACC_W_H00 : RVPTernary_rrr<0b1101, 0b00, 0b111, "pmqacc.w.h00">;
839+
def MQACC_W00 : RVPTernary_rrr<0b1101, 0b01, 0b111, "mqacc.w00">;
840+
def PMQRACC_W_H00 : RVPTernary_rrr<0b1101, 0b10, 0b111, "pmqracc.w.h00">;
841+
def MQRACC_W00 : RVPTernary_rrr<0b1101, 0b11, 0b111, "mqracc.w00">;
842+
843+
def PMQACC_W_H11 : RVPTernary_rrr<0b1111, 0b00, 0b111, "pmqacc.w.h11">;
844+
def MQACC_W11 : RVPTernary_rrr<0b1111, 0b01, 0b111, "mqacc.w11">;
845+
def PMQRACC_W_H11 : RVPTernary_rrr<0b1111, 0b10, 0b111, "pmqracc.w.h11">;
846+
def MQRACC_W11 : RVPTernary_rrr<0b1111, 0b11, 0b111, "mqracc.w11">;
781847
} // Predicates = [HasStdExtP, IsRV64]

llvm/test/MC/RISCV/rv32p-valid.s

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -465,6 +465,12 @@ psas.hx t5, s2, a2
465465
# CHECK-ASM-AND-OBJ: pssa.hx s2, t3, t5
466466
# CHECK-ASM: encoding: [0x3b,0x69,0xee,0x95]
467467
pssa.hx s2, t3, t5
468+
# CHECK-ASM-AND-OBJ: paas.hx t1, a2, s0
469+
# CHECK-ASM: encoding: [0x3b,0x63,0x86,0x98]
470+
paas.hx t1, a2, s0
471+
# CHECK-ASM-AND-OBJ: pasa.hx t1, s2, t3
472+
# CHECK-ASM: encoding: [0x3b,0x63,0xc9,0x9d]
473+
pasa.hx t1, s2, t3
468474
# CHECK-ASM-AND-OBJ: pmseq.h a0, t1, s0
469475
# CHECK-ASM: encoding: [0x3b,0x65,0x83,0xc0]
470476
pmseq.h a0, t1, s0
@@ -546,9 +552,9 @@ pmulh.h.b0 a0, t5, a4
546552
# CHECK-ASM-AND-OBJ: pmulhsu.h.b0 s0, a4, s2
547553
# CHECK-ASM: encoding: [0x3b,0x74,0x27,0xa5]
548554
pmulhsu.h.b0 s0, a4, s2
549-
# CHECK-ASM-AND-OBJ: pmhaccu.h.b0 s0, a0, t5
555+
# CHECK-ASM-AND-OBJ: pmhacc.h.b0 s0, a0, t5
550556
# CHECK-ASM: encoding: [0x3b,0x74,0xe5,0xa9]
551-
pmhaccu.h.b0 s0, a0, t5
557+
pmhacc.h.b0 s0, a0, t5
552558
# CHECK-ASM-AND-OBJ: pmhaccsu.h.b0 t3, s0, a4
553559
# CHECK-ASM: encoding: [0x3b,0x7e,0xe4,0xac]
554560
pmhaccsu.h.b0 t3, s0, a4
@@ -624,9 +630,9 @@ mhacc.h1 t3, a2, a0
624630
# CHECK-ASM-AND-OBJ: mhaccsu.h1 s0, s2, s0
625631
# CHECK-ASM: encoding: [0x3b,0x74,0x89,0xbe]
626632
mhaccsu.h1 s0, s2, s0
627-
# CHECK-ASM-AND-OBJ: mulhrsu.h t5, a4, t5
633+
# CHECK-ASM-AND-OBJ: mulhrsu t5, a4, t5
628634
# CHECK-ASM: encoding: [0x3b,0x7f,0xe7,0xc7]
629-
mulhrsu.h t5, a4, t5
635+
mulhrsu t5, a4, t5
630636
# CHECK-ASM-AND-OBJ: mhaccsu a0, a2, s2
631637
# CHECK-ASM: encoding: [0x3b,0x75,0x26,0xcb]
632638
mhaccsu a0, a2, s2

llvm/test/MC/RISCV/rv64p-valid.s

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -691,6 +691,12 @@ psas.hx s0, a0, a2
691691
# CHECK-ASM-AND-OBJ: pssa.hx a0, t1, t5
692692
# CHECK-ASM: encoding: [0x3b,0x65,0xe3,0x95]
693693
pssa.hx a0, t1, t5
694+
# CHECK-ASM-AND-OBJ: paas.hx t1, a2, s0
695+
# CHECK-ASM: encoding: [0x3b,0x63,0x86,0x98]
696+
paas.hx t1, a2, s0
697+
# CHECK-ASM-AND-OBJ: pasa.hx t1, s2, t3
698+
# CHECK-ASM: encoding: [0x3b,0x63,0xc9,0x9d]
699+
pasa.hx t1, s2, t3
694700
# CHECK-ASM-AND-OBJ: pmseq.h t3, s0, t1
695701
# CHECK-ASM: encoding: [0x3b,0x6e,0x64,0xc0]
696702
pmseq.h t3, s0, t1
@@ -802,9 +808,9 @@ pmulh.h.b0 t1, a0, a0
802808
# CHECK-ASM-AND-OBJ: pmulhsu.h.b0 t3, s0, a4
803809
# CHECK-ASM: encoding: [0x3b,0x7e,0xe4,0xa4]
804810
pmulhsu.h.b0 t3, s0, a4
805-
# CHECK-ASM-AND-OBJ: pmhaccu.h.b0 t1, a0, a4
811+
# CHECK-ASM-AND-OBJ: pmhacc.h.b0 t1, a0, a4
806812
# CHECK-ASM: encoding: [0x3b,0x73,0xe5,0xa8]
807-
pmhaccu.h.b0 t1, a0, a4
813+
pmhacc.h.b0 t1, a0, a4
808814
# CHECK-ASM-AND-OBJ: pmhaccsu.h.b0 s2, t5, t3
809815
# CHECK-ASM: encoding: [0x3b,0x79,0xcf,0xad]
810816
pmhaccsu.h.b0 s2, t5, t3

0 commit comments

Comments
 (0)