diff options
author | Sanjay Patel <spatel@rotateright.com> | 2018-05-31 00:16:58 +0000 |
---|---|---|
committer | Sanjay Patel <spatel@rotateright.com> | 2018-05-31 00:16:58 +0000 |
commit | e5bc4417913a3e606d572a5d661106612d3a99a7 (patch) | |
tree | ccc5a2460f85e5f3868cbaa0858807f75ee27d38 /lldb/packages/Python/lldbsuite/test/python_api/target | |
parent | ceb595b04e88f6d0da922a9631bb3edf715480fc (diff) | |
download | bcm5719-llvm-e5bc4417913a3e606d572a5d661106612d3a99a7.tar.gz bcm5719-llvm-e5bc4417913a3e606d572a5d661106612d3a99a7.zip |
[InstCombine] don't change the size of a select if it would mismatch its condition operands' sizes
Don't always:
cast (select (cmp x, y), z, C) --> select (cmp x, y), (cast z), C'
This is something that came up as far back as D26556, and I lost track of it.
I suspect that this transform is part of the underlying problem that is
inspiring some of the recent proposals that seek to match larger patterns
that include a cast op. Even if that's not true, this transform causes
problems for codegen (particularly with vector types).
A transform to actively match the size of cmp and select operand sizes should
follow. This patch just removes the harmful canonicalization in the other
direction.
Differential Revision: https://reviews.llvm.org/D47163
llvm-svn: 333611
Diffstat (limited to 'lldb/packages/Python/lldbsuite/test/python_api/target')
0 files changed, 0 insertions, 0 deletions