aboutsummaryrefslogtreecommitdiff
path: root/riscv/insns/fminm_s.h
diff options
context:
space:
mode:
Diffstat (limited to 'riscv/insns/fminm_s.h')
-rw-r--r--riscv/insns/fminm_s.h10
1 files changed, 10 insertions, 0 deletions
diff --git a/riscv/insns/fminm_s.h b/riscv/insns/fminm_s.h
new file mode 100644
index 0000000..b1c60f8
--- /dev/null
+++ b/riscv/insns/fminm_s.h
@@ -0,0 +1,10 @@
+require_extension('F');
+require_extension(EXT_ZFA);
+require_fp;
+bool less = f32_lt_quiet(FRS1_F, FRS2_F) ||
+ (f32_eq(FRS2_F, FRS1_F) && (FRS1_F.v & F32_SIGN));
+if (isNaNF32UI(FRS1_F.v) || isNaNF32UI(FRS2_F.v))
+ WRITE_FRD_F(f32(defaultNaNF32UI));
+else
+ WRITE_FRD_F(less ? FRS1_F : FRS2_F);
+set_fp_exceptions;