[PATCH] D12969: Don't raise inexact when lowering ceil, floor, round, trunc

Steve Canon via llvm-commits llvm-commits at lists.llvm.org
Fri Sep 18 09:39:19 PDT 2015


scanon created this revision.
scanon added a reviewer: t.p.northover.
scanon added a subscriber: llvm-commits.
Herald added a subscriber: aemerson.

The C standard has historically not specified whether or not these functions should raise the inexact flag.  Traditionally on Darwin, these functions *did* raise inexact, and the llvm lowerings followed that conventions.  n1778 (C bindings for IEEE-754 (2008)) clarifies that these functions should not set inexact.  This patch brings the lowerings for arm64 and x86 in line with the newly specified behavior.

http://reviews.llvm.org/D12969

Files:
  lib/Target/AArch64/AArch64ISelDAGToDAG.cpp
  lib/Target/AArch64/AArch64InstrInfo.td
  lib/Target/X86/X86InstrSSE.td
  test/CodeGen/AArch64/arm64-rounding.ll
  test/CodeGen/AArch64/round-conv.ll
  test/CodeGen/X86/avx-cvt.ll
  test/CodeGen/X86/floor-soft-float.ll
  test/CodeGen/X86/rounding-ops.ll
  test/CodeGen/X86/stack-folding-fp-avx1.ll
  test/CodeGen/X86/stack-folding-fp-sse42.ll

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D12969.35094.patch
Type: text/x-patch
Size: 39567 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20150918/5fca7076/attachment-0001.bin>


More information about the llvm-commits mailing list