[llvm] [RISCV][FPEnv] Lowering of fpenv intrinsics (PR #141498)

Serge Pavlov via llvm-commits llvm-commits at lists.llvm.org
Tue May 27 08:03:45 PDT 2025


================
@@ -736,6 +736,17 @@ def : LdPat<load, LW_INX, f32>;
 def : StPat<store, SW_INX, GPRF32, f32>;
 } // Predicates = [HasStdExtZfinx]
 
+/// Floating-point environment
+multiclass FPEnvironmentOps<Predicate HasFloatExt> {
+  let Predicates = [HasFloatExt] in {
+    def : Pat<(XLenVT (get_fpenv)), (CSRRS SysRegFCSR.Encoding, (XLenVT X0))>;
+    def : Pat<(set_fpenv (XLenVT GPR:$rs)), (CSRRW SysRegFCSR.Encoding, GPR:$rs)>;
+    def : Pat<(reset_fpenv), (CSRRW SysRegFCSR.Encoding, (XLenVT X0))>;
+  }
+}
+defm : FPEnvironmentOps<HasStdExtF>;
----------------
spavloff wrote:

Yes, it is definitely better. Thanks!

https://github.com/llvm/llvm-project/pull/141498


More information about the llvm-commits mailing list