[PATCH] D63271: [FPEnv] Lower STRICT_FP_EXTEND and STRICT_FP_ROUND nodes in preprocess phase of ISelLowering to mirror non-strict nodes on x86.

Andrew J Wock via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Thu Jun 13 07:43:07 PDT 2019


ajwock created this revision.
ajwock added reviewers: craig.topper, andrew.w.kaylor, cameron.mcinally, kpn.
Herald added a project: LLVM.
Herald added a subscriber: llvm-commits.

I recently discovered a bug on the x86 platform:  The fp80 type was not handled well by x86 for constrained floating point nodes, as their regular counterparts are replaced by extending loads and truncating stores during the preprocess phase.  Normally, platforms don't have this issue, as they don't typically attempt to perform such modifications during preprocessing, so strict_fp nodes will survive until they get mutated to normal nodes, which happens shortly after preprocessing on other platforms.  This modification lowers these nodes at the same phase while properly utilizing the chain.


Repository:
  rL LLVM

https://reviews.llvm.org/D63271

Files:
  lib/Target/X86/X86ISelDAGToDAG.cpp
  test/CodeGen/X86/constrained-fp80-trunc-ext.ll

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D63271.204535.patch
Type: text/x-patch
Size: 10697 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20190613/f60787de/attachment.bin>


More information about the llvm-commits mailing list