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

Jim Lin via llvm-commits llvm-commits at lists.llvm.org
Mon May 26 19:06:15 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>;
----------------
tclin914 wrote:

Can we use `HasStdExtFOrZfinx` here?

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


More information about the llvm-commits mailing list