[RISCV] Add correct predicate over FMV instructions
authorKonstantin Vladimirov <konstantin.vladimirov@syntacore.com>
Fri, 2 Dec 2022 07:49:45 +0000 (10:49 +0300)
committerAnton Sidorenko <anton.sidorenko@syntacore.com>
Fri, 2 Dec 2022 10:45:57 +0000 (13:45 +0300)
Restricts FMV usage for subtargets without 'f' extension.

Reviewed By: craig.topper

Differential Revision: https://reviews.llvm.org/D139105

llvm/lib/Target/RISCV/RISCVInstrInfoF.td

index 7783415..10f578d 100644 (file)
@@ -370,7 +370,7 @@ defm FCVT_WU_S : FPUnaryOp_r_frm_m<0b1100000, 0b00001, XFINX, "fcvt.wu.s">,
                  Sched<[WriteFCvtF32ToI32, ReadFCvtF32ToI32]>;
 defm           : FPUnaryOpDynFrmAlias_m<FCVT_WU_S, "fcvt.wu.s", XFINX>;
 
-let mayRaiseFPException = 0 in
+let Predicates = [HasStdExtF], mayRaiseFPException = 0 in
 def FMV_X_W : FPUnaryOp_r<0b1110000, 0b00000, 0b000, GPR, FPR32, "fmv.x.w">,
               Sched<[WriteFMovF32ToI32, ReadFMovF32ToI32]>;
 
@@ -392,7 +392,7 @@ defm FCVT_S_WU : FPUnaryOp_r_frm_m<0b1101000, 0b00001, FXINX, "fcvt.s.wu">,
                  Sched<[WriteFCvtI32ToF32, ReadFCvtI32ToF32]>;
 defm           : FPUnaryOpDynFrmAlias_m<FCVT_S_WU, "fcvt.s.wu", FXINX>;
 
-let mayRaiseFPException = 0 in
+let Predicates = [HasStdExtF], mayRaiseFPException = 0 in
 def FMV_W_X : FPUnaryOp_r<0b1111000, 0b00000, 0b000, FPR32, GPR, "fmv.w.x">,
               Sched<[WriteFMovI32ToF32, ReadFMovI32ToF32]>;