diff options
| author | Sanjay Patel <spatel@rotateright.com> | 2019-07-15 18:17:23 +0000 |
|---|---|---|
| committer | Sanjay Patel <spatel@rotateright.com> | 2019-07-15 18:17:23 +0000 |
| commit | eb99165b97b79c3ccc7b5ebcd445a98b4240e171 (patch) | |
| tree | bbe973153fccc1cd6af4e679242f17357166c594 /llvm/lib/DebugInfo/PDB/Native/TpiStream.cpp | |
| parent | 032e3c468fab3ffc033db219314c2151c6bda917 (diff) | |
| download | bcm5719-llvm-eb99165b97b79c3ccc7b5ebcd445a98b4240e171.tar.gz bcm5719-llvm-eb99165b97b79c3ccc7b5ebcd445a98b4240e171.zip | |
[x86] try to keep FP casted+truncated+extracted vector element out of GPRs
inttofp (trunc (extelt X, 0)) --> inttofp (extelt (bitcast X), 0)
We have pseudo-vectorization of scalar int to FP casts, so this tries to
make that more likely by replacing a truncate with a bitcast. I didn't see
any test diffs starting from 'uitofp', so I left that as a TODO. We can't
only match the shorter trunc+extract pattern because there's an opposing
transform somewhere, so we infinite loop. Waiting to try this during
lowering is another possibility.
A motivating case is shown in PR39975 and included in the test diffs here:
https://bugs.llvm.org/show_bug.cgi?id=39975
Differential Revision: https://reviews.llvm.org/D64710
llvm-svn: 366098
Diffstat (limited to 'llvm/lib/DebugInfo/PDB/Native/TpiStream.cpp')
0 files changed, 0 insertions, 0 deletions

