diff options
author | Sanjay Patel <spatel@rotateright.com> | 2018-06-10 23:09:50 +0000 |
---|---|---|
committer | Sanjay Patel <spatel@rotateright.com> | 2018-06-10 23:09:50 +0000 |
commit | 3e5c70cc1d8e939d44d1662bd641179cb93810dc (patch) | |
tree | 594cbd60084feda6673a45f4061b65cc0243f510 /lldb/packages/Python/lldbsuite/test/python_api/default-constructor | |
parent | 860562c9158af80399c73075dfb03ba3ba87dc26 (diff) | |
download | bcm5719-llvm-3e5c70cc1d8e939d44d1662bd641179cb93810dc.tar.gz bcm5719-llvm-3e5c70cc1d8e939d44d1662bd641179cb93810dc.zip |
[DAGCombiner] match vector compare and select sizes with extload operand (PR37427)
This patch started off much more general and ambitious, but it's been a nightmare
seeing all the ways x86 vector codegen can go wrong.
So the code is still structured to allow extending easily, but it's currently
limited in several ways:
1. Only handle cases with an extending load.
2. Only handle cases with a zero constant compare.
3. Ignore setcc with vector bitmask (SetCCWidth != 1) - so AVX512 should be unaffected.
The motivating case from PR37427:
https://bugs.llvm.org/show_bug.cgi?id=37427
...is the 1st test, and that shows the expected win - we eliminated the unnecessary
intermediate cast.
There's a clear regression in the last test (sgt_zero_fp_select) because we longer
recognize a 'SHRUNKBLEND' opportunity. I think that general problem is also present
in sgt_zero, so I'll try to fix that in a follow-up. We need to match a sign-bit
setcc from a sign-extended operand and remove it.
Differential Revision: https://reviews.llvm.org/D47330
llvm-svn: 334378
Diffstat (limited to 'lldb/packages/Python/lldbsuite/test/python_api/default-constructor')
0 files changed, 0 insertions, 0 deletions