[PATCH] D130311: [RISCV] Enable strict FP in clang as long as Zve* or V are not enabled.

Alex Bradbury via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Mon Aug 1 03:23:46 PDT 2022

asb added a comment.

I don't feel very qualified on the current state of strict FP, but I've left a couple of minor comments inline. I'm happy to trust your knowledge the state of strictfp and the patch looks good to me otherwise.

Comment at: clang/lib/Basic/Targets/RISCV.cpp:286
+  // StrictFP support for vectors is incomplete.
+  if (ISAInfo->hasExtension("zve32x"))
+    HasStrictFP = false;
There's also code in RISCVISAInfo.cpp that does `HasVector = Exts.count("zve32x") != 0`. It's probably worth adding a helper (`hasVInstructions`?) that encapsulates this, and use it from both places.

Comment at: clang/test/CodeGen/builtin_float_strictfp.c:3
 // RUN: %clang_cc1 -no-opaque-pointers -emit-llvm -triple ppc64-be -ffp-exception-behavior=maytrap -o - %s | FileCheck %s --check-prefixes=CHECK,NOFP16
+// RUN: %clang_cc1 -no-opaque-pointers -emit-llvm -triple riscv64 -ffp-exception-behavior=maytrap -o - %s | FileCheck %s --check-prefixes=CHECK,FP16
craig.topper wrote:
> I just picked a test to have some coverage that the strict FP is enabled. Most strict FP tests use `-Xclang -fexperimental-strict-floating-point` to avoid needing a specific target.
I think it would be worth at least having coverage for the logic that disables strict FP if vector extensions are enabled.

  rG LLVM Github Monorepo



More information about the cfe-commits mailing list