@@ -776,23 +776,29 @@ def KryoWrite_4cyc_X_X_115ln :
776
776
}
777
777
def : InstRW<[KryoWrite_4cyc_X_X_115ln],
778
778
(instregex "FCVTZ(S|U)(v2f64|v4f32|(v2i64|v4i32)(_shift)?)$")>;
779
- def KryoWrite_1cyc_XA_Y_noRSV_43ln :
779
+ def KryoWrite_10cyc_XA_Y_noRSV_43ln :
780
780
SchedWriteRes<[KryoUnitXA, KryoUnitY]> {
781
- let Latency = 1 ; let NumMicroOps = 3;
781
+ let Latency = 10 ; let NumMicroOps = 3;
782
782
}
783
- def : InstRW<[KryoWrite_1cyc_XA_Y_noRSV_43ln ],
784
- (instrs FDIVDrr, FDIVSrr)>;
785
- def KryoWrite_1cyc_XA_Y_noRSV_121ln :
783
+ def : InstRW<[KryoWrite_10cyc_XA_Y_noRSV_43ln ],
784
+ (instrs FDIVSrr)>;
785
+ def KryoWrite_14cyc_XA_Y_noRSV_43ln :
786
786
SchedWriteRes<[KryoUnitXA, KryoUnitY]> {
787
- let Latency = 1 ; let NumMicroOps = 3;
787
+ let Latency = 14 ; let NumMicroOps = 3;
788
788
}
789
- def : InstRW<[KryoWrite_1cyc_XA_Y_noRSV_121ln],
789
+ def : InstRW<[KryoWrite_14cyc_XA_Y_noRSV_43ln],
790
+ (instrs FDIVDrr)>;
791
+ def KryoWrite_10cyc_XA_Y_noRSV_121ln :
792
+ SchedWriteRes<[KryoUnitXA, KryoUnitY]> {
793
+ let Latency = 10; let NumMicroOps = 3;
794
+ }
795
+ def : InstRW<[KryoWrite_10cyc_XA_Y_noRSV_121ln],
790
796
(instrs FDIVv2f32)>;
791
- def KryoWrite_1cyc_XA_Y_XA_Y_123ln :
797
+ def KryoWrite_14cyc_XA_Y_XA_Y_123ln :
792
798
SchedWriteRes<[KryoUnitXA, KryoUnitY, KryoUnitXA, KryoUnitY]> {
793
- let Latency = 1 ; let NumMicroOps = 4;
799
+ let Latency = 14 ; let NumMicroOps = 4;
794
800
}
795
- def : InstRW<[KryoWrite_1cyc_XA_Y_XA_Y_123ln ],
801
+ def : InstRW<[KryoWrite_14cyc_XA_Y_XA_Y_123ln ],
796
802
(instrs FDIVv2f64, FDIVv4f32)>;
797
803
def KryoWrite_5cyc_X_noRSV_55ln :
798
804
SchedWriteRes<[KryoUnitX]> {
@@ -968,24 +974,36 @@ def KryoWrite_2cyc_XY_XY_109ln :
968
974
}
969
975
def : InstRW<[KryoWrite_2cyc_XY_XY_109ln],
970
976
(instregex "FRINT(A|I|M|N|P|X|Z)(v2f64|v4f32)")>;
971
- def KryoWrite_1cyc_XA_Y_noRSV_42ln :
977
+ def KryoWrite_12cyc_XA_Y_noRSV_42ln :
972
978
SchedWriteRes<[KryoUnitXA, KryoUnitY]> {
973
- let Latency = 1 ; let NumMicroOps = 3;
979
+ let Latency = 12 ; let NumMicroOps = 3;
974
980
}
975
- def : InstRW<[KryoWrite_1cyc_XA_Y_noRSV_42ln ],
976
- (instregex "FSQRT(S|D)r" )>;
977
- def KryoWrite_1cyc_XA_Y_noRSV_120ln :
981
+ def : InstRW<[KryoWrite_12cyc_XA_Y_noRSV_42ln ],
982
+ (instrs FSQRTSr )>;
983
+ def KryoWrite_21cyc_XA_Y_noRSV_42ln :
978
984
SchedWriteRes<[KryoUnitXA, KryoUnitY]> {
979
- let Latency = 1; let NumMicroOps = 3;
985
+ let Latency = 21; let NumMicroOps = 3;
986
+ }
987
+ def : InstRW<[KryoWrite_21cyc_XA_Y_noRSV_42ln],
988
+ (instrs FSQRTDr)>;
989
+ def KryoWrite_12cyc_XA_Y_noRSV_120ln :
990
+ SchedWriteRes<[KryoUnitXA, KryoUnitY]> {
991
+ let Latency = 12; let NumMicroOps = 3;
992
+ }
993
+ def : InstRW<[KryoWrite_12cyc_XA_Y_noRSV_120ln],
994
+ (instrs FSQRTv2f32)>;
995
+ def KryoWrite_21cyc_XA_Y_XA_Y_122ln :
996
+ SchedWriteRes<[KryoUnitXA, KryoUnitY, KryoUnitXA, KryoUnitY]> {
997
+ let Latency = 21; let NumMicroOps = 4;
980
998
}
981
- def : InstRW<[KryoWrite_1cyc_XA_Y_noRSV_120ln ],
982
- (instregex "FSQRTv2f32" )>;
983
- def KryoWrite_1cyc_XA_Y_XA_Y_122ln :
999
+ def : InstRW<[KryoWrite_21cyc_XA_Y_XA_Y_122ln ],
1000
+ (instrs FSQRTv4f32 )>;
1001
+ def KryoWrite_36cyc_XA_Y_XA_Y_122ln :
984
1002
SchedWriteRes<[KryoUnitXA, KryoUnitY, KryoUnitXA, KryoUnitY]> {
985
- let Latency = 1 ; let NumMicroOps = 4;
1003
+ let Latency = 36 ; let NumMicroOps = 4;
986
1004
}
987
- def : InstRW<[KryoWrite_1cyc_XA_Y_XA_Y_122ln ],
988
- (instregex "FSQRT(v2f64|v4f32)" )>;
1005
+ def : InstRW<[KryoWrite_36cyc_XA_Y_XA_Y_122ln ],
1006
+ (instrs FSQRTv2f64 )>;
989
1007
def KryoWrite_1cyc_X_201ln :
990
1008
SchedWriteRes<[KryoUnitX]> {
991
1009
let Latency = 1; let NumMicroOps = 1;
0 commit comments