diff options
| author | Simon Pilgrim <llvm-dev@redking.me.uk> | 2015-05-01 08:20:04 +0000 |
|---|---|---|
| committer | Simon Pilgrim <llvm-dev@redking.me.uk> | 2015-05-01 08:20:04 +0000 |
| commit | 9fb06bca670840f1efacf26c81df79aa16cbf720 (patch) | |
| tree | 5eb67076d54d44634aac8829e73cad05a1f0d08f /llvm/lib/CodeGen/AtomicExpandPass.cpp | |
| parent | aa798340c3e43ba9f2e4f23324b50e4719fb497c (diff) | |
| download | bcm5719-llvm-9fb06bca670840f1efacf26c81df79aa16cbf720.tar.gz bcm5719-llvm-9fb06bca670840f1efacf26c81df79aa16cbf720.zip | |
[SelectionDAG] Unary vector constant folding integer legality fixes
This patch fixes issues with vector constant folding not correctly handling scalar input operands if they require implicit truncation - this was tested with llvm-stress as recommended by Patrik H Hagglund.
The patch ensures that integer input scalars from a build vector are correctly truncated before folding, and that constant integer scalar results are promoted to a legal type before inclusion in the new folded build vector.
I have added another crash test case and also a test for UINT_TO_FP / SINT_TO_FP using an non-truncated scalar input, which was failing before this patch.
Differential Revision: http://reviews.llvm.org/D9282
llvm-svn: 236308
Diffstat (limited to 'llvm/lib/CodeGen/AtomicExpandPass.cpp')
0 files changed, 0 insertions, 0 deletions

