[PATCH] D62546: [FPEnv] Added a special UnrollVectorOp method to deal with the chain on StrictFP opcodes

Andrew J Wock via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Tue May 28 13:03:34 PDT 2019


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

This change creates UnrollVectorOp_StrictFP.  The purpose of this is to address a failure that consistently occurs when calling StrictFP functions on vectors whose number of elements is 3 + 2n on most platforms, such as PowerPC or SystemZ.  The old UnrollVectorOp method does not expect that the vector that it will unroll will have a chain, so it has an assert that prevents it from running if this is the case.  This new StrictFP version of the method deals with the chain while unrolling the vector.  With this new function in place during vector widending, llc can run vector-constrained-fp-intrinsics.ll for SystemZ successfully.


Repository:
  rL LLVM

https://reviews.llvm.org/D62546

Files:
  lib/CodeGen/SelectionDAG/LegalizeTypes.h
  lib/CodeGen/SelectionDAG/LegalizeVectorTypes.cpp
  test/CodeGen/SystemZ/vector-constrained-fp-intrinsics.ll

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D62546.201745.patch
Type: text/x-patch
Size: 168074 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20190528/98e92219/attachment-0001.bin>


More information about the llvm-commits mailing list