[PATCH] [ARM64]Fix a bug when lowing shuffle vector to EXT instruction

Hao Liu Hao.Liu at arm.com
Sun Apr 27 23:16:47 PDT 2014


Hi Tim,

Thanks for your suggestion on using APInt and std::find_if. It is very simple and easy to be understood. I've refactored the patch.

BTW, there is a minor issue for this line
    "Imm = ExpectedElt;"
It is only true when there is UNDEF in the beginning. If the mask starts from non-undef index, it should be
    "Imm = M[0]"
For example, "shuffle V0, V1, <6, 7, 0, 1>" (V0, V1 are vectors of 4 elements), Imm should be "6" not "2".

Thanks,
-Hao

http://reviews.llvm.org/D3500

Files:
  lib/Target/ARM64/ARM64ISelLowering.cpp
  test/CodeGen/ARM64/ext.ll
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D3500.8881.patch
Type: text/x-patch
Size: 4084 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20140428/19c47865/attachment.bin>


More information about the llvm-commits mailing list