[PATCH] D20049: [X86][XOP] Support for VPERMIL2PD/VPERMIL2PS 2-input shuffle instructions

Simon Pilgrim via llvm-commits llvm-commits at lists.llvm.org
Sat May 7 08:53:17 PDT 2016


RKSimon created this revision.
RKSimon added reviewers: craig.topper, spatel, andreadb.
RKSimon added a subscriber: llvm-commits.
RKSimon set the repository for this revision to rL LLVM.

This patch begins adding support for lowering to the XOP VPERMIL2PD/VPERMIL2PS shuffle instructions - adding the X86ISD::VPERMIL2 opcode and cleaning up the usage.

Mask decoding/target shuffle support will be added in future patches - this patch has to do some initial cleanup as the internal llvm intrinsics were assuming the shuffle mask operand was the same type as the float/double input operands (I guess to simplify the intrinsic definitions in X86InstrXOP.td to a single value type). These needed changing to integer types - this matches the clang builtin and the AMD intrinsics definitions. As its just the llvm intrinsic ir I don't think I need to provide an upgrade path but can if anybody thinks it necessary.

Repository:
  rL LLVM

http://reviews.llvm.org/D20049

Files:
  include/llvm/IR/IntrinsicsX86.td
  lib/Target/X86/X86ISelLowering.cpp
  lib/Target/X86/X86ISelLowering.h
  lib/Target/X86/X86InstrFragmentsSIMD.td
  lib/Target/X86/X86InstrXOP.td
  lib/Target/X86/X86IntrinsicsInfo.h
  test/CodeGen/X86/stack-folding-xop.ll
  test/CodeGen/X86/vector-shuffle-combining-xop.ll
  test/CodeGen/X86/xop-intrinsics-x86_64.ll

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D20049.56499.patch
Type: text/x-patch
Size: 30435 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20160507/118fa2f6/attachment.bin>


More information about the llvm-commits mailing list