summaryrefslogtreecommitdiffstats
path: root/llvm/lib/CodeGen/TargetRegisterInfo.cpp
diff options
context:
space:
mode:
authorElena Demikhovsky <elena.demikhovsky@intel.com>2016-07-06 09:01:20 +0000
committerElena Demikhovsky <elena.demikhovsky@intel.com>2016-07-06 09:01:20 +0000
commit5a4f2476fd960e85c100f939aac548d9f167fc7e (patch)
tree87054eb34bc1388d5d52d12e2cdc053e6dbb5891 /llvm/lib/CodeGen/TargetRegisterInfo.cpp
parente40530ea7b594d80decb6feca902f02cc9d620f6 (diff)
downloadbcm5719-llvm-5a4f2476fd960e85c100f939aac548d9f167fc7e.tar.gz
bcm5719-llvm-5a4f2476fd960e85c100f939aac548d9f167fc7e.zip
AVX-512: Optimization for patterns with i1 scalar type
The patch removes redundant kmov instructions (not all, we still have a lot of work here) and redundant "and" instructions after "setcc". I use "AssertZero" marker between X86ISD::SETCC node and "truncate" to eliminate extra "and $1" instruction. I also changed zext, aext and trunc patterns in the .td file. It allows to remove extra "kmov" instruictions. This patch fixes https://llvm.org/bugs/show_bug.cgi?id=28173. Fast ISEL mode is not supported correctly for AVX-512. ICMP/FCMP scalar instruction should return result in k-reg. It will be fixed in one of the next patches. I redirected handling of "cmp" to the DAG builder mode. (The code looks worse in one specific test case, but without this fix the new patch fails). Differential revision: http://reviews.llvm.org/D21956 llvm-svn: 274613
Diffstat (limited to 'llvm/lib/CodeGen/TargetRegisterInfo.cpp')
0 files changed, 0 insertions, 0 deletions
OpenPOWER on IntegriCloud