[all-commits] [llvm/llvm-project] 4c3408: [LangRef] improve documentation of SNaN in the def...

Sanjay Patel via All-commits all-commits at lists.llvm.org
Wed Feb 15 05:58:24 PST 2023


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 4c3408697b73fd7c6d58658eeb5b7743cb9fab6c
      https://github.com/llvm/llvm-project/commit/4c3408697b73fd7c6d58658eeb5b7743cb9fab6c
  Author: Sanjay Patel <spatel at rotateright.com>
  Date:   2023-02-15 (Wed, 15 Feb 2023)

  Changed paths:
    M llvm/docs/LangRef.rst

  Log Message:
  -----------
  [LangRef] improve documentation of SNaN in the default FP environment

Make it explicit that SNaN is not handled differently than
QNaN in the LLVM default floating-point environment.

Note that an IEEE-754-compliant model disallows transforms
like "X * 1.0 -> X". That is because math operations are
expected to convert SNaN to QNaN (set the signaling bit).

But LLVM has had those kinds of transforms from the beginning:
https://alive2.llvm.org/ce/z/igb55y

We should be IEEE-754-compliant under strict-FP (the logic is
implemented with a helper named canIgnoreSNaN()), but I don't
think there is any demand to do that with default optimization.

See issue #43070 for earlier draft/discussion about this change.

Differential Revision: https://reviews.llvm.org/D143074




More information about the All-commits mailing list