diff options
| author | Bill Schmidt <wschmidt@linux.vnet.ibm.com> | 2015-07-29 14:31:57 +0000 |
|---|---|---|
| committer | Bill Schmidt <wschmidt@linux.vnet.ibm.com> | 2015-07-29 14:31:57 +0000 |
| commit | 42ddd71120e445748a8d992e12297560590b3ca4 (patch) | |
| tree | c717d9c23359ab5809316b934ccad037c08e608f /llvm/tools/llvm-size/llvm-size.cpp | |
| parent | 085da7ecae9f00338f95bd60f38be5f3de58733a (diff) | |
| download | bcm5719-llvm-42ddd71120e445748a8d992e12297560590b3ca4.tar.gz bcm5719-llvm-42ddd71120e445748a8d992e12297560590b3ca4.zip | |
[PPC] Fix PR24216: Don't generate splat for misaligned shuffle mask
Given certain shuffle-vector masks, LLVM emits splat instructions
which splat the wrong bytes from the source register. The issue is
that the function PPC::isSplatShuffleMask() in PPCISelLowering.cpp
does not ensure that the splat pattern found is requesting bytes that
are aligned on an EltSize boundary. This patch detects this situation
as not a valid splat mask, resulting in a permute being generated
instead of a splat.
Patch and test case by Tyler Kenney, cleaned up a bit by me.
This is a simple bug fix that would be good to incorporate into 3.7.
llvm-svn: 243519
Diffstat (limited to 'llvm/tools/llvm-size/llvm-size.cpp')
0 files changed, 0 insertions, 0 deletions

