diff options
author | Sanjay Patel <spatel@rotateright.com> | 2014-09-21 15:19:15 +0000 |
---|---|---|
committer | Sanjay Patel <spatel@rotateright.com> | 2014-09-21 15:19:15 +0000 |
commit | b67bd262ea7b2f9b756a7f2e3b16f6aa91f941e8 (patch) | |
tree | 84f9bb10370b0cff1fd257baa2d2bf2c0a08a613 /clang-tools-extra/unittests/clang-tidy/LLVMModuleTest.cpp | |
parent | d649235fc3f96119d4d5ce89d91442836f863f04 (diff) | |
download | llvm-b67bd262ea7b2f9b756a7f2e3b16f6aa91f941e8.zip llvm-b67bd262ea7b2f9b756a7f2e3b16f6aa91f941e8.tar.gz llvm-b67bd262ea7b2f9b756a7f2e3b16f6aa91f941e8.tar.bz2 |
Refactor reciprocal square root estimate into target-independent function; NFC.
This is purely a plumbing patch. No functional changes intended.
The ultimate goal is to allow targets other than PowerPC (certainly X86 and Aarch64) to turn this:
z = y / sqrt(x)
into:
z = y * rsqrte(x)
using whatever HW magic they can use. See http://llvm.org/bugs/show_bug.cgi?id=20900 .
The first step is to add a target hook for RSQRTE, take the already target-independent code selfishly hoarded by PPC, and put it into DAGCombiner.
Next steps:
The code in DAGCombiner::BuildRSQRTE() should be refactored further; tests that exercise that logic need to be added.
Logic in PPCTargetLowering::BuildRSQRTE() should be hoisted into DAGCombiner.
X86 and AArch64 overrides for TargetLowering.BuildRSQRTE() should be added.
Differential Revision: http://reviews.llvm.org/D5425
llvm-svn: 218219
Diffstat (limited to 'clang-tools-extra/unittests/clang-tidy/LLVMModuleTest.cpp')
0 files changed, 0 insertions, 0 deletions