[PATCH] D72722: [FPEnv] [SystemZ] Platform-specific builtin constrained FP enablement

Ulrich Weigand via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Thu Jan 16 17:00:35 PST 2020


uweigand added a comment.

> What are the semantics of vfnmadb with respect to when it rounds vs the negation?

Hmm, interesting.  The z/Architecture Principles of Operation states:

> The results for each element of VECTOR FP NEGA-
>  TIVE MULTIPLY AND ADD and VECTOR FP NEGA-
>  TIVE MULTIPLY AND SUBTRACT are the same as
>  for VECTOR FP MULTIPLY AND ADD and VECTOR
>  FP MULTIPLY AND SUBTRACT, respectively, except
>  the sign bit of numeric results are inverted. When the
>  result is a NaN it’s sign bit is unchanged.

So as far as rounding is concerned, the vfnmadb should have the exact same result as a vfmadb ; vflcdb sequence we'd get from a fma/fneg.

I hadn't realized the NaN special treatment before.  This makes the result actually different in that case.  OTOH I guess IEEE only says the result has to some NaN, not particularly **which** NaN, so that's probably also OK.  (In any case it's unrelated to strict FP.)


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D72722/new/

https://reviews.llvm.org/D72722





More information about the cfe-commits mailing list