1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-11-22 10:42:39 +01:00

[Hexagon] Generate HVX code for vector construction and access

Support for:
  - build vector,
  - extract vector element, subvector,
  - insert vector element, subvector,
  - shuffle.

llvm-svn: 319901
This commit is contained in:
Krzysztof Parzyszek 2017-12-06 16:40:37 +00:00
parent 14f8c49596
commit eec0895eab
23 changed files with 8333 additions and 248 deletions

View File

@ -35,7 +35,9 @@ add_llvm_target(HexagonCodeGen
HexagonHazardRecognizer.cpp
HexagonInstrInfo.cpp
HexagonISelDAGToDAG.cpp
HexagonISelDAGToDAGHVX.cpp
HexagonISelLowering.cpp
HexagonISelLoweringHVX.cpp
HexagonLoopIdiomRecognition.cpp
HexagonMachineFunctionInfo.cpp
HexagonMachineScheduler.cpp

View File

@ -754,7 +754,6 @@ void HexagonDAGToDAGISel::SelectBitcast(SDNode *N) {
CurDAG->RemoveDeadNode(N);
}
void HexagonDAGToDAGISel::Select(SDNode *N) {
if (N->isMachineOpcode())
return N->setNodeId(-1); // Already selected.
@ -772,6 +771,13 @@ void HexagonDAGToDAGISel::Select(SDNode *N) {
case ISD::INTRINSIC_WO_CHAIN: return SelectIntrinsicWOChain(N);
}
if (HST->useHVXOps()) {
switch (N->getOpcode()) {
case ISD::VECTOR_SHUFFLE: return SelectHvxShuffle(N);
case HexagonISD::VROR: return SelectHvxRor(N);
}
}
SelectCode(N);
}

View File

@ -26,6 +26,7 @@ namespace llvm {
class MachineFunction;
class HexagonInstrInfo;
class HexagonRegisterInfo;
class HexagonTargetLowering;
class HexagonDAGToDAGISel : public SelectionDAGISel {
const HexagonSubtarget *HST;
@ -100,13 +101,25 @@ public:
void SelectConstant(SDNode *N);
void SelectConstantFP(SDNode *N);
void SelectBitcast(SDNode *N);
void SelectVectorShuffle(SDNode *N);
// Include the pieces autogenerated from the target description.
// Include the declarations autogenerated from the selection patterns.
#define GET_DAGISEL_DECL
#include "HexagonGenDAGISel.inc"
private:
// This is really only to get access to ReplaceNode (which is a protected
// member). Any other members used by HvxSelector can be moved around to
// make them accessible).
friend struct HvxSelector;
SDValue selectUndef(const SDLoc &dl, MVT ResTy) {
SDNode *U = CurDAG->getMachineNode(TargetOpcode::IMPLICIT_DEF, dl, ResTy);
return SDValue(U, 0);
}
void SelectHvxShuffle(SDNode *N);
void SelectHvxRor(SDNode *N);
bool keepsLowBits(const SDValue &Val, unsigned NumBits, SDValue &Src);
bool isOrEquivalentToAdd(const SDNode *N) const;
bool isAlignedMemNode(const MemSDNode *N) const;

File diff suppressed because it is too large Load Diff

View File

@ -129,6 +129,19 @@ namespace {
// Implement calling convention for Hexagon.
static const MVT LegalV64[] = {
MVT::v64i8, MVT::v32i16, MVT::v16i32, MVT::v8i64
};
static const MVT LegalW64[] = {
MVT::v128i8, MVT::v64i16, MVT::v32i32, MVT::v16i64
};
static const MVT LegalV128[] = {
MVT::v128i8, MVT::v64i16, MVT::v32i32, MVT::v16i64
};
static const MVT LegalW128[] = {
MVT::v256i8, MVT::v128i16, MVT::v64i32, MVT::v32i64
};
static bool
CC_Hexagon(unsigned ValNo, MVT ValVT,
MVT LocVT, CCValAssign::LocInfo LocInfo,
@ -1978,36 +1991,52 @@ HexagonTargetLowering::HexagonTargetLowering(const TargetMachine &TM,
setOperationAction(ISD::VECTOR_SHUFFLE, MVT::v4i16, Custom);
setOperationAction(ISD::VECTOR_SHUFFLE, MVT::v8i8, Custom);
auto setPromoteTo = [this] (unsigned Opc, MVT FromTy, MVT ToTy) {
setOperationAction(Opc, FromTy, Promote);
AddPromotedToType(Opc, FromTy, ToTy);
};
if (Subtarget.useHVXOps()) {
if (Subtarget.useHVX64BOps()) {
setOperationAction(ISD::CONCAT_VECTORS, MVT::v128i8, Custom);
setOperationAction(ISD::CONCAT_VECTORS, MVT::v64i16, Custom);
setOperationAction(ISD::CONCAT_VECTORS, MVT::v32i32, Custom);
setOperationAction(ISD::CONCAT_VECTORS, MVT::v16i64, Custom);
// We try to generate the vpack{e/o} instructions. If we fail
// we fall back upon ExpandOp.
setOperationAction(ISD::VECTOR_SHUFFLE, MVT::v64i8, Custom);
setOperationAction(ISD::VECTOR_SHUFFLE, MVT::v32i16, Custom);
setOperationAction(ISD::EXTRACT_SUBVECTOR, MVT::v64i8, Custom);
setOperationAction(ISD::EXTRACT_SUBVECTOR, MVT::v32i16, Custom);
setOperationAction(ISD::EXTRACT_SUBVECTOR, MVT::v16i32, Custom);
} else if (Subtarget.useHVX128BOps()) {
setOperationAction(ISD::CONCAT_VECTORS, MVT::v256i8, Custom);
setOperationAction(ISD::CONCAT_VECTORS, MVT::v128i16, Custom);
setOperationAction(ISD::CONCAT_VECTORS, MVT::v64i32, Custom);
setOperationAction(ISD::CONCAT_VECTORS, MVT::v32i64, Custom);
// We try to generate the vpack{e/o} instructions. If we fail
// we fall back upon ExpandOp.
setOperationAction(ISD::VECTOR_SHUFFLE, MVT::v128i8, Custom);
setOperationAction(ISD::VECTOR_SHUFFLE, MVT::v64i16, Custom);
setOperationAction(ISD::EXTRACT_SUBVECTOR, MVT::v4i32, Custom);
setOperationAction(ISD::EXTRACT_SUBVECTOR, MVT::v128i8, Custom);
setOperationAction(ISD::EXTRACT_SUBVECTOR, MVT::v64i16, Custom);
setOperationAction(ISD::EXTRACT_SUBVECTOR, MVT::v32i32, Custom);
} else {
llvm_unreachable("Unrecognized HVX mode");
bool Use64b = Subtarget.useHVX64BOps();
ArrayRef<MVT> LegalV = Use64b ? LegalV64 : LegalV128;
ArrayRef<MVT> LegalW = Use64b ? LegalW64 : LegalW128;
MVT ByteV = Use64b ? MVT::v64i8 : MVT::v128i8;
MVT ByteW = Use64b ? MVT::v128i8 : MVT::v256i8;
setOperationAction(ISD::VECTOR_SHUFFLE, ByteV, Legal);
setOperationAction(ISD::VECTOR_SHUFFLE, ByteW, Legal);
setOperationAction(ISD::CONCAT_VECTORS, ByteW, Legal);
setOperationAction(ISD::OR, ByteV, Legal);
for (MVT T : LegalV) {
setIndexedLoadAction(ISD::POST_INC, T, Legal);
setIndexedStoreAction(ISD::POST_INC, T, Legal);
setOperationAction(ISD::BUILD_VECTOR, T, Custom);
setOperationAction(ISD::INSERT_SUBVECTOR, T, Custom);
setOperationAction(ISD::INSERT_VECTOR_ELT, T, Custom);
setOperationAction(ISD::EXTRACT_SUBVECTOR, T, Custom);
setOperationAction(ISD::EXTRACT_VECTOR_ELT, T, Custom);
}
for (MVT T : LegalV) {
if (T == ByteV)
continue;
// Promote all shuffles and concats to operate on vectors of bytes.
setPromoteTo(ISD::VECTOR_SHUFFLE, T, ByteV);
setPromoteTo(ISD::CONCAT_VECTORS, T, ByteV);
setPromoteTo(ISD::OR, T, ByteV);
}
for (MVT T : LegalW) {
if (T == ByteW)
continue;
// Promote all shuffles and concats to operate on vectors of bytes.
setPromoteTo(ISD::VECTOR_SHUFFLE, T, ByteW);
setPromoteTo(ISD::CONCAT_VECTORS, T, ByteW);
}
}
// Subtarget-specific operation actions.
//
if (Subtarget.hasV5TOps()) {
@ -2069,20 +2098,6 @@ HexagonTargetLowering::HexagonTargetLowering(const TargetMachine &TM,
setIndexedStoreAction(ISD::POST_INC, VT, Legal);
}
if (Subtarget.useHVX64BOps()) {
for (MVT VT : {MVT::v64i8, MVT::v32i16, MVT::v16i32, MVT::v8i64,
MVT::v128i8, MVT::v64i16, MVT::v32i32, MVT::v16i64}) {
setIndexedLoadAction(ISD::POST_INC, VT, Legal);
setIndexedStoreAction(ISD::POST_INC, VT, Legal);
}
} else if (Subtarget.useHVX128BOps()) {
for (MVT VT : {MVT::v128i8, MVT::v64i16, MVT::v32i32, MVT::v16i64,
MVT::v256i8, MVT::v128i16, MVT::v64i32, MVT::v32i64}) {
setIndexedLoadAction(ISD::POST_INC, VT, Legal);
setIndexedStoreAction(ISD::POST_INC, VT, Legal);
}
}
computeRegisterProperties(&HRI);
//
@ -2225,6 +2240,9 @@ const char* HexagonTargetLowering::getTargetNodeName(unsigned Opcode) const {
case HexagonISD::VASR: return "HexagonISD::VASR";
case HexagonISD::VLSR: return "HexagonISD::VLSR";
case HexagonISD::VSPLAT: return "HexagonISD::VSPLAT";
case HexagonISD::VEXTRACTW: return "HexagonISD::VEXTRACTW";
case HexagonISD::VINSERTW0: return "HexagonISD::VINSERTW0";
case HexagonISD::VROR: return "HexagonISD::VROR";
case HexagonISD::READCYCLE: return "HexagonISD::READCYCLE";
case HexagonISD::OP_END: break;
}
@ -2252,43 +2270,11 @@ bool HexagonTargetLowering::isFMAFasterThanFMulAndFAdd(EVT VT) const {
// Should we expand the build vector with shuffles?
bool HexagonTargetLowering::shouldExpandBuildVectorWithShuffles(EVT VT,
unsigned DefinedValues) const {
// Hexagon vector shuffle operates on element sizes of bytes or halfwords
EVT EltVT = VT.getVectorElementType();
int EltBits = EltVT.getSizeInBits();
if ((EltBits != 8) && (EltBits != 16))
return false;
return TargetLowering::shouldExpandBuildVectorWithShuffles(VT, DefinedValues);
}
static StridedLoadKind isStridedLoad(const ArrayRef<int> &Mask) {
int even_start = -2;
int odd_start = -1;
size_t mask_len = Mask.size();
for (auto idx : Mask) {
if ((idx - even_start) == 2)
even_start = idx;
else
break;
}
if (even_start == (int)(mask_len * 2) - 2)
return StridedLoadKind::Even;
for (auto idx : Mask) {
if ((idx - odd_start) == 2)
odd_start = idx;
else
break;
}
if (odd_start == (int)(mask_len * 2) - 1)
return StridedLoadKind::Odd;
return StridedLoadKind::NoPattern;
return false;
}
bool HexagonTargetLowering::isShuffleMaskLegal(ArrayRef<int> Mask,
EVT VT) const {
if (Subtarget.useHVXOps())
return isStridedLoad(Mask) != StridedLoadKind::NoPattern;
return true;
}
@ -2302,7 +2288,6 @@ HexagonTargetLowering::LowerVECTOR_SHUFFLE(SDValue Op, SelectionDAG &DAG)
SDValue V2 = Op.getOperand(1);
SDLoc dl(Op);
EVT VT = Op.getValueType();
bool UseHVX = Subtarget.useHVXOps();
if (V2.isUndef())
V2 = V1;
@ -2334,27 +2319,6 @@ HexagonTargetLowering::LowerVECTOR_SHUFFLE(SDValue Op, SelectionDAG &DAG)
DAG.getConstant(Lane, dl, MVT::i32));
}
if (UseHVX) {
ArrayRef<int> Mask = SVN->getMask();
size_t MaskLen = Mask.size();
unsigned SizeInBits = VT.getScalarSizeInBits() * MaskLen;
if ((Subtarget.useHVX64BOps() && SizeInBits == 64 * 8) ||
(Subtarget.useHVX128BOps() && SizeInBits == 128 * 8)) {
StridedLoadKind Pattern = isStridedLoad(Mask);
if (Pattern == StridedLoadKind::NoPattern)
return SDValue();
unsigned Opc = Pattern == StridedLoadKind::Even ? HexagonISD::VPACKE
: HexagonISD::VPACKO;
return DAG.getNode(Opc, dl, VT, {Op.getOperand(1), Op.getOperand(0)});
}
// We used to assert in the "else" part here, but that is bad for Halide
// Halide creates intermediate double registers by interleaving two
// concatenated vector registers. The interleaving requires vector_shuffle
// nodes and we shouldn't barf on a double register result of a
// vector_shuffle because it is most likely an intermediate result.
}
// FIXME: We need to support more general vector shuffles. See
// below the comment from the ARM backend that deals in the general
// case with the vector shuffles. For now, let expand handle these.
@ -2445,7 +2409,7 @@ HexagonTargetLowering::buildVector32(ArrayRef<SDValue> Elem, const SDLoc &dl,
SmallVector<ConstantSDNode*,4> Consts;
bool AllConst = true;
for (SDValue V : Elem) {
if (V.getOpcode() == ISD::UNDEF)
if (isUndef(V))
V = DAG.getConstant(0, dl, ElemTy);
auto *C = dyn_cast<ConstantSDNode>(V.getNode());
Consts.push_back(C);
@ -2454,7 +2418,7 @@ HexagonTargetLowering::buildVector32(ArrayRef<SDValue> Elem, const SDLoc &dl,
unsigned First, Num = Elem.size();
for (First = 0; First != Num; ++First)
if (Elem[First].getOpcode() != ISD::UNDEF)
if (!isUndef(Elem[First]))
break;
if (First == Num)
return DAG.getUNDEF(VecTy);
@ -2466,9 +2430,9 @@ HexagonTargetLowering::buildVector32(ArrayRef<SDValue> Elem, const SDLoc &dl,
Consts[1]->getZExtValue() << 16;
return DAG.getBitcast(MVT::v2i16, DAG.getConstant(V, dl, MVT::i32));
}
SDNode *N = DAG.getMachineNode(Hexagon::A2_combine_ll, dl, MVT::i32,
{ Elem[1], Elem[0] });
return DAG.getBitcast(MVT::v2i16, SDValue(N,0));
SDValue N = getNode(Hexagon::A2_combine_ll, dl, MVT::i32,
{Elem[1], Elem[0]}, DAG);
return DAG.getBitcast(MVT::v2i16, N);
}
// First try generating a constant.
@ -2486,7 +2450,7 @@ HexagonTargetLowering::buildVector32(ArrayRef<SDValue> Elem, const SDLoc &dl,
for (unsigned i = 0; i != Num; ++i) {
if (i == First)
continue;
if (Elem[i] == Elem[First] || Elem[i].getOpcode() == ISD::UNDEF)
if (Elem[i] == Elem[First] || isUndef(Elem[i]))
continue;
IsSplat = false;
break;
@ -2507,9 +2471,9 @@ HexagonTargetLowering::buildVector32(ArrayRef<SDValue> Elem, const SDLoc &dl,
SDValue V5 = DAG.getNode(ISD::SHL, dl, MVT::i32, {V3, S8});
SDValue V6 = DAG.getNode(ISD::OR, dl, MVT::i32, {V0, V4});
SDValue V7 = DAG.getNode(ISD::OR, dl, MVT::i32, {V2, V5});
SDNode *T0 = DAG.getMachineNode(Hexagon::A2_combine_ll, dl, MVT::i32,
{V7, V6});
return DAG.getBitcast(MVT::v4i8, SDValue(T0,0));
SDValue T0 = getNode(Hexagon::A2_combine_ll, dl, MVT::i32, {V7, V6}, DAG);
return DAG.getBitcast(MVT::v4i8, T0);
}
SDValue
@ -2521,7 +2485,7 @@ HexagonTargetLowering::buildVector64(ArrayRef<SDValue> Elem, const SDLoc &dl,
SmallVector<ConstantSDNode*,8> Consts;
bool AllConst = true;
for (SDValue V : Elem) {
if (V.getOpcode() == ISD::UNDEF)
if (isUndef(V))
V = DAG.getConstant(0, dl, ElemTy);
auto *C = dyn_cast<ConstantSDNode>(V.getNode());
Consts.push_back(C);
@ -2530,7 +2494,7 @@ HexagonTargetLowering::buildVector64(ArrayRef<SDValue> Elem, const SDLoc &dl,
unsigned First, Num = Elem.size();
for (First = 0; First != Num; ++First)
if (Elem[First].getOpcode() != ISD::UNDEF)
if (!isUndef(Elem[First]))
break;
if (First == Num)
return DAG.getUNDEF(VecTy);
@ -2541,7 +2505,7 @@ HexagonTargetLowering::buildVector64(ArrayRef<SDValue> Elem, const SDLoc &dl,
for (unsigned i = 0; i != Num; ++i) {
if (i == First)
continue;
if (Elem[i] == Elem[First] || Elem[i].getOpcode() == ISD::UNDEF)
if (Elem[i] == Elem[First] || isUndef(Elem[i]))
continue;
IsSplat = false;
break;
@ -2570,12 +2534,7 @@ HexagonTargetLowering::buildVector64(ArrayRef<SDValue> Elem, const SDLoc &dl,
SDValue H = (ElemTy == MVT::i32)
? Elem[1]
: buildVector32({Elem.data()+Num/2, Num/2}, dl, HalfTy, DAG);
unsigned Id = Hexagon::DoubleRegsRegClassID;
SDNode *N = DAG.getMachineNode(TargetOpcode::REG_SEQUENCE, dl, VecTy,
{ DAG.getTargetConstant(Id, dl, MVT::i32),
L, DAG.getTargetConstant(Hexagon::isub_lo, dl, MVT::i32),
H, DAG.getTargetConstant(Hexagon::isub_hi, dl, MVT::i32) });
return SDValue(N, 0);
return DAG.getNode(HexagonISD::COMBINE, dl, VecTy, {H, L});
}
SDValue
@ -2675,120 +2634,33 @@ HexagonTargetLowering::insertVector(SDValue VecV, SDValue ValV, SDValue IdxV,
SDValue
HexagonTargetLowering::LowerBUILD_VECTOR(SDValue Op, SelectionDAG &DAG) const {
MVT VT = Op.getValueType().getSimpleVT();
unsigned BW = VT.getSizeInBits();
MVT VecTy = ty(Op);
unsigned BW = VecTy.getSizeInBits();
if (BW == 32 || BW == 64) {
SmallVector<SDValue,8> Ops;
for (unsigned i = 0, e = Op.getNumOperands(); i != e; ++i)
Ops.push_back(Op.getOperand(i));
if (BW == 32)
return buildVector32(Ops, SDLoc(Op), VT, DAG);
return buildVector64(Ops, SDLoc(Op), VT, DAG);
return buildVector32(Ops, SDLoc(Op), VecTy, DAG);
return buildVector64(Ops, SDLoc(Op), VecTy, DAG);
}
if (Subtarget.useHVXOps() && Subtarget.isHVXVectorType(VecTy))
return LowerHvxBuildVector(Op, DAG);
return SDValue();
}
SDValue
HexagonTargetLowering::LowerCONCAT_VECTORS(SDValue Op,
SelectionDAG &DAG) const {
SDLoc dl(Op);
bool UseHVX = Subtarget.useHVXOps();
EVT VT = Op.getValueType();
unsigned NElts = Op.getNumOperands();
SDValue Vec0 = Op.getOperand(0);
EVT VecVT = Vec0.getValueType();
unsigned Width = VecVT.getSizeInBits();
MVT VecTy = ty(Op);
assert(!Subtarget.useHVXOps() || !Subtarget.isHVXVectorType(VecTy));
if (NElts == 2) {
MVT ST = VecVT.getSimpleVT();
// We are trying to concat two v2i16 to a single v4i16, or two v4i8
// into a single v8i8.
if (ST == MVT::v2i16 || ST == MVT::v4i8)
return DAG.getNode(HexagonISD::COMBINE, dl, VT, Op.getOperand(1), Vec0);
if (UseHVX) {
assert((Width == 64 * 8 && Subtarget.useHVX64BOps()) ||
(Width == 128 * 8 && Subtarget.useHVX128BOps()));
SDValue Vec1 = Op.getOperand(1);
MVT OpTy = Subtarget.useHVX64BOps() ? MVT::v16i32 : MVT::v32i32;
MVT ReTy = Subtarget.useHVX64BOps() ? MVT::v32i32 : MVT::v64i32;
SDValue B0 = DAG.getNode(ISD::BITCAST, dl, OpTy, Vec0);
SDValue B1 = DAG.getNode(ISD::BITCAST, dl, OpTy, Vec1);
SDValue VC = DAG.getNode(HexagonISD::VCOMBINE, dl, ReTy, B1, B0);
return DAG.getNode(ISD::BITCAST, dl, VT, VC);
}
}
if (VT.getSizeInBits() != 32 && VT.getSizeInBits() != 64)
return SDValue();
SDValue C0 = DAG.getConstant(0, dl, MVT::i64);
SDValue C32 = DAG.getConstant(32, dl, MVT::i64);
SDValue W = DAG.getConstant(Width, dl, MVT::i64);
// Create the "width" part of the argument to insert_rp/insertp_rp.
SDValue S = DAG.getNode(ISD::SHL, dl, MVT::i64, W, C32);
SDValue V = C0;
for (unsigned i = 0, e = NElts; i != e; ++i) {
unsigned N = NElts-i-1;
SDValue OpN = Op.getOperand(N);
if (VT.getSizeInBits() == 64 && OpN.getValueSizeInBits() == 32) {
SDValue C = DAG.getConstant(0, dl, MVT::i32);
OpN = DAG.getNode(HexagonISD::COMBINE, dl, VT, C, OpN);
}
SDValue Idx = DAG.getConstant(N, dl, MVT::i64);
SDValue Offset = DAG.getNode(ISD::MUL, dl, MVT::i64, Idx, W);
SDValue Or = DAG.getNode(ISD::OR, dl, MVT::i64, S, Offset);
if (VT.getSizeInBits() == 32)
V = DAG.getNode(HexagonISD::INSERTRP, dl, MVT::i32, {V, OpN, Or});
else if (VT.getSizeInBits() == 64)
V = DAG.getNode(HexagonISD::INSERTRP, dl, MVT::i64, {V, OpN, Or});
else
return SDValue();
}
return DAG.getNode(ISD::BITCAST, dl, VT, V);
}
SDValue
HexagonTargetLowering::LowerEXTRACT_SUBVECTOR_HVX(SDValue Op,
SelectionDAG &DAG) const {
EVT VT = Op.getOperand(0).getValueType();
SDLoc dl(Op);
bool UseHVX = Subtarget.useHVXOps();
bool UseHVX64B = Subtarget.useHVX64BOps();
// Just in case...
if (!VT.isVector() || !UseHVX)
return SDValue();
EVT ResVT = Op.getValueType();
unsigned ResSize = ResVT.getSizeInBits();
unsigned VectorSizeInBits = UseHVX64B ? (64 * 8) : (128 * 8);
unsigned OpSize = VT.getSizeInBits();
// We deal only with cases where the result is the vector size
// and the vector operand is a double register.
if (!(ResVT.isByteSized() && ResSize == VectorSizeInBits) ||
!(VT.isByteSized() && OpSize == 2 * VectorSizeInBits))
return SDValue();
ConstantSDNode *Cst = dyn_cast<ConstantSDNode>(Op.getOperand(1));
if (!Cst)
return SDValue();
unsigned Val = Cst->getZExtValue();
// These two will get lowered to an appropriate EXTRACT_SUBREG in ISel.
if (Val == 0) {
SDValue Vec = Op.getOperand(0);
return DAG.getTargetExtractSubreg(Hexagon::vsub_lo, dl, ResVT, Vec);
}
if (ResVT.getVectorNumElements() == Val) {
SDValue Vec = Op.getOperand(0);
return DAG.getTargetExtractSubreg(Hexagon::vsub_hi, dl, ResVT, Vec);
if (VecTy.getSizeInBits() == 64) {
assert(Op.getNumOperands() == 2);
return DAG.getNode(HexagonISD::COMBINE, SDLoc(Op), VecTy, Op.getOperand(1),
Op.getOperand(0));
}
return SDValue();
@ -2798,6 +2670,10 @@ SDValue
HexagonTargetLowering::LowerEXTRACT_VECTOR_ELT(SDValue Op,
SelectionDAG &DAG) const {
SDValue Vec = Op.getOperand(0);
MVT VecTy = ty(Vec);
if (Subtarget.useHVXOps() && Subtarget.isHVXVectorType(VecTy))
return LowerHvxExtractElement(Op, DAG);
MVT ElemTy = ty(Vec).getVectorElementType();
return extractVector(Vec, Op.getOperand(1), SDLoc(Op), ElemTy, ty(Op), DAG);
}
@ -2808,7 +2684,7 @@ HexagonTargetLowering::LowerEXTRACT_SUBVECTOR(SDValue Op,
SDValue Vec = Op.getOperand(0);
MVT VecTy = ty(Vec);
if (Subtarget.useHVXOps() && Subtarget.isHVXVectorType(VecTy))
return LowerEXTRACT_SUBVECTOR_HVX(Op, DAG);
return LowerHvxExtractSubvector(Op, DAG);
return extractVector(Vec, Op.getOperand(1), SDLoc(Op), ty(Op), ty(Op), DAG);
}
@ -2817,6 +2693,9 @@ SDValue
HexagonTargetLowering::LowerINSERT_VECTOR_ELT(SDValue Op,
SelectionDAG &DAG) const {
MVT VecTy = ty(Op);
if (Subtarget.useHVXOps() && Subtarget.isHVXVectorType(VecTy))
return LowerHvxInsertElement(Op, DAG);
return insertVector(Op.getOperand(0), Op.getOperand(1), Op.getOperand(2),
SDLoc(Op), VecTy.getVectorElementType(), DAG);
}
@ -2824,6 +2703,9 @@ HexagonTargetLowering::LowerINSERT_VECTOR_ELT(SDValue Op,
SDValue
HexagonTargetLowering::LowerINSERT_SUBVECTOR(SDValue Op,
SelectionDAG &DAG) const {
if (Subtarget.useHVXOps() && Subtarget.isHVXVectorType(ty(Op)))
return LowerHvxInsertSubvector(Op, DAG);
SDValue ValV = Op.getOperand(1);
return insertVector(Op.getOperand(0), ValV, Op.getOperand(2),
SDLoc(Op), ty(ValV), DAG);
@ -2911,6 +2793,7 @@ HexagonTargetLowering::LowerOperation(SDValue Op, SelectionDAG &DAG) const {
case ISD::PREFETCH: return LowerPREFETCH(Op, DAG);
case ISD::READCYCLECOUNTER: return LowerREADCYCLECOUNTER(Op, DAG);
}
return SDValue();
}
/// Returns relocation base for the given PIC jumptable.

View File

@ -63,6 +63,9 @@ namespace HexagonISD {
VCOMBINE,
VPACKE,
VPACKO,
VEXTRACTW,
VINSERTW0,
VROR,
TC_RETURN,
EH_RETURN,
DCFETCH,
@ -88,6 +91,8 @@ namespace HexagonISD {
explicit HexagonTargetLowering(const TargetMachine &TM,
const HexagonSubtarget &ST);
bool isHVXVectorType(MVT Ty) const;
/// IsEligibleForTailCallOptimization - Check whether the call is eligible
/// for tail call optimization. Targets which want to do tail call
/// optimization should implement this function.
@ -121,9 +126,8 @@ namespace HexagonISD {
SDValue LowerCONCAT_VECTORS(SDValue Op, SelectionDAG &DAG) const;
SDValue LowerEXTRACT_VECTOR_ELT(SDValue Op, SelectionDAG &DAG) const;
SDValue LowerEXTRACT_SUBVECTOR(SDValue Op, SelectionDAG &DAG) const;
SDValue LowerEXTRACT_SUBVECTOR_HVX(SDValue Op, SelectionDAG &DAG) const;
SDValue LowerINSERT_SUBVECTOR(SDValue Op, SelectionDAG &DAG) const;
SDValue LowerINSERT_VECTOR_ELT(SDValue Op, SelectionDAG &DAG) const;
SDValue LowerINSERT_SUBVECTOR(SDValue Op, SelectionDAG &DAG) const;
SDValue LowerVECTOR_SHUFFLE(SDValue Op, SelectionDAG &DAG) const;
SDValue LowerVECTOR_SHIFT(SDValue Op, SelectionDAG &DAG) const;
@ -281,7 +285,24 @@ namespace HexagonISD {
return Ty;
return MVT::getIntegerVT(Ty.getSizeInBits());
}
MVT tyVector(MVT Ty, MVT ElemTy) const {
if (Ty.isVector() && Ty.getVectorElementType() == ElemTy)
return Ty;
unsigned TyWidth = Ty.getSizeInBits(), ElemWidth = ElemTy.getSizeInBits();
assert((TyWidth % ElemWidth) == 0);
return MVT::getVectorVT(ElemTy, TyWidth/ElemWidth);
}
bool isUndef(SDValue Op) const {
if (Op.isMachineOpcode())
return Op.getMachineOpcode() == TargetOpcode::IMPLICIT_DEF;
return Op.getOpcode() == ISD::UNDEF;
}
SDValue getNode(unsigned MachineOpc, const SDLoc &dl, MVT Ty,
ArrayRef<SDValue> Ops, SelectionDAG &DAG) const {
SDNode *N = DAG.getMachineNode(MachineOpc, dl, Ty, Ops);
return SDValue(N, 0);
}
SDValue buildVector32(ArrayRef<SDValue> Elem, const SDLoc &dl, MVT VecTy,
SelectionDAG &DAG) const;
SDValue buildVector64(ArrayRef<SDValue> Elem, const SDLoc &dl, MVT VecTy,
@ -291,6 +312,38 @@ namespace HexagonISD {
SDValue insertVector(SDValue VecV, SDValue ValV, SDValue IdxV,
const SDLoc &dl, MVT ValTy, SelectionDAG &DAG) const;
using VectorPair = std::pair<SDValue, SDValue>;
using TypePair = std::pair<MVT, MVT>;
SDValue getInt(unsigned IntId, MVT ResTy, ArrayRef<SDValue> Ops,
const SDLoc &dl, SelectionDAG &DAG) const;
TypePair ty(const VectorPair &Ops) const {
return { Ops.first.getValueType().getSimpleVT(),
Ops.second.getValueType().getSimpleVT() };
}
MVT typeJoin(const TypePair &Tys) const;
TypePair typeSplit(MVT Ty) const;
MVT typeCastElem(MVT VecTy, MVT ElemTy) const;
MVT typeExtElem(MVT VecTy, unsigned Factor) const;
MVT typeTruncElem(MVT VecTy, unsigned Factor) const;
SDValue opJoin(const VectorPair &Ops, const SDLoc &dl,
SelectionDAG &DAG) const;
VectorPair opSplit(SDValue Vec, const SDLoc &dl, SelectionDAG &DAG) const;
SDValue opCastElem(SDValue Vec, MVT ElemTy, SelectionDAG &DAG) const;
SDValue convertToByteIndex(SDValue ElemIdx, MVT ElemTy,
SelectionDAG &DAG) const;
SDValue getIndexInWord32(SDValue Idx, MVT ElemTy, SelectionDAG &DAG) const;
SDValue LowerHvxBuildVector(SDValue Op, SelectionDAG &DAG) const;
SDValue LowerHvxExtractElement(SDValue Op, SelectionDAG &DAG) const;
SDValue LowerHvxInsertElement(SDValue Op, SelectionDAG &DAG) const;
SDValue LowerHvxExtractSubvector(SDValue Op, SelectionDAG &DAG) const;
SDValue LowerHvxInsertSubvector(SDValue Op, SelectionDAG &DAG) const;
std::pair<const TargetRegisterClass*, uint8_t>
findRepresentativeClass(const TargetRegisterInfo *TRI, MVT VT)
const override;

View File

@ -0,0 +1,299 @@
//===-- HexagonISelLoweringHVX.cpp --- Lowering HVX operations ------------===//
//
// The LLVM Compiler Infrastructure
//
// This file is distributed under the University of Illinois Open Source
// License. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
#include "HexagonISelLowering.h"
#include "HexagonRegisterInfo.h"
#include "HexagonSubtarget.h"
using namespace llvm;
SDValue
HexagonTargetLowering::getInt(unsigned IntId, MVT ResTy, ArrayRef<SDValue> Ops,
const SDLoc &dl, SelectionDAG &DAG) const {
SmallVector<SDValue,4> IntOps;
IntOps.push_back(DAG.getConstant(IntId, dl, MVT::i32));
for (const SDValue &Op : Ops)
IntOps.push_back(Op);
return DAG.getNode(ISD::INTRINSIC_WO_CHAIN, dl, ResTy, IntOps);
}
MVT
HexagonTargetLowering::typeJoin(const TypePair &Tys) const {
assert(Tys.first.getVectorElementType() == Tys.second.getVectorElementType());
MVT ElemTy = Tys.first.getVectorElementType();
return MVT::getVectorVT(ElemTy, Tys.first.getVectorNumElements() +
Tys.second.getVectorNumElements());
}
HexagonTargetLowering::TypePair
HexagonTargetLowering::typeSplit(MVT VecTy) const {
assert(VecTy.isVector());
unsigned NumElem = VecTy.getVectorNumElements();
assert((NumElem % 2) == 0 && "Expecting even-sized vector type");
MVT HalfTy = MVT::getVectorVT(VecTy.getVectorElementType(), NumElem/2);
return { HalfTy, HalfTy };
}
MVT
HexagonTargetLowering::typeExtElem(MVT VecTy, unsigned Factor) const {
MVT ElemTy = VecTy.getVectorElementType();
MVT NewElemTy = MVT::getIntegerVT(ElemTy.getSizeInBits() * Factor);
return MVT::getVectorVT(NewElemTy, VecTy.getVectorNumElements());
}
MVT
HexagonTargetLowering::typeTruncElem(MVT VecTy, unsigned Factor) const {
MVT ElemTy = VecTy.getVectorElementType();
MVT NewElemTy = MVT::getIntegerVT(ElemTy.getSizeInBits() / Factor);
return MVT::getVectorVT(NewElemTy, VecTy.getVectorNumElements());
}
SDValue
HexagonTargetLowering::opCastElem(SDValue Vec, MVT ElemTy,
SelectionDAG &DAG) const {
if (ty(Vec).getVectorElementType() == ElemTy)
return Vec;
MVT CastTy = tyVector(Vec.getValueType().getSimpleVT(), ElemTy);
return DAG.getBitcast(CastTy, Vec);
}
SDValue
HexagonTargetLowering::opJoin(const VectorPair &Ops, const SDLoc &dl,
SelectionDAG &DAG) const {
return DAG.getNode(ISD::CONCAT_VECTORS, dl, typeJoin(ty(Ops)),
Ops.second, Ops.first);
}
HexagonTargetLowering::VectorPair
HexagonTargetLowering::opSplit(SDValue Vec, const SDLoc &dl,
SelectionDAG &DAG) const {
TypePair Tys = typeSplit(ty(Vec));
return DAG.SplitVector(Vec, dl, Tys.first, Tys.second);
}
SDValue
HexagonTargetLowering::convertToByteIndex(SDValue ElemIdx, MVT ElemTy,
SelectionDAG &DAG) const {
if (ElemIdx.getValueType().getSimpleVT() != MVT::i32)
ElemIdx = DAG.getBitcast(MVT::i32, ElemIdx);
unsigned ElemWidth = ElemTy.getSizeInBits();
if (ElemWidth == 8)
return ElemIdx;
unsigned L = Log2_32(ElemWidth/8);
const SDLoc &dl(ElemIdx);
return DAG.getNode(ISD::SHL, dl, MVT::i32,
{ElemIdx, DAG.getConstant(L, dl, MVT::i32)});
}
SDValue
HexagonTargetLowering::getIndexInWord32(SDValue Idx, MVT ElemTy,
SelectionDAG &DAG) const {
unsigned ElemWidth = ElemTy.getSizeInBits();
assert(ElemWidth >= 8 && ElemWidth <= 32);
if (ElemWidth == 32)
return Idx;
if (ty(Idx) != MVT::i32)
Idx = DAG.getBitcast(MVT::i32, Idx);
const SDLoc &dl(Idx);
SDValue Mask = DAG.getConstant(32/ElemWidth - 1, dl, MVT::i32);
SDValue SubIdx = DAG.getNode(ISD::AND, dl, MVT::i32, {Idx, Mask});
return SubIdx;
}
SDValue
HexagonTargetLowering::LowerHvxBuildVector(SDValue Op, SelectionDAG &DAG)
const {
const SDLoc &dl(Op);
BuildVectorSDNode *BN = cast<BuildVectorSDNode>(Op.getNode());
bool IsConst = BN->isConstant();
MachineFunction &MF = DAG.getMachineFunction();
MVT VecTy = ty(Op);
if (IsConst) {
SmallVector<Constant*, 128> Elems;
for (SDValue V : BN->op_values()) {
if (auto *C = dyn_cast<ConstantSDNode>(V.getNode()))
Elems.push_back(const_cast<ConstantInt*>(C->getConstantIntValue()));
}
Constant *CV = ConstantVector::get(Elems);
unsigned Align = VecTy.getSizeInBits() / 8;
SDValue CP = LowerConstantPool(DAG.getConstantPool(CV, VecTy, Align), DAG);
return DAG.getLoad(VecTy, dl, DAG.getEntryNode(), CP,
MachinePointerInfo::getConstantPool(MF), Align);
}
unsigned NumOps = Op.getNumOperands();
unsigned HwLen = Subtarget.getVectorLength();
unsigned ElemSize = VecTy.getVectorElementType().getSizeInBits() / 8;
assert(ElemSize*NumOps == HwLen);
SmallVector<SDValue,32> Words;
SmallVector<SDValue,32> Ops;
for (unsigned i = 0; i != NumOps; ++i)
Ops.push_back(Op.getOperand(i));
if (VecTy.getVectorElementType() != MVT::i32) {
assert(ElemSize < 4 && "vNi64 should have been promoted to vNi32");
assert((ElemSize == 1 || ElemSize == 2) && "Invalid element size");
unsigned OpsPerWord = (ElemSize == 1) ? 4 : 2;
MVT PartVT = MVT::getVectorVT(VecTy.getVectorElementType(), OpsPerWord);
for (unsigned i = 0; i != NumOps; i += OpsPerWord) {
SDValue W = buildVector32({&Ops[i], OpsPerWord}, dl, PartVT, DAG);
Words.push_back(DAG.getBitcast(MVT::i32, W));
}
} else {
Words.assign(Ops.begin(), Ops.end());
}
// Construct two halves in parallel, then or them together.
assert(4*Words.size() == Subtarget.getVectorLength());
SDValue HalfV0 = getNode(Hexagon::V6_vd0, dl, VecTy, {}, DAG);
SDValue HalfV1 = getNode(Hexagon::V6_vd0, dl, VecTy, {}, DAG);
SDValue S = DAG.getConstant(4, dl, MVT::i32);
unsigned NumWords = Words.size();
for (unsigned i = 0; i != NumWords/2; ++i) {
SDValue N = DAG.getNode(HexagonISD::VINSERTW0, dl, VecTy,
{HalfV0, Words[i]});
SDValue M = DAG.getNode(HexagonISD::VINSERTW0, dl, VecTy,
{HalfV1, Words[i+NumWords/2]});
HalfV0 = DAG.getNode(HexagonISD::VROR, dl, VecTy, {N, S});
HalfV1 = DAG.getNode(HexagonISD::VROR, dl, VecTy, {M, S});
}
HalfV0 = DAG.getNode(HexagonISD::VROR, dl, VecTy,
{HalfV0, DAG.getConstant(HwLen/2, dl, MVT::i32)});
SDValue DstV = DAG.getNode(ISD::OR, dl, VecTy, {HalfV0, HalfV1});
return DstV;
}
SDValue
HexagonTargetLowering::LowerHvxExtractElement(SDValue Op, SelectionDAG &DAG)
const {
// Change the type of the extracted element to i32.
SDValue VecV = Op.getOperand(0);
MVT ElemTy = ty(VecV).getVectorElementType();
unsigned ElemWidth = ElemTy.getSizeInBits();
assert(ElemWidth >= 8 && ElemWidth <= 32); // TODO i64
const SDLoc &dl(Op);
SDValue IdxV = Op.getOperand(1);
if (ty(IdxV) != MVT::i32)
IdxV = DAG.getBitcast(MVT::i32, IdxV);
SDValue ByteIdx = convertToByteIndex(IdxV, ElemTy, DAG);
SDValue ExWord = DAG.getNode(HexagonISD::VEXTRACTW, dl, MVT::i32,
{VecV, ByteIdx});
if (ElemTy == MVT::i32)
return ExWord;
// Have an extracted word, need to extract the smaller element out of it.
// 1. Extract the bits of (the original) IdxV that correspond to the index
// of the desired element in the 32-bit word.
SDValue SubIdx = getIndexInWord32(IdxV, ElemTy, DAG);
// 2. Extract the element from the word.
SDValue ExVec = DAG.getBitcast(tyVector(ty(ExWord), ElemTy), ExWord);
return extractVector(ExVec, SubIdx, dl, ElemTy, MVT::i32, DAG);
}
SDValue
HexagonTargetLowering::LowerHvxInsertElement(SDValue Op, SelectionDAG &DAG)
const {
const SDLoc &dl(Op);
SDValue VecV = Op.getOperand(0);
SDValue ValV = Op.getOperand(1);
SDValue IdxV = Op.getOperand(2);
MVT ElemTy = ty(VecV).getVectorElementType();
unsigned ElemWidth = ElemTy.getSizeInBits();
assert(ElemWidth >= 8 && ElemWidth <= 32); // TODO i64
auto InsertWord = [&DAG,&dl,this] (SDValue VecV, SDValue ValV,
SDValue ByteIdxV) {
MVT VecTy = ty(VecV);
unsigned HwLen = Subtarget.getVectorLength();
SDValue MaskV = DAG.getNode(ISD::AND, dl, MVT::i32,
{ByteIdxV, DAG.getConstant(-4, dl, MVT::i32)});
SDValue RotV = DAG.getNode(HexagonISD::VROR, dl, VecTy, {VecV, MaskV});
SDValue InsV = DAG.getNode(HexagonISD::VINSERTW0, dl, VecTy, {RotV, ValV});
SDValue SubV = DAG.getNode(ISD::SUB, dl, MVT::i32,
{DAG.getConstant(HwLen/4, dl, MVT::i32), MaskV});
SDValue TorV = DAG.getNode(HexagonISD::VROR, dl, VecTy, {InsV, SubV});
return TorV;
};
SDValue ByteIdx = convertToByteIndex(IdxV, ElemTy, DAG);
if (ElemTy == MVT::i32)
return InsertWord(VecV, ValV, ByteIdx);
// If this is not inserting a 32-bit word, convert it into such a thing.
// 1. Extract the existing word from the target vector.
SDValue WordIdx = DAG.getNode(ISD::SRL, dl, MVT::i32,
{ByteIdx, DAG.getConstant(2, dl, MVT::i32)});
SDValue Ex0 = DAG.getNode(ISD::EXTRACT_VECTOR_ELT, dl, MVT::i32,
{opCastElem(VecV, MVT::i32, DAG), WordIdx});
SDValue Ext = LowerHvxExtractElement(Ex0, DAG);
// 2. Treating the extracted word as a 32-bit vector, insert the given
// value into it.
SDValue SubIdx = getIndexInWord32(IdxV, ElemTy, DAG);
MVT SubVecTy = tyVector(ty(Ext), ElemTy);
SDValue Ins = insertVector(DAG.getBitcast(SubVecTy, Ext),
ValV, SubIdx, dl, SubVecTy, DAG);
// 3. Insert the 32-bit word back into the original vector.
return InsertWord(VecV, Ins, ByteIdx);
}
SDValue
HexagonTargetLowering::LowerHvxExtractSubvector(SDValue Op, SelectionDAG &DAG)
const {
SDValue SrcV = Op.getOperand(0);
MVT SrcTy = ty(SrcV);
unsigned SrcElems = SrcTy.getVectorNumElements();
SDValue IdxV = Op.getOperand(1);
unsigned Idx = cast<ConstantSDNode>(IdxV.getNode())->getZExtValue();
MVT DstTy = ty(Op);
assert(Idx == 0 || DstTy.getVectorNumElements() % Idx == 0);
const SDLoc &dl(Op);
if (Idx == 0)
return DAG.getTargetExtractSubreg(Hexagon::vsub_lo, dl, DstTy, SrcV);
if (Idx == SrcElems/2)
return DAG.getTargetExtractSubreg(Hexagon::vsub_hi, dl, DstTy, SrcV);
return SDValue();
}
SDValue
HexagonTargetLowering::LowerHvxInsertSubvector(SDValue Op, SelectionDAG &DAG)
const {
// Idx may be variable
SDValue IdxV = Op.getOperand(2);
auto *IdxN = dyn_cast<ConstantSDNode>(IdxV.getNode());
if (!IdxN)
return SDValue();
unsigned Idx = IdxN->getZExtValue();
SDValue DstV = Op.getOperand(0);
SDValue SrcV = Op.getOperand(1);
MVT DstTy = ty(DstV);
MVT SrcTy = ty(SrcV);
unsigned DstElems = DstTy.getVectorNumElements();
unsigned SrcElems = SrcTy.getVectorNumElements();
if (2*SrcElems != DstElems)
return SDValue();
const SDLoc &dl(Op);
if (Idx == 0)
return DAG.getTargetInsertSubreg(Hexagon::vsub_lo, dl, DstTy, DstV, SrcV);
if (Idx == SrcElems)
return DAG.getTargetInsertSubreg(Hexagon::vsub_hi, dl, DstTy, DstV, SrcV);
return SDValue();
}

View File

@ -19,10 +19,10 @@
// (8) Shift/permute
// (9) Arithmetic/bitwise
// (10) Bit
// (11) Load
// (12) Store
// (13) Memop
// (14) PIC
// (11) PIC
// (12) Load
// (13) Store
// (14) Memop
// (15) Call
// (16) Branch
// (17) Misc
@ -340,6 +340,8 @@ def: Pat<(HexagonCONST32_GP tblockaddress:$A), (A2_tfrsi imm:$A)>;
def: Pat<(HexagonCONST32_GP tglobaladdr:$A), (A2_tfrsi imm:$A)>;
def: Pat<(HexagonJT tjumptable:$A), (A2_tfrsi imm:$A)>;
def: Pat<(HexagonCP tconstpool:$A), (A2_tfrsi imm:$A)>;
// The HVX load patterns also match CP directly. Make sure that if
// the selection of this opcode changes, it's updated in all places.
def: Pat<(i1 0), (PS_false)>;
def: Pat<(i1 1), (PS_true)>;
@ -1630,7 +1632,31 @@ let AddedComplexity = 100 in {
(I1toI32 (S4_ntstbit_r IntRegs:$Rs, IntRegs:$Rt))>;
}
// --(11) Load -----------------------------------------------------------
// --(11) PIC ------------------------------------------------------------
//
def SDT_HexagonAtGot
: SDTypeProfile<1, 3, [SDTCisVT<0, i32>, SDTCisVT<1, i32>, SDTCisVT<2, i32>]>;
def SDT_HexagonAtPcrel
: SDTypeProfile<1, 1, [SDTCisVT<0, i32>, SDTCisVT<1, i32>]>;
// AT_GOT address-of-GOT, address-of-global, offset-in-global
def HexagonAtGot : SDNode<"HexagonISD::AT_GOT", SDT_HexagonAtGot>;
// AT_PCREL address-of-global
def HexagonAtPcrel : SDNode<"HexagonISD::AT_PCREL", SDT_HexagonAtPcrel>;
def: Pat<(HexagonAtGot I32:$got, I32:$addr, (i32 0)),
(L2_loadri_io I32:$got, imm:$addr)>;
def: Pat<(HexagonAtGot I32:$got, I32:$addr, s30_2ImmPred:$off),
(A2_addi (L2_loadri_io I32:$got, imm:$addr), imm:$off)>;
def: Pat<(HexagonAtPcrel I32:$addr),
(C4_addipc imm:$addr)>;
// The HVX load patterns also match AT_PCREL directly. Make sure that
// if the selection of this opcode changes, it's updated in all places.
// --(12) Load -----------------------------------------------------------
//
def extloadv2i8: PatFrag<(ops node:$ptr), (extload node:$ptr), [{
@ -1971,6 +1997,12 @@ multiclass HvxLd_pat<InstHexagon MI, PatFrag Load, ValueType VT,
PatFrag ImmPred> {
def: Pat<(VT (Load I32:$Rt)), (MI I32:$Rt, 0)>;
def: Pat<(VT (Load (add I32:$Rt, ImmPred:$s))), (MI I32:$Rt, imm:$s)>;
// The HVX selection code for shuffles can generate vector constants.
// Calling "Select" on the resulting loads from CP fails without these
// patterns.
def: Pat<(VT (Load (HexagonCP tconstpool:$A))), (MI (A2_tfrsi imm:$A), 0)>;
def: Pat<(VT (Load (HexagonAtPcrel tconstpool:$A))),
(MI (C4_addipc imm:$A), 0)>;
}
@ -1997,7 +2029,7 @@ let Predicates = [UseHVX] in {
}
// --(12) Store ----------------------------------------------------------
// --(13) Store ----------------------------------------------------------
//
@ -2466,7 +2498,7 @@ let Predicates = [UseHVX] in {
}
// --(13) Memop ----------------------------------------------------------
// --(14) Memop ----------------------------------------------------------
//
def m5_0Imm8Pred : PatLeaf<(i32 imm), [{
@ -2744,27 +2776,6 @@ let AddedComplexity = 220 in {
}
// --(14) PIC ------------------------------------------------------------
//
def SDT_HexagonAtGot
: SDTypeProfile<1, 3, [SDTCisVT<0, i32>, SDTCisVT<1, i32>, SDTCisVT<2, i32>]>;
def SDT_HexagonAtPcrel
: SDTypeProfile<1, 1, [SDTCisVT<0, i32>, SDTCisVT<1, i32>]>;
// AT_GOT address-of-GOT, address-of-global, offset-in-global
def HexagonAtGot : SDNode<"HexagonISD::AT_GOT", SDT_HexagonAtGot>;
// AT_PCREL address-of-global
def HexagonAtPcrel : SDNode<"HexagonISD::AT_PCREL", SDT_HexagonAtPcrel>;
def: Pat<(HexagonAtGot I32:$got, I32:$addr, (i32 0)),
(L2_loadri_io I32:$got, imm:$addr)>;
def: Pat<(HexagonAtGot I32:$got, I32:$addr, s30_2ImmPred:$off),
(A2_addi (L2_loadri_io I32:$got, imm:$addr), imm:$off)>;
def: Pat<(HexagonAtPcrel I32:$addr),
(C4_addipc imm:$addr)>;
// --(15) Call -----------------------------------------------------------
//
@ -2894,3 +2905,32 @@ def HexagonREADCYCLE: SDNode<"HexagonISD::READCYCLE", SDTInt64Leaf,
[SDNPHasChain]>;
def: Pat<(HexagonREADCYCLE), (A4_tfrcpp UPCYCLE)>;
def SDTHexagonVEXTRACTW: SDTypeProfile<1, 2,
[SDTCisVT<0, i32>, SDTCisVec<1>, SDTCisVT<2, i32>]>;
def HexagonVEXTRACTW : SDNode<"HexagonISD::VEXTRACTW", SDTHexagonVEXTRACTW>;
def SDTHexagonVINSERTW0: SDTypeProfile<1, 2,
[SDTCisVec<0>, SDTCisSameAs<0, 1>, SDTCisVT<2, i32>]>;
def HexagonVINSERTW0 : SDNode<"HexagonISD::VINSERTW0", SDTHexagonVINSERTW0>;
let Predicates = [UseHVX] in {
def: Pat<(concat_vectors HVI8:$Vs, HVI8:$Vt),
(V6_vcombine HvxVR:$Vt, HvxVR:$Vs)>;
def: Pat<(or HVI8:$Vs, HVI8:$Vt),
(V6_vor HvxVR:$Vt, HvxVR:$Vs)>;
def: Pat<(HexagonVEXTRACTW HVI8:$Vu, I32:$Rs),
(V6_extractw HvxVR:$Vu, I32:$Rs)>;
def: Pat<(HexagonVEXTRACTW HVI16:$Vu, I32:$Rs),
(V6_extractw HvxVR:$Vu, I32:$Rs)>;
def: Pat<(HexagonVEXTRACTW HVI32:$Vu, I32:$Rs),
(V6_extractw HvxVR:$Vu, I32:$Rs)>;
def: Pat<(HexagonVINSERTW0 HVI8:$Vu, I32:$Rt),
(V6_vinsertwr HvxVR:$Vu, I32:$Rt)>;
def: Pat<(HexagonVINSERTW0 HVI16:$Vu, I32:$Rt),
(V6_vinsertwr HvxVR:$Vu, I32:$Rt)>;
def: Pat<(HexagonVINSERTW0 HVI32:$Vu, I32:$Rt),
(V6_vinsertwr HvxVR:$Vu, I32:$Rt)>;
}

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,507 @@
; RUN: llc -march=hexagon < %s | FileCheck %s
; CHECK-LABEL: test_0000
; CHECK-NOT: valign
define <128 x i8> @test_0000(<128 x i8> %v0) #0 {
%p = shufflevector <128 x i8> %v0, <128 x i8> undef, <128 x i32> <i32 0, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7, i32 8, i32 9, i32 10, i32 11, i32 12, i32 13, i32 14, i32 15, i32 16, i32 17, i32 18, i32 19, i32 20, i32 21, i32 22, i32 23, i32 24, i32 25, i32 26, i32 27, i32 28, i32 29, i32 30, i32 31, i32 32, i32 33, i32 34, i32 35, i32 36, i32 37, i32 38, i32 39, i32 40, i32 41, i32 42, i32 43, i32 44, i32 45, i32 46, i32 47, i32 48, i32 49, i32 50, i32 51, i32 52, i32 53, i32 54, i32 55, i32 56, i32 57, i32 58, i32 59, i32 60, i32 61, i32 62, i32 63, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef>
ret <128 x i8> %p
}
; CHECK-LABEL: test_0001
; CHECK: valign(v1,v0,#1)
define <128 x i8> @test_0001(<128 x i8> %v0) #0 {
%p = shufflevector <128 x i8> %v0, <128 x i8> undef, <128 x i32> <i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7, i32 8, i32 9, i32 10, i32 11, i32 12, i32 13, i32 14, i32 15, i32 16, i32 17, i32 18, i32 19, i32 20, i32 21, i32 22, i32 23, i32 24, i32 25, i32 26, i32 27, i32 28, i32 29, i32 30, i32 31, i32 32, i32 33, i32 34, i32 35, i32 36, i32 37, i32 38, i32 39, i32 40, i32 41, i32 42, i32 43, i32 44, i32 45, i32 46, i32 47, i32 48, i32 49, i32 50, i32 51, i32 52, i32 53, i32 54, i32 55, i32 56, i32 57, i32 58, i32 59, i32 60, i32 61, i32 62, i32 63, i32 64, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef>
ret <128 x i8> %p
}
; CHECK-LABEL: test_0002
; CHECK: valign(v1,v0,#2)
define <128 x i8> @test_0002(<128 x i8> %v0) #0 {
%p = shufflevector <128 x i8> %v0, <128 x i8> undef, <128 x i32> <i32 2, i32 3, i32 4, i32 5, i32 6, i32 7, i32 8, i32 9, i32 10, i32 11, i32 12, i32 13, i32 14, i32 15, i32 16, i32 17, i32 18, i32 19, i32 20, i32 21, i32 22, i32 23, i32 24, i32 25, i32 26, i32 27, i32 28, i32 29, i32 30, i32 31, i32 32, i32 33, i32 34, i32 35, i32 36, i32 37, i32 38, i32 39, i32 40, i32 41, i32 42, i32 43, i32 44, i32 45, i32 46, i32 47, i32 48, i32 49, i32 50, i32 51, i32 52, i32 53, i32 54, i32 55, i32 56, i32 57, i32 58, i32 59, i32 60, i32 61, i32 62, i32 63, i32 64, i32 65, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef>
ret <128 x i8> %p
}
; CHECK-LABEL: test_0003
; CHECK: valign(v1,v0,#3)
define <128 x i8> @test_0003(<128 x i8> %v0) #0 {
%p = shufflevector <128 x i8> %v0, <128 x i8> undef, <128 x i32> <i32 3, i32 4, i32 5, i32 6, i32 7, i32 8, i32 9, i32 10, i32 11, i32 12, i32 13, i32 14, i32 15, i32 16, i32 17, i32 18, i32 19, i32 20, i32 21, i32 22, i32 23, i32 24, i32 25, i32 26, i32 27, i32 28, i32 29, i32 30, i32 31, i32 32, i32 33, i32 34, i32 35, i32 36, i32 37, i32 38, i32 39, i32 40, i32 41, i32 42, i32 43, i32 44, i32 45, i32 46, i32 47, i32 48, i32 49, i32 50, i32 51, i32 52, i32 53, i32 54, i32 55, i32 56, i32 57, i32 58, i32 59, i32 60, i32 61, i32 62, i32 63, i32 64, i32 65, i32 66, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef>
ret <128 x i8> %p
}
; CHECK-LABEL: test_0004
; CHECK: valign(v1,v0,#4)
define <128 x i8> @test_0004(<128 x i8> %v0) #0 {
%p = shufflevector <128 x i8> %v0, <128 x i8> undef, <128 x i32> <i32 4, i32 5, i32 6, i32 7, i32 8, i32 9, i32 10, i32 11, i32 12, i32 13, i32 14, i32 15, i32 16, i32 17, i32 18, i32 19, i32 20, i32 21, i32 22, i32 23, i32 24, i32 25, i32 26, i32 27, i32 28, i32 29, i32 30, i32 31, i32 32, i32 33, i32 34, i32 35, i32 36, i32 37, i32 38, i32 39, i32 40, i32 41, i32 42, i32 43, i32 44, i32 45, i32 46, i32 47, i32 48, i32 49, i32 50, i32 51, i32 52, i32 53, i32 54, i32 55, i32 56, i32 57, i32 58, i32 59, i32 60, i32 61, i32 62, i32 63, i32 64, i32 65, i32 66, i32 67, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef>
ret <128 x i8> %p
}
; CHECK-LABEL: test_0005
; CHECK: valign(v1,v0,#5)
define <128 x i8> @test_0005(<128 x i8> %v0) #0 {
%p = shufflevector <128 x i8> %v0, <128 x i8> undef, <128 x i32> <i32 5, i32 6, i32 7, i32 8, i32 9, i32 10, i32 11, i32 12, i32 13, i32 14, i32 15, i32 16, i32 17, i32 18, i32 19, i32 20, i32 21, i32 22, i32 23, i32 24, i32 25, i32 26, i32 27, i32 28, i32 29, i32 30, i32 31, i32 32, i32 33, i32 34, i32 35, i32 36, i32 37, i32 38, i32 39, i32 40, i32 41, i32 42, i32 43, i32 44, i32 45, i32 46, i32 47, i32 48, i32 49, i32 50, i32 51, i32 52, i32 53, i32 54, i32 55, i32 56, i32 57, i32 58, i32 59, i32 60, i32 61, i32 62, i32 63, i32 64, i32 65, i32 66, i32 67, i32 68, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef>
ret <128 x i8> %p
}
; CHECK-LABEL: test_0006
; CHECK: valign(v1,v0,#6)
define <128 x i8> @test_0006(<128 x i8> %v0) #0 {
%p = shufflevector <128 x i8> %v0, <128 x i8> undef, <128 x i32> <i32 6, i32 7, i32 8, i32 9, i32 10, i32 11, i32 12, i32 13, i32 14, i32 15, i32 16, i32 17, i32 18, i32 19, i32 20, i32 21, i32 22, i32 23, i32 24, i32 25, i32 26, i32 27, i32 28, i32 29, i32 30, i32 31, i32 32, i32 33, i32 34, i32 35, i32 36, i32 37, i32 38, i32 39, i32 40, i32 41, i32 42, i32 43, i32 44, i32 45, i32 46, i32 47, i32 48, i32 49, i32 50, i32 51, i32 52, i32 53, i32 54, i32 55, i32 56, i32 57, i32 58, i32 59, i32 60, i32 61, i32 62, i32 63, i32 64, i32 65, i32 66, i32 67, i32 68, i32 69, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef>
ret <128 x i8> %p
}
; CHECK-LABEL: test_0007
; CHECK: valign(v1,v0,#7)
define <128 x i8> @test_0007(<128 x i8> %v0) #0 {
%p = shufflevector <128 x i8> %v0, <128 x i8> undef, <128 x i32> <i32 7, i32 8, i32 9, i32 10, i32 11, i32 12, i32 13, i32 14, i32 15, i32 16, i32 17, i32 18, i32 19, i32 20, i32 21, i32 22, i32 23, i32 24, i32 25, i32 26, i32 27, i32 28, i32 29, i32 30, i32 31, i32 32, i32 33, i32 34, i32 35, i32 36, i32 37, i32 38, i32 39, i32 40, i32 41, i32 42, i32 43, i32 44, i32 45, i32 46, i32 47, i32 48, i32 49, i32 50, i32 51, i32 52, i32 53, i32 54, i32 55, i32 56, i32 57, i32 58, i32 59, i32 60, i32 61, i32 62, i32 63, i32 64, i32 65, i32 66, i32 67, i32 68, i32 69, i32 70, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef>
ret <128 x i8> %p
}
; CHECK-LABEL: test_0008
; CHECK: [[R0008:r[0-9]+]] = #8
; CHECK: valign(v1,v0,[[R0008]])
define <128 x i8> @test_0008(<128 x i8> %v0) #0 {
%p = shufflevector <128 x i8> %v0, <128 x i8> undef, <128 x i32> <i32 8, i32 9, i32 10, i32 11, i32 12, i32 13, i32 14, i32 15, i32 16, i32 17, i32 18, i32 19, i32 20, i32 21, i32 22, i32 23, i32 24, i32 25, i32 26, i32 27, i32 28, i32 29, i32 30, i32 31, i32 32, i32 33, i32 34, i32 35, i32 36, i32 37, i32 38, i32 39, i32 40, i32 41, i32 42, i32 43, i32 44, i32 45, i32 46, i32 47, i32 48, i32 49, i32 50, i32 51, i32 52, i32 53, i32 54, i32 55, i32 56, i32 57, i32 58, i32 59, i32 60, i32 61, i32 62, i32 63, i32 64, i32 65, i32 66, i32 67, i32 68, i32 69, i32 70, i32 71, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef>
ret <128 x i8> %p
}
; CHECK-LABEL: test_0009
; CHECK: [[R0009:r[0-9]+]] = #9
; CHECK: valign(v1,v0,[[R0009]])
define <128 x i8> @test_0009(<128 x i8> %v0) #0 {
%p = shufflevector <128 x i8> %v0, <128 x i8> undef, <128 x i32> <i32 9, i32 10, i32 11, i32 12, i32 13, i32 14, i32 15, i32 16, i32 17, i32 18, i32 19, i32 20, i32 21, i32 22, i32 23, i32 24, i32 25, i32 26, i32 27, i32 28, i32 29, i32 30, i32 31, i32 32, i32 33, i32 34, i32 35, i32 36, i32 37, i32 38, i32 39, i32 40, i32 41, i32 42, i32 43, i32 44, i32 45, i32 46, i32 47, i32 48, i32 49, i32 50, i32 51, i32 52, i32 53, i32 54, i32 55, i32 56, i32 57, i32 58, i32 59, i32 60, i32 61, i32 62, i32 63, i32 64, i32 65, i32 66, i32 67, i32 68, i32 69, i32 70, i32 71, i32 72, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef>
ret <128 x i8> %p
}
; CHECK-LABEL: test_000a
; CHECK: [[R000a:r[0-9]+]] = #10
; CHECK: valign(v1,v0,[[R000a]])
define <128 x i8> @test_000a(<128 x i8> %v0) #0 {
%p = shufflevector <128 x i8> %v0, <128 x i8> undef, <128 x i32> <i32 10, i32 11, i32 12, i32 13, i32 14, i32 15, i32 16, i32 17, i32 18, i32 19, i32 20, i32 21, i32 22, i32 23, i32 24, i32 25, i32 26, i32 27, i32 28, i32 29, i32 30, i32 31, i32 32, i32 33, i32 34, i32 35, i32 36, i32 37, i32 38, i32 39, i32 40, i32 41, i32 42, i32 43, i32 44, i32 45, i32 46, i32 47, i32 48, i32 49, i32 50, i32 51, i32 52, i32 53, i32 54, i32 55, i32 56, i32 57, i32 58, i32 59, i32 60, i32 61, i32 62, i32 63, i32 64, i32 65, i32 66, i32 67, i32 68, i32 69, i32 70, i32 71, i32 72, i32 73, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef>
ret <128 x i8> %p
}
; CHECK-LABEL: test_000b
; CHECK: [[R000b:r[0-9]+]] = #11
; CHECK: valign(v1,v0,[[R000b]])
define <128 x i8> @test_000b(<128 x i8> %v0) #0 {
%p = shufflevector <128 x i8> %v0, <128 x i8> undef, <128 x i32> <i32 11, i32 12, i32 13, i32 14, i32 15, i32 16, i32 17, i32 18, i32 19, i32 20, i32 21, i32 22, i32 23, i32 24, i32 25, i32 26, i32 27, i32 28, i32 29, i32 30, i32 31, i32 32, i32 33, i32 34, i32 35, i32 36, i32 37, i32 38, i32 39, i32 40, i32 41, i32 42, i32 43, i32 44, i32 45, i32 46, i32 47, i32 48, i32 49, i32 50, i32 51, i32 52, i32 53, i32 54, i32 55, i32 56, i32 57, i32 58, i32 59, i32 60, i32 61, i32 62, i32 63, i32 64, i32 65, i32 66, i32 67, i32 68, i32 69, i32 70, i32 71, i32 72, i32 73, i32 74, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef>
ret <128 x i8> %p
}
; CHECK-LABEL: test_000c
; CHECK: [[R000c:r[0-9]+]] = #12
; CHECK: valign(v1,v0,[[R000c]])
define <128 x i8> @test_000c(<128 x i8> %v0) #0 {
%p = shufflevector <128 x i8> %v0, <128 x i8> undef, <128 x i32> <i32 12, i32 13, i32 14, i32 15, i32 16, i32 17, i32 18, i32 19, i32 20, i32 21, i32 22, i32 23, i32 24, i32 25, i32 26, i32 27, i32 28, i32 29, i32 30, i32 31, i32 32, i32 33, i32 34, i32 35, i32 36, i32 37, i32 38, i32 39, i32 40, i32 41, i32 42, i32 43, i32 44, i32 45, i32 46, i32 47, i32 48, i32 49, i32 50, i32 51, i32 52, i32 53, i32 54, i32 55, i32 56, i32 57, i32 58, i32 59, i32 60, i32 61, i32 62, i32 63, i32 64, i32 65, i32 66, i32 67, i32 68, i32 69, i32 70, i32 71, i32 72, i32 73, i32 74, i32 75, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef>
ret <128 x i8> %p
}
; CHECK-LABEL: test_000d
; CHECK: [[R000d:r[0-9]+]] = #13
; CHECK: valign(v1,v0,[[R000d]])
define <128 x i8> @test_000d(<128 x i8> %v0) #0 {
%p = shufflevector <128 x i8> %v0, <128 x i8> undef, <128 x i32> <i32 13, i32 14, i32 15, i32 16, i32 17, i32 18, i32 19, i32 20, i32 21, i32 22, i32 23, i32 24, i32 25, i32 26, i32 27, i32 28, i32 29, i32 30, i32 31, i32 32, i32 33, i32 34, i32 35, i32 36, i32 37, i32 38, i32 39, i32 40, i32 41, i32 42, i32 43, i32 44, i32 45, i32 46, i32 47, i32 48, i32 49, i32 50, i32 51, i32 52, i32 53, i32 54, i32 55, i32 56, i32 57, i32 58, i32 59, i32 60, i32 61, i32 62, i32 63, i32 64, i32 65, i32 66, i32 67, i32 68, i32 69, i32 70, i32 71, i32 72, i32 73, i32 74, i32 75, i32 76, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef>
ret <128 x i8> %p
}
; CHECK-LABEL: test_000e
; CHECK: [[R000e:r[0-9]+]] = #14
; CHECK: valign(v1,v0,[[R000e]])
define <128 x i8> @test_000e(<128 x i8> %v0) #0 {
%p = shufflevector <128 x i8> %v0, <128 x i8> undef, <128 x i32> <i32 14, i32 15, i32 16, i32 17, i32 18, i32 19, i32 20, i32 21, i32 22, i32 23, i32 24, i32 25, i32 26, i32 27, i32 28, i32 29, i32 30, i32 31, i32 32, i32 33, i32 34, i32 35, i32 36, i32 37, i32 38, i32 39, i32 40, i32 41, i32 42, i32 43, i32 44, i32 45, i32 46, i32 47, i32 48, i32 49, i32 50, i32 51, i32 52, i32 53, i32 54, i32 55, i32 56, i32 57, i32 58, i32 59, i32 60, i32 61, i32 62, i32 63, i32 64, i32 65, i32 66, i32 67, i32 68, i32 69, i32 70, i32 71, i32 72, i32 73, i32 74, i32 75, i32 76, i32 77, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef>
ret <128 x i8> %p
}
; CHECK-LABEL: test_000f
; CHECK: [[R000f:r[0-9]+]] = #15
; CHECK: valign(v1,v0,[[R000f]])
define <128 x i8> @test_000f(<128 x i8> %v0) #0 {
%p = shufflevector <128 x i8> %v0, <128 x i8> undef, <128 x i32> <i32 15, i32 16, i32 17, i32 18, i32 19, i32 20, i32 21, i32 22, i32 23, i32 24, i32 25, i32 26, i32 27, i32 28, i32 29, i32 30, i32 31, i32 32, i32 33, i32 34, i32 35, i32 36, i32 37, i32 38, i32 39, i32 40, i32 41, i32 42, i32 43, i32 44, i32 45, i32 46, i32 47, i32 48, i32 49, i32 50, i32 51, i32 52, i32 53, i32 54, i32 55, i32 56, i32 57, i32 58, i32 59, i32 60, i32 61, i32 62, i32 63, i32 64, i32 65, i32 66, i32 67, i32 68, i32 69, i32 70, i32 71, i32 72, i32 73, i32 74, i32 75, i32 76, i32 77, i32 78, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef>
ret <128 x i8> %p
}
; CHECK-LABEL: test_0010
; CHECK: [[R0010:r[0-9]+]] = #16
; CHECK: valign(v1,v0,[[R0010]])
define <128 x i8> @test_0010(<128 x i8> %v0) #0 {
%p = shufflevector <128 x i8> %v0, <128 x i8> undef, <128 x i32> <i32 16, i32 17, i32 18, i32 19, i32 20, i32 21, i32 22, i32 23, i32 24, i32 25, i32 26, i32 27, i32 28, i32 29, i32 30, i32 31, i32 32, i32 33, i32 34, i32 35, i32 36, i32 37, i32 38, i32 39, i32 40, i32 41, i32 42, i32 43, i32 44, i32 45, i32 46, i32 47, i32 48, i32 49, i32 50, i32 51, i32 52, i32 53, i32 54, i32 55, i32 56, i32 57, i32 58, i32 59, i32 60, i32 61, i32 62, i32 63, i32 64, i32 65, i32 66, i32 67, i32 68, i32 69, i32 70, i32 71, i32 72, i32 73, i32 74, i32 75, i32 76, i32 77, i32 78, i32 79, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef>
ret <128 x i8> %p
}
; CHECK-LABEL: test_0011
; CHECK: [[R0011:r[0-9]+]] = #17
; CHECK: valign(v1,v0,[[R0011]])
define <128 x i8> @test_0011(<128 x i8> %v0) #0 {
%p = shufflevector <128 x i8> %v0, <128 x i8> undef, <128 x i32> <i32 17, i32 18, i32 19, i32 20, i32 21, i32 22, i32 23, i32 24, i32 25, i32 26, i32 27, i32 28, i32 29, i32 30, i32 31, i32 32, i32 33, i32 34, i32 35, i32 36, i32 37, i32 38, i32 39, i32 40, i32 41, i32 42, i32 43, i32 44, i32 45, i32 46, i32 47, i32 48, i32 49, i32 50, i32 51, i32 52, i32 53, i32 54, i32 55, i32 56, i32 57, i32 58, i32 59, i32 60, i32 61, i32 62, i32 63, i32 64, i32 65, i32 66, i32 67, i32 68, i32 69, i32 70, i32 71, i32 72, i32 73, i32 74, i32 75, i32 76, i32 77, i32 78, i32 79, i32 80, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef>
ret <128 x i8> %p
}
; CHECK-LABEL: test_0012
; CHECK: [[R0012:r[0-9]+]] = #18
; CHECK: valign(v1,v0,[[R0012]])
define <128 x i8> @test_0012(<128 x i8> %v0) #0 {
%p = shufflevector <128 x i8> %v0, <128 x i8> undef, <128 x i32> <i32 18, i32 19, i32 20, i32 21, i32 22, i32 23, i32 24, i32 25, i32 26, i32 27, i32 28, i32 29, i32 30, i32 31, i32 32, i32 33, i32 34, i32 35, i32 36, i32 37, i32 38, i32 39, i32 40, i32 41, i32 42, i32 43, i32 44, i32 45, i32 46, i32 47, i32 48, i32 49, i32 50, i32 51, i32 52, i32 53, i32 54, i32 55, i32 56, i32 57, i32 58, i32 59, i32 60, i32 61, i32 62, i32 63, i32 64, i32 65, i32 66, i32 67, i32 68, i32 69, i32 70, i32 71, i32 72, i32 73, i32 74, i32 75, i32 76, i32 77, i32 78, i32 79, i32 80, i32 81, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef>
ret <128 x i8> %p
}
; CHECK-LABEL: test_0013
; CHECK: [[R0013:r[0-9]+]] = #19
; CHECK: valign(v1,v0,[[R0013]])
define <128 x i8> @test_0013(<128 x i8> %v0) #0 {
%p = shufflevector <128 x i8> %v0, <128 x i8> undef, <128 x i32> <i32 19, i32 20, i32 21, i32 22, i32 23, i32 24, i32 25, i32 26, i32 27, i32 28, i32 29, i32 30, i32 31, i32 32, i32 33, i32 34, i32 35, i32 36, i32 37, i32 38, i32 39, i32 40, i32 41, i32 42, i32 43, i32 44, i32 45, i32 46, i32 47, i32 48, i32 49, i32 50, i32 51, i32 52, i32 53, i32 54, i32 55, i32 56, i32 57, i32 58, i32 59, i32 60, i32 61, i32 62, i32 63, i32 64, i32 65, i32 66, i32 67, i32 68, i32 69, i32 70, i32 71, i32 72, i32 73, i32 74, i32 75, i32 76, i32 77, i32 78, i32 79, i32 80, i32 81, i32 82, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef>
ret <128 x i8> %p
}
; CHECK-LABEL: test_0014
; CHECK: [[R0014:r[0-9]+]] = #20
; CHECK: valign(v1,v0,[[R0014]])
define <128 x i8> @test_0014(<128 x i8> %v0) #0 {
%p = shufflevector <128 x i8> %v0, <128 x i8> undef, <128 x i32> <i32 20, i32 21, i32 22, i32 23, i32 24, i32 25, i32 26, i32 27, i32 28, i32 29, i32 30, i32 31, i32 32, i32 33, i32 34, i32 35, i32 36, i32 37, i32 38, i32 39, i32 40, i32 41, i32 42, i32 43, i32 44, i32 45, i32 46, i32 47, i32 48, i32 49, i32 50, i32 51, i32 52, i32 53, i32 54, i32 55, i32 56, i32 57, i32 58, i32 59, i32 60, i32 61, i32 62, i32 63, i32 64, i32 65, i32 66, i32 67, i32 68, i32 69, i32 70, i32 71, i32 72, i32 73, i32 74, i32 75, i32 76, i32 77, i32 78, i32 79, i32 80, i32 81, i32 82, i32 83, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef>
ret <128 x i8> %p
}
; CHECK-LABEL: test_0015
; CHECK: [[R0015:r[0-9]+]] = #21
; CHECK: valign(v1,v0,[[R0015]])
define <128 x i8> @test_0015(<128 x i8> %v0) #0 {
%p = shufflevector <128 x i8> %v0, <128 x i8> undef, <128 x i32> <i32 21, i32 22, i32 23, i32 24, i32 25, i32 26, i32 27, i32 28, i32 29, i32 30, i32 31, i32 32, i32 33, i32 34, i32 35, i32 36, i32 37, i32 38, i32 39, i32 40, i32 41, i32 42, i32 43, i32 44, i32 45, i32 46, i32 47, i32 48, i32 49, i32 50, i32 51, i32 52, i32 53, i32 54, i32 55, i32 56, i32 57, i32 58, i32 59, i32 60, i32 61, i32 62, i32 63, i32 64, i32 65, i32 66, i32 67, i32 68, i32 69, i32 70, i32 71, i32 72, i32 73, i32 74, i32 75, i32 76, i32 77, i32 78, i32 79, i32 80, i32 81, i32 82, i32 83, i32 84, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef>
ret <128 x i8> %p
}
; CHECK-LABEL: test_0016
; CHECK: [[R0016:r[0-9]+]] = #22
; CHECK: valign(v1,v0,[[R0016]])
define <128 x i8> @test_0016(<128 x i8> %v0) #0 {
%p = shufflevector <128 x i8> %v0, <128 x i8> undef, <128 x i32> <i32 22, i32 23, i32 24, i32 25, i32 26, i32 27, i32 28, i32 29, i32 30, i32 31, i32 32, i32 33, i32 34, i32 35, i32 36, i32 37, i32 38, i32 39, i32 40, i32 41, i32 42, i32 43, i32 44, i32 45, i32 46, i32 47, i32 48, i32 49, i32 50, i32 51, i32 52, i32 53, i32 54, i32 55, i32 56, i32 57, i32 58, i32 59, i32 60, i32 61, i32 62, i32 63, i32 64, i32 65, i32 66, i32 67, i32 68, i32 69, i32 70, i32 71, i32 72, i32 73, i32 74, i32 75, i32 76, i32 77, i32 78, i32 79, i32 80, i32 81, i32 82, i32 83, i32 84, i32 85, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef>
ret <128 x i8> %p
}
; CHECK-LABEL: test_0017
; CHECK: [[R0017:r[0-9]+]] = #23
; CHECK: valign(v1,v0,[[R0017]])
define <128 x i8> @test_0017(<128 x i8> %v0) #0 {
%p = shufflevector <128 x i8> %v0, <128 x i8> undef, <128 x i32> <i32 23, i32 24, i32 25, i32 26, i32 27, i32 28, i32 29, i32 30, i32 31, i32 32, i32 33, i32 34, i32 35, i32 36, i32 37, i32 38, i32 39, i32 40, i32 41, i32 42, i32 43, i32 44, i32 45, i32 46, i32 47, i32 48, i32 49, i32 50, i32 51, i32 52, i32 53, i32 54, i32 55, i32 56, i32 57, i32 58, i32 59, i32 60, i32 61, i32 62, i32 63, i32 64, i32 65, i32 66, i32 67, i32 68, i32 69, i32 70, i32 71, i32 72, i32 73, i32 74, i32 75, i32 76, i32 77, i32 78, i32 79, i32 80, i32 81, i32 82, i32 83, i32 84, i32 85, i32 86, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef>
ret <128 x i8> %p
}
; CHECK-LABEL: test_0018
; CHECK: [[R0018:r[0-9]+]] = #24
; CHECK: valign(v1,v0,[[R0018]])
define <128 x i8> @test_0018(<128 x i8> %v0) #0 {
%p = shufflevector <128 x i8> %v0, <128 x i8> undef, <128 x i32> <i32 24, i32 25, i32 26, i32 27, i32 28, i32 29, i32 30, i32 31, i32 32, i32 33, i32 34, i32 35, i32 36, i32 37, i32 38, i32 39, i32 40, i32 41, i32 42, i32 43, i32 44, i32 45, i32 46, i32 47, i32 48, i32 49, i32 50, i32 51, i32 52, i32 53, i32 54, i32 55, i32 56, i32 57, i32 58, i32 59, i32 60, i32 61, i32 62, i32 63, i32 64, i32 65, i32 66, i32 67, i32 68, i32 69, i32 70, i32 71, i32 72, i32 73, i32 74, i32 75, i32 76, i32 77, i32 78, i32 79, i32 80, i32 81, i32 82, i32 83, i32 84, i32 85, i32 86, i32 87, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef>
ret <128 x i8> %p
}
; CHECK-LABEL: test_0019
; CHECK: [[R0019:r[0-9]+]] = #25
; CHECK: valign(v1,v0,[[R0019]])
define <128 x i8> @test_0019(<128 x i8> %v0) #0 {
%p = shufflevector <128 x i8> %v0, <128 x i8> undef, <128 x i32> <i32 25, i32 26, i32 27, i32 28, i32 29, i32 30, i32 31, i32 32, i32 33, i32 34, i32 35, i32 36, i32 37, i32 38, i32 39, i32 40, i32 41, i32 42, i32 43, i32 44, i32 45, i32 46, i32 47, i32 48, i32 49, i32 50, i32 51, i32 52, i32 53, i32 54, i32 55, i32 56, i32 57, i32 58, i32 59, i32 60, i32 61, i32 62, i32 63, i32 64, i32 65, i32 66, i32 67, i32 68, i32 69, i32 70, i32 71, i32 72, i32 73, i32 74, i32 75, i32 76, i32 77, i32 78, i32 79, i32 80, i32 81, i32 82, i32 83, i32 84, i32 85, i32 86, i32 87, i32 88, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef>
ret <128 x i8> %p
}
; CHECK-LABEL: test_001a
; CHECK: [[R001a:r[0-9]+]] = #26
; CHECK: valign(v1,v0,[[R001a]])
define <128 x i8> @test_001a(<128 x i8> %v0) #0 {
%p = shufflevector <128 x i8> %v0, <128 x i8> undef, <128 x i32> <i32 26, i32 27, i32 28, i32 29, i32 30, i32 31, i32 32, i32 33, i32 34, i32 35, i32 36, i32 37, i32 38, i32 39, i32 40, i32 41, i32 42, i32 43, i32 44, i32 45, i32 46, i32 47, i32 48, i32 49, i32 50, i32 51, i32 52, i32 53, i32 54, i32 55, i32 56, i32 57, i32 58, i32 59, i32 60, i32 61, i32 62, i32 63, i32 64, i32 65, i32 66, i32 67, i32 68, i32 69, i32 70, i32 71, i32 72, i32 73, i32 74, i32 75, i32 76, i32 77, i32 78, i32 79, i32 80, i32 81, i32 82, i32 83, i32 84, i32 85, i32 86, i32 87, i32 88, i32 89, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef>
ret <128 x i8> %p
}
; CHECK-LABEL: test_001b
; CHECK: [[R001b:r[0-9]+]] = #27
; CHECK: valign(v1,v0,[[R001b]])
define <128 x i8> @test_001b(<128 x i8> %v0) #0 {
%p = shufflevector <128 x i8> %v0, <128 x i8> undef, <128 x i32> <i32 27, i32 28, i32 29, i32 30, i32 31, i32 32, i32 33, i32 34, i32 35, i32 36, i32 37, i32 38, i32 39, i32 40, i32 41, i32 42, i32 43, i32 44, i32 45, i32 46, i32 47, i32 48, i32 49, i32 50, i32 51, i32 52, i32 53, i32 54, i32 55, i32 56, i32 57, i32 58, i32 59, i32 60, i32 61, i32 62, i32 63, i32 64, i32 65, i32 66, i32 67, i32 68, i32 69, i32 70, i32 71, i32 72, i32 73, i32 74, i32 75, i32 76, i32 77, i32 78, i32 79, i32 80, i32 81, i32 82, i32 83, i32 84, i32 85, i32 86, i32 87, i32 88, i32 89, i32 90, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef>
ret <128 x i8> %p
}
; CHECK-LABEL: test_001c
; CHECK: [[R001c:r[0-9]+]] = #28
; CHECK: valign(v1,v0,[[R001c]])
define <128 x i8> @test_001c(<128 x i8> %v0) #0 {
%p = shufflevector <128 x i8> %v0, <128 x i8> undef, <128 x i32> <i32 28, i32 29, i32 30, i32 31, i32 32, i32 33, i32 34, i32 35, i32 36, i32 37, i32 38, i32 39, i32 40, i32 41, i32 42, i32 43, i32 44, i32 45, i32 46, i32 47, i32 48, i32 49, i32 50, i32 51, i32 52, i32 53, i32 54, i32 55, i32 56, i32 57, i32 58, i32 59, i32 60, i32 61, i32 62, i32 63, i32 64, i32 65, i32 66, i32 67, i32 68, i32 69, i32 70, i32 71, i32 72, i32 73, i32 74, i32 75, i32 76, i32 77, i32 78, i32 79, i32 80, i32 81, i32 82, i32 83, i32 84, i32 85, i32 86, i32 87, i32 88, i32 89, i32 90, i32 91, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef>
ret <128 x i8> %p
}
; CHECK-LABEL: test_001d
; CHECK: [[R001d:r[0-9]+]] = #29
; CHECK: valign(v1,v0,[[R001d]])
define <128 x i8> @test_001d(<128 x i8> %v0) #0 {
%p = shufflevector <128 x i8> %v0, <128 x i8> undef, <128 x i32> <i32 29, i32 30, i32 31, i32 32, i32 33, i32 34, i32 35, i32 36, i32 37, i32 38, i32 39, i32 40, i32 41, i32 42, i32 43, i32 44, i32 45, i32 46, i32 47, i32 48, i32 49, i32 50, i32 51, i32 52, i32 53, i32 54, i32 55, i32 56, i32 57, i32 58, i32 59, i32 60, i32 61, i32 62, i32 63, i32 64, i32 65, i32 66, i32 67, i32 68, i32 69, i32 70, i32 71, i32 72, i32 73, i32 74, i32 75, i32 76, i32 77, i32 78, i32 79, i32 80, i32 81, i32 82, i32 83, i32 84, i32 85, i32 86, i32 87, i32 88, i32 89, i32 90, i32 91, i32 92, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef>
ret <128 x i8> %p
}
; CHECK-LABEL: test_001e
; CHECK: [[R001e:r[0-9]+]] = #30
; CHECK: valign(v1,v0,[[R001e]])
define <128 x i8> @test_001e(<128 x i8> %v0) #0 {
%p = shufflevector <128 x i8> %v0, <128 x i8> undef, <128 x i32> <i32 30, i32 31, i32 32, i32 33, i32 34, i32 35, i32 36, i32 37, i32 38, i32 39, i32 40, i32 41, i32 42, i32 43, i32 44, i32 45, i32 46, i32 47, i32 48, i32 49, i32 50, i32 51, i32 52, i32 53, i32 54, i32 55, i32 56, i32 57, i32 58, i32 59, i32 60, i32 61, i32 62, i32 63, i32 64, i32 65, i32 66, i32 67, i32 68, i32 69, i32 70, i32 71, i32 72, i32 73, i32 74, i32 75, i32 76, i32 77, i32 78, i32 79, i32 80, i32 81, i32 82, i32 83, i32 84, i32 85, i32 86, i32 87, i32 88, i32 89, i32 90, i32 91, i32 92, i32 93, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef>
ret <128 x i8> %p
}
; CHECK-LABEL: test_001f
; CHECK: [[R001f:r[0-9]+]] = #31
; CHECK: valign(v1,v0,[[R001f]])
define <128 x i8> @test_001f(<128 x i8> %v0) #0 {
%p = shufflevector <128 x i8> %v0, <128 x i8> undef, <128 x i32> <i32 31, i32 32, i32 33, i32 34, i32 35, i32 36, i32 37, i32 38, i32 39, i32 40, i32 41, i32 42, i32 43, i32 44, i32 45, i32 46, i32 47, i32 48, i32 49, i32 50, i32 51, i32 52, i32 53, i32 54, i32 55, i32 56, i32 57, i32 58, i32 59, i32 60, i32 61, i32 62, i32 63, i32 64, i32 65, i32 66, i32 67, i32 68, i32 69, i32 70, i32 71, i32 72, i32 73, i32 74, i32 75, i32 76, i32 77, i32 78, i32 79, i32 80, i32 81, i32 82, i32 83, i32 84, i32 85, i32 86, i32 87, i32 88, i32 89, i32 90, i32 91, i32 92, i32 93, i32 94, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef>
ret <128 x i8> %p
}
; CHECK-LABEL: test_0020
; CHECK: [[R0020:r[0-9]+]] = #32
; CHECK: valign(v1,v0,[[R0020]])
define <128 x i8> @test_0020(<128 x i8> %v0) #0 {
%p = shufflevector <128 x i8> %v0, <128 x i8> undef, <128 x i32> <i32 32, i32 33, i32 34, i32 35, i32 36, i32 37, i32 38, i32 39, i32 40, i32 41, i32 42, i32 43, i32 44, i32 45, i32 46, i32 47, i32 48, i32 49, i32 50, i32 51, i32 52, i32 53, i32 54, i32 55, i32 56, i32 57, i32 58, i32 59, i32 60, i32 61, i32 62, i32 63, i32 64, i32 65, i32 66, i32 67, i32 68, i32 69, i32 70, i32 71, i32 72, i32 73, i32 74, i32 75, i32 76, i32 77, i32 78, i32 79, i32 80, i32 81, i32 82, i32 83, i32 84, i32 85, i32 86, i32 87, i32 88, i32 89, i32 90, i32 91, i32 92, i32 93, i32 94, i32 95, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef>
ret <128 x i8> %p
}
; CHECK-LABEL: test_0021
; CHECK: [[R0021:r[0-9]+]] = #33
; CHECK: valign(v1,v0,[[R0021]])
define <128 x i8> @test_0021(<128 x i8> %v0) #0 {
%p = shufflevector <128 x i8> %v0, <128 x i8> undef, <128 x i32> <i32 33, i32 34, i32 35, i32 36, i32 37, i32 38, i32 39, i32 40, i32 41, i32 42, i32 43, i32 44, i32 45, i32 46, i32 47, i32 48, i32 49, i32 50, i32 51, i32 52, i32 53, i32 54, i32 55, i32 56, i32 57, i32 58, i32 59, i32 60, i32 61, i32 62, i32 63, i32 64, i32 65, i32 66, i32 67, i32 68, i32 69, i32 70, i32 71, i32 72, i32 73, i32 74, i32 75, i32 76, i32 77, i32 78, i32 79, i32 80, i32 81, i32 82, i32 83, i32 84, i32 85, i32 86, i32 87, i32 88, i32 89, i32 90, i32 91, i32 92, i32 93, i32 94, i32 95, i32 96, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef>
ret <128 x i8> %p
}
; CHECK-LABEL: test_0022
; CHECK: [[R0022:r[0-9]+]] = #34
; CHECK: valign(v1,v0,[[R0022]])
define <128 x i8> @test_0022(<128 x i8> %v0) #0 {
%p = shufflevector <128 x i8> %v0, <128 x i8> undef, <128 x i32> <i32 34, i32 35, i32 36, i32 37, i32 38, i32 39, i32 40, i32 41, i32 42, i32 43, i32 44, i32 45, i32 46, i32 47, i32 48, i32 49, i32 50, i32 51, i32 52, i32 53, i32 54, i32 55, i32 56, i32 57, i32 58, i32 59, i32 60, i32 61, i32 62, i32 63, i32 64, i32 65, i32 66, i32 67, i32 68, i32 69, i32 70, i32 71, i32 72, i32 73, i32 74, i32 75, i32 76, i32 77, i32 78, i32 79, i32 80, i32 81, i32 82, i32 83, i32 84, i32 85, i32 86, i32 87, i32 88, i32 89, i32 90, i32 91, i32 92, i32 93, i32 94, i32 95, i32 96, i32 97, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef>
ret <128 x i8> %p
}
; CHECK-LABEL: test_0023
; CHECK: [[R0023:r[0-9]+]] = #35
; CHECK: valign(v1,v0,[[R0023]])
define <128 x i8> @test_0023(<128 x i8> %v0) #0 {
%p = shufflevector <128 x i8> %v0, <128 x i8> undef, <128 x i32> <i32 35, i32 36, i32 37, i32 38, i32 39, i32 40, i32 41, i32 42, i32 43, i32 44, i32 45, i32 46, i32 47, i32 48, i32 49, i32 50, i32 51, i32 52, i32 53, i32 54, i32 55, i32 56, i32 57, i32 58, i32 59, i32 60, i32 61, i32 62, i32 63, i32 64, i32 65, i32 66, i32 67, i32 68, i32 69, i32 70, i32 71, i32 72, i32 73, i32 74, i32 75, i32 76, i32 77, i32 78, i32 79, i32 80, i32 81, i32 82, i32 83, i32 84, i32 85, i32 86, i32 87, i32 88, i32 89, i32 90, i32 91, i32 92, i32 93, i32 94, i32 95, i32 96, i32 97, i32 98, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef>
ret <128 x i8> %p
}
; CHECK-LABEL: test_0024
; CHECK: [[R0024:r[0-9]+]] = #36
; CHECK: valign(v1,v0,[[R0024]])
define <128 x i8> @test_0024(<128 x i8> %v0) #0 {
%p = shufflevector <128 x i8> %v0, <128 x i8> undef, <128 x i32> <i32 36, i32 37, i32 38, i32 39, i32 40, i32 41, i32 42, i32 43, i32 44, i32 45, i32 46, i32 47, i32 48, i32 49, i32 50, i32 51, i32 52, i32 53, i32 54, i32 55, i32 56, i32 57, i32 58, i32 59, i32 60, i32 61, i32 62, i32 63, i32 64, i32 65, i32 66, i32 67, i32 68, i32 69, i32 70, i32 71, i32 72, i32 73, i32 74, i32 75, i32 76, i32 77, i32 78, i32 79, i32 80, i32 81, i32 82, i32 83, i32 84, i32 85, i32 86, i32 87, i32 88, i32 89, i32 90, i32 91, i32 92, i32 93, i32 94, i32 95, i32 96, i32 97, i32 98, i32 99, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef>
ret <128 x i8> %p
}
; CHECK-LABEL: test_0025
; CHECK: [[R0025:r[0-9]+]] = #37
; CHECK: valign(v1,v0,[[R0025]])
define <128 x i8> @test_0025(<128 x i8> %v0) #0 {
%p = shufflevector <128 x i8> %v0, <128 x i8> undef, <128 x i32> <i32 37, i32 38, i32 39, i32 40, i32 41, i32 42, i32 43, i32 44, i32 45, i32 46, i32 47, i32 48, i32 49, i32 50, i32 51, i32 52, i32 53, i32 54, i32 55, i32 56, i32 57, i32 58, i32 59, i32 60, i32 61, i32 62, i32 63, i32 64, i32 65, i32 66, i32 67, i32 68, i32 69, i32 70, i32 71, i32 72, i32 73, i32 74, i32 75, i32 76, i32 77, i32 78, i32 79, i32 80, i32 81, i32 82, i32 83, i32 84, i32 85, i32 86, i32 87, i32 88, i32 89, i32 90, i32 91, i32 92, i32 93, i32 94, i32 95, i32 96, i32 97, i32 98, i32 99, i32 100, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef>
ret <128 x i8> %p
}
; CHECK-LABEL: test_0026
; CHECK: [[R0026:r[0-9]+]] = #38
; CHECK: valign(v1,v0,[[R0026]])
define <128 x i8> @test_0026(<128 x i8> %v0) #0 {
%p = shufflevector <128 x i8> %v0, <128 x i8> undef, <128 x i32> <i32 38, i32 39, i32 40, i32 41, i32 42, i32 43, i32 44, i32 45, i32 46, i32 47, i32 48, i32 49, i32 50, i32 51, i32 52, i32 53, i32 54, i32 55, i32 56, i32 57, i32 58, i32 59, i32 60, i32 61, i32 62, i32 63, i32 64, i32 65, i32 66, i32 67, i32 68, i32 69, i32 70, i32 71, i32 72, i32 73, i32 74, i32 75, i32 76, i32 77, i32 78, i32 79, i32 80, i32 81, i32 82, i32 83, i32 84, i32 85, i32 86, i32 87, i32 88, i32 89, i32 90, i32 91, i32 92, i32 93, i32 94, i32 95, i32 96, i32 97, i32 98, i32 99, i32 100, i32 101, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef>
ret <128 x i8> %p
}
; CHECK-LABEL: test_0027
; CHECK: [[R0027:r[0-9]+]] = #39
; CHECK: valign(v1,v0,[[R0027]])
define <128 x i8> @test_0027(<128 x i8> %v0) #0 {
%p = shufflevector <128 x i8> %v0, <128 x i8> undef, <128 x i32> <i32 39, i32 40, i32 41, i32 42, i32 43, i32 44, i32 45, i32 46, i32 47, i32 48, i32 49, i32 50, i32 51, i32 52, i32 53, i32 54, i32 55, i32 56, i32 57, i32 58, i32 59, i32 60, i32 61, i32 62, i32 63, i32 64, i32 65, i32 66, i32 67, i32 68, i32 69, i32 70, i32 71, i32 72, i32 73, i32 74, i32 75, i32 76, i32 77, i32 78, i32 79, i32 80, i32 81, i32 82, i32 83, i32 84, i32 85, i32 86, i32 87, i32 88, i32 89, i32 90, i32 91, i32 92, i32 93, i32 94, i32 95, i32 96, i32 97, i32 98, i32 99, i32 100, i32 101, i32 102, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef>
ret <128 x i8> %p
}
; CHECK-LABEL: test_0028
; CHECK: [[R0028:r[0-9]+]] = #40
; CHECK: valign(v1,v0,[[R0028]])
define <128 x i8> @test_0028(<128 x i8> %v0) #0 {
%p = shufflevector <128 x i8> %v0, <128 x i8> undef, <128 x i32> <i32 40, i32 41, i32 42, i32 43, i32 44, i32 45, i32 46, i32 47, i32 48, i32 49, i32 50, i32 51, i32 52, i32 53, i32 54, i32 55, i32 56, i32 57, i32 58, i32 59, i32 60, i32 61, i32 62, i32 63, i32 64, i32 65, i32 66, i32 67, i32 68, i32 69, i32 70, i32 71, i32 72, i32 73, i32 74, i32 75, i32 76, i32 77, i32 78, i32 79, i32 80, i32 81, i32 82, i32 83, i32 84, i32 85, i32 86, i32 87, i32 88, i32 89, i32 90, i32 91, i32 92, i32 93, i32 94, i32 95, i32 96, i32 97, i32 98, i32 99, i32 100, i32 101, i32 102, i32 103, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef>
ret <128 x i8> %p
}
; CHECK-LABEL: test_0029
; CHECK: [[R0029:r[0-9]+]] = #41
; CHECK: valign(v1,v0,[[R0029]])
define <128 x i8> @test_0029(<128 x i8> %v0) #0 {
%p = shufflevector <128 x i8> %v0, <128 x i8> undef, <128 x i32> <i32 41, i32 42, i32 43, i32 44, i32 45, i32 46, i32 47, i32 48, i32 49, i32 50, i32 51, i32 52, i32 53, i32 54, i32 55, i32 56, i32 57, i32 58, i32 59, i32 60, i32 61, i32 62, i32 63, i32 64, i32 65, i32 66, i32 67, i32 68, i32 69, i32 70, i32 71, i32 72, i32 73, i32 74, i32 75, i32 76, i32 77, i32 78, i32 79, i32 80, i32 81, i32 82, i32 83, i32 84, i32 85, i32 86, i32 87, i32 88, i32 89, i32 90, i32 91, i32 92, i32 93, i32 94, i32 95, i32 96, i32 97, i32 98, i32 99, i32 100, i32 101, i32 102, i32 103, i32 104, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef>
ret <128 x i8> %p
}
; CHECK-LABEL: test_002a
; CHECK: [[R002a:r[0-9]+]] = #42
; CHECK: valign(v1,v0,[[R002a]])
define <128 x i8> @test_002a(<128 x i8> %v0) #0 {
%p = shufflevector <128 x i8> %v0, <128 x i8> undef, <128 x i32> <i32 42, i32 43, i32 44, i32 45, i32 46, i32 47, i32 48, i32 49, i32 50, i32 51, i32 52, i32 53, i32 54, i32 55, i32 56, i32 57, i32 58, i32 59, i32 60, i32 61, i32 62, i32 63, i32 64, i32 65, i32 66, i32 67, i32 68, i32 69, i32 70, i32 71, i32 72, i32 73, i32 74, i32 75, i32 76, i32 77, i32 78, i32 79, i32 80, i32 81, i32 82, i32 83, i32 84, i32 85, i32 86, i32 87, i32 88, i32 89, i32 90, i32 91, i32 92, i32 93, i32 94, i32 95, i32 96, i32 97, i32 98, i32 99, i32 100, i32 101, i32 102, i32 103, i32 104, i32 105, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef>
ret <128 x i8> %p
}
; CHECK-LABEL: test_002b
; CHECK: [[R002b:r[0-9]+]] = #43
; CHECK: valign(v1,v0,[[R002b]])
define <128 x i8> @test_002b(<128 x i8> %v0) #0 {
%p = shufflevector <128 x i8> %v0, <128 x i8> undef, <128 x i32> <i32 43, i32 44, i32 45, i32 46, i32 47, i32 48, i32 49, i32 50, i32 51, i32 52, i32 53, i32 54, i32 55, i32 56, i32 57, i32 58, i32 59, i32 60, i32 61, i32 62, i32 63, i32 64, i32 65, i32 66, i32 67, i32 68, i32 69, i32 70, i32 71, i32 72, i32 73, i32 74, i32 75, i32 76, i32 77, i32 78, i32 79, i32 80, i32 81, i32 82, i32 83, i32 84, i32 85, i32 86, i32 87, i32 88, i32 89, i32 90, i32 91, i32 92, i32 93, i32 94, i32 95, i32 96, i32 97, i32 98, i32 99, i32 100, i32 101, i32 102, i32 103, i32 104, i32 105, i32 106, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef>
ret <128 x i8> %p
}
; CHECK-LABEL: test_002c
; CHECK: [[R002c:r[0-9]+]] = #44
; CHECK: valign(v1,v0,[[R002c]])
define <128 x i8> @test_002c(<128 x i8> %v0) #0 {
%p = shufflevector <128 x i8> %v0, <128 x i8> undef, <128 x i32> <i32 44, i32 45, i32 46, i32 47, i32 48, i32 49, i32 50, i32 51, i32 52, i32 53, i32 54, i32 55, i32 56, i32 57, i32 58, i32 59, i32 60, i32 61, i32 62, i32 63, i32 64, i32 65, i32 66, i32 67, i32 68, i32 69, i32 70, i32 71, i32 72, i32 73, i32 74, i32 75, i32 76, i32 77, i32 78, i32 79, i32 80, i32 81, i32 82, i32 83, i32 84, i32 85, i32 86, i32 87, i32 88, i32 89, i32 90, i32 91, i32 92, i32 93, i32 94, i32 95, i32 96, i32 97, i32 98, i32 99, i32 100, i32 101, i32 102, i32 103, i32 104, i32 105, i32 106, i32 107, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef>
ret <128 x i8> %p
}
; CHECK-LABEL: test_002d
; CHECK: [[R002d:r[0-9]+]] = #45
; CHECK: valign(v1,v0,[[R002d]])
define <128 x i8> @test_002d(<128 x i8> %v0) #0 {
%p = shufflevector <128 x i8> %v0, <128 x i8> undef, <128 x i32> <i32 45, i32 46, i32 47, i32 48, i32 49, i32 50, i32 51, i32 52, i32 53, i32 54, i32 55, i32 56, i32 57, i32 58, i32 59, i32 60, i32 61, i32 62, i32 63, i32 64, i32 65, i32 66, i32 67, i32 68, i32 69, i32 70, i32 71, i32 72, i32 73, i32 74, i32 75, i32 76, i32 77, i32 78, i32 79, i32 80, i32 81, i32 82, i32 83, i32 84, i32 85, i32 86, i32 87, i32 88, i32 89, i32 90, i32 91, i32 92, i32 93, i32 94, i32 95, i32 96, i32 97, i32 98, i32 99, i32 100, i32 101, i32 102, i32 103, i32 104, i32 105, i32 106, i32 107, i32 108, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef>
ret <128 x i8> %p
}
; CHECK-LABEL: test_002e
; CHECK: [[R002e:r[0-9]+]] = #46
; CHECK: valign(v1,v0,[[R002e]])
define <128 x i8> @test_002e(<128 x i8> %v0) #0 {
%p = shufflevector <128 x i8> %v0, <128 x i8> undef, <128 x i32> <i32 46, i32 47, i32 48, i32 49, i32 50, i32 51, i32 52, i32 53, i32 54, i32 55, i32 56, i32 57, i32 58, i32 59, i32 60, i32 61, i32 62, i32 63, i32 64, i32 65, i32 66, i32 67, i32 68, i32 69, i32 70, i32 71, i32 72, i32 73, i32 74, i32 75, i32 76, i32 77, i32 78, i32 79, i32 80, i32 81, i32 82, i32 83, i32 84, i32 85, i32 86, i32 87, i32 88, i32 89, i32 90, i32 91, i32 92, i32 93, i32 94, i32 95, i32 96, i32 97, i32 98, i32 99, i32 100, i32 101, i32 102, i32 103, i32 104, i32 105, i32 106, i32 107, i32 108, i32 109, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef>
ret <128 x i8> %p
}
; CHECK-LABEL: test_002f
; CHECK: [[R002f:r[0-9]+]] = #47
; CHECK: valign(v1,v0,[[R002f]])
define <128 x i8> @test_002f(<128 x i8> %v0) #0 {
%p = shufflevector <128 x i8> %v0, <128 x i8> undef, <128 x i32> <i32 47, i32 48, i32 49, i32 50, i32 51, i32 52, i32 53, i32 54, i32 55, i32 56, i32 57, i32 58, i32 59, i32 60, i32 61, i32 62, i32 63, i32 64, i32 65, i32 66, i32 67, i32 68, i32 69, i32 70, i32 71, i32 72, i32 73, i32 74, i32 75, i32 76, i32 77, i32 78, i32 79, i32 80, i32 81, i32 82, i32 83, i32 84, i32 85, i32 86, i32 87, i32 88, i32 89, i32 90, i32 91, i32 92, i32 93, i32 94, i32 95, i32 96, i32 97, i32 98, i32 99, i32 100, i32 101, i32 102, i32 103, i32 104, i32 105, i32 106, i32 107, i32 108, i32 109, i32 110, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef>
ret <128 x i8> %p
}
; CHECK-LABEL: test_0030
; CHECK: [[R0030:r[0-9]+]] = #48
; CHECK: valign(v1,v0,[[R0030]])
define <128 x i8> @test_0030(<128 x i8> %v0) #0 {
%p = shufflevector <128 x i8> %v0, <128 x i8> undef, <128 x i32> <i32 48, i32 49, i32 50, i32 51, i32 52, i32 53, i32 54, i32 55, i32 56, i32 57, i32 58, i32 59, i32 60, i32 61, i32 62, i32 63, i32 64, i32 65, i32 66, i32 67, i32 68, i32 69, i32 70, i32 71, i32 72, i32 73, i32 74, i32 75, i32 76, i32 77, i32 78, i32 79, i32 80, i32 81, i32 82, i32 83, i32 84, i32 85, i32 86, i32 87, i32 88, i32 89, i32 90, i32 91, i32 92, i32 93, i32 94, i32 95, i32 96, i32 97, i32 98, i32 99, i32 100, i32 101, i32 102, i32 103, i32 104, i32 105, i32 106, i32 107, i32 108, i32 109, i32 110, i32 111, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef>
ret <128 x i8> %p
}
; CHECK-LABEL: test_0031
; CHECK: [[R0031:r[0-9]+]] = #49
; CHECK: valign(v1,v0,[[R0031]])
define <128 x i8> @test_0031(<128 x i8> %v0) #0 {
%p = shufflevector <128 x i8> %v0, <128 x i8> undef, <128 x i32> <i32 49, i32 50, i32 51, i32 52, i32 53, i32 54, i32 55, i32 56, i32 57, i32 58, i32 59, i32 60, i32 61, i32 62, i32 63, i32 64, i32 65, i32 66, i32 67, i32 68, i32 69, i32 70, i32 71, i32 72, i32 73, i32 74, i32 75, i32 76, i32 77, i32 78, i32 79, i32 80, i32 81, i32 82, i32 83, i32 84, i32 85, i32 86, i32 87, i32 88, i32 89, i32 90, i32 91, i32 92, i32 93, i32 94, i32 95, i32 96, i32 97, i32 98, i32 99, i32 100, i32 101, i32 102, i32 103, i32 104, i32 105, i32 106, i32 107, i32 108, i32 109, i32 110, i32 111, i32 112, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef>
ret <128 x i8> %p
}
; CHECK-LABEL: test_0032
; CHECK: [[R0032:r[0-9]+]] = #50
; CHECK: valign(v1,v0,[[R0032]])
define <128 x i8> @test_0032(<128 x i8> %v0) #0 {
%p = shufflevector <128 x i8> %v0, <128 x i8> undef, <128 x i32> <i32 50, i32 51, i32 52, i32 53, i32 54, i32 55, i32 56, i32 57, i32 58, i32 59, i32 60, i32 61, i32 62, i32 63, i32 64, i32 65, i32 66, i32 67, i32 68, i32 69, i32 70, i32 71, i32 72, i32 73, i32 74, i32 75, i32 76, i32 77, i32 78, i32 79, i32 80, i32 81, i32 82, i32 83, i32 84, i32 85, i32 86, i32 87, i32 88, i32 89, i32 90, i32 91, i32 92, i32 93, i32 94, i32 95, i32 96, i32 97, i32 98, i32 99, i32 100, i32 101, i32 102, i32 103, i32 104, i32 105, i32 106, i32 107, i32 108, i32 109, i32 110, i32 111, i32 112, i32 113, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef>
ret <128 x i8> %p
}
; CHECK-LABEL: test_0033
; CHECK: [[R0033:r[0-9]+]] = #51
; CHECK: valign(v1,v0,[[R0033]])
define <128 x i8> @test_0033(<128 x i8> %v0) #0 {
%p = shufflevector <128 x i8> %v0, <128 x i8> undef, <128 x i32> <i32 51, i32 52, i32 53, i32 54, i32 55, i32 56, i32 57, i32 58, i32 59, i32 60, i32 61, i32 62, i32 63, i32 64, i32 65, i32 66, i32 67, i32 68, i32 69, i32 70, i32 71, i32 72, i32 73, i32 74, i32 75, i32 76, i32 77, i32 78, i32 79, i32 80, i32 81, i32 82, i32 83, i32 84, i32 85, i32 86, i32 87, i32 88, i32 89, i32 90, i32 91, i32 92, i32 93, i32 94, i32 95, i32 96, i32 97, i32 98, i32 99, i32 100, i32 101, i32 102, i32 103, i32 104, i32 105, i32 106, i32 107, i32 108, i32 109, i32 110, i32 111, i32 112, i32 113, i32 114, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef>
ret <128 x i8> %p
}
; CHECK-LABEL: test_0034
; CHECK: [[R0034:r[0-9]+]] = #52
; CHECK: valign(v1,v0,[[R0034]])
define <128 x i8> @test_0034(<128 x i8> %v0) #0 {
%p = shufflevector <128 x i8> %v0, <128 x i8> undef, <128 x i32> <i32 52, i32 53, i32 54, i32 55, i32 56, i32 57, i32 58, i32 59, i32 60, i32 61, i32 62, i32 63, i32 64, i32 65, i32 66, i32 67, i32 68, i32 69, i32 70, i32 71, i32 72, i32 73, i32 74, i32 75, i32 76, i32 77, i32 78, i32 79, i32 80, i32 81, i32 82, i32 83, i32 84, i32 85, i32 86, i32 87, i32 88, i32 89, i32 90, i32 91, i32 92, i32 93, i32 94, i32 95, i32 96, i32 97, i32 98, i32 99, i32 100, i32 101, i32 102, i32 103, i32 104, i32 105, i32 106, i32 107, i32 108, i32 109, i32 110, i32 111, i32 112, i32 113, i32 114, i32 115, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef>
ret <128 x i8> %p
}
; CHECK-LABEL: test_0035
; CHECK: [[R0035:r[0-9]+]] = #53
; CHECK: valign(v1,v0,[[R0035]])
define <128 x i8> @test_0035(<128 x i8> %v0) #0 {
%p = shufflevector <128 x i8> %v0, <128 x i8> undef, <128 x i32> <i32 53, i32 54, i32 55, i32 56, i32 57, i32 58, i32 59, i32 60, i32 61, i32 62, i32 63, i32 64, i32 65, i32 66, i32 67, i32 68, i32 69, i32 70, i32 71, i32 72, i32 73, i32 74, i32 75, i32 76, i32 77, i32 78, i32 79, i32 80, i32 81, i32 82, i32 83, i32 84, i32 85, i32 86, i32 87, i32 88, i32 89, i32 90, i32 91, i32 92, i32 93, i32 94, i32 95, i32 96, i32 97, i32 98, i32 99, i32 100, i32 101, i32 102, i32 103, i32 104, i32 105, i32 106, i32 107, i32 108, i32 109, i32 110, i32 111, i32 112, i32 113, i32 114, i32 115, i32 116, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef>
ret <128 x i8> %p
}
; CHECK-LABEL: test_0036
; CHECK: [[R0036:r[0-9]+]] = #54
; CHECK: valign(v1,v0,[[R0036]])
define <128 x i8> @test_0036(<128 x i8> %v0) #0 {
%p = shufflevector <128 x i8> %v0, <128 x i8> undef, <128 x i32> <i32 54, i32 55, i32 56, i32 57, i32 58, i32 59, i32 60, i32 61, i32 62, i32 63, i32 64, i32 65, i32 66, i32 67, i32 68, i32 69, i32 70, i32 71, i32 72, i32 73, i32 74, i32 75, i32 76, i32 77, i32 78, i32 79, i32 80, i32 81, i32 82, i32 83, i32 84, i32 85, i32 86, i32 87, i32 88, i32 89, i32 90, i32 91, i32 92, i32 93, i32 94, i32 95, i32 96, i32 97, i32 98, i32 99, i32 100, i32 101, i32 102, i32 103, i32 104, i32 105, i32 106, i32 107, i32 108, i32 109, i32 110, i32 111, i32 112, i32 113, i32 114, i32 115, i32 116, i32 117, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef>
ret <128 x i8> %p
}
; CHECK-LABEL: test_0037
; CHECK: [[R0037:r[0-9]+]] = #55
; CHECK: valign(v1,v0,[[R0037]])
define <128 x i8> @test_0037(<128 x i8> %v0) #0 {
%p = shufflevector <128 x i8> %v0, <128 x i8> undef, <128 x i32> <i32 55, i32 56, i32 57, i32 58, i32 59, i32 60, i32 61, i32 62, i32 63, i32 64, i32 65, i32 66, i32 67, i32 68, i32 69, i32 70, i32 71, i32 72, i32 73, i32 74, i32 75, i32 76, i32 77, i32 78, i32 79, i32 80, i32 81, i32 82, i32 83, i32 84, i32 85, i32 86, i32 87, i32 88, i32 89, i32 90, i32 91, i32 92, i32 93, i32 94, i32 95, i32 96, i32 97, i32 98, i32 99, i32 100, i32 101, i32 102, i32 103, i32 104, i32 105, i32 106, i32 107, i32 108, i32 109, i32 110, i32 111, i32 112, i32 113, i32 114, i32 115, i32 116, i32 117, i32 118, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef>
ret <128 x i8> %p
}
; CHECK-LABEL: test_0038
; CHECK: [[R0038:r[0-9]+]] = #56
; CHECK: valign(v1,v0,[[R0038]])
define <128 x i8> @test_0038(<128 x i8> %v0) #0 {
%p = shufflevector <128 x i8> %v0, <128 x i8> undef, <128 x i32> <i32 56, i32 57, i32 58, i32 59, i32 60, i32 61, i32 62, i32 63, i32 64, i32 65, i32 66, i32 67, i32 68, i32 69, i32 70, i32 71, i32 72, i32 73, i32 74, i32 75, i32 76, i32 77, i32 78, i32 79, i32 80, i32 81, i32 82, i32 83, i32 84, i32 85, i32 86, i32 87, i32 88, i32 89, i32 90, i32 91, i32 92, i32 93, i32 94, i32 95, i32 96, i32 97, i32 98, i32 99, i32 100, i32 101, i32 102, i32 103, i32 104, i32 105, i32 106, i32 107, i32 108, i32 109, i32 110, i32 111, i32 112, i32 113, i32 114, i32 115, i32 116, i32 117, i32 118, i32 119, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef>
ret <128 x i8> %p
}
; CHECK-LABEL: test_0039
; CHECK: [[R0039:r[0-9]+]] = #57
; CHECK: valign(v1,v0,[[R0039]])
define <128 x i8> @test_0039(<128 x i8> %v0) #0 {
%p = shufflevector <128 x i8> %v0, <128 x i8> undef, <128 x i32> <i32 57, i32 58, i32 59, i32 60, i32 61, i32 62, i32 63, i32 64, i32 65, i32 66, i32 67, i32 68, i32 69, i32 70, i32 71, i32 72, i32 73, i32 74, i32 75, i32 76, i32 77, i32 78, i32 79, i32 80, i32 81, i32 82, i32 83, i32 84, i32 85, i32 86, i32 87, i32 88, i32 89, i32 90, i32 91, i32 92, i32 93, i32 94, i32 95, i32 96, i32 97, i32 98, i32 99, i32 100, i32 101, i32 102, i32 103, i32 104, i32 105, i32 106, i32 107, i32 108, i32 109, i32 110, i32 111, i32 112, i32 113, i32 114, i32 115, i32 116, i32 117, i32 118, i32 119, i32 120, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef>
ret <128 x i8> %p
}
; CHECK-LABEL: test_003a
; CHECK: [[R003a:r[0-9]+]] = #58
; CHECK: valign(v1,v0,[[R003a]])
define <128 x i8> @test_003a(<128 x i8> %v0) #0 {
%p = shufflevector <128 x i8> %v0, <128 x i8> undef, <128 x i32> <i32 58, i32 59, i32 60, i32 61, i32 62, i32 63, i32 64, i32 65, i32 66, i32 67, i32 68, i32 69, i32 70, i32 71, i32 72, i32 73, i32 74, i32 75, i32 76, i32 77, i32 78, i32 79, i32 80, i32 81, i32 82, i32 83, i32 84, i32 85, i32 86, i32 87, i32 88, i32 89, i32 90, i32 91, i32 92, i32 93, i32 94, i32 95, i32 96, i32 97, i32 98, i32 99, i32 100, i32 101, i32 102, i32 103, i32 104, i32 105, i32 106, i32 107, i32 108, i32 109, i32 110, i32 111, i32 112, i32 113, i32 114, i32 115, i32 116, i32 117, i32 118, i32 119, i32 120, i32 121, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef>
ret <128 x i8> %p
}
; CHECK-LABEL: test_003b
; CHECK: [[R003b:r[0-9]+]] = #59
; CHECK: valign(v1,v0,[[R003b]])
define <128 x i8> @test_003b(<128 x i8> %v0) #0 {
%p = shufflevector <128 x i8> %v0, <128 x i8> undef, <128 x i32> <i32 59, i32 60, i32 61, i32 62, i32 63, i32 64, i32 65, i32 66, i32 67, i32 68, i32 69, i32 70, i32 71, i32 72, i32 73, i32 74, i32 75, i32 76, i32 77, i32 78, i32 79, i32 80, i32 81, i32 82, i32 83, i32 84, i32 85, i32 86, i32 87, i32 88, i32 89, i32 90, i32 91, i32 92, i32 93, i32 94, i32 95, i32 96, i32 97, i32 98, i32 99, i32 100, i32 101, i32 102, i32 103, i32 104, i32 105, i32 106, i32 107, i32 108, i32 109, i32 110, i32 111, i32 112, i32 113, i32 114, i32 115, i32 116, i32 117, i32 118, i32 119, i32 120, i32 121, i32 122, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef>
ret <128 x i8> %p
}
; CHECK-LABEL: test_003c
; CHECK: [[R003c:r[0-9]+]] = #60
; CHECK: valign(v1,v0,[[R003c]])
define <128 x i8> @test_003c(<128 x i8> %v0) #0 {
%p = shufflevector <128 x i8> %v0, <128 x i8> undef, <128 x i32> <i32 60, i32 61, i32 62, i32 63, i32 64, i32 65, i32 66, i32 67, i32 68, i32 69, i32 70, i32 71, i32 72, i32 73, i32 74, i32 75, i32 76, i32 77, i32 78, i32 79, i32 80, i32 81, i32 82, i32 83, i32 84, i32 85, i32 86, i32 87, i32 88, i32 89, i32 90, i32 91, i32 92, i32 93, i32 94, i32 95, i32 96, i32 97, i32 98, i32 99, i32 100, i32 101, i32 102, i32 103, i32 104, i32 105, i32 106, i32 107, i32 108, i32 109, i32 110, i32 111, i32 112, i32 113, i32 114, i32 115, i32 116, i32 117, i32 118, i32 119, i32 120, i32 121, i32 122, i32 123, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef>
ret <128 x i8> %p
}
; CHECK-LABEL: test_003d
; CHECK: [[R003d:r[0-9]+]] = #61
; CHECK: valign(v1,v0,[[R003d]])
define <128 x i8> @test_003d(<128 x i8> %v0) #0 {
%p = shufflevector <128 x i8> %v0, <128 x i8> undef, <128 x i32> <i32 61, i32 62, i32 63, i32 64, i32 65, i32 66, i32 67, i32 68, i32 69, i32 70, i32 71, i32 72, i32 73, i32 74, i32 75, i32 76, i32 77, i32 78, i32 79, i32 80, i32 81, i32 82, i32 83, i32 84, i32 85, i32 86, i32 87, i32 88, i32 89, i32 90, i32 91, i32 92, i32 93, i32 94, i32 95, i32 96, i32 97, i32 98, i32 99, i32 100, i32 101, i32 102, i32 103, i32 104, i32 105, i32 106, i32 107, i32 108, i32 109, i32 110, i32 111, i32 112, i32 113, i32 114, i32 115, i32 116, i32 117, i32 118, i32 119, i32 120, i32 121, i32 122, i32 123, i32 124, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef>
ret <128 x i8> %p
}
; CHECK-LABEL: test_003e
; CHECK: [[R003e:r[0-9]+]] = #62
; CHECK: valign(v1,v0,[[R003e]])
define <128 x i8> @test_003e(<128 x i8> %v0) #0 {
%p = shufflevector <128 x i8> %v0, <128 x i8> undef, <128 x i32> <i32 62, i32 63, i32 64, i32 65, i32 66, i32 67, i32 68, i32 69, i32 70, i32 71, i32 72, i32 73, i32 74, i32 75, i32 76, i32 77, i32 78, i32 79, i32 80, i32 81, i32 82, i32 83, i32 84, i32 85, i32 86, i32 87, i32 88, i32 89, i32 90, i32 91, i32 92, i32 93, i32 94, i32 95, i32 96, i32 97, i32 98, i32 99, i32 100, i32 101, i32 102, i32 103, i32 104, i32 105, i32 106, i32 107, i32 108, i32 109, i32 110, i32 111, i32 112, i32 113, i32 114, i32 115, i32 116, i32 117, i32 118, i32 119, i32 120, i32 121, i32 122, i32 123, i32 124, i32 125, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef>
ret <128 x i8> %p
}
; CHECK-LABEL: test_003f
; CHECK: [[R003f:r[0-9]+]] = #63
; CHECK: valign(v1,v0,[[R003f]])
define <128 x i8> @test_003f(<128 x i8> %v0) #0 {
%p = shufflevector <128 x i8> %v0, <128 x i8> undef, <128 x i32> <i32 63, i32 64, i32 65, i32 66, i32 67, i32 68, i32 69, i32 70, i32 71, i32 72, i32 73, i32 74, i32 75, i32 76, i32 77, i32 78, i32 79, i32 80, i32 81, i32 82, i32 83, i32 84, i32 85, i32 86, i32 87, i32 88, i32 89, i32 90, i32 91, i32 92, i32 93, i32 94, i32 95, i32 96, i32 97, i32 98, i32 99, i32 100, i32 101, i32 102, i32 103, i32 104, i32 105, i32 106, i32 107, i32 108, i32 109, i32 110, i32 111, i32 112, i32 113, i32 114, i32 115, i32 116, i32 117, i32 118, i32 119, i32 120, i32 121, i32 122, i32 123, i32 124, i32 125, i32 126, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef>
ret <128 x i8> %p
}
attributes #0 = { nounwind readnone "target-cpu"="hexagonv60" "target-features"="+hvx,+hvx-length64b" }

View File

@ -0,0 +1,67 @@
; RUN: llc -march=hexagon < %s | FileCheck %s
; CHECK-LABEL: test_0000
; CHECK: v0.b = vshuffe(v1.b,v0.b)
define <256 x i8> @test_0000(<256 x i8> %v0) #0 {
%p = shufflevector <256 x i8> %v0, <256 x i8> undef, <256 x i32> <i32 0, i32 128, i32 2, i32 130, i32 4, i32 132, i32 6, i32 134, i32 8, i32 136, i32 10, i32 138, i32 12, i32 140, i32 14, i32 142, i32 16, i32 144, i32 18, i32 146, i32 20, i32 148, i32 22, i32 150, i32 24, i32 152, i32 26, i32 154, i32 28, i32 156, i32 30, i32 158, i32 32, i32 160, i32 34, i32 162, i32 36, i32 164, i32 38, i32 166, i32 40, i32 168, i32 42, i32 170, i32 44, i32 172, i32 46, i32 174, i32 48, i32 176, i32 50, i32 178, i32 52, i32 180, i32 54, i32 182, i32 56, i32 184, i32 58, i32 186, i32 60, i32 188, i32 62, i32 190, i32 64, i32 192, i32 66, i32 194, i32 68, i32 196, i32 70, i32 198, i32 72, i32 200, i32 74, i32 202, i32 76, i32 204, i32 78, i32 206, i32 80, i32 208, i32 82, i32 210, i32 84, i32 212, i32 86, i32 214, i32 88, i32 216, i32 90, i32 218, i32 92, i32 220, i32 94, i32 222, i32 96, i32 224, i32 98, i32 226, i32 100, i32 228, i32 102, i32 230, i32 104, i32 232, i32 106, i32 234, i32 108, i32 236, i32 110, i32 238, i32 112, i32 240, i32 114, i32 242, i32 116, i32 244, i32 118, i32 246, i32 120, i32 248, i32 122, i32 250, i32 124, i32 252, i32 126, i32 254, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef>
ret <256 x i8> %p
}
; CHECK-LABEL: test_0001
; CHECK: v0.b = vshuffo(v1.b,v0.b)
define <256 x i8> @test_0001(<256 x i8> %v0) #0 {
%p = shufflevector <256 x i8> %v0, <256 x i8> undef, <256 x i32> <i32 1, i32 129, i32 3, i32 131, i32 5, i32 133, i32 7, i32 135, i32 9, i32 137, i32 11, i32 139, i32 13, i32 141, i32 15, i32 143, i32 17, i32 145, i32 19, i32 147, i32 21, i32 149, i32 23, i32 151, i32 25, i32 153, i32 27, i32 155, i32 29, i32 157, i32 31, i32 159, i32 33, i32 161, i32 35, i32 163, i32 37, i32 165, i32 39, i32 167, i32 41, i32 169, i32 43, i32 171, i32 45, i32 173, i32 47, i32 175, i32 49, i32 177, i32 51, i32 179, i32 53, i32 181, i32 55, i32 183, i32 57, i32 185, i32 59, i32 187, i32 61, i32 189, i32 63, i32 191, i32 65, i32 193, i32 67, i32 195, i32 69, i32 197, i32 71, i32 199, i32 73, i32 201, i32 75, i32 203, i32 77, i32 205, i32 79, i32 207, i32 81, i32 209, i32 83, i32 211, i32 85, i32 213, i32 87, i32 215, i32 89, i32 217, i32 91, i32 219, i32 93, i32 221, i32 95, i32 223, i32 97, i32 225, i32 99, i32 227, i32 101, i32 229, i32 103, i32 231, i32 105, i32 233, i32 107, i32 235, i32 109, i32 237, i32 111, i32 239, i32 113, i32 241, i32 115, i32 243, i32 117, i32 245, i32 119, i32 247, i32 121, i32 249, i32 123, i32 251, i32 125, i32 253, i32 127, i32 255, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef>
ret <256 x i8> %p
}
; CHECK-LABEL: test_0002
; CHECK: v0.h = vshuffe(v1.h,v0.h)
define <256 x i8> @test_0002(<256 x i8> %v0) #0 {
%p = shufflevector <256 x i8> %v0, <256 x i8> undef, <256 x i32> <i32 0, i32 1, i32 128, i32 129, i32 4, i32 5, i32 132, i32 133, i32 8, i32 9, i32 136, i32 137, i32 12, i32 13, i32 140, i32 141, i32 16, i32 17, i32 144, i32 145, i32 20, i32 21, i32 148, i32 149, i32 24, i32 25, i32 152, i32 153, i32 28, i32 29, i32 156, i32 157, i32 32, i32 33, i32 160, i32 161, i32 36, i32 37, i32 164, i32 165, i32 40, i32 41, i32 168, i32 169, i32 44, i32 45, i32 172, i32 173, i32 48, i32 49, i32 176, i32 177, i32 52, i32 53, i32 180, i32 181, i32 56, i32 57, i32 184, i32 185, i32 60, i32 61, i32 188, i32 189, i32 64, i32 65, i32 192, i32 193, i32 68, i32 69, i32 196, i32 197, i32 72, i32 73, i32 200, i32 201, i32 76, i32 77, i32 204, i32 205, i32 80, i32 81, i32 208, i32 209, i32 84, i32 85, i32 212, i32 213, i32 88, i32 89, i32 216, i32 217, i32 92, i32 93, i32 220, i32 221, i32 96, i32 97, i32 224, i32 225, i32 100, i32 101, i32 228, i32 229, i32 104, i32 105, i32 232, i32 233, i32 108, i32 109, i32 236, i32 237, i32 112, i32 113, i32 240, i32 241, i32 116, i32 117, i32 244, i32 245, i32 120, i32 121, i32 248, i32 249, i32 124, i32 125, i32 252, i32 253, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef>
ret <256 x i8> %p
}
; CHECK-LABEL: test_0003
; CHECK: v0.h = vshuffo(v1.h,v0.h)
define <256 x i8> @test_0003(<256 x i8> %v0) #0 {
%p = shufflevector <256 x i8> %v0, <256 x i8> undef, <256 x i32> <i32 2, i32 3, i32 130, i32 131, i32 6, i32 7, i32 134, i32 135, i32 10, i32 11, i32 138, i32 139, i32 14, i32 15, i32 142, i32 143, i32 18, i32 19, i32 146, i32 147, i32 22, i32 23, i32 150, i32 151, i32 26, i32 27, i32 154, i32 155, i32 30, i32 31, i32 158, i32 159, i32 34, i32 35, i32 162, i32 163, i32 38, i32 39, i32 166, i32 167, i32 42, i32 43, i32 170, i32 171, i32 46, i32 47, i32 174, i32 175, i32 50, i32 51, i32 178, i32 179, i32 54, i32 55, i32 182, i32 183, i32 58, i32 59, i32 186, i32 187, i32 62, i32 63, i32 190, i32 191, i32 66, i32 67, i32 194, i32 195, i32 70, i32 71, i32 198, i32 199, i32 74, i32 75, i32 202, i32 203, i32 78, i32 79, i32 206, i32 207, i32 82, i32 83, i32 210, i32 211, i32 86, i32 87, i32 214, i32 215, i32 90, i32 91, i32 218, i32 219, i32 94, i32 95, i32 222, i32 223, i32 98, i32 99, i32 226, i32 227, i32 102, i32 103, i32 230, i32 231, i32 106, i32 107, i32 234, i32 235, i32 110, i32 111, i32 238, i32 239, i32 114, i32 115, i32 242, i32 243, i32 118, i32 119, i32 246, i32 247, i32 122, i32 123, i32 250, i32 251, i32 126, i32 127, i32 254, i32 255, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef>
ret <256 x i8> %p
}
; CHECK-LABEL: test_0004
; CHECK: v0.b = vpacke(v1.h,v0.h)
define <256 x i8> @test_0004(<256 x i8> %v0) #0 {
%p = shufflevector <256 x i8> %v0, <256 x i8> undef, <256 x i32> <i32 0, i32 2, i32 4, i32 6, i32 8, i32 10, i32 12, i32 14, i32 16, i32 18, i32 20, i32 22, i32 24, i32 26, i32 28, i32 30, i32 32, i32 34, i32 36, i32 38, i32 40, i32 42, i32 44, i32 46, i32 48, i32 50, i32 52, i32 54, i32 56, i32 58, i32 60, i32 62, i32 64, i32 66, i32 68, i32 70, i32 72, i32 74, i32 76, i32 78, i32 80, i32 82, i32 84, i32 86, i32 88, i32 90, i32 92, i32 94, i32 96, i32 98, i32 100, i32 102, i32 104, i32 106, i32 108, i32 110, i32 112, i32 114, i32 116, i32 118, i32 120, i32 122, i32 124, i32 126, i32 128, i32 130, i32 132, i32 134, i32 136, i32 138, i32 140, i32 142, i32 144, i32 146, i32 148, i32 150, i32 152, i32 154, i32 156, i32 158, i32 160, i32 162, i32 164, i32 166, i32 168, i32 170, i32 172, i32 174, i32 176, i32 178, i32 180, i32 182, i32 184, i32 186, i32 188, i32 190, i32 192, i32 194, i32 196, i32 198, i32 200, i32 202, i32 204, i32 206, i32 208, i32 210, i32 212, i32 214, i32 216, i32 218, i32 220, i32 222, i32 224, i32 226, i32 228, i32 230, i32 232, i32 234, i32 236, i32 238, i32 240, i32 242, i32 244, i32 246, i32 248, i32 250, i32 252, i32 254, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef>
ret <256 x i8> %p
}
; CHECK-LABEL: test_0005
; CHECK: v0.b = vpacko(v1.h,v0.h)
define <256 x i8> @test_0005(<256 x i8> %v0) #0 {
%p = shufflevector <256 x i8> %v0, <256 x i8> undef, <256 x i32> <i32 1, i32 3, i32 5, i32 7, i32 9, i32 11, i32 13, i32 15, i32 17, i32 19, i32 21, i32 23, i32 25, i32 27, i32 29, i32 31, i32 33, i32 35, i32 37, i32 39, i32 41, i32 43, i32 45, i32 47, i32 49, i32 51, i32 53, i32 55, i32 57, i32 59, i32 61, i32 63, i32 65, i32 67, i32 69, i32 71, i32 73, i32 75, i32 77, i32 79, i32 81, i32 83, i32 85, i32 87, i32 89, i32 91, i32 93, i32 95, i32 97, i32 99, i32 101, i32 103, i32 105, i32 107, i32 109, i32 111, i32 113, i32 115, i32 117, i32 119, i32 121, i32 123, i32 125, i32 127, i32 129, i32 131, i32 133, i32 135, i32 137, i32 139, i32 141, i32 143, i32 145, i32 147, i32 149, i32 151, i32 153, i32 155, i32 157, i32 159, i32 161, i32 163, i32 165, i32 167, i32 169, i32 171, i32 173, i32 175, i32 177, i32 179, i32 181, i32 183, i32 185, i32 187, i32 189, i32 191, i32 193, i32 195, i32 197, i32 199, i32 201, i32 203, i32 205, i32 207, i32 209, i32 211, i32 213, i32 215, i32 217, i32 219, i32 221, i32 223, i32 225, i32 227, i32 229, i32 231, i32 233, i32 235, i32 237, i32 239, i32 241, i32 243, i32 245, i32 247, i32 249, i32 251, i32 253, i32 255, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef>
ret <256 x i8> %p
}
; CHECK-LABEL: test_0006
; CHECK: v0.h = vpacke(v1.w,v0.w)
define <256 x i8> @test_0006(<256 x i8> %v0) #0 {
%p = shufflevector <256 x i8> %v0, <256 x i8> undef, <256 x i32> <i32 0, i32 1, i32 4, i32 5, i32 8, i32 9, i32 12, i32 13, i32 16, i32 17, i32 20, i32 21, i32 24, i32 25, i32 28, i32 29, i32 32, i32 33, i32 36, i32 37, i32 40, i32 41, i32 44, i32 45, i32 48, i32 49, i32 52, i32 53, i32 56, i32 57, i32 60, i32 61, i32 64, i32 65, i32 68, i32 69, i32 72, i32 73, i32 76, i32 77, i32 80, i32 81, i32 84, i32 85, i32 88, i32 89, i32 92, i32 93, i32 96, i32 97, i32 100, i32 101, i32 104, i32 105, i32 108, i32 109, i32 112, i32 113, i32 116, i32 117, i32 120, i32 121, i32 124, i32 125, i32 128, i32 129, i32 132, i32 133, i32 136, i32 137, i32 140, i32 141, i32 144, i32 145, i32 148, i32 149, i32 152, i32 153, i32 156, i32 157, i32 160, i32 161, i32 164, i32 165, i32 168, i32 169, i32 172, i32 173, i32 176, i32 177, i32 180, i32 181, i32 184, i32 185, i32 188, i32 189, i32 192, i32 193, i32 196, i32 197, i32 200, i32 201, i32 204, i32 205, i32 208, i32 209, i32 212, i32 213, i32 216, i32 217, i32 220, i32 221, i32 224, i32 225, i32 228, i32 229, i32 232, i32 233, i32 236, i32 237, i32 240, i32 241, i32 244, i32 245, i32 248, i32 249, i32 252, i32 253, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef>
ret <256 x i8> %p
}
; CHECK-LABEL: test_0007
; CHECK: v0.h = vpacko(v1.w,v0.w)
define <256 x i8> @test_0007(<256 x i8> %v0) #0 {
%p = shufflevector <256 x i8> %v0, <256 x i8> undef, <256 x i32> <i32 2, i32 3, i32 6, i32 7, i32 10, i32 11, i32 14, i32 15, i32 18, i32 19, i32 22, i32 23, i32 26, i32 27, i32 30, i32 31, i32 34, i32 35, i32 38, i32 39, i32 42, i32 43, i32 46, i32 47, i32 50, i32 51, i32 54, i32 55, i32 58, i32 59, i32 62, i32 63, i32 66, i32 67, i32 70, i32 71, i32 74, i32 75, i32 78, i32 79, i32 82, i32 83, i32 86, i32 87, i32 90, i32 91, i32 94, i32 95, i32 98, i32 99, i32 102, i32 103, i32 106, i32 107, i32 110, i32 111, i32 114, i32 115, i32 118, i32 119, i32 122, i32 123, i32 126, i32 127, i32 130, i32 131, i32 134, i32 135, i32 138, i32 139, i32 142, i32 143, i32 146, i32 147, i32 150, i32 151, i32 154, i32 155, i32 158, i32 159, i32 162, i32 163, i32 166, i32 167, i32 170, i32 171, i32 174, i32 175, i32 178, i32 179, i32 182, i32 183, i32 186, i32 187, i32 190, i32 191, i32 194, i32 195, i32 198, i32 199, i32 202, i32 203, i32 206, i32 207, i32 210, i32 211, i32 214, i32 215, i32 218, i32 219, i32 222, i32 223, i32 226, i32 227, i32 230, i32 231, i32 234, i32 235, i32 238, i32 239, i32 242, i32 243, i32 246, i32 247, i32 250, i32 251, i32 254, i32 255, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef>
ret <256 x i8> %p
}
; CHECK-LABEL: test_0008
; CHECK: v0.b = vdeale(v1.b,v0.b)
define <256 x i8> @test_0008(<256 x i8> %v0) #0 {
%p = shufflevector <256 x i8> %v0, <256 x i8> undef, <256 x i32> <i32 0, i32 4, i32 8, i32 12, i32 16, i32 20, i32 24, i32 28, i32 32, i32 36, i32 40, i32 44, i32 48, i32 52, i32 56, i32 60, i32 64, i32 68, i32 72, i32 76, i32 80, i32 84, i32 88, i32 92, i32 96, i32 100, i32 104, i32 108, i32 112, i32 116, i32 120, i32 124, i32 2, i32 6, i32 10, i32 14, i32 18, i32 22, i32 26, i32 30, i32 34, i32 38, i32 42, i32 46, i32 50, i32 54, i32 58, i32 62, i32 66, i32 70, i32 74, i32 78, i32 82, i32 86, i32 90, i32 94, i32 98, i32 102, i32 106, i32 110, i32 114, i32 118, i32 122, i32 126, i32 128, i32 132, i32 136, i32 140, i32 144, i32 148, i32 152, i32 156, i32 160, i32 164, i32 168, i32 172, i32 176, i32 180, i32 184, i32 188, i32 192, i32 196, i32 200, i32 204, i32 208, i32 212, i32 216, i32 220, i32 224, i32 228, i32 232, i32 236, i32 240, i32 244, i32 248, i32 252, i32 130, i32 134, i32 138, i32 142, i32 146, i32 150, i32 154, i32 158, i32 162, i32 166, i32 170, i32 174, i32 178, i32 182, i32 186, i32 190, i32 194, i32 198, i32 202, i32 206, i32 210, i32 214, i32 218, i32 222, i32 226, i32 230, i32 234, i32 238, i32 242, i32 246, i32 250, i32 254, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef>
ret <256 x i8> %p
}
attributes #0 = { nounwind readnone "target-cpu"="hexagonv60" "target-features"="+hvx,+hvx-length128b" }

View File

@ -0,0 +1,67 @@
; RUN: llc -march=hexagon < %s | FileCheck %s
; CHECK-LABEL: test_0000
; CHECK: v0.b = vshuffe(v1.b,v0.b)
define <128 x i8> @test_0000(<128 x i8> %v0) #0 {
%p = shufflevector <128 x i8> %v0, <128 x i8> undef, <128 x i32> <i32 0, i32 64, i32 2, i32 66, i32 4, i32 68, i32 6, i32 70, i32 8, i32 72, i32 10, i32 74, i32 12, i32 76, i32 14, i32 78, i32 16, i32 80, i32 18, i32 82, i32 20, i32 84, i32 22, i32 86, i32 24, i32 88, i32 26, i32 90, i32 28, i32 92, i32 30, i32 94, i32 32, i32 96, i32 34, i32 98, i32 36, i32 100, i32 38, i32 102, i32 40, i32 104, i32 42, i32 106, i32 44, i32 108, i32 46, i32 110, i32 48, i32 112, i32 50, i32 114, i32 52, i32 116, i32 54, i32 118, i32 56, i32 120, i32 58, i32 122, i32 60, i32 124, i32 62, i32 126, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef>
ret <128 x i8> %p
}
; CHECK-LABEL: test_0001
; CHECK: v0.b = vshuffo(v1.b,v0.b)
define <128 x i8> @test_0001(<128 x i8> %v0) #0 {
%p = shufflevector <128 x i8> %v0, <128 x i8> undef, <128 x i32> <i32 1, i32 65, i32 3, i32 67, i32 5, i32 69, i32 7, i32 71, i32 9, i32 73, i32 11, i32 75, i32 13, i32 77, i32 15, i32 79, i32 17, i32 81, i32 19, i32 83, i32 21, i32 85, i32 23, i32 87, i32 25, i32 89, i32 27, i32 91, i32 29, i32 93, i32 31, i32 95, i32 33, i32 97, i32 35, i32 99, i32 37, i32 101, i32 39, i32 103, i32 41, i32 105, i32 43, i32 107, i32 45, i32 109, i32 47, i32 111, i32 49, i32 113, i32 51, i32 115, i32 53, i32 117, i32 55, i32 119, i32 57, i32 121, i32 59, i32 123, i32 61, i32 125, i32 63, i32 127, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef>
ret <128 x i8> %p
}
; CHECK-LABEL: test_0002
; CHECK: v0.h = vshuffe(v1.h,v0.h)
define <128 x i8> @test_0002(<128 x i8> %v0) #0 {
%p = shufflevector <128 x i8> %v0, <128 x i8> undef, <128 x i32> <i32 0, i32 1, i32 64, i32 65, i32 4, i32 5, i32 68, i32 69, i32 8, i32 9, i32 72, i32 73, i32 12, i32 13, i32 76, i32 77, i32 16, i32 17, i32 80, i32 81, i32 20, i32 21, i32 84, i32 85, i32 24, i32 25, i32 88, i32 89, i32 28, i32 29, i32 92, i32 93, i32 32, i32 33, i32 96, i32 97, i32 36, i32 37, i32 100, i32 101, i32 40, i32 41, i32 104, i32 105, i32 44, i32 45, i32 108, i32 109, i32 48, i32 49, i32 112, i32 113, i32 52, i32 53, i32 116, i32 117, i32 56, i32 57, i32 120, i32 121, i32 60, i32 61, i32 124, i32 125, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef>
ret <128 x i8> %p
}
; CHECK-LABEL: test_0003
; CHECK: v0.h = vshuffo(v1.h,v0.h)
define <128 x i8> @test_0003(<128 x i8> %v0) #0 {
%p = shufflevector <128 x i8> %v0, <128 x i8> undef, <128 x i32> <i32 2, i32 3, i32 66, i32 67, i32 6, i32 7, i32 70, i32 71, i32 10, i32 11, i32 74, i32 75, i32 14, i32 15, i32 78, i32 79, i32 18, i32 19, i32 82, i32 83, i32 22, i32 23, i32 86, i32 87, i32 26, i32 27, i32 90, i32 91, i32 30, i32 31, i32 94, i32 95, i32 34, i32 35, i32 98, i32 99, i32 38, i32 39, i32 102, i32 103, i32 42, i32 43, i32 106, i32 107, i32 46, i32 47, i32 110, i32 111, i32 50, i32 51, i32 114, i32 115, i32 54, i32 55, i32 118, i32 119, i32 58, i32 59, i32 122, i32 123, i32 62, i32 63, i32 126, i32 127, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef>
ret <128 x i8> %p
}
; CHECK-LABEL: test_0004
; CHECK: v0.b = vpacke(v1.h,v0.h)
define <128 x i8> @test_0004(<128 x i8> %v0) #0 {
%p = shufflevector <128 x i8> %v0, <128 x i8> undef, <128 x i32> <i32 0, i32 2, i32 4, i32 6, i32 8, i32 10, i32 12, i32 14, i32 16, i32 18, i32 20, i32 22, i32 24, i32 26, i32 28, i32 30, i32 32, i32 34, i32 36, i32 38, i32 40, i32 42, i32 44, i32 46, i32 48, i32 50, i32 52, i32 54, i32 56, i32 58, i32 60, i32 62, i32 64, i32 66, i32 68, i32 70, i32 72, i32 74, i32 76, i32 78, i32 80, i32 82, i32 84, i32 86, i32 88, i32 90, i32 92, i32 94, i32 96, i32 98, i32 100, i32 102, i32 104, i32 106, i32 108, i32 110, i32 112, i32 114, i32 116, i32 118, i32 120, i32 122, i32 124, i32 126, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef>
ret <128 x i8> %p
}
; CHECK-LABEL: test_0005
; CHECK: v0.b = vpacko(v1.h,v0.h)
define <128 x i8> @test_0005(<128 x i8> %v0) #0 {
%p = shufflevector <128 x i8> %v0, <128 x i8> undef, <128 x i32> <i32 1, i32 3, i32 5, i32 7, i32 9, i32 11, i32 13, i32 15, i32 17, i32 19, i32 21, i32 23, i32 25, i32 27, i32 29, i32 31, i32 33, i32 35, i32 37, i32 39, i32 41, i32 43, i32 45, i32 47, i32 49, i32 51, i32 53, i32 55, i32 57, i32 59, i32 61, i32 63, i32 65, i32 67, i32 69, i32 71, i32 73, i32 75, i32 77, i32 79, i32 81, i32 83, i32 85, i32 87, i32 89, i32 91, i32 93, i32 95, i32 97, i32 99, i32 101, i32 103, i32 105, i32 107, i32 109, i32 111, i32 113, i32 115, i32 117, i32 119, i32 121, i32 123, i32 125, i32 127, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef>
ret <128 x i8> %p
}
; CHECK-LABEL: test_0006
; CHECK: v0.h = vpacke(v1.w,v0.w)
define <128 x i8> @test_0006(<128 x i8> %v0) #0 {
%p = shufflevector <128 x i8> %v0, <128 x i8> undef, <128 x i32> <i32 0, i32 1, i32 4, i32 5, i32 8, i32 9, i32 12, i32 13, i32 16, i32 17, i32 20, i32 21, i32 24, i32 25, i32 28, i32 29, i32 32, i32 33, i32 36, i32 37, i32 40, i32 41, i32 44, i32 45, i32 48, i32 49, i32 52, i32 53, i32 56, i32 57, i32 60, i32 61, i32 64, i32 65, i32 68, i32 69, i32 72, i32 73, i32 76, i32 77, i32 80, i32 81, i32 84, i32 85, i32 88, i32 89, i32 92, i32 93, i32 96, i32 97, i32 100, i32 101, i32 104, i32 105, i32 108, i32 109, i32 112, i32 113, i32 116, i32 117, i32 120, i32 121, i32 124, i32 125, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef>
ret <128 x i8> %p
}
; CHECK-LABEL: test_0007
; CHECK: v0.h = vpacko(v1.w,v0.w)
define <128 x i8> @test_0007(<128 x i8> %v0) #0 {
%p = shufflevector <128 x i8> %v0, <128 x i8> undef, <128 x i32> <i32 2, i32 3, i32 6, i32 7, i32 10, i32 11, i32 14, i32 15, i32 18, i32 19, i32 22, i32 23, i32 26, i32 27, i32 30, i32 31, i32 34, i32 35, i32 38, i32 39, i32 42, i32 43, i32 46, i32 47, i32 50, i32 51, i32 54, i32 55, i32 58, i32 59, i32 62, i32 63, i32 66, i32 67, i32 70, i32 71, i32 74, i32 75, i32 78, i32 79, i32 82, i32 83, i32 86, i32 87, i32 90, i32 91, i32 94, i32 95, i32 98, i32 99, i32 102, i32 103, i32 106, i32 107, i32 110, i32 111, i32 114, i32 115, i32 118, i32 119, i32 122, i32 123, i32 126, i32 127, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef>
ret <128 x i8> %p
}
; CHECK-LABEL: test_0008
; CHECK: v0.b = vdeale(v1.b,v0.b)
define <128 x i8> @test_0008(<128 x i8> %v0) #0 {
%p = shufflevector <128 x i8> %v0, <128 x i8> undef, <128 x i32> <i32 0, i32 4, i32 8, i32 12, i32 16, i32 20, i32 24, i32 28, i32 32, i32 36, i32 40, i32 44, i32 48, i32 52, i32 56, i32 60, i32 2, i32 6, i32 10, i32 14, i32 18, i32 22, i32 26, i32 30, i32 34, i32 38, i32 42, i32 46, i32 50, i32 54, i32 58, i32 62, i32 64, i32 68, i32 72, i32 76, i32 80, i32 84, i32 88, i32 92, i32 96, i32 100, i32 104, i32 108, i32 112, i32 116, i32 120, i32 124, i32 66, i32 70, i32 74, i32 78, i32 82, i32 86, i32 90, i32 94, i32 98, i32 102, i32 106, i32 110, i32 114, i32 118, i32 122, i32 126, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef>
ret <128 x i8> %p
}
attributes #0 = { nounwind readnone "target-cpu"="hexagonv60" "target-features"="+hvx,+hvx-length64b" }

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,519 @@
; RUN: llc -march=hexagon < %s | FileCheck %s
; Check the individual vdeal shuffles for all 64 controls.
; Note: for shuffles with a single 2x2 transpose, vshuff is generated instead
; of vdeal. (For such cases vdeal and vshuff are equivalent.)
; This is an identity shuffle: there should not be any shuffling code emitted.
; CHECK-LABEL: vdeal_00:
; CHECK-NOT: vdeal(
define <128 x i8> @vdeal_00(<128 x i8> %v0, <128 x i8> %v1) #0 {
%p = shufflevector <128 x i8> %v0, <128 x i8> undef, <128 x i32> < i32 0, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7, i32 8, i32 9, i32 10, i32 11, i32 12, i32 13, i32 14, i32 15, i32 16, i32 17, i32 18, i32 19, i32 20, i32 21, i32 22, i32 23, i32 24, i32 25, i32 26, i32 27, i32 28, i32 29, i32 30, i32 31, i32 32, i32 33, i32 34, i32 35, i32 36, i32 37, i32 38, i32 39, i32 40, i32 41, i32 42, i32 43, i32 44, i32 45, i32 46, i32 47, i32 48, i32 49, i32 50, i32 51, i32 52, i32 53, i32 54, i32 55, i32 56, i32 57, i32 58, i32 59, i32 60, i32 61, i32 62, i32 63, i32 64, i32 65, i32 66, i32 67, i32 68, i32 69, i32 70, i32 71, i32 72, i32 73, i32 74, i32 75, i32 76, i32 77, i32 78, i32 79, i32 80, i32 81, i32 82, i32 83, i32 84, i32 85, i32 86, i32 87, i32 88, i32 89, i32 90, i32 91, i32 92, i32 93, i32 94, i32 95, i32 96, i32 97, i32 98, i32 99, i32 100, i32 101, i32 102, i32 103, i32 104, i32 105, i32 106, i32 107, i32 108, i32 109, i32 110, i32 111, i32 112, i32 113, i32 114, i32 115, i32 116, i32 117, i32 118, i32 119, i32 120, i32 121, i32 122, i32 123, i32 124, i32 125, i32 126, i32 127>
ret <128 x i8> %p
}
; CHECK-LABEL: vdeal_01:
; CHECK: [[REG01:r[0-9]+]] = #1
; CHECK: vshuff(v1,v0,[[REG01]])
define <128 x i8> @vdeal_01(<128 x i8> %v0, <128 x i8> %v1) #0 {
%p = shufflevector <128 x i8> %v0, <128 x i8> undef, <128 x i32> < i32 0, i32 64, i32 2, i32 66, i32 4, i32 68, i32 6, i32 70, i32 8, i32 72, i32 10, i32 74, i32 12, i32 76, i32 14, i32 78, i32 16, i32 80, i32 18, i32 82, i32 20, i32 84, i32 22, i32 86, i32 24, i32 88, i32 26, i32 90, i32 28, i32 92, i32 30, i32 94, i32 32, i32 96, i32 34, i32 98, i32 36, i32 100, i32 38, i32 102, i32 40, i32 104, i32 42, i32 106, i32 44, i32 108, i32 46, i32 110, i32 48, i32 112, i32 50, i32 114, i32 52, i32 116, i32 54, i32 118, i32 56, i32 120, i32 58, i32 122, i32 60, i32 124, i32 62, i32 126, i32 1, i32 65, i32 3, i32 67, i32 5, i32 69, i32 7, i32 71, i32 9, i32 73, i32 11, i32 75, i32 13, i32 77, i32 15, i32 79, i32 17, i32 81, i32 19, i32 83, i32 21, i32 85, i32 23, i32 87, i32 25, i32 89, i32 27, i32 91, i32 29, i32 93, i32 31, i32 95, i32 33, i32 97, i32 35, i32 99, i32 37, i32 101, i32 39, i32 103, i32 41, i32 105, i32 43, i32 107, i32 45, i32 109, i32 47, i32 111, i32 49, i32 113, i32 51, i32 115, i32 53, i32 117, i32 55, i32 119, i32 57, i32 121, i32 59, i32 123, i32 61, i32 125, i32 63, i32 127>
ret <128 x i8> %p
}
; CHECK-LABEL: vdeal_02:
; CHECK: [[REG02:r[0-9]+]] = #2
; CHECK: vshuff(v1,v0,[[REG02]])
define <128 x i8> @vdeal_02(<128 x i8> %v0, <128 x i8> %v1) #0 {
%p = shufflevector <128 x i8> %v0, <128 x i8> undef, <128 x i32> < i32 0, i32 1, i32 64, i32 65, i32 4, i32 5, i32 68, i32 69, i32 8, i32 9, i32 72, i32 73, i32 12, i32 13, i32 76, i32 77, i32 16, i32 17, i32 80, i32 81, i32 20, i32 21, i32 84, i32 85, i32 24, i32 25, i32 88, i32 89, i32 28, i32 29, i32 92, i32 93, i32 32, i32 33, i32 96, i32 97, i32 36, i32 37, i32 100, i32 101, i32 40, i32 41, i32 104, i32 105, i32 44, i32 45, i32 108, i32 109, i32 48, i32 49, i32 112, i32 113, i32 52, i32 53, i32 116, i32 117, i32 56, i32 57, i32 120, i32 121, i32 60, i32 61, i32 124, i32 125, i32 2, i32 3, i32 66, i32 67, i32 6, i32 7, i32 70, i32 71, i32 10, i32 11, i32 74, i32 75, i32 14, i32 15, i32 78, i32 79, i32 18, i32 19, i32 82, i32 83, i32 22, i32 23, i32 86, i32 87, i32 26, i32 27, i32 90, i32 91, i32 30, i32 31, i32 94, i32 95, i32 34, i32 35, i32 98, i32 99, i32 38, i32 39, i32 102, i32 103, i32 42, i32 43, i32 106, i32 107, i32 46, i32 47, i32 110, i32 111, i32 50, i32 51, i32 114, i32 115, i32 54, i32 55, i32 118, i32 119, i32 58, i32 59, i32 122, i32 123, i32 62, i32 63, i32 126, i32 127>
ret <128 x i8> %p
}
; CHECK-LABEL: vdeal_03:
; CHECK: [[REG03:r[0-9]+]] = #3
; CHECK: vdeal(v1,v0,[[REG03]])
define <128 x i8> @vdeal_03(<128 x i8> %v0, <128 x i8> %v1) #0 {
%p = shufflevector <128 x i8> %v0, <128 x i8> undef, <128 x i32> < i32 0, i32 2, i32 64, i32 66, i32 4, i32 6, i32 68, i32 70, i32 8, i32 10, i32 72, i32 74, i32 12, i32 14, i32 76, i32 78, i32 16, i32 18, i32 80, i32 82, i32 20, i32 22, i32 84, i32 86, i32 24, i32 26, i32 88, i32 90, i32 28, i32 30, i32 92, i32 94, i32 32, i32 34, i32 96, i32 98, i32 36, i32 38, i32 100, i32 102, i32 40, i32 42, i32 104, i32 106, i32 44, i32 46, i32 108, i32 110, i32 48, i32 50, i32 112, i32 114, i32 52, i32 54, i32 116, i32 118, i32 56, i32 58, i32 120, i32 122, i32 60, i32 62, i32 124, i32 126, i32 1, i32 3, i32 65, i32 67, i32 5, i32 7, i32 69, i32 71, i32 9, i32 11, i32 73, i32 75, i32 13, i32 15, i32 77, i32 79, i32 17, i32 19, i32 81, i32 83, i32 21, i32 23, i32 85, i32 87, i32 25, i32 27, i32 89, i32 91, i32 29, i32 31, i32 93, i32 95, i32 33, i32 35, i32 97, i32 99, i32 37, i32 39, i32 101, i32 103, i32 41, i32 43, i32 105, i32 107, i32 45, i32 47, i32 109, i32 111, i32 49, i32 51, i32 113, i32 115, i32 53, i32 55, i32 117, i32 119, i32 57, i32 59, i32 121, i32 123, i32 61, i32 63, i32 125, i32 127>
ret <128 x i8> %p
}
; CHECK-LABEL: vdeal_04:
; CHECK: [[REG04:r[0-9]+]] = #4
; CHECK: vshuff(v1,v0,[[REG04]])
define <128 x i8> @vdeal_04(<128 x i8> %v0, <128 x i8> %v1) #0 {
%p = shufflevector <128 x i8> %v0, <128 x i8> undef, <128 x i32> < i32 0, i32 1, i32 2, i32 3, i32 64, i32 65, i32 66, i32 67, i32 8, i32 9, i32 10, i32 11, i32 72, i32 73, i32 74, i32 75, i32 16, i32 17, i32 18, i32 19, i32 80, i32 81, i32 82, i32 83, i32 24, i32 25, i32 26, i32 27, i32 88, i32 89, i32 90, i32 91, i32 32, i32 33, i32 34, i32 35, i32 96, i32 97, i32 98, i32 99, i32 40, i32 41, i32 42, i32 43, i32 104, i32 105, i32 106, i32 107, i32 48, i32 49, i32 50, i32 51, i32 112, i32 113, i32 114, i32 115, i32 56, i32 57, i32 58, i32 59, i32 120, i32 121, i32 122, i32 123, i32 4, i32 5, i32 6, i32 7, i32 68, i32 69, i32 70, i32 71, i32 12, i32 13, i32 14, i32 15, i32 76, i32 77, i32 78, i32 79, i32 20, i32 21, i32 22, i32 23, i32 84, i32 85, i32 86, i32 87, i32 28, i32 29, i32 30, i32 31, i32 92, i32 93, i32 94, i32 95, i32 36, i32 37, i32 38, i32 39, i32 100, i32 101, i32 102, i32 103, i32 44, i32 45, i32 46, i32 47, i32 108, i32 109, i32 110, i32 111, i32 52, i32 53, i32 54, i32 55, i32 116, i32 117, i32 118, i32 119, i32 60, i32 61, i32 62, i32 63, i32 124, i32 125, i32 126, i32 127>
ret <128 x i8> %p
}
; CHECK-LABEL: vdeal_05:
; CHECK: [[REG05:r[0-9]+]] = #5
; CHECK: vdeal(v1,v0,[[REG05]])
define <128 x i8> @vdeal_05(<128 x i8> %v0, <128 x i8> %v1) #0 {
%p = shufflevector <128 x i8> %v0, <128 x i8> undef, <128 x i32> < i32 0, i32 4, i32 2, i32 6, i32 64, i32 68, i32 66, i32 70, i32 8, i32 12, i32 10, i32 14, i32 72, i32 76, i32 74, i32 78, i32 16, i32 20, i32 18, i32 22, i32 80, i32 84, i32 82, i32 86, i32 24, i32 28, i32 26, i32 30, i32 88, i32 92, i32 90, i32 94, i32 32, i32 36, i32 34, i32 38, i32 96, i32 100, i32 98, i32 102, i32 40, i32 44, i32 42, i32 46, i32 104, i32 108, i32 106, i32 110, i32 48, i32 52, i32 50, i32 54, i32 112, i32 116, i32 114, i32 118, i32 56, i32 60, i32 58, i32 62, i32 120, i32 124, i32 122, i32 126, i32 1, i32 5, i32 3, i32 7, i32 65, i32 69, i32 67, i32 71, i32 9, i32 13, i32 11, i32 15, i32 73, i32 77, i32 75, i32 79, i32 17, i32 21, i32 19, i32 23, i32 81, i32 85, i32 83, i32 87, i32 25, i32 29, i32 27, i32 31, i32 89, i32 93, i32 91, i32 95, i32 33, i32 37, i32 35, i32 39, i32 97, i32 101, i32 99, i32 103, i32 41, i32 45, i32 43, i32 47, i32 105, i32 109, i32 107, i32 111, i32 49, i32 53, i32 51, i32 55, i32 113, i32 117, i32 115, i32 119, i32 57, i32 61, i32 59, i32 63, i32 121, i32 125, i32 123, i32 127>
ret <128 x i8> %p
}
; CHECK-LABEL: vdeal_06:
; CHECK: [[REG06:r[0-9]+]] = #6
; CHECK: vdeal(v1,v0,[[REG06]])
define <128 x i8> @vdeal_06(<128 x i8> %v0, <128 x i8> %v1) #0 {
%p = shufflevector <128 x i8> %v0, <128 x i8> undef, <128 x i32> < i32 0, i32 1, i32 4, i32 5, i32 64, i32 65, i32 68, i32 69, i32 8, i32 9, i32 12, i32 13, i32 72, i32 73, i32 76, i32 77, i32 16, i32 17, i32 20, i32 21, i32 80, i32 81, i32 84, i32 85, i32 24, i32 25, i32 28, i32 29, i32 88, i32 89, i32 92, i32 93, i32 32, i32 33, i32 36, i32 37, i32 96, i32 97, i32 100, i32 101, i32 40, i32 41, i32 44, i32 45, i32 104, i32 105, i32 108, i32 109, i32 48, i32 49, i32 52, i32 53, i32 112, i32 113, i32 116, i32 117, i32 56, i32 57, i32 60, i32 61, i32 120, i32 121, i32 124, i32 125, i32 2, i32 3, i32 6, i32 7, i32 66, i32 67, i32 70, i32 71, i32 10, i32 11, i32 14, i32 15, i32 74, i32 75, i32 78, i32 79, i32 18, i32 19, i32 22, i32 23, i32 82, i32 83, i32 86, i32 87, i32 26, i32 27, i32 30, i32 31, i32 90, i32 91, i32 94, i32 95, i32 34, i32 35, i32 38, i32 39, i32 98, i32 99, i32 102, i32 103, i32 42, i32 43, i32 46, i32 47, i32 106, i32 107, i32 110, i32 111, i32 50, i32 51, i32 54, i32 55, i32 114, i32 115, i32 118, i32 119, i32 58, i32 59, i32 62, i32 63, i32 122, i32 123, i32 126, i32 127>
ret <128 x i8> %p
}
; CHECK-LABEL: vdeal_07:
; CHECK: [[REG07:r[0-9]+]] = #7
; CHECK: vdeal(v1,v0,[[REG07]])
define <128 x i8> @vdeal_07(<128 x i8> %v0, <128 x i8> %v1) #0 {
%p = shufflevector <128 x i8> %v0, <128 x i8> undef, <128 x i32> < i32 0, i32 2, i32 4, i32 6, i32 64, i32 66, i32 68, i32 70, i32 8, i32 10, i32 12, i32 14, i32 72, i32 74, i32 76, i32 78, i32 16, i32 18, i32 20, i32 22, i32 80, i32 82, i32 84, i32 86, i32 24, i32 26, i32 28, i32 30, i32 88, i32 90, i32 92, i32 94, i32 32, i32 34, i32 36, i32 38, i32 96, i32 98, i32 100, i32 102, i32 40, i32 42, i32 44, i32 46, i32 104, i32 106, i32 108, i32 110, i32 48, i32 50, i32 52, i32 54, i32 112, i32 114, i32 116, i32 118, i32 56, i32 58, i32 60, i32 62, i32 120, i32 122, i32 124, i32 126, i32 1, i32 3, i32 5, i32 7, i32 65, i32 67, i32 69, i32 71, i32 9, i32 11, i32 13, i32 15, i32 73, i32 75, i32 77, i32 79, i32 17, i32 19, i32 21, i32 23, i32 81, i32 83, i32 85, i32 87, i32 25, i32 27, i32 29, i32 31, i32 89, i32 91, i32 93, i32 95, i32 33, i32 35, i32 37, i32 39, i32 97, i32 99, i32 101, i32 103, i32 41, i32 43, i32 45, i32 47, i32 105, i32 107, i32 109, i32 111, i32 49, i32 51, i32 53, i32 55, i32 113, i32 115, i32 117, i32 119, i32 57, i32 59, i32 61, i32 63, i32 121, i32 123, i32 125, i32 127>
ret <128 x i8> %p
}
; CHECK-LABEL: vdeal_08:
; CHECK: [[REG08:r[0-9]+]] = #8
; CHECK: vshuff(v1,v0,[[REG08]])
define <128 x i8> @vdeal_08(<128 x i8> %v0, <128 x i8> %v1) #0 {
%p = shufflevector <128 x i8> %v0, <128 x i8> undef, <128 x i32> < i32 0, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7, i32 64, i32 65, i32 66, i32 67, i32 68, i32 69, i32 70, i32 71, i32 16, i32 17, i32 18, i32 19, i32 20, i32 21, i32 22, i32 23, i32 80, i32 81, i32 82, i32 83, i32 84, i32 85, i32 86, i32 87, i32 32, i32 33, i32 34, i32 35, i32 36, i32 37, i32 38, i32 39, i32 96, i32 97, i32 98, i32 99, i32 100, i32 101, i32 102, i32 103, i32 48, i32 49, i32 50, i32 51, i32 52, i32 53, i32 54, i32 55, i32 112, i32 113, i32 114, i32 115, i32 116, i32 117, i32 118, i32 119, i32 8, i32 9, i32 10, i32 11, i32 12, i32 13, i32 14, i32 15, i32 72, i32 73, i32 74, i32 75, i32 76, i32 77, i32 78, i32 79, i32 24, i32 25, i32 26, i32 27, i32 28, i32 29, i32 30, i32 31, i32 88, i32 89, i32 90, i32 91, i32 92, i32 93, i32 94, i32 95, i32 40, i32 41, i32 42, i32 43, i32 44, i32 45, i32 46, i32 47, i32 104, i32 105, i32 106, i32 107, i32 108, i32 109, i32 110, i32 111, i32 56, i32 57, i32 58, i32 59, i32 60, i32 61, i32 62, i32 63, i32 120, i32 121, i32 122, i32 123, i32 124, i32 125, i32 126, i32 127>
ret <128 x i8> %p
}
; CHECK-LABEL: vdeal_09:
; CHECK: [[REG09:r[0-9]+]] = #9
; CHECK: vdeal(v1,v0,[[REG09]])
define <128 x i8> @vdeal_09(<128 x i8> %v0, <128 x i8> %v1) #0 {
%p = shufflevector <128 x i8> %v0, <128 x i8> undef, <128 x i32> < i32 0, i32 8, i32 2, i32 10, i32 4, i32 12, i32 6, i32 14, i32 64, i32 72, i32 66, i32 74, i32 68, i32 76, i32 70, i32 78, i32 16, i32 24, i32 18, i32 26, i32 20, i32 28, i32 22, i32 30, i32 80, i32 88, i32 82, i32 90, i32 84, i32 92, i32 86, i32 94, i32 32, i32 40, i32 34, i32 42, i32 36, i32 44, i32 38, i32 46, i32 96, i32 104, i32 98, i32 106, i32 100, i32 108, i32 102, i32 110, i32 48, i32 56, i32 50, i32 58, i32 52, i32 60, i32 54, i32 62, i32 112, i32 120, i32 114, i32 122, i32 116, i32 124, i32 118, i32 126, i32 1, i32 9, i32 3, i32 11, i32 5, i32 13, i32 7, i32 15, i32 65, i32 73, i32 67, i32 75, i32 69, i32 77, i32 71, i32 79, i32 17, i32 25, i32 19, i32 27, i32 21, i32 29, i32 23, i32 31, i32 81, i32 89, i32 83, i32 91, i32 85, i32 93, i32 87, i32 95, i32 33, i32 41, i32 35, i32 43, i32 37, i32 45, i32 39, i32 47, i32 97, i32 105, i32 99, i32 107, i32 101, i32 109, i32 103, i32 111, i32 49, i32 57, i32 51, i32 59, i32 53, i32 61, i32 55, i32 63, i32 113, i32 121, i32 115, i32 123, i32 117, i32 125, i32 119, i32 127>
ret <128 x i8> %p
}
; CHECK-LABEL: vdeal_0a:
; CHECK: [[REG0a:r[0-9]+]] = #10
; CHECK: vdeal(v1,v0,[[REG0a]])
define <128 x i8> @vdeal_0a(<128 x i8> %v0, <128 x i8> %v1) #0 {
%p = shufflevector <128 x i8> %v0, <128 x i8> undef, <128 x i32> < i32 0, i32 1, i32 8, i32 9, i32 4, i32 5, i32 12, i32 13, i32 64, i32 65, i32 72, i32 73, i32 68, i32 69, i32 76, i32 77, i32 16, i32 17, i32 24, i32 25, i32 20, i32 21, i32 28, i32 29, i32 80, i32 81, i32 88, i32 89, i32 84, i32 85, i32 92, i32 93, i32 32, i32 33, i32 40, i32 41, i32 36, i32 37, i32 44, i32 45, i32 96, i32 97, i32 104, i32 105, i32 100, i32 101, i32 108, i32 109, i32 48, i32 49, i32 56, i32 57, i32 52, i32 53, i32 60, i32 61, i32 112, i32 113, i32 120, i32 121, i32 116, i32 117, i32 124, i32 125, i32 2, i32 3, i32 10, i32 11, i32 6, i32 7, i32 14, i32 15, i32 66, i32 67, i32 74, i32 75, i32 70, i32 71, i32 78, i32 79, i32 18, i32 19, i32 26, i32 27, i32 22, i32 23, i32 30, i32 31, i32 82, i32 83, i32 90, i32 91, i32 86, i32 87, i32 94, i32 95, i32 34, i32 35, i32 42, i32 43, i32 38, i32 39, i32 46, i32 47, i32 98, i32 99, i32 106, i32 107, i32 102, i32 103, i32 110, i32 111, i32 50, i32 51, i32 58, i32 59, i32 54, i32 55, i32 62, i32 63, i32 114, i32 115, i32 122, i32 123, i32 118, i32 119, i32 126, i32 127>
ret <128 x i8> %p
}
; CHECK-LABEL: vdeal_0b:
; CHECK: [[REG0b:r[0-9]+]] = #11
; CHECK: vdeal(v1,v0,[[REG0b]])
define <128 x i8> @vdeal_0b(<128 x i8> %v0, <128 x i8> %v1) #0 {
%p = shufflevector <128 x i8> %v0, <128 x i8> undef, <128 x i32> < i32 0, i32 2, i32 8, i32 10, i32 4, i32 6, i32 12, i32 14, i32 64, i32 66, i32 72, i32 74, i32 68, i32 70, i32 76, i32 78, i32 16, i32 18, i32 24, i32 26, i32 20, i32 22, i32 28, i32 30, i32 80, i32 82, i32 88, i32 90, i32 84, i32 86, i32 92, i32 94, i32 32, i32 34, i32 40, i32 42, i32 36, i32 38, i32 44, i32 46, i32 96, i32 98, i32 104, i32 106, i32 100, i32 102, i32 108, i32 110, i32 48, i32 50, i32 56, i32 58, i32 52, i32 54, i32 60, i32 62, i32 112, i32 114, i32 120, i32 122, i32 116, i32 118, i32 124, i32 126, i32 1, i32 3, i32 9, i32 11, i32 5, i32 7, i32 13, i32 15, i32 65, i32 67, i32 73, i32 75, i32 69, i32 71, i32 77, i32 79, i32 17, i32 19, i32 25, i32 27, i32 21, i32 23, i32 29, i32 31, i32 81, i32 83, i32 89, i32 91, i32 85, i32 87, i32 93, i32 95, i32 33, i32 35, i32 41, i32 43, i32 37, i32 39, i32 45, i32 47, i32 97, i32 99, i32 105, i32 107, i32 101, i32 103, i32 109, i32 111, i32 49, i32 51, i32 57, i32 59, i32 53, i32 55, i32 61, i32 63, i32 113, i32 115, i32 121, i32 123, i32 117, i32 119, i32 125, i32 127>
ret <128 x i8> %p
}
; CHECK-LABEL: vdeal_0c:
; CHECK: [[REG0c:r[0-9]+]] = #12
; CHECK: vdeal(v1,v0,[[REG0c]])
define <128 x i8> @vdeal_0c(<128 x i8> %v0, <128 x i8> %v1) #0 {
%p = shufflevector <128 x i8> %v0, <128 x i8> undef, <128 x i32> < i32 0, i32 1, i32 2, i32 3, i32 8, i32 9, i32 10, i32 11, i32 64, i32 65, i32 66, i32 67, i32 72, i32 73, i32 74, i32 75, i32 16, i32 17, i32 18, i32 19, i32 24, i32 25, i32 26, i32 27, i32 80, i32 81, i32 82, i32 83, i32 88, i32 89, i32 90, i32 91, i32 32, i32 33, i32 34, i32 35, i32 40, i32 41, i32 42, i32 43, i32 96, i32 97, i32 98, i32 99, i32 104, i32 105, i32 106, i32 107, i32 48, i32 49, i32 50, i32 51, i32 56, i32 57, i32 58, i32 59, i32 112, i32 113, i32 114, i32 115, i32 120, i32 121, i32 122, i32 123, i32 4, i32 5, i32 6, i32 7, i32 12, i32 13, i32 14, i32 15, i32 68, i32 69, i32 70, i32 71, i32 76, i32 77, i32 78, i32 79, i32 20, i32 21, i32 22, i32 23, i32 28, i32 29, i32 30, i32 31, i32 84, i32 85, i32 86, i32 87, i32 92, i32 93, i32 94, i32 95, i32 36, i32 37, i32 38, i32 39, i32 44, i32 45, i32 46, i32 47, i32 100, i32 101, i32 102, i32 103, i32 108, i32 109, i32 110, i32 111, i32 52, i32 53, i32 54, i32 55, i32 60, i32 61, i32 62, i32 63, i32 116, i32 117, i32 118, i32 119, i32 124, i32 125, i32 126, i32 127>
ret <128 x i8> %p
}
; CHECK-LABEL: vdeal_0d:
; CHECK: [[REG0d:r[0-9]+]] = #13
; CHECK: vdeal(v1,v0,[[REG0d]])
define <128 x i8> @vdeal_0d(<128 x i8> %v0, <128 x i8> %v1) #0 {
%p = shufflevector <128 x i8> %v0, <128 x i8> undef, <128 x i32> < i32 0, i32 4, i32 2, i32 6, i32 8, i32 12, i32 10, i32 14, i32 64, i32 68, i32 66, i32 70, i32 72, i32 76, i32 74, i32 78, i32 16, i32 20, i32 18, i32 22, i32 24, i32 28, i32 26, i32 30, i32 80, i32 84, i32 82, i32 86, i32 88, i32 92, i32 90, i32 94, i32 32, i32 36, i32 34, i32 38, i32 40, i32 44, i32 42, i32 46, i32 96, i32 100, i32 98, i32 102, i32 104, i32 108, i32 106, i32 110, i32 48, i32 52, i32 50, i32 54, i32 56, i32 60, i32 58, i32 62, i32 112, i32 116, i32 114, i32 118, i32 120, i32 124, i32 122, i32 126, i32 1, i32 5, i32 3, i32 7, i32 9, i32 13, i32 11, i32 15, i32 65, i32 69, i32 67, i32 71, i32 73, i32 77, i32 75, i32 79, i32 17, i32 21, i32 19, i32 23, i32 25, i32 29, i32 27, i32 31, i32 81, i32 85, i32 83, i32 87, i32 89, i32 93, i32 91, i32 95, i32 33, i32 37, i32 35, i32 39, i32 41, i32 45, i32 43, i32 47, i32 97, i32 101, i32 99, i32 103, i32 105, i32 109, i32 107, i32 111, i32 49, i32 53, i32 51, i32 55, i32 57, i32 61, i32 59, i32 63, i32 113, i32 117, i32 115, i32 119, i32 121, i32 125, i32 123, i32 127>
ret <128 x i8> %p
}
; CHECK-LABEL: vdeal_0e:
; CHECK: [[REG0e:r[0-9]+]] = #14
; CHECK: vdeal(v1,v0,[[REG0e]])
define <128 x i8> @vdeal_0e(<128 x i8> %v0, <128 x i8> %v1) #0 {
%p = shufflevector <128 x i8> %v0, <128 x i8> undef, <128 x i32> < i32 0, i32 1, i32 4, i32 5, i32 8, i32 9, i32 12, i32 13, i32 64, i32 65, i32 68, i32 69, i32 72, i32 73, i32 76, i32 77, i32 16, i32 17, i32 20, i32 21, i32 24, i32 25, i32 28, i32 29, i32 80, i32 81, i32 84, i32 85, i32 88, i32 89, i32 92, i32 93, i32 32, i32 33, i32 36, i32 37, i32 40, i32 41, i32 44, i32 45, i32 96, i32 97, i32 100, i32 101, i32 104, i32 105, i32 108, i32 109, i32 48, i32 49, i32 52, i32 53, i32 56, i32 57, i32 60, i32 61, i32 112, i32 113, i32 116, i32 117, i32 120, i32 121, i32 124, i32 125, i32 2, i32 3, i32 6, i32 7, i32 10, i32 11, i32 14, i32 15, i32 66, i32 67, i32 70, i32 71, i32 74, i32 75, i32 78, i32 79, i32 18, i32 19, i32 22, i32 23, i32 26, i32 27, i32 30, i32 31, i32 82, i32 83, i32 86, i32 87, i32 90, i32 91, i32 94, i32 95, i32 34, i32 35, i32 38, i32 39, i32 42, i32 43, i32 46, i32 47, i32 98, i32 99, i32 102, i32 103, i32 106, i32 107, i32 110, i32 111, i32 50, i32 51, i32 54, i32 55, i32 58, i32 59, i32 62, i32 63, i32 114, i32 115, i32 118, i32 119, i32 122, i32 123, i32 126, i32 127>
ret <128 x i8> %p
}
; CHECK-LABEL: vdeal_0f:
; CHECK: [[REG0f:r[0-9]+]] = #15
; CHECK: vdeal(v1,v0,[[REG0f]])
define <128 x i8> @vdeal_0f(<128 x i8> %v0, <128 x i8> %v1) #0 {
%p = shufflevector <128 x i8> %v0, <128 x i8> undef, <128 x i32> < i32 0, i32 2, i32 4, i32 6, i32 8, i32 10, i32 12, i32 14, i32 64, i32 66, i32 68, i32 70, i32 72, i32 74, i32 76, i32 78, i32 16, i32 18, i32 20, i32 22, i32 24, i32 26, i32 28, i32 30, i32 80, i32 82, i32 84, i32 86, i32 88, i32 90, i32 92, i32 94, i32 32, i32 34, i32 36, i32 38, i32 40, i32 42, i32 44, i32 46, i32 96, i32 98, i32 100, i32 102, i32 104, i32 106, i32 108, i32 110, i32 48, i32 50, i32 52, i32 54, i32 56, i32 58, i32 60, i32 62, i32 112, i32 114, i32 116, i32 118, i32 120, i32 122, i32 124, i32 126, i32 1, i32 3, i32 5, i32 7, i32 9, i32 11, i32 13, i32 15, i32 65, i32 67, i32 69, i32 71, i32 73, i32 75, i32 77, i32 79, i32 17, i32 19, i32 21, i32 23, i32 25, i32 27, i32 29, i32 31, i32 81, i32 83, i32 85, i32 87, i32 89, i32 91, i32 93, i32 95, i32 33, i32 35, i32 37, i32 39, i32 41, i32 43, i32 45, i32 47, i32 97, i32 99, i32 101, i32 103, i32 105, i32 107, i32 109, i32 111, i32 49, i32 51, i32 53, i32 55, i32 57, i32 59, i32 61, i32 63, i32 113, i32 115, i32 117, i32 119, i32 121, i32 123, i32 125, i32 127>
ret <128 x i8> %p
}
; CHECK-LABEL: vdeal_10:
; CHECK: [[REG10:r[0-9]+]] = #16
; CHECK: vshuff(v1,v0,[[REG10]])
define <128 x i8> @vdeal_10(<128 x i8> %v0, <128 x i8> %v1) #0 {
%p = shufflevector <128 x i8> %v0, <128 x i8> undef, <128 x i32> < i32 0, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7, i32 8, i32 9, i32 10, i32 11, i32 12, i32 13, i32 14, i32 15, i32 64, i32 65, i32 66, i32 67, i32 68, i32 69, i32 70, i32 71, i32 72, i32 73, i32 74, i32 75, i32 76, i32 77, i32 78, i32 79, i32 32, i32 33, i32 34, i32 35, i32 36, i32 37, i32 38, i32 39, i32 40, i32 41, i32 42, i32 43, i32 44, i32 45, i32 46, i32 47, i32 96, i32 97, i32 98, i32 99, i32 100, i32 101, i32 102, i32 103, i32 104, i32 105, i32 106, i32 107, i32 108, i32 109, i32 110, i32 111, i32 16, i32 17, i32 18, i32 19, i32 20, i32 21, i32 22, i32 23, i32 24, i32 25, i32 26, i32 27, i32 28, i32 29, i32 30, i32 31, i32 80, i32 81, i32 82, i32 83, i32 84, i32 85, i32 86, i32 87, i32 88, i32 89, i32 90, i32 91, i32 92, i32 93, i32 94, i32 95, i32 48, i32 49, i32 50, i32 51, i32 52, i32 53, i32 54, i32 55, i32 56, i32 57, i32 58, i32 59, i32 60, i32 61, i32 62, i32 63, i32 112, i32 113, i32 114, i32 115, i32 116, i32 117, i32 118, i32 119, i32 120, i32 121, i32 122, i32 123, i32 124, i32 125, i32 126, i32 127>
ret <128 x i8> %p
}
; CHECK-LABEL: vdeal_11:
; CHECK: [[REG11:r[0-9]+]] = #17
; CHECK: vdeal(v1,v0,[[REG11]])
define <128 x i8> @vdeal_11(<128 x i8> %v0, <128 x i8> %v1) #0 {
%p = shufflevector <128 x i8> %v0, <128 x i8> undef, <128 x i32> < i32 0, i32 16, i32 2, i32 18, i32 4, i32 20, i32 6, i32 22, i32 8, i32 24, i32 10, i32 26, i32 12, i32 28, i32 14, i32 30, i32 64, i32 80, i32 66, i32 82, i32 68, i32 84, i32 70, i32 86, i32 72, i32 88, i32 74, i32 90, i32 76, i32 92, i32 78, i32 94, i32 32, i32 48, i32 34, i32 50, i32 36, i32 52, i32 38, i32 54, i32 40, i32 56, i32 42, i32 58, i32 44, i32 60, i32 46, i32 62, i32 96, i32 112, i32 98, i32 114, i32 100, i32 116, i32 102, i32 118, i32 104, i32 120, i32 106, i32 122, i32 108, i32 124, i32 110, i32 126, i32 1, i32 17, i32 3, i32 19, i32 5, i32 21, i32 7, i32 23, i32 9, i32 25, i32 11, i32 27, i32 13, i32 29, i32 15, i32 31, i32 65, i32 81, i32 67, i32 83, i32 69, i32 85, i32 71, i32 87, i32 73, i32 89, i32 75, i32 91, i32 77, i32 93, i32 79, i32 95, i32 33, i32 49, i32 35, i32 51, i32 37, i32 53, i32 39, i32 55, i32 41, i32 57, i32 43, i32 59, i32 45, i32 61, i32 47, i32 63, i32 97, i32 113, i32 99, i32 115, i32 101, i32 117, i32 103, i32 119, i32 105, i32 121, i32 107, i32 123, i32 109, i32 125, i32 111, i32 127>
ret <128 x i8> %p
}
; CHECK-LABEL: vdeal_12:
; CHECK: [[REG12:r[0-9]+]] = #18
; CHECK: vdeal(v1,v0,[[REG12]])
define <128 x i8> @vdeal_12(<128 x i8> %v0, <128 x i8> %v1) #0 {
%p = shufflevector <128 x i8> %v0, <128 x i8> undef, <128 x i32> < i32 0, i32 1, i32 16, i32 17, i32 4, i32 5, i32 20, i32 21, i32 8, i32 9, i32 24, i32 25, i32 12, i32 13, i32 28, i32 29, i32 64, i32 65, i32 80, i32 81, i32 68, i32 69, i32 84, i32 85, i32 72, i32 73, i32 88, i32 89, i32 76, i32 77, i32 92, i32 93, i32 32, i32 33, i32 48, i32 49, i32 36, i32 37, i32 52, i32 53, i32 40, i32 41, i32 56, i32 57, i32 44, i32 45, i32 60, i32 61, i32 96, i32 97, i32 112, i32 113, i32 100, i32 101, i32 116, i32 117, i32 104, i32 105, i32 120, i32 121, i32 108, i32 109, i32 124, i32 125, i32 2, i32 3, i32 18, i32 19, i32 6, i32 7, i32 22, i32 23, i32 10, i32 11, i32 26, i32 27, i32 14, i32 15, i32 30, i32 31, i32 66, i32 67, i32 82, i32 83, i32 70, i32 71, i32 86, i32 87, i32 74, i32 75, i32 90, i32 91, i32 78, i32 79, i32 94, i32 95, i32 34, i32 35, i32 50, i32 51, i32 38, i32 39, i32 54, i32 55, i32 42, i32 43, i32 58, i32 59, i32 46, i32 47, i32 62, i32 63, i32 98, i32 99, i32 114, i32 115, i32 102, i32 103, i32 118, i32 119, i32 106, i32 107, i32 122, i32 123, i32 110, i32 111, i32 126, i32 127>
ret <128 x i8> %p
}
; CHECK-LABEL: vdeal_13:
; CHECK: [[REG13:r[0-9]+]] = #19
; CHECK: vdeal(v1,v0,[[REG13]])
define <128 x i8> @vdeal_13(<128 x i8> %v0, <128 x i8> %v1) #0 {
%p = shufflevector <128 x i8> %v0, <128 x i8> undef, <128 x i32> < i32 0, i32 2, i32 16, i32 18, i32 4, i32 6, i32 20, i32 22, i32 8, i32 10, i32 24, i32 26, i32 12, i32 14, i32 28, i32 30, i32 64, i32 66, i32 80, i32 82, i32 68, i32 70, i32 84, i32 86, i32 72, i32 74, i32 88, i32 90, i32 76, i32 78, i32 92, i32 94, i32 32, i32 34, i32 48, i32 50, i32 36, i32 38, i32 52, i32 54, i32 40, i32 42, i32 56, i32 58, i32 44, i32 46, i32 60, i32 62, i32 96, i32 98, i32 112, i32 114, i32 100, i32 102, i32 116, i32 118, i32 104, i32 106, i32 120, i32 122, i32 108, i32 110, i32 124, i32 126, i32 1, i32 3, i32 17, i32 19, i32 5, i32 7, i32 21, i32 23, i32 9, i32 11, i32 25, i32 27, i32 13, i32 15, i32 29, i32 31, i32 65, i32 67, i32 81, i32 83, i32 69, i32 71, i32 85, i32 87, i32 73, i32 75, i32 89, i32 91, i32 77, i32 79, i32 93, i32 95, i32 33, i32 35, i32 49, i32 51, i32 37, i32 39, i32 53, i32 55, i32 41, i32 43, i32 57, i32 59, i32 45, i32 47, i32 61, i32 63, i32 97, i32 99, i32 113, i32 115, i32 101, i32 103, i32 117, i32 119, i32 105, i32 107, i32 121, i32 123, i32 109, i32 111, i32 125, i32 127>
ret <128 x i8> %p
}
; CHECK-LABEL: vdeal_14:
; CHECK: [[REG14:r[0-9]+]] = #20
; CHECK: vdeal(v1,v0,[[REG14]])
define <128 x i8> @vdeal_14(<128 x i8> %v0, <128 x i8> %v1) #0 {
%p = shufflevector <128 x i8> %v0, <128 x i8> undef, <128 x i32> < i32 0, i32 1, i32 2, i32 3, i32 16, i32 17, i32 18, i32 19, i32 8, i32 9, i32 10, i32 11, i32 24, i32 25, i32 26, i32 27, i32 64, i32 65, i32 66, i32 67, i32 80, i32 81, i32 82, i32 83, i32 72, i32 73, i32 74, i32 75, i32 88, i32 89, i32 90, i32 91, i32 32, i32 33, i32 34, i32 35, i32 48, i32 49, i32 50, i32 51, i32 40, i32 41, i32 42, i32 43, i32 56, i32 57, i32 58, i32 59, i32 96, i32 97, i32 98, i32 99, i32 112, i32 113, i32 114, i32 115, i32 104, i32 105, i32 106, i32 107, i32 120, i32 121, i32 122, i32 123, i32 4, i32 5, i32 6, i32 7, i32 20, i32 21, i32 22, i32 23, i32 12, i32 13, i32 14, i32 15, i32 28, i32 29, i32 30, i32 31, i32 68, i32 69, i32 70, i32 71, i32 84, i32 85, i32 86, i32 87, i32 76, i32 77, i32 78, i32 79, i32 92, i32 93, i32 94, i32 95, i32 36, i32 37, i32 38, i32 39, i32 52, i32 53, i32 54, i32 55, i32 44, i32 45, i32 46, i32 47, i32 60, i32 61, i32 62, i32 63, i32 100, i32 101, i32 102, i32 103, i32 116, i32 117, i32 118, i32 119, i32 108, i32 109, i32 110, i32 111, i32 124, i32 125, i32 126, i32 127>
ret <128 x i8> %p
}
; CHECK-LABEL: vdeal_15:
; CHECK: [[REG15:r[0-9]+]] = #21
; CHECK: vdeal(v1,v0,[[REG15]])
define <128 x i8> @vdeal_15(<128 x i8> %v0, <128 x i8> %v1) #0 {
%p = shufflevector <128 x i8> %v0, <128 x i8> undef, <128 x i32> < i32 0, i32 4, i32 2, i32 6, i32 16, i32 20, i32 18, i32 22, i32 8, i32 12, i32 10, i32 14, i32 24, i32 28, i32 26, i32 30, i32 64, i32 68, i32 66, i32 70, i32 80, i32 84, i32 82, i32 86, i32 72, i32 76, i32 74, i32 78, i32 88, i32 92, i32 90, i32 94, i32 32, i32 36, i32 34, i32 38, i32 48, i32 52, i32 50, i32 54, i32 40, i32 44, i32 42, i32 46, i32 56, i32 60, i32 58, i32 62, i32 96, i32 100, i32 98, i32 102, i32 112, i32 116, i32 114, i32 118, i32 104, i32 108, i32 106, i32 110, i32 120, i32 124, i32 122, i32 126, i32 1, i32 5, i32 3, i32 7, i32 17, i32 21, i32 19, i32 23, i32 9, i32 13, i32 11, i32 15, i32 25, i32 29, i32 27, i32 31, i32 65, i32 69, i32 67, i32 71, i32 81, i32 85, i32 83, i32 87, i32 73, i32 77, i32 75, i32 79, i32 89, i32 93, i32 91, i32 95, i32 33, i32 37, i32 35, i32 39, i32 49, i32 53, i32 51, i32 55, i32 41, i32 45, i32 43, i32 47, i32 57, i32 61, i32 59, i32 63, i32 97, i32 101, i32 99, i32 103, i32 113, i32 117, i32 115, i32 119, i32 105, i32 109, i32 107, i32 111, i32 121, i32 125, i32 123, i32 127>
ret <128 x i8> %p
}
; CHECK-LABEL: vdeal_16:
; CHECK: [[REG16:r[0-9]+]] = #22
; CHECK: vdeal(v1,v0,[[REG16]])
define <128 x i8> @vdeal_16(<128 x i8> %v0, <128 x i8> %v1) #0 {
%p = shufflevector <128 x i8> %v0, <128 x i8> undef, <128 x i32> < i32 0, i32 1, i32 4, i32 5, i32 16, i32 17, i32 20, i32 21, i32 8, i32 9, i32 12, i32 13, i32 24, i32 25, i32 28, i32 29, i32 64, i32 65, i32 68, i32 69, i32 80, i32 81, i32 84, i32 85, i32 72, i32 73, i32 76, i32 77, i32 88, i32 89, i32 92, i32 93, i32 32, i32 33, i32 36, i32 37, i32 48, i32 49, i32 52, i32 53, i32 40, i32 41, i32 44, i32 45, i32 56, i32 57, i32 60, i32 61, i32 96, i32 97, i32 100, i32 101, i32 112, i32 113, i32 116, i32 117, i32 104, i32 105, i32 108, i32 109, i32 120, i32 121, i32 124, i32 125, i32 2, i32 3, i32 6, i32 7, i32 18, i32 19, i32 22, i32 23, i32 10, i32 11, i32 14, i32 15, i32 26, i32 27, i32 30, i32 31, i32 66, i32 67, i32 70, i32 71, i32 82, i32 83, i32 86, i32 87, i32 74, i32 75, i32 78, i32 79, i32 90, i32 91, i32 94, i32 95, i32 34, i32 35, i32 38, i32 39, i32 50, i32 51, i32 54, i32 55, i32 42, i32 43, i32 46, i32 47, i32 58, i32 59, i32 62, i32 63, i32 98, i32 99, i32 102, i32 103, i32 114, i32 115, i32 118, i32 119, i32 106, i32 107, i32 110, i32 111, i32 122, i32 123, i32 126, i32 127>
ret <128 x i8> %p
}
; CHECK-LABEL: vdeal_17:
; CHECK: [[REG17:r[0-9]+]] = #23
; CHECK: vdeal(v1,v0,[[REG17]])
define <128 x i8> @vdeal_17(<128 x i8> %v0, <128 x i8> %v1) #0 {
%p = shufflevector <128 x i8> %v0, <128 x i8> undef, <128 x i32> < i32 0, i32 2, i32 4, i32 6, i32 16, i32 18, i32 20, i32 22, i32 8, i32 10, i32 12, i32 14, i32 24, i32 26, i32 28, i32 30, i32 64, i32 66, i32 68, i32 70, i32 80, i32 82, i32 84, i32 86, i32 72, i32 74, i32 76, i32 78, i32 88, i32 90, i32 92, i32 94, i32 32, i32 34, i32 36, i32 38, i32 48, i32 50, i32 52, i32 54, i32 40, i32 42, i32 44, i32 46, i32 56, i32 58, i32 60, i32 62, i32 96, i32 98, i32 100, i32 102, i32 112, i32 114, i32 116, i32 118, i32 104, i32 106, i32 108, i32 110, i32 120, i32 122, i32 124, i32 126, i32 1, i32 3, i32 5, i32 7, i32 17, i32 19, i32 21, i32 23, i32 9, i32 11, i32 13, i32 15, i32 25, i32 27, i32 29, i32 31, i32 65, i32 67, i32 69, i32 71, i32 81, i32 83, i32 85, i32 87, i32 73, i32 75, i32 77, i32 79, i32 89, i32 91, i32 93, i32 95, i32 33, i32 35, i32 37, i32 39, i32 49, i32 51, i32 53, i32 55, i32 41, i32 43, i32 45, i32 47, i32 57, i32 59, i32 61, i32 63, i32 97, i32 99, i32 101, i32 103, i32 113, i32 115, i32 117, i32 119, i32 105, i32 107, i32 109, i32 111, i32 121, i32 123, i32 125, i32 127>
ret <128 x i8> %p
}
; CHECK-LABEL: vdeal_18:
; CHECK: [[REG18:r[0-9]+]] = #24
; CHECK: vdeal(v1,v0,[[REG18]])
define <128 x i8> @vdeal_18(<128 x i8> %v0, <128 x i8> %v1) #0 {
%p = shufflevector <128 x i8> %v0, <128 x i8> undef, <128 x i32> < i32 0, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7, i32 16, i32 17, i32 18, i32 19, i32 20, i32 21, i32 22, i32 23, i32 64, i32 65, i32 66, i32 67, i32 68, i32 69, i32 70, i32 71, i32 80, i32 81, i32 82, i32 83, i32 84, i32 85, i32 86, i32 87, i32 32, i32 33, i32 34, i32 35, i32 36, i32 37, i32 38, i32 39, i32 48, i32 49, i32 50, i32 51, i32 52, i32 53, i32 54, i32 55, i32 96, i32 97, i32 98, i32 99, i32 100, i32 101, i32 102, i32 103, i32 112, i32 113, i32 114, i32 115, i32 116, i32 117, i32 118, i32 119, i32 8, i32 9, i32 10, i32 11, i32 12, i32 13, i32 14, i32 15, i32 24, i32 25, i32 26, i32 27, i32 28, i32 29, i32 30, i32 31, i32 72, i32 73, i32 74, i32 75, i32 76, i32 77, i32 78, i32 79, i32 88, i32 89, i32 90, i32 91, i32 92, i32 93, i32 94, i32 95, i32 40, i32 41, i32 42, i32 43, i32 44, i32 45, i32 46, i32 47, i32 56, i32 57, i32 58, i32 59, i32 60, i32 61, i32 62, i32 63, i32 104, i32 105, i32 106, i32 107, i32 108, i32 109, i32 110, i32 111, i32 120, i32 121, i32 122, i32 123, i32 124, i32 125, i32 126, i32 127>
ret <128 x i8> %p
}
; CHECK-LABEL: vdeal_19:
; CHECK: [[REG19:r[0-9]+]] = #25
; CHECK: vdeal(v1,v0,[[REG19]])
define <128 x i8> @vdeal_19(<128 x i8> %v0, <128 x i8> %v1) #0 {
%p = shufflevector <128 x i8> %v0, <128 x i8> undef, <128 x i32> < i32 0, i32 8, i32 2, i32 10, i32 4, i32 12, i32 6, i32 14, i32 16, i32 24, i32 18, i32 26, i32 20, i32 28, i32 22, i32 30, i32 64, i32 72, i32 66, i32 74, i32 68, i32 76, i32 70, i32 78, i32 80, i32 88, i32 82, i32 90, i32 84, i32 92, i32 86, i32 94, i32 32, i32 40, i32 34, i32 42, i32 36, i32 44, i32 38, i32 46, i32 48, i32 56, i32 50, i32 58, i32 52, i32 60, i32 54, i32 62, i32 96, i32 104, i32 98, i32 106, i32 100, i32 108, i32 102, i32 110, i32 112, i32 120, i32 114, i32 122, i32 116, i32 124, i32 118, i32 126, i32 1, i32 9, i32 3, i32 11, i32 5, i32 13, i32 7, i32 15, i32 17, i32 25, i32 19, i32 27, i32 21, i32 29, i32 23, i32 31, i32 65, i32 73, i32 67, i32 75, i32 69, i32 77, i32 71, i32 79, i32 81, i32 89, i32 83, i32 91, i32 85, i32 93, i32 87, i32 95, i32 33, i32 41, i32 35, i32 43, i32 37, i32 45, i32 39, i32 47, i32 49, i32 57, i32 51, i32 59, i32 53, i32 61, i32 55, i32 63, i32 97, i32 105, i32 99, i32 107, i32 101, i32 109, i32 103, i32 111, i32 113, i32 121, i32 115, i32 123, i32 117, i32 125, i32 119, i32 127>
ret <128 x i8> %p
}
; CHECK-LABEL: vdeal_1a:
; CHECK: [[REG1a:r[0-9]+]] = #26
; CHECK: vdeal(v1,v0,[[REG1a]])
define <128 x i8> @vdeal_1a(<128 x i8> %v0, <128 x i8> %v1) #0 {
%p = shufflevector <128 x i8> %v0, <128 x i8> undef, <128 x i32> < i32 0, i32 1, i32 8, i32 9, i32 4, i32 5, i32 12, i32 13, i32 16, i32 17, i32 24, i32 25, i32 20, i32 21, i32 28, i32 29, i32 64, i32 65, i32 72, i32 73, i32 68, i32 69, i32 76, i32 77, i32 80, i32 81, i32 88, i32 89, i32 84, i32 85, i32 92, i32 93, i32 32, i32 33, i32 40, i32 41, i32 36, i32 37, i32 44, i32 45, i32 48, i32 49, i32 56, i32 57, i32 52, i32 53, i32 60, i32 61, i32 96, i32 97, i32 104, i32 105, i32 100, i32 101, i32 108, i32 109, i32 112, i32 113, i32 120, i32 121, i32 116, i32 117, i32 124, i32 125, i32 2, i32 3, i32 10, i32 11, i32 6, i32 7, i32 14, i32 15, i32 18, i32 19, i32 26, i32 27, i32 22, i32 23, i32 30, i32 31, i32 66, i32 67, i32 74, i32 75, i32 70, i32 71, i32 78, i32 79, i32 82, i32 83, i32 90, i32 91, i32 86, i32 87, i32 94, i32 95, i32 34, i32 35, i32 42, i32 43, i32 38, i32 39, i32 46, i32 47, i32 50, i32 51, i32 58, i32 59, i32 54, i32 55, i32 62, i32 63, i32 98, i32 99, i32 106, i32 107, i32 102, i32 103, i32 110, i32 111, i32 114, i32 115, i32 122, i32 123, i32 118, i32 119, i32 126, i32 127>
ret <128 x i8> %p
}
; CHECK-LABEL: vdeal_1b:
; CHECK: [[REG1b:r[0-9]+]] = #27
; CHECK: vdeal(v1,v0,[[REG1b]])
define <128 x i8> @vdeal_1b(<128 x i8> %v0, <128 x i8> %v1) #0 {
%p = shufflevector <128 x i8> %v0, <128 x i8> undef, <128 x i32> < i32 0, i32 2, i32 8, i32 10, i32 4, i32 6, i32 12, i32 14, i32 16, i32 18, i32 24, i32 26, i32 20, i32 22, i32 28, i32 30, i32 64, i32 66, i32 72, i32 74, i32 68, i32 70, i32 76, i32 78, i32 80, i32 82, i32 88, i32 90, i32 84, i32 86, i32 92, i32 94, i32 32, i32 34, i32 40, i32 42, i32 36, i32 38, i32 44, i32 46, i32 48, i32 50, i32 56, i32 58, i32 52, i32 54, i32 60, i32 62, i32 96, i32 98, i32 104, i32 106, i32 100, i32 102, i32 108, i32 110, i32 112, i32 114, i32 120, i32 122, i32 116, i32 118, i32 124, i32 126, i32 1, i32 3, i32 9, i32 11, i32 5, i32 7, i32 13, i32 15, i32 17, i32 19, i32 25, i32 27, i32 21, i32 23, i32 29, i32 31, i32 65, i32 67, i32 73, i32 75, i32 69, i32 71, i32 77, i32 79, i32 81, i32 83, i32 89, i32 91, i32 85, i32 87, i32 93, i32 95, i32 33, i32 35, i32 41, i32 43, i32 37, i32 39, i32 45, i32 47, i32 49, i32 51, i32 57, i32 59, i32 53, i32 55, i32 61, i32 63, i32 97, i32 99, i32 105, i32 107, i32 101, i32 103, i32 109, i32 111, i32 113, i32 115, i32 121, i32 123, i32 117, i32 119, i32 125, i32 127>
ret <128 x i8> %p
}
; CHECK-LABEL: vdeal_1c:
; CHECK: [[REG1c:r[0-9]+]] = #28
; CHECK: vdeal(v1,v0,[[REG1c]])
define <128 x i8> @vdeal_1c(<128 x i8> %v0, <128 x i8> %v1) #0 {
%p = shufflevector <128 x i8> %v0, <128 x i8> undef, <128 x i32> < i32 0, i32 1, i32 2, i32 3, i32 8, i32 9, i32 10, i32 11, i32 16, i32 17, i32 18, i32 19, i32 24, i32 25, i32 26, i32 27, i32 64, i32 65, i32 66, i32 67, i32 72, i32 73, i32 74, i32 75, i32 80, i32 81, i32 82, i32 83, i32 88, i32 89, i32 90, i32 91, i32 32, i32 33, i32 34, i32 35, i32 40, i32 41, i32 42, i32 43, i32 48, i32 49, i32 50, i32 51, i32 56, i32 57, i32 58, i32 59, i32 96, i32 97, i32 98, i32 99, i32 104, i32 105, i32 106, i32 107, i32 112, i32 113, i32 114, i32 115, i32 120, i32 121, i32 122, i32 123, i32 4, i32 5, i32 6, i32 7, i32 12, i32 13, i32 14, i32 15, i32 20, i32 21, i32 22, i32 23, i32 28, i32 29, i32 30, i32 31, i32 68, i32 69, i32 70, i32 71, i32 76, i32 77, i32 78, i32 79, i32 84, i32 85, i32 86, i32 87, i32 92, i32 93, i32 94, i32 95, i32 36, i32 37, i32 38, i32 39, i32 44, i32 45, i32 46, i32 47, i32 52, i32 53, i32 54, i32 55, i32 60, i32 61, i32 62, i32 63, i32 100, i32 101, i32 102, i32 103, i32 108, i32 109, i32 110, i32 111, i32 116, i32 117, i32 118, i32 119, i32 124, i32 125, i32 126, i32 127>
ret <128 x i8> %p
}
; CHECK-LABEL: vdeal_1d:
; CHECK: [[REG1d:r[0-9]+]] = #29
; CHECK: vdeal(v1,v0,[[REG1d]])
define <128 x i8> @vdeal_1d(<128 x i8> %v0, <128 x i8> %v1) #0 {
%p = shufflevector <128 x i8> %v0, <128 x i8> undef, <128 x i32> < i32 0, i32 4, i32 2, i32 6, i32 8, i32 12, i32 10, i32 14, i32 16, i32 20, i32 18, i32 22, i32 24, i32 28, i32 26, i32 30, i32 64, i32 68, i32 66, i32 70, i32 72, i32 76, i32 74, i32 78, i32 80, i32 84, i32 82, i32 86, i32 88, i32 92, i32 90, i32 94, i32 32, i32 36, i32 34, i32 38, i32 40, i32 44, i32 42, i32 46, i32 48, i32 52, i32 50, i32 54, i32 56, i32 60, i32 58, i32 62, i32 96, i32 100, i32 98, i32 102, i32 104, i32 108, i32 106, i32 110, i32 112, i32 116, i32 114, i32 118, i32 120, i32 124, i32 122, i32 126, i32 1, i32 5, i32 3, i32 7, i32 9, i32 13, i32 11, i32 15, i32 17, i32 21, i32 19, i32 23, i32 25, i32 29, i32 27, i32 31, i32 65, i32 69, i32 67, i32 71, i32 73, i32 77, i32 75, i32 79, i32 81, i32 85, i32 83, i32 87, i32 89, i32 93, i32 91, i32 95, i32 33, i32 37, i32 35, i32 39, i32 41, i32 45, i32 43, i32 47, i32 49, i32 53, i32 51, i32 55, i32 57, i32 61, i32 59, i32 63, i32 97, i32 101, i32 99, i32 103, i32 105, i32 109, i32 107, i32 111, i32 113, i32 117, i32 115, i32 119, i32 121, i32 125, i32 123, i32 127>
ret <128 x i8> %p
}
; CHECK-LABEL: vdeal_1e:
; CHECK: [[REG1e:r[0-9]+]] = #30
; CHECK: vdeal(v1,v0,[[REG1e]])
define <128 x i8> @vdeal_1e(<128 x i8> %v0, <128 x i8> %v1) #0 {
%p = shufflevector <128 x i8> %v0, <128 x i8> undef, <128 x i32> < i32 0, i32 1, i32 4, i32 5, i32 8, i32 9, i32 12, i32 13, i32 16, i32 17, i32 20, i32 21, i32 24, i32 25, i32 28, i32 29, i32 64, i32 65, i32 68, i32 69, i32 72, i32 73, i32 76, i32 77, i32 80, i32 81, i32 84, i32 85, i32 88, i32 89, i32 92, i32 93, i32 32, i32 33, i32 36, i32 37, i32 40, i32 41, i32 44, i32 45, i32 48, i32 49, i32 52, i32 53, i32 56, i32 57, i32 60, i32 61, i32 96, i32 97, i32 100, i32 101, i32 104, i32 105, i32 108, i32 109, i32 112, i32 113, i32 116, i32 117, i32 120, i32 121, i32 124, i32 125, i32 2, i32 3, i32 6, i32 7, i32 10, i32 11, i32 14, i32 15, i32 18, i32 19, i32 22, i32 23, i32 26, i32 27, i32 30, i32 31, i32 66, i32 67, i32 70, i32 71, i32 74, i32 75, i32 78, i32 79, i32 82, i32 83, i32 86, i32 87, i32 90, i32 91, i32 94, i32 95, i32 34, i32 35, i32 38, i32 39, i32 42, i32 43, i32 46, i32 47, i32 50, i32 51, i32 54, i32 55, i32 58, i32 59, i32 62, i32 63, i32 98, i32 99, i32 102, i32 103, i32 106, i32 107, i32 110, i32 111, i32 114, i32 115, i32 118, i32 119, i32 122, i32 123, i32 126, i32 127>
ret <128 x i8> %p
}
; CHECK-LABEL: vdeal_1f:
; CHECK: [[REG1f:r[0-9]+]] = #31
; CHECK: vdeal(v1,v0,[[REG1f]])
define <128 x i8> @vdeal_1f(<128 x i8> %v0, <128 x i8> %v1) #0 {
%p = shufflevector <128 x i8> %v0, <128 x i8> undef, <128 x i32> < i32 0, i32 2, i32 4, i32 6, i32 8, i32 10, i32 12, i32 14, i32 16, i32 18, i32 20, i32 22, i32 24, i32 26, i32 28, i32 30, i32 64, i32 66, i32 68, i32 70, i32 72, i32 74, i32 76, i32 78, i32 80, i32 82, i32 84, i32 86, i32 88, i32 90, i32 92, i32 94, i32 32, i32 34, i32 36, i32 38, i32 40, i32 42, i32 44, i32 46, i32 48, i32 50, i32 52, i32 54, i32 56, i32 58, i32 60, i32 62, i32 96, i32 98, i32 100, i32 102, i32 104, i32 106, i32 108, i32 110, i32 112, i32 114, i32 116, i32 118, i32 120, i32 122, i32 124, i32 126, i32 1, i32 3, i32 5, i32 7, i32 9, i32 11, i32 13, i32 15, i32 17, i32 19, i32 21, i32 23, i32 25, i32 27, i32 29, i32 31, i32 65, i32 67, i32 69, i32 71, i32 73, i32 75, i32 77, i32 79, i32 81, i32 83, i32 85, i32 87, i32 89, i32 91, i32 93, i32 95, i32 33, i32 35, i32 37, i32 39, i32 41, i32 43, i32 45, i32 47, i32 49, i32 51, i32 53, i32 55, i32 57, i32 59, i32 61, i32 63, i32 97, i32 99, i32 101, i32 103, i32 105, i32 107, i32 109, i32 111, i32 113, i32 115, i32 117, i32 119, i32 121, i32 123, i32 125, i32 127>
ret <128 x i8> %p
}
; CHECK-LABEL: vdeal_20:
; CHECK: [[REG20:r[0-9]+]] = #32
; CHECK: vshuff(v1,v0,[[REG20]])
define <128 x i8> @vdeal_20(<128 x i8> %v0, <128 x i8> %v1) #0 {
%p = shufflevector <128 x i8> %v0, <128 x i8> undef, <128 x i32> < i32 0, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7, i32 8, i32 9, i32 10, i32 11, i32 12, i32 13, i32 14, i32 15, i32 16, i32 17, i32 18, i32 19, i32 20, i32 21, i32 22, i32 23, i32 24, i32 25, i32 26, i32 27, i32 28, i32 29, i32 30, i32 31, i32 64, i32 65, i32 66, i32 67, i32 68, i32 69, i32 70, i32 71, i32 72, i32 73, i32 74, i32 75, i32 76, i32 77, i32 78, i32 79, i32 80, i32 81, i32 82, i32 83, i32 84, i32 85, i32 86, i32 87, i32 88, i32 89, i32 90, i32 91, i32 92, i32 93, i32 94, i32 95, i32 32, i32 33, i32 34, i32 35, i32 36, i32 37, i32 38, i32 39, i32 40, i32 41, i32 42, i32 43, i32 44, i32 45, i32 46, i32 47, i32 48, i32 49, i32 50, i32 51, i32 52, i32 53, i32 54, i32 55, i32 56, i32 57, i32 58, i32 59, i32 60, i32 61, i32 62, i32 63, i32 96, i32 97, i32 98, i32 99, i32 100, i32 101, i32 102, i32 103, i32 104, i32 105, i32 106, i32 107, i32 108, i32 109, i32 110, i32 111, i32 112, i32 113, i32 114, i32 115, i32 116, i32 117, i32 118, i32 119, i32 120, i32 121, i32 122, i32 123, i32 124, i32 125, i32 126, i32 127>
ret <128 x i8> %p
}
; CHECK-LABEL: vdeal_21:
; CHECK: [[REG21:r[0-9]+]] = #33
; CHECK: vdeal(v1,v0,[[REG21]])
define <128 x i8> @vdeal_21(<128 x i8> %v0, <128 x i8> %v1) #0 {
%p = shufflevector <128 x i8> %v0, <128 x i8> undef, <128 x i32> < i32 0, i32 32, i32 2, i32 34, i32 4, i32 36, i32 6, i32 38, i32 8, i32 40, i32 10, i32 42, i32 12, i32 44, i32 14, i32 46, i32 16, i32 48, i32 18, i32 50, i32 20, i32 52, i32 22, i32 54, i32 24, i32 56, i32 26, i32 58, i32 28, i32 60, i32 30, i32 62, i32 64, i32 96, i32 66, i32 98, i32 68, i32 100, i32 70, i32 102, i32 72, i32 104, i32 74, i32 106, i32 76, i32 108, i32 78, i32 110, i32 80, i32 112, i32 82, i32 114, i32 84, i32 116, i32 86, i32 118, i32 88, i32 120, i32 90, i32 122, i32 92, i32 124, i32 94, i32 126, i32 1, i32 33, i32 3, i32 35, i32 5, i32 37, i32 7, i32 39, i32 9, i32 41, i32 11, i32 43, i32 13, i32 45, i32 15, i32 47, i32 17, i32 49, i32 19, i32 51, i32 21, i32 53, i32 23, i32 55, i32 25, i32 57, i32 27, i32 59, i32 29, i32 61, i32 31, i32 63, i32 65, i32 97, i32 67, i32 99, i32 69, i32 101, i32 71, i32 103, i32 73, i32 105, i32 75, i32 107, i32 77, i32 109, i32 79, i32 111, i32 81, i32 113, i32 83, i32 115, i32 85, i32 117, i32 87, i32 119, i32 89, i32 121, i32 91, i32 123, i32 93, i32 125, i32 95, i32 127>
ret <128 x i8> %p
}
; CHECK-LABEL: vdeal_22:
; CHECK: [[REG22:r[0-9]+]] = #34
; CHECK: vdeal(v1,v0,[[REG22]])
define <128 x i8> @vdeal_22(<128 x i8> %v0, <128 x i8> %v1) #0 {
%p = shufflevector <128 x i8> %v0, <128 x i8> undef, <128 x i32> < i32 0, i32 1, i32 32, i32 33, i32 4, i32 5, i32 36, i32 37, i32 8, i32 9, i32 40, i32 41, i32 12, i32 13, i32 44, i32 45, i32 16, i32 17, i32 48, i32 49, i32 20, i32 21, i32 52, i32 53, i32 24, i32 25, i32 56, i32 57, i32 28, i32 29, i32 60, i32 61, i32 64, i32 65, i32 96, i32 97, i32 68, i32 69, i32 100, i32 101, i32 72, i32 73, i32 104, i32 105, i32 76, i32 77, i32 108, i32 109, i32 80, i32 81, i32 112, i32 113, i32 84, i32 85, i32 116, i32 117, i32 88, i32 89, i32 120, i32 121, i32 92, i32 93, i32 124, i32 125, i32 2, i32 3, i32 34, i32 35, i32 6, i32 7, i32 38, i32 39, i32 10, i32 11, i32 42, i32 43, i32 14, i32 15, i32 46, i32 47, i32 18, i32 19, i32 50, i32 51, i32 22, i32 23, i32 54, i32 55, i32 26, i32 27, i32 58, i32 59, i32 30, i32 31, i32 62, i32 63, i32 66, i32 67, i32 98, i32 99, i32 70, i32 71, i32 102, i32 103, i32 74, i32 75, i32 106, i32 107, i32 78, i32 79, i32 110, i32 111, i32 82, i32 83, i32 114, i32 115, i32 86, i32 87, i32 118, i32 119, i32 90, i32 91, i32 122, i32 123, i32 94, i32 95, i32 126, i32 127>
ret <128 x i8> %p
}
; CHECK-LABEL: vdeal_23:
; CHECK: [[REG23:r[0-9]+]] = #35
; CHECK: vdeal(v1,v0,[[REG23]])
define <128 x i8> @vdeal_23(<128 x i8> %v0, <128 x i8> %v1) #0 {
%p = shufflevector <128 x i8> %v0, <128 x i8> undef, <128 x i32> < i32 0, i32 2, i32 32, i32 34, i32 4, i32 6, i32 36, i32 38, i32 8, i32 10, i32 40, i32 42, i32 12, i32 14, i32 44, i32 46, i32 16, i32 18, i32 48, i32 50, i32 20, i32 22, i32 52, i32 54, i32 24, i32 26, i32 56, i32 58, i32 28, i32 30, i32 60, i32 62, i32 64, i32 66, i32 96, i32 98, i32 68, i32 70, i32 100, i32 102, i32 72, i32 74, i32 104, i32 106, i32 76, i32 78, i32 108, i32 110, i32 80, i32 82, i32 112, i32 114, i32 84, i32 86, i32 116, i32 118, i32 88, i32 90, i32 120, i32 122, i32 92, i32 94, i32 124, i32 126, i32 1, i32 3, i32 33, i32 35, i32 5, i32 7, i32 37, i32 39, i32 9, i32 11, i32 41, i32 43, i32 13, i32 15, i32 45, i32 47, i32 17, i32 19, i32 49, i32 51, i32 21, i32 23, i32 53, i32 55, i32 25, i32 27, i32 57, i32 59, i32 29, i32 31, i32 61, i32 63, i32 65, i32 67, i32 97, i32 99, i32 69, i32 71, i32 101, i32 103, i32 73, i32 75, i32 105, i32 107, i32 77, i32 79, i32 109, i32 111, i32 81, i32 83, i32 113, i32 115, i32 85, i32 87, i32 117, i32 119, i32 89, i32 91, i32 121, i32 123, i32 93, i32 95, i32 125, i32 127>
ret <128 x i8> %p
}
; CHECK-LABEL: vdeal_24:
; CHECK: [[REG24:r[0-9]+]] = #36
; CHECK: vdeal(v1,v0,[[REG24]])
define <128 x i8> @vdeal_24(<128 x i8> %v0, <128 x i8> %v1) #0 {
%p = shufflevector <128 x i8> %v0, <128 x i8> undef, <128 x i32> < i32 0, i32 1, i32 2, i32 3, i32 32, i32 33, i32 34, i32 35, i32 8, i32 9, i32 10, i32 11, i32 40, i32 41, i32 42, i32 43, i32 16, i32 17, i32 18, i32 19, i32 48, i32 49, i32 50, i32 51, i32 24, i32 25, i32 26, i32 27, i32 56, i32 57, i32 58, i32 59, i32 64, i32 65, i32 66, i32 67, i32 96, i32 97, i32 98, i32 99, i32 72, i32 73, i32 74, i32 75, i32 104, i32 105, i32 106, i32 107, i32 80, i32 81, i32 82, i32 83, i32 112, i32 113, i32 114, i32 115, i32 88, i32 89, i32 90, i32 91, i32 120, i32 121, i32 122, i32 123, i32 4, i32 5, i32 6, i32 7, i32 36, i32 37, i32 38, i32 39, i32 12, i32 13, i32 14, i32 15, i32 44, i32 45, i32 46, i32 47, i32 20, i32 21, i32 22, i32 23, i32 52, i32 53, i32 54, i32 55, i32 28, i32 29, i32 30, i32 31, i32 60, i32 61, i32 62, i32 63, i32 68, i32 69, i32 70, i32 71, i32 100, i32 101, i32 102, i32 103, i32 76, i32 77, i32 78, i32 79, i32 108, i32 109, i32 110, i32 111, i32 84, i32 85, i32 86, i32 87, i32 116, i32 117, i32 118, i32 119, i32 92, i32 93, i32 94, i32 95, i32 124, i32 125, i32 126, i32 127>
ret <128 x i8> %p
}
; CHECK-LABEL: vdeal_25:
; CHECK: [[REG25:r[0-9]+]] = #37
; CHECK: vdeal(v1,v0,[[REG25]])
define <128 x i8> @vdeal_25(<128 x i8> %v0, <128 x i8> %v1) #0 {
%p = shufflevector <128 x i8> %v0, <128 x i8> undef, <128 x i32> < i32 0, i32 4, i32 2, i32 6, i32 32, i32 36, i32 34, i32 38, i32 8, i32 12, i32 10, i32 14, i32 40, i32 44, i32 42, i32 46, i32 16, i32 20, i32 18, i32 22, i32 48, i32 52, i32 50, i32 54, i32 24, i32 28, i32 26, i32 30, i32 56, i32 60, i32 58, i32 62, i32 64, i32 68, i32 66, i32 70, i32 96, i32 100, i32 98, i32 102, i32 72, i32 76, i32 74, i32 78, i32 104, i32 108, i32 106, i32 110, i32 80, i32 84, i32 82, i32 86, i32 112, i32 116, i32 114, i32 118, i32 88, i32 92, i32 90, i32 94, i32 120, i32 124, i32 122, i32 126, i32 1, i32 5, i32 3, i32 7, i32 33, i32 37, i32 35, i32 39, i32 9, i32 13, i32 11, i32 15, i32 41, i32 45, i32 43, i32 47, i32 17, i32 21, i32 19, i32 23, i32 49, i32 53, i32 51, i32 55, i32 25, i32 29, i32 27, i32 31, i32 57, i32 61, i32 59, i32 63, i32 65, i32 69, i32 67, i32 71, i32 97, i32 101, i32 99, i32 103, i32 73, i32 77, i32 75, i32 79, i32 105, i32 109, i32 107, i32 111, i32 81, i32 85, i32 83, i32 87, i32 113, i32 117, i32 115, i32 119, i32 89, i32 93, i32 91, i32 95, i32 121, i32 125, i32 123, i32 127>
ret <128 x i8> %p
}
; CHECK-LABEL: vdeal_26:
; CHECK: [[REG26:r[0-9]+]] = #38
; CHECK: vdeal(v1,v0,[[REG26]])
define <128 x i8> @vdeal_26(<128 x i8> %v0, <128 x i8> %v1) #0 {
%p = shufflevector <128 x i8> %v0, <128 x i8> undef, <128 x i32> < i32 0, i32 1, i32 4, i32 5, i32 32, i32 33, i32 36, i32 37, i32 8, i32 9, i32 12, i32 13, i32 40, i32 41, i32 44, i32 45, i32 16, i32 17, i32 20, i32 21, i32 48, i32 49, i32 52, i32 53, i32 24, i32 25, i32 28, i32 29, i32 56, i32 57, i32 60, i32 61, i32 64, i32 65, i32 68, i32 69, i32 96, i32 97, i32 100, i32 101, i32 72, i32 73, i32 76, i32 77, i32 104, i32 105, i32 108, i32 109, i32 80, i32 81, i32 84, i32 85, i32 112, i32 113, i32 116, i32 117, i32 88, i32 89, i32 92, i32 93, i32 120, i32 121, i32 124, i32 125, i32 2, i32 3, i32 6, i32 7, i32 34, i32 35, i32 38, i32 39, i32 10, i32 11, i32 14, i32 15, i32 42, i32 43, i32 46, i32 47, i32 18, i32 19, i32 22, i32 23, i32 50, i32 51, i32 54, i32 55, i32 26, i32 27, i32 30, i32 31, i32 58, i32 59, i32 62, i32 63, i32 66, i32 67, i32 70, i32 71, i32 98, i32 99, i32 102, i32 103, i32 74, i32 75, i32 78, i32 79, i32 106, i32 107, i32 110, i32 111, i32 82, i32 83, i32 86, i32 87, i32 114, i32 115, i32 118, i32 119, i32 90, i32 91, i32 94, i32 95, i32 122, i32 123, i32 126, i32 127>
ret <128 x i8> %p
}
; CHECK-LABEL: vdeal_27:
; CHECK: [[REG27:r[0-9]+]] = #39
; CHECK: vdeal(v1,v0,[[REG27]])
define <128 x i8> @vdeal_27(<128 x i8> %v0, <128 x i8> %v1) #0 {
%p = shufflevector <128 x i8> %v0, <128 x i8> undef, <128 x i32> < i32 0, i32 2, i32 4, i32 6, i32 32, i32 34, i32 36, i32 38, i32 8, i32 10, i32 12, i32 14, i32 40, i32 42, i32 44, i32 46, i32 16, i32 18, i32 20, i32 22, i32 48, i32 50, i32 52, i32 54, i32 24, i32 26, i32 28, i32 30, i32 56, i32 58, i32 60, i32 62, i32 64, i32 66, i32 68, i32 70, i32 96, i32 98, i32 100, i32 102, i32 72, i32 74, i32 76, i32 78, i32 104, i32 106, i32 108, i32 110, i32 80, i32 82, i32 84, i32 86, i32 112, i32 114, i32 116, i32 118, i32 88, i32 90, i32 92, i32 94, i32 120, i32 122, i32 124, i32 126, i32 1, i32 3, i32 5, i32 7, i32 33, i32 35, i32 37, i32 39, i32 9, i32 11, i32 13, i32 15, i32 41, i32 43, i32 45, i32 47, i32 17, i32 19, i32 21, i32 23, i32 49, i32 51, i32 53, i32 55, i32 25, i32 27, i32 29, i32 31, i32 57, i32 59, i32 61, i32 63, i32 65, i32 67, i32 69, i32 71, i32 97, i32 99, i32 101, i32 103, i32 73, i32 75, i32 77, i32 79, i32 105, i32 107, i32 109, i32 111, i32 81, i32 83, i32 85, i32 87, i32 113, i32 115, i32 117, i32 119, i32 89, i32 91, i32 93, i32 95, i32 121, i32 123, i32 125, i32 127>
ret <128 x i8> %p
}
; CHECK-LABEL: vdeal_28:
; CHECK: [[REG28:r[0-9]+]] = #40
; CHECK: vdeal(v1,v0,[[REG28]])
define <128 x i8> @vdeal_28(<128 x i8> %v0, <128 x i8> %v1) #0 {
%p = shufflevector <128 x i8> %v0, <128 x i8> undef, <128 x i32> < i32 0, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7, i32 32, i32 33, i32 34, i32 35, i32 36, i32 37, i32 38, i32 39, i32 16, i32 17, i32 18, i32 19, i32 20, i32 21, i32 22, i32 23, i32 48, i32 49, i32 50, i32 51, i32 52, i32 53, i32 54, i32 55, i32 64, i32 65, i32 66, i32 67, i32 68, i32 69, i32 70, i32 71, i32 96, i32 97, i32 98, i32 99, i32 100, i32 101, i32 102, i32 103, i32 80, i32 81, i32 82, i32 83, i32 84, i32 85, i32 86, i32 87, i32 112, i32 113, i32 114, i32 115, i32 116, i32 117, i32 118, i32 119, i32 8, i32 9, i32 10, i32 11, i32 12, i32 13, i32 14, i32 15, i32 40, i32 41, i32 42, i32 43, i32 44, i32 45, i32 46, i32 47, i32 24, i32 25, i32 26, i32 27, i32 28, i32 29, i32 30, i32 31, i32 56, i32 57, i32 58, i32 59, i32 60, i32 61, i32 62, i32 63, i32 72, i32 73, i32 74, i32 75, i32 76, i32 77, i32 78, i32 79, i32 104, i32 105, i32 106, i32 107, i32 108, i32 109, i32 110, i32 111, i32 88, i32 89, i32 90, i32 91, i32 92, i32 93, i32 94, i32 95, i32 120, i32 121, i32 122, i32 123, i32 124, i32 125, i32 126, i32 127>
ret <128 x i8> %p
}
; CHECK-LABEL: vdeal_29:
; CHECK: [[REG29:r[0-9]+]] = #41
; CHECK: vdeal(v1,v0,[[REG29]])
define <128 x i8> @vdeal_29(<128 x i8> %v0, <128 x i8> %v1) #0 {
%p = shufflevector <128 x i8> %v0, <128 x i8> undef, <128 x i32> < i32 0, i32 8, i32 2, i32 10, i32 4, i32 12, i32 6, i32 14, i32 32, i32 40, i32 34, i32 42, i32 36, i32 44, i32 38, i32 46, i32 16, i32 24, i32 18, i32 26, i32 20, i32 28, i32 22, i32 30, i32 48, i32 56, i32 50, i32 58, i32 52, i32 60, i32 54, i32 62, i32 64, i32 72, i32 66, i32 74, i32 68, i32 76, i32 70, i32 78, i32 96, i32 104, i32 98, i32 106, i32 100, i32 108, i32 102, i32 110, i32 80, i32 88, i32 82, i32 90, i32 84, i32 92, i32 86, i32 94, i32 112, i32 120, i32 114, i32 122, i32 116, i32 124, i32 118, i32 126, i32 1, i32 9, i32 3, i32 11, i32 5, i32 13, i32 7, i32 15, i32 33, i32 41, i32 35, i32 43, i32 37, i32 45, i32 39, i32 47, i32 17, i32 25, i32 19, i32 27, i32 21, i32 29, i32 23, i32 31, i32 49, i32 57, i32 51, i32 59, i32 53, i32 61, i32 55, i32 63, i32 65, i32 73, i32 67, i32 75, i32 69, i32 77, i32 71, i32 79, i32 97, i32 105, i32 99, i32 107, i32 101, i32 109, i32 103, i32 111, i32 81, i32 89, i32 83, i32 91, i32 85, i32 93, i32 87, i32 95, i32 113, i32 121, i32 115, i32 123, i32 117, i32 125, i32 119, i32 127>
ret <128 x i8> %p
}
; CHECK-LABEL: vdeal_2a:
; CHECK: [[REG2a:r[0-9]+]] = #42
; CHECK: vdeal(v1,v0,[[REG2a]])
define <128 x i8> @vdeal_2a(<128 x i8> %v0, <128 x i8> %v1) #0 {
%p = shufflevector <128 x i8> %v0, <128 x i8> undef, <128 x i32> < i32 0, i32 1, i32 8, i32 9, i32 4, i32 5, i32 12, i32 13, i32 32, i32 33, i32 40, i32 41, i32 36, i32 37, i32 44, i32 45, i32 16, i32 17, i32 24, i32 25, i32 20, i32 21, i32 28, i32 29, i32 48, i32 49, i32 56, i32 57, i32 52, i32 53, i32 60, i32 61, i32 64, i32 65, i32 72, i32 73, i32 68, i32 69, i32 76, i32 77, i32 96, i32 97, i32 104, i32 105, i32 100, i32 101, i32 108, i32 109, i32 80, i32 81, i32 88, i32 89, i32 84, i32 85, i32 92, i32 93, i32 112, i32 113, i32 120, i32 121, i32 116, i32 117, i32 124, i32 125, i32 2, i32 3, i32 10, i32 11, i32 6, i32 7, i32 14, i32 15, i32 34, i32 35, i32 42, i32 43, i32 38, i32 39, i32 46, i32 47, i32 18, i32 19, i32 26, i32 27, i32 22, i32 23, i32 30, i32 31, i32 50, i32 51, i32 58, i32 59, i32 54, i32 55, i32 62, i32 63, i32 66, i32 67, i32 74, i32 75, i32 70, i32 71, i32 78, i32 79, i32 98, i32 99, i32 106, i32 107, i32 102, i32 103, i32 110, i32 111, i32 82, i32 83, i32 90, i32 91, i32 86, i32 87, i32 94, i32 95, i32 114, i32 115, i32 122, i32 123, i32 118, i32 119, i32 126, i32 127>
ret <128 x i8> %p
}
; CHECK-LABEL: vdeal_2b:
; CHECK: [[REG2b:r[0-9]+]] = #43
; CHECK: vdeal(v1,v0,[[REG2b]])
define <128 x i8> @vdeal_2b(<128 x i8> %v0, <128 x i8> %v1) #0 {
%p = shufflevector <128 x i8> %v0, <128 x i8> undef, <128 x i32> < i32 0, i32 2, i32 8, i32 10, i32 4, i32 6, i32 12, i32 14, i32 32, i32 34, i32 40, i32 42, i32 36, i32 38, i32 44, i32 46, i32 16, i32 18, i32 24, i32 26, i32 20, i32 22, i32 28, i32 30, i32 48, i32 50, i32 56, i32 58, i32 52, i32 54, i32 60, i32 62, i32 64, i32 66, i32 72, i32 74, i32 68, i32 70, i32 76, i32 78, i32 96, i32 98, i32 104, i32 106, i32 100, i32 102, i32 108, i32 110, i32 80, i32 82, i32 88, i32 90, i32 84, i32 86, i32 92, i32 94, i32 112, i32 114, i32 120, i32 122, i32 116, i32 118, i32 124, i32 126, i32 1, i32 3, i32 9, i32 11, i32 5, i32 7, i32 13, i32 15, i32 33, i32 35, i32 41, i32 43, i32 37, i32 39, i32 45, i32 47, i32 17, i32 19, i32 25, i32 27, i32 21, i32 23, i32 29, i32 31, i32 49, i32 51, i32 57, i32 59, i32 53, i32 55, i32 61, i32 63, i32 65, i32 67, i32 73, i32 75, i32 69, i32 71, i32 77, i32 79, i32 97, i32 99, i32 105, i32 107, i32 101, i32 103, i32 109, i32 111, i32 81, i32 83, i32 89, i32 91, i32 85, i32 87, i32 93, i32 95, i32 113, i32 115, i32 121, i32 123, i32 117, i32 119, i32 125, i32 127>
ret <128 x i8> %p
}
; CHECK-LABEL: vdeal_2c:
; CHECK: [[REG2c:r[0-9]+]] = #44
; CHECK: vdeal(v1,v0,[[REG2c]])
define <128 x i8> @vdeal_2c(<128 x i8> %v0, <128 x i8> %v1) #0 {
%p = shufflevector <128 x i8> %v0, <128 x i8> undef, <128 x i32> < i32 0, i32 1, i32 2, i32 3, i32 8, i32 9, i32 10, i32 11, i32 32, i32 33, i32 34, i32 35, i32 40, i32 41, i32 42, i32 43, i32 16, i32 17, i32 18, i32 19, i32 24, i32 25, i32 26, i32 27, i32 48, i32 49, i32 50, i32 51, i32 56, i32 57, i32 58, i32 59, i32 64, i32 65, i32 66, i32 67, i32 72, i32 73, i32 74, i32 75, i32 96, i32 97, i32 98, i32 99, i32 104, i32 105, i32 106, i32 107, i32 80, i32 81, i32 82, i32 83, i32 88, i32 89, i32 90, i32 91, i32 112, i32 113, i32 114, i32 115, i32 120, i32 121, i32 122, i32 123, i32 4, i32 5, i32 6, i32 7, i32 12, i32 13, i32 14, i32 15, i32 36, i32 37, i32 38, i32 39, i32 44, i32 45, i32 46, i32 47, i32 20, i32 21, i32 22, i32 23, i32 28, i32 29, i32 30, i32 31, i32 52, i32 53, i32 54, i32 55, i32 60, i32 61, i32 62, i32 63, i32 68, i32 69, i32 70, i32 71, i32 76, i32 77, i32 78, i32 79, i32 100, i32 101, i32 102, i32 103, i32 108, i32 109, i32 110, i32 111, i32 84, i32 85, i32 86, i32 87, i32 92, i32 93, i32 94, i32 95, i32 116, i32 117, i32 118, i32 119, i32 124, i32 125, i32 126, i32 127>
ret <128 x i8> %p
}
; CHECK-LABEL: vdeal_2d:
; CHECK: [[REG2d:r[0-9]+]] = #45
; CHECK: vdeal(v1,v0,[[REG2d]])
define <128 x i8> @vdeal_2d(<128 x i8> %v0, <128 x i8> %v1) #0 {
%p = shufflevector <128 x i8> %v0, <128 x i8> undef, <128 x i32> < i32 0, i32 4, i32 2, i32 6, i32 8, i32 12, i32 10, i32 14, i32 32, i32 36, i32 34, i32 38, i32 40, i32 44, i32 42, i32 46, i32 16, i32 20, i32 18, i32 22, i32 24, i32 28, i32 26, i32 30, i32 48, i32 52, i32 50, i32 54, i32 56, i32 60, i32 58, i32 62, i32 64, i32 68, i32 66, i32 70, i32 72, i32 76, i32 74, i32 78, i32 96, i32 100, i32 98, i32 102, i32 104, i32 108, i32 106, i32 110, i32 80, i32 84, i32 82, i32 86, i32 88, i32 92, i32 90, i32 94, i32 112, i32 116, i32 114, i32 118, i32 120, i32 124, i32 122, i32 126, i32 1, i32 5, i32 3, i32 7, i32 9, i32 13, i32 11, i32 15, i32 33, i32 37, i32 35, i32 39, i32 41, i32 45, i32 43, i32 47, i32 17, i32 21, i32 19, i32 23, i32 25, i32 29, i32 27, i32 31, i32 49, i32 53, i32 51, i32 55, i32 57, i32 61, i32 59, i32 63, i32 65, i32 69, i32 67, i32 71, i32 73, i32 77, i32 75, i32 79, i32 97, i32 101, i32 99, i32 103, i32 105, i32 109, i32 107, i32 111, i32 81, i32 85, i32 83, i32 87, i32 89, i32 93, i32 91, i32 95, i32 113, i32 117, i32 115, i32 119, i32 121, i32 125, i32 123, i32 127>
ret <128 x i8> %p
}
; CHECK-LABEL: vdeal_2e:
; CHECK: [[REG2e:r[0-9]+]] = #46
; CHECK: vdeal(v1,v0,[[REG2e]])
define <128 x i8> @vdeal_2e(<128 x i8> %v0, <128 x i8> %v1) #0 {
%p = shufflevector <128 x i8> %v0, <128 x i8> undef, <128 x i32> < i32 0, i32 1, i32 4, i32 5, i32 8, i32 9, i32 12, i32 13, i32 32, i32 33, i32 36, i32 37, i32 40, i32 41, i32 44, i32 45, i32 16, i32 17, i32 20, i32 21, i32 24, i32 25, i32 28, i32 29, i32 48, i32 49, i32 52, i32 53, i32 56, i32 57, i32 60, i32 61, i32 64, i32 65, i32 68, i32 69, i32 72, i32 73, i32 76, i32 77, i32 96, i32 97, i32 100, i32 101, i32 104, i32 105, i32 108, i32 109, i32 80, i32 81, i32 84, i32 85, i32 88, i32 89, i32 92, i32 93, i32 112, i32 113, i32 116, i32 117, i32 120, i32 121, i32 124, i32 125, i32 2, i32 3, i32 6, i32 7, i32 10, i32 11, i32 14, i32 15, i32 34, i32 35, i32 38, i32 39, i32 42, i32 43, i32 46, i32 47, i32 18, i32 19, i32 22, i32 23, i32 26, i32 27, i32 30, i32 31, i32 50, i32 51, i32 54, i32 55, i32 58, i32 59, i32 62, i32 63, i32 66, i32 67, i32 70, i32 71, i32 74, i32 75, i32 78, i32 79, i32 98, i32 99, i32 102, i32 103, i32 106, i32 107, i32 110, i32 111, i32 82, i32 83, i32 86, i32 87, i32 90, i32 91, i32 94, i32 95, i32 114, i32 115, i32 118, i32 119, i32 122, i32 123, i32 126, i32 127>
ret <128 x i8> %p
}
; CHECK-LABEL: vdeal_2f:
; CHECK: [[REG2f:r[0-9]+]] = #47
; CHECK: vdeal(v1,v0,[[REG2f]])
define <128 x i8> @vdeal_2f(<128 x i8> %v0, <128 x i8> %v1) #0 {
%p = shufflevector <128 x i8> %v0, <128 x i8> undef, <128 x i32> < i32 0, i32 2, i32 4, i32 6, i32 8, i32 10, i32 12, i32 14, i32 32, i32 34, i32 36, i32 38, i32 40, i32 42, i32 44, i32 46, i32 16, i32 18, i32 20, i32 22, i32 24, i32 26, i32 28, i32 30, i32 48, i32 50, i32 52, i32 54, i32 56, i32 58, i32 60, i32 62, i32 64, i32 66, i32 68, i32 70, i32 72, i32 74, i32 76, i32 78, i32 96, i32 98, i32 100, i32 102, i32 104, i32 106, i32 108, i32 110, i32 80, i32 82, i32 84, i32 86, i32 88, i32 90, i32 92, i32 94, i32 112, i32 114, i32 116, i32 118, i32 120, i32 122, i32 124, i32 126, i32 1, i32 3, i32 5, i32 7, i32 9, i32 11, i32 13, i32 15, i32 33, i32 35, i32 37, i32 39, i32 41, i32 43, i32 45, i32 47, i32 17, i32 19, i32 21, i32 23, i32 25, i32 27, i32 29, i32 31, i32 49, i32 51, i32 53, i32 55, i32 57, i32 59, i32 61, i32 63, i32 65, i32 67, i32 69, i32 71, i32 73, i32 75, i32 77, i32 79, i32 97, i32 99, i32 101, i32 103, i32 105, i32 107, i32 109, i32 111, i32 81, i32 83, i32 85, i32 87, i32 89, i32 91, i32 93, i32 95, i32 113, i32 115, i32 117, i32 119, i32 121, i32 123, i32 125, i32 127>
ret <128 x i8> %p
}
; CHECK-LABEL: vdeal_30:
; CHECK: [[REG30:r[0-9]+]] = #48
; CHECK: vdeal(v1,v0,[[REG30]])
define <128 x i8> @vdeal_30(<128 x i8> %v0, <128 x i8> %v1) #0 {
%p = shufflevector <128 x i8> %v0, <128 x i8> undef, <128 x i32> < i32 0, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7, i32 8, i32 9, i32 10, i32 11, i32 12, i32 13, i32 14, i32 15, i32 32, i32 33, i32 34, i32 35, i32 36, i32 37, i32 38, i32 39, i32 40, i32 41, i32 42, i32 43, i32 44, i32 45, i32 46, i32 47, i32 64, i32 65, i32 66, i32 67, i32 68, i32 69, i32 70, i32 71, i32 72, i32 73, i32 74, i32 75, i32 76, i32 77, i32 78, i32 79, i32 96, i32 97, i32 98, i32 99, i32 100, i32 101, i32 102, i32 103, i32 104, i32 105, i32 106, i32 107, i32 108, i32 109, i32 110, i32 111, i32 16, i32 17, i32 18, i32 19, i32 20, i32 21, i32 22, i32 23, i32 24, i32 25, i32 26, i32 27, i32 28, i32 29, i32 30, i32 31, i32 48, i32 49, i32 50, i32 51, i32 52, i32 53, i32 54, i32 55, i32 56, i32 57, i32 58, i32 59, i32 60, i32 61, i32 62, i32 63, i32 80, i32 81, i32 82, i32 83, i32 84, i32 85, i32 86, i32 87, i32 88, i32 89, i32 90, i32 91, i32 92, i32 93, i32 94, i32 95, i32 112, i32 113, i32 114, i32 115, i32 116, i32 117, i32 118, i32 119, i32 120, i32 121, i32 122, i32 123, i32 124, i32 125, i32 126, i32 127>
ret <128 x i8> %p
}
; CHECK-LABEL: vdeal_31:
; CHECK: [[REG31:r[0-9]+]] = #49
; CHECK: vdeal(v1,v0,[[REG31]])
define <128 x i8> @vdeal_31(<128 x i8> %v0, <128 x i8> %v1) #0 {
%p = shufflevector <128 x i8> %v0, <128 x i8> undef, <128 x i32> < i32 0, i32 16, i32 2, i32 18, i32 4, i32 20, i32 6, i32 22, i32 8, i32 24, i32 10, i32 26, i32 12, i32 28, i32 14, i32 30, i32 32, i32 48, i32 34, i32 50, i32 36, i32 52, i32 38, i32 54, i32 40, i32 56, i32 42, i32 58, i32 44, i32 60, i32 46, i32 62, i32 64, i32 80, i32 66, i32 82, i32 68, i32 84, i32 70, i32 86, i32 72, i32 88, i32 74, i32 90, i32 76, i32 92, i32 78, i32 94, i32 96, i32 112, i32 98, i32 114, i32 100, i32 116, i32 102, i32 118, i32 104, i32 120, i32 106, i32 122, i32 108, i32 124, i32 110, i32 126, i32 1, i32 17, i32 3, i32 19, i32 5, i32 21, i32 7, i32 23, i32 9, i32 25, i32 11, i32 27, i32 13, i32 29, i32 15, i32 31, i32 33, i32 49, i32 35, i32 51, i32 37, i32 53, i32 39, i32 55, i32 41, i32 57, i32 43, i32 59, i32 45, i32 61, i32 47, i32 63, i32 65, i32 81, i32 67, i32 83, i32 69, i32 85, i32 71, i32 87, i32 73, i32 89, i32 75, i32 91, i32 77, i32 93, i32 79, i32 95, i32 97, i32 113, i32 99, i32 115, i32 101, i32 117, i32 103, i32 119, i32 105, i32 121, i32 107, i32 123, i32 109, i32 125, i32 111, i32 127>
ret <128 x i8> %p
}
; CHECK-LABEL: vdeal_32:
; CHECK: [[REG32:r[0-9]+]] = #50
; CHECK: vdeal(v1,v0,[[REG32]])
define <128 x i8> @vdeal_32(<128 x i8> %v0, <128 x i8> %v1) #0 {
%p = shufflevector <128 x i8> %v0, <128 x i8> undef, <128 x i32> < i32 0, i32 1, i32 16, i32 17, i32 4, i32 5, i32 20, i32 21, i32 8, i32 9, i32 24, i32 25, i32 12, i32 13, i32 28, i32 29, i32 32, i32 33, i32 48, i32 49, i32 36, i32 37, i32 52, i32 53, i32 40, i32 41, i32 56, i32 57, i32 44, i32 45, i32 60, i32 61, i32 64, i32 65, i32 80, i32 81, i32 68, i32 69, i32 84, i32 85, i32 72, i32 73, i32 88, i32 89, i32 76, i32 77, i32 92, i32 93, i32 96, i32 97, i32 112, i32 113, i32 100, i32 101, i32 116, i32 117, i32 104, i32 105, i32 120, i32 121, i32 108, i32 109, i32 124, i32 125, i32 2, i32 3, i32 18, i32 19, i32 6, i32 7, i32 22, i32 23, i32 10, i32 11, i32 26, i32 27, i32 14, i32 15, i32 30, i32 31, i32 34, i32 35, i32 50, i32 51, i32 38, i32 39, i32 54, i32 55, i32 42, i32 43, i32 58, i32 59, i32 46, i32 47, i32 62, i32 63, i32 66, i32 67, i32 82, i32 83, i32 70, i32 71, i32 86, i32 87, i32 74, i32 75, i32 90, i32 91, i32 78, i32 79, i32 94, i32 95, i32 98, i32 99, i32 114, i32 115, i32 102, i32 103, i32 118, i32 119, i32 106, i32 107, i32 122, i32 123, i32 110, i32 111, i32 126, i32 127>
ret <128 x i8> %p
}
; CHECK-LABEL: vdeal_33:
; CHECK: [[REG33:r[0-9]+]] = #51
; CHECK: vdeal(v1,v0,[[REG33]])
define <128 x i8> @vdeal_33(<128 x i8> %v0, <128 x i8> %v1) #0 {
%p = shufflevector <128 x i8> %v0, <128 x i8> undef, <128 x i32> < i32 0, i32 2, i32 16, i32 18, i32 4, i32 6, i32 20, i32 22, i32 8, i32 10, i32 24, i32 26, i32 12, i32 14, i32 28, i32 30, i32 32, i32 34, i32 48, i32 50, i32 36, i32 38, i32 52, i32 54, i32 40, i32 42, i32 56, i32 58, i32 44, i32 46, i32 60, i32 62, i32 64, i32 66, i32 80, i32 82, i32 68, i32 70, i32 84, i32 86, i32 72, i32 74, i32 88, i32 90, i32 76, i32 78, i32 92, i32 94, i32 96, i32 98, i32 112, i32 114, i32 100, i32 102, i32 116, i32 118, i32 104, i32 106, i32 120, i32 122, i32 108, i32 110, i32 124, i32 126, i32 1, i32 3, i32 17, i32 19, i32 5, i32 7, i32 21, i32 23, i32 9, i32 11, i32 25, i32 27, i32 13, i32 15, i32 29, i32 31, i32 33, i32 35, i32 49, i32 51, i32 37, i32 39, i32 53, i32 55, i32 41, i32 43, i32 57, i32 59, i32 45, i32 47, i32 61, i32 63, i32 65, i32 67, i32 81, i32 83, i32 69, i32 71, i32 85, i32 87, i32 73, i32 75, i32 89, i32 91, i32 77, i32 79, i32 93, i32 95, i32 97, i32 99, i32 113, i32 115, i32 101, i32 103, i32 117, i32 119, i32 105, i32 107, i32 121, i32 123, i32 109, i32 111, i32 125, i32 127>
ret <128 x i8> %p
}
; CHECK-LABEL: vdeal_34:
; CHECK: [[REG34:r[0-9]+]] = #52
; CHECK: vdeal(v1,v0,[[REG34]])
define <128 x i8> @vdeal_34(<128 x i8> %v0, <128 x i8> %v1) #0 {
%p = shufflevector <128 x i8> %v0, <128 x i8> undef, <128 x i32> < i32 0, i32 1, i32 2, i32 3, i32 16, i32 17, i32 18, i32 19, i32 8, i32 9, i32 10, i32 11, i32 24, i32 25, i32 26, i32 27, i32 32, i32 33, i32 34, i32 35, i32 48, i32 49, i32 50, i32 51, i32 40, i32 41, i32 42, i32 43, i32 56, i32 57, i32 58, i32 59, i32 64, i32 65, i32 66, i32 67, i32 80, i32 81, i32 82, i32 83, i32 72, i32 73, i32 74, i32 75, i32 88, i32 89, i32 90, i32 91, i32 96, i32 97, i32 98, i32 99, i32 112, i32 113, i32 114, i32 115, i32 104, i32 105, i32 106, i32 107, i32 120, i32 121, i32 122, i32 123, i32 4, i32 5, i32 6, i32 7, i32 20, i32 21, i32 22, i32 23, i32 12, i32 13, i32 14, i32 15, i32 28, i32 29, i32 30, i32 31, i32 36, i32 37, i32 38, i32 39, i32 52, i32 53, i32 54, i32 55, i32 44, i32 45, i32 46, i32 47, i32 60, i32 61, i32 62, i32 63, i32 68, i32 69, i32 70, i32 71, i32 84, i32 85, i32 86, i32 87, i32 76, i32 77, i32 78, i32 79, i32 92, i32 93, i32 94, i32 95, i32 100, i32 101, i32 102, i32 103, i32 116, i32 117, i32 118, i32 119, i32 108, i32 109, i32 110, i32 111, i32 124, i32 125, i32 126, i32 127>
ret <128 x i8> %p
}
; CHECK-LABEL: vdeal_35:
; CHECK: [[REG35:r[0-9]+]] = #53
; CHECK: vdeal(v1,v0,[[REG35]])
define <128 x i8> @vdeal_35(<128 x i8> %v0, <128 x i8> %v1) #0 {
%p = shufflevector <128 x i8> %v0, <128 x i8> undef, <128 x i32> < i32 0, i32 4, i32 2, i32 6, i32 16, i32 20, i32 18, i32 22, i32 8, i32 12, i32 10, i32 14, i32 24, i32 28, i32 26, i32 30, i32 32, i32 36, i32 34, i32 38, i32 48, i32 52, i32 50, i32 54, i32 40, i32 44, i32 42, i32 46, i32 56, i32 60, i32 58, i32 62, i32 64, i32 68, i32 66, i32 70, i32 80, i32 84, i32 82, i32 86, i32 72, i32 76, i32 74, i32 78, i32 88, i32 92, i32 90, i32 94, i32 96, i32 100, i32 98, i32 102, i32 112, i32 116, i32 114, i32 118, i32 104, i32 108, i32 106, i32 110, i32 120, i32 124, i32 122, i32 126, i32 1, i32 5, i32 3, i32 7, i32 17, i32 21, i32 19, i32 23, i32 9, i32 13, i32 11, i32 15, i32 25, i32 29, i32 27, i32 31, i32 33, i32 37, i32 35, i32 39, i32 49, i32 53, i32 51, i32 55, i32 41, i32 45, i32 43, i32 47, i32 57, i32 61, i32 59, i32 63, i32 65, i32 69, i32 67, i32 71, i32 81, i32 85, i32 83, i32 87, i32 73, i32 77, i32 75, i32 79, i32 89, i32 93, i32 91, i32 95, i32 97, i32 101, i32 99, i32 103, i32 113, i32 117, i32 115, i32 119, i32 105, i32 109, i32 107, i32 111, i32 121, i32 125, i32 123, i32 127>
ret <128 x i8> %p
}
; CHECK-LABEL: vdeal_36:
; CHECK: [[REG36:r[0-9]+]] = #54
; CHECK: vdeal(v1,v0,[[REG36]])
define <128 x i8> @vdeal_36(<128 x i8> %v0, <128 x i8> %v1) #0 {
%p = shufflevector <128 x i8> %v0, <128 x i8> undef, <128 x i32> < i32 0, i32 1, i32 4, i32 5, i32 16, i32 17, i32 20, i32 21, i32 8, i32 9, i32 12, i32 13, i32 24, i32 25, i32 28, i32 29, i32 32, i32 33, i32 36, i32 37, i32 48, i32 49, i32 52, i32 53, i32 40, i32 41, i32 44, i32 45, i32 56, i32 57, i32 60, i32 61, i32 64, i32 65, i32 68, i32 69, i32 80, i32 81, i32 84, i32 85, i32 72, i32 73, i32 76, i32 77, i32 88, i32 89, i32 92, i32 93, i32 96, i32 97, i32 100, i32 101, i32 112, i32 113, i32 116, i32 117, i32 104, i32 105, i32 108, i32 109, i32 120, i32 121, i32 124, i32 125, i32 2, i32 3, i32 6, i32 7, i32 18, i32 19, i32 22, i32 23, i32 10, i32 11, i32 14, i32 15, i32 26, i32 27, i32 30, i32 31, i32 34, i32 35, i32 38, i32 39, i32 50, i32 51, i32 54, i32 55, i32 42, i32 43, i32 46, i32 47, i32 58, i32 59, i32 62, i32 63, i32 66, i32 67, i32 70, i32 71, i32 82, i32 83, i32 86, i32 87, i32 74, i32 75, i32 78, i32 79, i32 90, i32 91, i32 94, i32 95, i32 98, i32 99, i32 102, i32 103, i32 114, i32 115, i32 118, i32 119, i32 106, i32 107, i32 110, i32 111, i32 122, i32 123, i32 126, i32 127>
ret <128 x i8> %p
}
; CHECK-LABEL: vdeal_37:
; CHECK: [[REG37:r[0-9]+]] = #55
; CHECK: vdeal(v1,v0,[[REG37]])
define <128 x i8> @vdeal_37(<128 x i8> %v0, <128 x i8> %v1) #0 {
%p = shufflevector <128 x i8> %v0, <128 x i8> undef, <128 x i32> < i32 0, i32 2, i32 4, i32 6, i32 16, i32 18, i32 20, i32 22, i32 8, i32 10, i32 12, i32 14, i32 24, i32 26, i32 28, i32 30, i32 32, i32 34, i32 36, i32 38, i32 48, i32 50, i32 52, i32 54, i32 40, i32 42, i32 44, i32 46, i32 56, i32 58, i32 60, i32 62, i32 64, i32 66, i32 68, i32 70, i32 80, i32 82, i32 84, i32 86, i32 72, i32 74, i32 76, i32 78, i32 88, i32 90, i32 92, i32 94, i32 96, i32 98, i32 100, i32 102, i32 112, i32 114, i32 116, i32 118, i32 104, i32 106, i32 108, i32 110, i32 120, i32 122, i32 124, i32 126, i32 1, i32 3, i32 5, i32 7, i32 17, i32 19, i32 21, i32 23, i32 9, i32 11, i32 13, i32 15, i32 25, i32 27, i32 29, i32 31, i32 33, i32 35, i32 37, i32 39, i32 49, i32 51, i32 53, i32 55, i32 41, i32 43, i32 45, i32 47, i32 57, i32 59, i32 61, i32 63, i32 65, i32 67, i32 69, i32 71, i32 81, i32 83, i32 85, i32 87, i32 73, i32 75, i32 77, i32 79, i32 89, i32 91, i32 93, i32 95, i32 97, i32 99, i32 101, i32 103, i32 113, i32 115, i32 117, i32 119, i32 105, i32 107, i32 109, i32 111, i32 121, i32 123, i32 125, i32 127>
ret <128 x i8> %p
}
; CHECK-LABEL: vdeal_38:
; CHECK: [[REG38:r[0-9]+]] = #56
; CHECK: vdeal(v1,v0,[[REG38]])
define <128 x i8> @vdeal_38(<128 x i8> %v0, <128 x i8> %v1) #0 {
%p = shufflevector <128 x i8> %v0, <128 x i8> undef, <128 x i32> < i32 0, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7, i32 16, i32 17, i32 18, i32 19, i32 20, i32 21, i32 22, i32 23, i32 32, i32 33, i32 34, i32 35, i32 36, i32 37, i32 38, i32 39, i32 48, i32 49, i32 50, i32 51, i32 52, i32 53, i32 54, i32 55, i32 64, i32 65, i32 66, i32 67, i32 68, i32 69, i32 70, i32 71, i32 80, i32 81, i32 82, i32 83, i32 84, i32 85, i32 86, i32 87, i32 96, i32 97, i32 98, i32 99, i32 100, i32 101, i32 102, i32 103, i32 112, i32 113, i32 114, i32 115, i32 116, i32 117, i32 118, i32 119, i32 8, i32 9, i32 10, i32 11, i32 12, i32 13, i32 14, i32 15, i32 24, i32 25, i32 26, i32 27, i32 28, i32 29, i32 30, i32 31, i32 40, i32 41, i32 42, i32 43, i32 44, i32 45, i32 46, i32 47, i32 56, i32 57, i32 58, i32 59, i32 60, i32 61, i32 62, i32 63, i32 72, i32 73, i32 74, i32 75, i32 76, i32 77, i32 78, i32 79, i32 88, i32 89, i32 90, i32 91, i32 92, i32 93, i32 94, i32 95, i32 104, i32 105, i32 106, i32 107, i32 108, i32 109, i32 110, i32 111, i32 120, i32 121, i32 122, i32 123, i32 124, i32 125, i32 126, i32 127>
ret <128 x i8> %p
}
; CHECK-LABEL: vdeal_39:
; CHECK: [[REG39:r[0-9]+]] = #57
; CHECK: vdeal(v1,v0,[[REG39]])
define <128 x i8> @vdeal_39(<128 x i8> %v0, <128 x i8> %v1) #0 {
%p = shufflevector <128 x i8> %v0, <128 x i8> undef, <128 x i32> < i32 0, i32 8, i32 2, i32 10, i32 4, i32 12, i32 6, i32 14, i32 16, i32 24, i32 18, i32 26, i32 20, i32 28, i32 22, i32 30, i32 32, i32 40, i32 34, i32 42, i32 36, i32 44, i32 38, i32 46, i32 48, i32 56, i32 50, i32 58, i32 52, i32 60, i32 54, i32 62, i32 64, i32 72, i32 66, i32 74, i32 68, i32 76, i32 70, i32 78, i32 80, i32 88, i32 82, i32 90, i32 84, i32 92, i32 86, i32 94, i32 96, i32 104, i32 98, i32 106, i32 100, i32 108, i32 102, i32 110, i32 112, i32 120, i32 114, i32 122, i32 116, i32 124, i32 118, i32 126, i32 1, i32 9, i32 3, i32 11, i32 5, i32 13, i32 7, i32 15, i32 17, i32 25, i32 19, i32 27, i32 21, i32 29, i32 23, i32 31, i32 33, i32 41, i32 35, i32 43, i32 37, i32 45, i32 39, i32 47, i32 49, i32 57, i32 51, i32 59, i32 53, i32 61, i32 55, i32 63, i32 65, i32 73, i32 67, i32 75, i32 69, i32 77, i32 71, i32 79, i32 81, i32 89, i32 83, i32 91, i32 85, i32 93, i32 87, i32 95, i32 97, i32 105, i32 99, i32 107, i32 101, i32 109, i32 103, i32 111, i32 113, i32 121, i32 115, i32 123, i32 117, i32 125, i32 119, i32 127>
ret <128 x i8> %p
}
; CHECK-LABEL: vdeal_3a:
; CHECK: [[REG3a:r[0-9]+]] = #58
; CHECK: vdeal(v1,v0,[[REG3a]])
define <128 x i8> @vdeal_3a(<128 x i8> %v0, <128 x i8> %v1) #0 {
%p = shufflevector <128 x i8> %v0, <128 x i8> undef, <128 x i32> < i32 0, i32 1, i32 8, i32 9, i32 4, i32 5, i32 12, i32 13, i32 16, i32 17, i32 24, i32 25, i32 20, i32 21, i32 28, i32 29, i32 32, i32 33, i32 40, i32 41, i32 36, i32 37, i32 44, i32 45, i32 48, i32 49, i32 56, i32 57, i32 52, i32 53, i32 60, i32 61, i32 64, i32 65, i32 72, i32 73, i32 68, i32 69, i32 76, i32 77, i32 80, i32 81, i32 88, i32 89, i32 84, i32 85, i32 92, i32 93, i32 96, i32 97, i32 104, i32 105, i32 100, i32 101, i32 108, i32 109, i32 112, i32 113, i32 120, i32 121, i32 116, i32 117, i32 124, i32 125, i32 2, i32 3, i32 10, i32 11, i32 6, i32 7, i32 14, i32 15, i32 18, i32 19, i32 26, i32 27, i32 22, i32 23, i32 30, i32 31, i32 34, i32 35, i32 42, i32 43, i32 38, i32 39, i32 46, i32 47, i32 50, i32 51, i32 58, i32 59, i32 54, i32 55, i32 62, i32 63, i32 66, i32 67, i32 74, i32 75, i32 70, i32 71, i32 78, i32 79, i32 82, i32 83, i32 90, i32 91, i32 86, i32 87, i32 94, i32 95, i32 98, i32 99, i32 106, i32 107, i32 102, i32 103, i32 110, i32 111, i32 114, i32 115, i32 122, i32 123, i32 118, i32 119, i32 126, i32 127>
ret <128 x i8> %p
}
; CHECK-LABEL: vdeal_3b:
; CHECK: [[REG3b:r[0-9]+]] = #59
; CHECK: vdeal(v1,v0,[[REG3b]])
define <128 x i8> @vdeal_3b(<128 x i8> %v0, <128 x i8> %v1) #0 {
%p = shufflevector <128 x i8> %v0, <128 x i8> undef, <128 x i32> < i32 0, i32 2, i32 8, i32 10, i32 4, i32 6, i32 12, i32 14, i32 16, i32 18, i32 24, i32 26, i32 20, i32 22, i32 28, i32 30, i32 32, i32 34, i32 40, i32 42, i32 36, i32 38, i32 44, i32 46, i32 48, i32 50, i32 56, i32 58, i32 52, i32 54, i32 60, i32 62, i32 64, i32 66, i32 72, i32 74, i32 68, i32 70, i32 76, i32 78, i32 80, i32 82, i32 88, i32 90, i32 84, i32 86, i32 92, i32 94, i32 96, i32 98, i32 104, i32 106, i32 100, i32 102, i32 108, i32 110, i32 112, i32 114, i32 120, i32 122, i32 116, i32 118, i32 124, i32 126, i32 1, i32 3, i32 9, i32 11, i32 5, i32 7, i32 13, i32 15, i32 17, i32 19, i32 25, i32 27, i32 21, i32 23, i32 29, i32 31, i32 33, i32 35, i32 41, i32 43, i32 37, i32 39, i32 45, i32 47, i32 49, i32 51, i32 57, i32 59, i32 53, i32 55, i32 61, i32 63, i32 65, i32 67, i32 73, i32 75, i32 69, i32 71, i32 77, i32 79, i32 81, i32 83, i32 89, i32 91, i32 85, i32 87, i32 93, i32 95, i32 97, i32 99, i32 105, i32 107, i32 101, i32 103, i32 109, i32 111, i32 113, i32 115, i32 121, i32 123, i32 117, i32 119, i32 125, i32 127>
ret <128 x i8> %p
}
; CHECK-LABEL: vdeal_3c:
; CHECK: [[REG3c:r[0-9]+]] = #60
; CHECK: vdeal(v1,v0,[[REG3c]])
define <128 x i8> @vdeal_3c(<128 x i8> %v0, <128 x i8> %v1) #0 {
%p = shufflevector <128 x i8> %v0, <128 x i8> undef, <128 x i32> < i32 0, i32 1, i32 2, i32 3, i32 8, i32 9, i32 10, i32 11, i32 16, i32 17, i32 18, i32 19, i32 24, i32 25, i32 26, i32 27, i32 32, i32 33, i32 34, i32 35, i32 40, i32 41, i32 42, i32 43, i32 48, i32 49, i32 50, i32 51, i32 56, i32 57, i32 58, i32 59, i32 64, i32 65, i32 66, i32 67, i32 72, i32 73, i32 74, i32 75, i32 80, i32 81, i32 82, i32 83, i32 88, i32 89, i32 90, i32 91, i32 96, i32 97, i32 98, i32 99, i32 104, i32 105, i32 106, i32 107, i32 112, i32 113, i32 114, i32 115, i32 120, i32 121, i32 122, i32 123, i32 4, i32 5, i32 6, i32 7, i32 12, i32 13, i32 14, i32 15, i32 20, i32 21, i32 22, i32 23, i32 28, i32 29, i32 30, i32 31, i32 36, i32 37, i32 38, i32 39, i32 44, i32 45, i32 46, i32 47, i32 52, i32 53, i32 54, i32 55, i32 60, i32 61, i32 62, i32 63, i32 68, i32 69, i32 70, i32 71, i32 76, i32 77, i32 78, i32 79, i32 84, i32 85, i32 86, i32 87, i32 92, i32 93, i32 94, i32 95, i32 100, i32 101, i32 102, i32 103, i32 108, i32 109, i32 110, i32 111, i32 116, i32 117, i32 118, i32 119, i32 124, i32 125, i32 126, i32 127>
ret <128 x i8> %p
}
; CHECK-LABEL: vdeal_3d:
; CHECK: [[REG3d:r[0-9]+]] = #61
; CHECK: vdeal(v1,v0,[[REG3d]])
define <128 x i8> @vdeal_3d(<128 x i8> %v0, <128 x i8> %v1) #0 {
%p = shufflevector <128 x i8> %v0, <128 x i8> undef, <128 x i32> < i32 0, i32 4, i32 2, i32 6, i32 8, i32 12, i32 10, i32 14, i32 16, i32 20, i32 18, i32 22, i32 24, i32 28, i32 26, i32 30, i32 32, i32 36, i32 34, i32 38, i32 40, i32 44, i32 42, i32 46, i32 48, i32 52, i32 50, i32 54, i32 56, i32 60, i32 58, i32 62, i32 64, i32 68, i32 66, i32 70, i32 72, i32 76, i32 74, i32 78, i32 80, i32 84, i32 82, i32 86, i32 88, i32 92, i32 90, i32 94, i32 96, i32 100, i32 98, i32 102, i32 104, i32 108, i32 106, i32 110, i32 112, i32 116, i32 114, i32 118, i32 120, i32 124, i32 122, i32 126, i32 1, i32 5, i32 3, i32 7, i32 9, i32 13, i32 11, i32 15, i32 17, i32 21, i32 19, i32 23, i32 25, i32 29, i32 27, i32 31, i32 33, i32 37, i32 35, i32 39, i32 41, i32 45, i32 43, i32 47, i32 49, i32 53, i32 51, i32 55, i32 57, i32 61, i32 59, i32 63, i32 65, i32 69, i32 67, i32 71, i32 73, i32 77, i32 75, i32 79, i32 81, i32 85, i32 83, i32 87, i32 89, i32 93, i32 91, i32 95, i32 97, i32 101, i32 99, i32 103, i32 105, i32 109, i32 107, i32 111, i32 113, i32 117, i32 115, i32 119, i32 121, i32 125, i32 123, i32 127>
ret <128 x i8> %p
}
; CHECK-LABEL: vdeal_3e:
; CHECK: [[REG3e:r[0-9]+]] = #62
; CHECK: vdeal(v1,v0,[[REG3e]])
define <128 x i8> @vdeal_3e(<128 x i8> %v0, <128 x i8> %v1) #0 {
%p = shufflevector <128 x i8> %v0, <128 x i8> undef, <128 x i32> < i32 0, i32 1, i32 4, i32 5, i32 8, i32 9, i32 12, i32 13, i32 16, i32 17, i32 20, i32 21, i32 24, i32 25, i32 28, i32 29, i32 32, i32 33, i32 36, i32 37, i32 40, i32 41, i32 44, i32 45, i32 48, i32 49, i32 52, i32 53, i32 56, i32 57, i32 60, i32 61, i32 64, i32 65, i32 68, i32 69, i32 72, i32 73, i32 76, i32 77, i32 80, i32 81, i32 84, i32 85, i32 88, i32 89, i32 92, i32 93, i32 96, i32 97, i32 100, i32 101, i32 104, i32 105, i32 108, i32 109, i32 112, i32 113, i32 116, i32 117, i32 120, i32 121, i32 124, i32 125, i32 2, i32 3, i32 6, i32 7, i32 10, i32 11, i32 14, i32 15, i32 18, i32 19, i32 22, i32 23, i32 26, i32 27, i32 30, i32 31, i32 34, i32 35, i32 38, i32 39, i32 42, i32 43, i32 46, i32 47, i32 50, i32 51, i32 54, i32 55, i32 58, i32 59, i32 62, i32 63, i32 66, i32 67, i32 70, i32 71, i32 74, i32 75, i32 78, i32 79, i32 82, i32 83, i32 86, i32 87, i32 90, i32 91, i32 94, i32 95, i32 98, i32 99, i32 102, i32 103, i32 106, i32 107, i32 110, i32 111, i32 114, i32 115, i32 118, i32 119, i32 122, i32 123, i32 126, i32 127>
ret <128 x i8> %p
}
; CHECK-LABEL: vdeal_3f:
; CHECK: [[REG3f:r[0-9]+]] = #63
; CHECK: vdeal(v1,v0,[[REG3f]])
define <128 x i8> @vdeal_3f(<128 x i8> %v0, <128 x i8> %v1) #0 {
%p = shufflevector <128 x i8> %v0, <128 x i8> undef, <128 x i32> < i32 0, i32 2, i32 4, i32 6, i32 8, i32 10, i32 12, i32 14, i32 16, i32 18, i32 20, i32 22, i32 24, i32 26, i32 28, i32 30, i32 32, i32 34, i32 36, i32 38, i32 40, i32 42, i32 44, i32 46, i32 48, i32 50, i32 52, i32 54, i32 56, i32 58, i32 60, i32 62, i32 64, i32 66, i32 68, i32 70, i32 72, i32 74, i32 76, i32 78, i32 80, i32 82, i32 84, i32 86, i32 88, i32 90, i32 92, i32 94, i32 96, i32 98, i32 100, i32 102, i32 104, i32 106, i32 108, i32 110, i32 112, i32 114, i32 116, i32 118, i32 120, i32 122, i32 124, i32 126, i32 1, i32 3, i32 5, i32 7, i32 9, i32 11, i32 13, i32 15, i32 17, i32 19, i32 21, i32 23, i32 25, i32 27, i32 29, i32 31, i32 33, i32 35, i32 37, i32 39, i32 41, i32 43, i32 45, i32 47, i32 49, i32 51, i32 53, i32 55, i32 57, i32 59, i32 61, i32 63, i32 65, i32 67, i32 69, i32 71, i32 73, i32 75, i32 77, i32 79, i32 81, i32 83, i32 85, i32 87, i32 89, i32 91, i32 93, i32 95, i32 97, i32 99, i32 101, i32 103, i32 105, i32 107, i32 109, i32 111, i32 113, i32 115, i32 117, i32 119, i32 121, i32 123, i32 125, i32 127>
ret <128 x i8> %p
}
attributes #0 = { nounwind readnone "target-cpu"="hexagonv60" "target-features"="+hvx,+hvx-length64b" }

View File

@ -0,0 +1,115 @@
; RUN: llc -march=hexagon < %s | FileCheck %s
; CHECK-LABEL: test_0000
; CHECK: vdelta
define <128 x i8> @test_0000(<128 x i8> %v0) #0 {
%p = shufflevector <128 x i8> %v0, <128 x i8> undef, <128 x i32><i32 127, i32 127, i32 57, i32 57, i32 35, i32 35, i32 21, i32 21, i32 71, i32 71, i32 65, i32 65, i32 27, i32 27, i32 109, i32 109, i32 109, i32 109, i32 27, i32 27, i32 65, i32 65, i32 71, i32 71, i32 21, i32 21, i32 35, i32 35, i32 57, i32 57, i32 127, i32 127, i32 17, i32 17, i32 23, i32 23, i32 23, i32 23, i32 77, i32 77, i32 53, i32 53, i32 53, i32 53, i32 43, i32 43, i32 53, i32 53, i32 53, i32 53, i32 23, i32 23, i32 53, i32 53, i32 23, i32 23, i32 35, i32 35, i32 35, i32 35, i32 23, i32 23, i32 23, i32 23, i32 119, i32 119, i32 119, i32 119, i32 19, i32 19, i32 65, i32 65, i32 19, i32 19, i32 19, i32 19, i32 9, i32 9, i32 9, i32 9, i32 95, i32 95, i32 25, i32 25, i32 25, i32 25, i32 11, i32 11, i32 25, i32 25, i32 25, i32 25, i32 13, i32 13, i32 13, i32 13, i32 119, i32 119, i32 33, i32 33, i32 61, i32 61, i32 61, i32 61, i32 117, i32 117, i32 117, i32 117, i32 19, i32 19, i32 117, i32 117, i32 79, i32 79, i32 79, i32 79, i32 79, i32 79, i32 79, i32 79, i32 17, i32 17, i32 17, i32 17, i32 69, i32 69, i32 79, i32 79>
ret <128 x i8> %p
}
; CHECK-LABEL: test_0001
; CHECK: vdelta
define <128 x i8> @test_0001(<128 x i8> %v0) #0 {
%p = shufflevector <128 x i8> %v0, <128 x i8> undef, <128 x i32><i32 5, i32 5, i32 75, i32 75, i32 5, i32 5, i32 5, i32 5, i32 5, i32 5, i32 5, i32 5, i32 5, i32 5, i32 5, i32 5, i32 51, i32 51, i32 51, i32 51, i32 51, i32 51, i32 51, i32 51, i32 55, i32 55, i32 9, i32 9, i32 75, i32 75, i32 109, i32 109, i32 81, i32 81, i32 83, i32 83, i32 29, i32 29, i32 29, i32 29, i32 29, i32 29, i32 29, i32 29, i32 81, i32 81, i32 75, i32 75, i32 5, i32 5, i32 5, i32 5, i32 5, i32 5, i32 5, i32 5, i32 87, i32 87, i32 87, i32 87, i32 3, i32 3, i32 29, i32 29, i32 101, i32 101, i32 123, i32 123, i32 73, i32 73, i32 73, i32 73, i32 123, i32 123, i32 93, i32 93, i32 33, i32 33, i32 119, i32 119, i32 21, i32 21, i32 3, i32 3, i32 21, i32 21, i32 79, i32 79, i32 3, i32 3, i32 21, i32 21, i32 79, i32 79, i32 21, i32 21, i32 69, i32 69, i32 39, i32 39, i32 69, i32 69, i32 27, i32 27, i32 69, i32 69, i32 63, i32 63, i32 25, i32 25, i32 25, i32 25, i32 11, i32 11, i32 25, i32 25, i32 25, i32 25, i32 63, i32 63, i32 63, i32 63, i32 63, i32 63, i32 83, i32 83, i32 65, i32 65>
ret <128 x i8> %p
}
; CHECK-LABEL: test_0002
; CHECK: vdelta
define <128 x i8> @test_0002(<128 x i8> %v0) #0 {
%p = shufflevector <128 x i8> %v0, <128 x i8> undef, <128 x i32><i32 5, i32 5, i32 5, i32 5, i32 5, i32 5, i32 5, i32 5, i32 95, i32 95, i32 29, i32 29, i32 29, i32 29, i32 29, i32 29, i32 15, i32 15, i32 41, i32 41, i32 15, i32 15, i32 15, i32 15, i32 59, i32 59, i32 59, i32 59, i32 59, i32 59, i32 59, i32 59, i32 39, i32 39, i32 39, i32 39, i32 39, i32 39, i32 25, i32 25, i32 35, i32 35, i32 35, i32 35, i32 101, i32 101, i32 101, i32 101, i32 107, i32 107, i32 61, i32 61, i32 65, i32 65, i32 65, i32 65, i32 39, i32 39, i32 39, i32 39, i32 107, i32 107, i32 107, i32 107, i32 93, i32 93, i32 43, i32 43, i32 33, i32 33, i32 33, i32 33, i32 53, i32 53, i32 43, i32 43, i32 43, i32 43, i32 43, i32 43, i32 33, i32 33, i32 33, i32 33, i32 37, i32 37, i32 35, i32 35, i32 33, i32 33, i32 33, i32 33, i32 13, i32 13, i32 31, i32 31, i32 53, i32 53, i32 53, i32 53, i32 35, i32 35, i32 35, i32 35, i32 35, i32 35, i32 35, i32 35, i32 33, i32 33, i32 33, i32 33, i32 51, i32 51, i32 25, i32 25, i32 31, i32 31, i32 25, i32 25, i32 53, i32 53, i32 53, i32 53, i32 51, i32 51, i32 51, i32 51>
ret <128 x i8> %p
}
; CHECK-LABEL: test_0003
; CHECK: vdelta
define <128 x i8> @test_0003(<128 x i8> %v0) #0 {
%p = shufflevector <128 x i8> %v0, <128 x i8> undef, <128 x i32><i32 89, i32 89, i32 89, i32 89, i32 109, i32 109, i32 7, i32 7, i32 99, i32 99, i32 99, i32 99, i32 109, i32 109, i32 31, i32 31, i32 111, i32 111, i32 111, i32 111, i32 99, i32 99, i32 5, i32 5, i32 9, i32 9, i32 99, i32 99, i32 99, i32 99, i32 5, i32 5, i32 59, i32 59, i32 21, i32 21, i32 59, i32 59, i32 59, i32 59, i32 17, i32 17, i32 15, i32 15, i32 99, i32 99, i32 17, i32 17, i32 99, i32 99, i32 99, i32 99, i32 9, i32 9, i32 9, i32 9, i32 17, i32 17, i32 17, i32 17, i32 17, i32 17, i32 99, i32 99, i32 41, i32 41, i32 41, i32 41, i32 47, i32 47, i32 41, i32 41, i32 41, i32 41, i32 47, i32 47, i32 41, i32 41, i32 41, i32 41, i32 109, i32 109, i32 109, i32 109, i32 109, i32 109, i32 109, i32 109, i32 59, i32 59, i32 89, i32 89, i32 47, i32 47, i32 47, i32 47, i32 89, i32 89, i32 55, i32 55, i32 69, i32 69, i32 69, i32 69, i32 69, i32 69, i32 69, i32 69, i32 89, i32 89, i32 89, i32 89, i32 89, i32 89, i32 89, i32 89, i32 55, i32 55, i32 29, i32 29, i32 117, i32 117, i32 55, i32 55, i32 89, i32 89, i32 55, i32 55>
ret <128 x i8> %p
}
; CHECK-LABEL: test_0004
; CHECK: vdelta
define <128 x i8> @test_0004(<128 x i8> %v0) #0 {
%p = shufflevector <128 x i8> %v0, <128 x i8> undef, <128 x i32><i32 27, i32 27, i32 69, i32 69, i32 27, i32 27, i32 27, i32 27, i32 79, i32 79, i32 93, i32 93, i32 79, i32 79, i32 79, i32 79, i32 99, i32 99, i32 105, i32 105, i32 99, i32 99, i32 99, i32 99, i32 85, i32 85, i32 39, i32 39, i32 85, i32 85, i32 27, i32 27, i32 69, i32 69, i32 69, i32 69, i32 55, i32 55, i32 55, i32 55, i32 55, i32 55, i32 55, i32 55, i32 55, i32 55, i32 55, i32 55, i32 57, i32 57, i32 57, i32 57, i32 51, i32 51, i32 13, i32 13, i32 107, i32 107, i32 107, i32 107, i32 85, i32 85, i32 85, i32 85, i32 87, i32 87, i32 87, i32 87, i32 11, i32 11, i32 49, i32 49, i32 13, i32 13, i32 13, i32 13, i32 13, i32 13, i32 13, i32 13, i32 49, i32 49, i32 95, i32 95, i32 49, i32 49, i32 95, i32 95, i32 51, i32 51, i32 53, i32 53, i32 95, i32 95, i32 95, i32 95, i32 51, i32 51, i32 51, i32 51, i32 25, i32 25, i32 51, i32 51, i32 25, i32 25, i32 25, i32 25, i32 87, i32 87, i32 87, i32 87, i32 81, i32 81, i32 81, i32 81, i32 81, i32 81, i32 107, i32 107, i32 93, i32 93, i32 51, i32 51, i32 81, i32 81, i32 81, i32 81>
ret <128 x i8> %p
}
; CHECK-LABEL: test_0005
; CHECK: vdelta
define <128 x i8> @test_0005(<128 x i8> %v0) #0 {
%p = shufflevector <128 x i8> %v0, <128 x i8> undef, <128 x i32><i32 29, i32 29, i32 29, i32 29, i32 79, i32 79, i32 79, i32 79, i32 9, i32 9, i32 27, i32 27, i32 79, i32 79, i32 29, i32 29, i32 31, i32 31, i32 69, i32 69, i32 9, i32 9, i32 31, i32 31, i32 9, i32 9, i32 31, i32 31, i32 31, i32 31, i32 9, i32 9, i32 57, i32 57, i32 57, i32 57, i32 51, i32 51, i32 109, i32 109, i32 79, i32 79, i32 79, i32 79, i32 79, i32 79, i32 21, i32 21, i32 27, i32 27, i32 21, i32 21, i32 27, i32 27, i32 27, i32 27, i32 31, i32 31, i32 105, i32 105, i32 31, i32 31, i32 31, i32 31, i32 21, i32 21, i32 79, i32 79, i32 79, i32 79, i32 79, i32 79, i32 49, i32 49, i32 119, i32 119, i32 119, i32 119, i32 21, i32 21, i32 107, i32 107, i32 107, i32 107, i32 21, i32 21, i32 71, i32 71, i32 71, i32 71, i32 71, i32 71, i32 21, i32 21, i32 21, i32 21, i32 119, i32 119, i32 119, i32 119, i32 67, i32 67, i32 37, i32 37, i32 37, i32 37, i32 37, i32 37, i32 67, i32 67, i32 41, i32 41, i32 81, i32 81, i32 81, i32 81, i32 71, i32 71, i32 71, i32 71, i32 71, i32 71, i32 71, i32 71, i32 81, i32 81, i32 81, i32 81>
ret <128 x i8> %p
}
; CHECK-LABEL: test_0006
; CHECK: vdelta
define <128 x i8> @test_0006(<128 x i8> %v0) #0 {
%p = shufflevector <128 x i8> %v0, <128 x i8> undef, <128 x i32><i32 45, i32 45, i32 47, i32 47, i32 47, i32 47, i32 47, i32 47, i32 25, i32 25, i32 3, i32 3, i32 21, i32 21, i32 21, i32 21, i32 103, i32 103, i32 103, i32 103, i32 125, i32 125, i32 125, i32 125, i32 75, i32 75, i32 25, i32 25, i32 25, i32 25, i32 75, i32 75, i32 55, i32 55, i32 55, i32 55, i32 69, i32 69, i32 69, i32 69, i32 55, i32 55, i32 55, i32 55, i32 25, i32 25, i32 25, i32 25, i32 99, i32 99, i32 99, i32 99, i32 17, i32 17, i32 55, i32 55, i32 55, i32 55, i32 17, i32 17, i32 17, i32 17, i32 17, i32 17, i32 41, i32 41, i32 41, i32 41, i32 103, i32 103, i32 93, i32 93, i32 83, i32 83, i32 83, i32 83, i32 93, i32 93, i32 93, i32 93, i32 43, i32 43, i32 43, i32 43, i32 25, i32 25, i32 25, i32 25, i32 25, i32 25, i32 43, i32 43, i32 103, i32 103, i32 25, i32 25, i32 91, i32 91, i32 33, i32 33, i32 91, i32 91, i32 13, i32 13, i32 33, i32 33, i32 33, i32 33, i32 33, i32 33, i32 91, i32 91, i32 37, i32 37, i32 63, i32 63, i32 33, i32 33, i32 33, i32 33, i32 3, i32 3, i32 41, i32 41, i32 93, i32 93, i32 93, i32 93>
ret <128 x i8> %p
}
; CHECK-LABEL: test_0007
; CHECK: vdelta
define <128 x i8> @test_0007(<128 x i8> %v0) #0 {
%p = shufflevector <128 x i8> %v0, <128 x i8> undef, <128 x i32><i32 85, i32 85, i32 11, i32 11, i32 119, i32 119, i32 119, i32 119, i32 81, i32 81, i32 11, i32 11, i32 111, i32 111, i32 81, i32 81, i32 13, i32 13, i32 111, i32 111, i32 27, i32 27, i32 81, i32 81, i32 27, i32 27, i32 13, i32 13, i32 27, i32 27, i32 13, i32 13, i32 39, i32 39, i32 39, i32 39, i32 81, i32 81, i32 27, i32 27, i32 85, i32 85, i32 35, i32 35, i32 85, i32 85, i32 85, i32 85, i32 39, i32 39, i32 13, i32 13, i32 39, i32 39, i32 39, i32 39, i32 83, i32 83, i32 83, i32 83, i32 83, i32 83, i32 83, i32 83, i32 21, i32 21, i32 103, i32 103, i32 21, i32 21, i32 103, i32 103, i32 19, i32 19, i32 19, i32 19, i32 19, i32 19, i32 19, i32 19, i32 29, i32 29, i32 29, i32 29, i32 1, i32 1, i32 1, i32 1, i32 29, i32 29, i32 29, i32 29, i32 73, i32 73, i32 73, i32 73, i32 17, i32 17, i32 17, i32 17, i32 17, i32 17, i32 17, i32 17, i32 71, i32 71, i32 77, i32 77, i32 71, i32 71, i32 71, i32 71, i32 35, i32 35, i32 35, i32 35, i32 21, i32 21, i32 79, i32 79, i32 59, i32 59, i32 59, i32 59, i32 17, i32 17, i32 17, i32 17>
ret <128 x i8> %p
}
; CHECK-LABEL: test_0008
; CHECK: vdelta
define <128 x i8> @test_0008(<128 x i8> %v0) #0 {
%p = shufflevector <128 x i8> %v0, <128 x i8> undef, <128 x i32><i32 99, i32 99, i32 53, i32 53, i32 111, i32 111, i32 65, i32 65, i32 71, i32 71, i32 71, i32 71, i32 71, i32 71, i32 71, i32 71, i32 95, i32 95, i32 95, i32 95, i32 25, i32 25, i32 95, i32 95, i32 25, i32 25, i32 71, i32 71, i32 77, i32 77, i32 77, i32 77, i32 25, i32 25, i32 25, i32 25, i32 87, i32 87, i32 25, i32 25, i32 115, i32 115, i32 65, i32 65, i32 115, i32 115, i32 115, i32 115, i32 45, i32 45, i32 45, i32 45, i32 99, i32 99, i32 99, i32 99, i32 71, i32 71, i32 71, i32 71, i32 11, i32 11, i32 11, i32 11, i32 67, i32 67, i32 45, i32 45, i32 45, i32 45, i32 45, i32 45, i32 49, i32 49, i32 49, i32 49, i32 49, i32 49, i32 71, i32 71, i32 55, i32 55, i32 55, i32 55, i32 1, i32 1, i32 1, i32 1, i32 59, i32 59, i32 59, i32 59, i32 55, i32 55, i32 55, i32 55, i32 89, i32 89, i32 89, i32 89, i32 89, i32 89, i32 89, i32 89, i32 45, i32 45, i32 75, i32 75, i32 17, i32 17, i32 17, i32 17, i32 1, i32 1, i32 67, i32 67, i32 63, i32 63, i32 1, i32 1, i32 59, i32 59, i32 89, i32 89, i32 89, i32 89, i32 63, i32 63>
ret <128 x i8> %p
}
; CHECK-LABEL: test_0009
; CHECK: vdelta
define <128 x i8> @test_0009(<128 x i8> %v0) #0 {
%p = shufflevector <128 x i8> %v0, <128 x i8> undef, <128 x i32><i32 57, i32 57, i32 59, i32 59, i32 59, i32 59, i32 57, i32 57, i32 93, i32 93, i32 93, i32 93, i32 57, i32 57, i32 95, i32 95, i32 55, i32 55, i32 105, i32 105, i32 105, i32 105, i32 105, i32 105, i32 21, i32 21, i32 21, i32 21, i32 67, i32 67, i32 67, i32 67, i32 61, i32 61, i32 59, i32 59, i32 33, i32 33, i32 33, i32 33, i32 115, i32 115, i32 115, i32 115, i32 33, i32 33, i32 33, i32 33, i32 67, i32 67, i32 67, i32 67, i32 67, i32 67, i32 67, i32 67, i32 33, i32 33, i32 67, i32 67, i32 61, i32 61, i32 61, i32 61, i32 79, i32 79, i32 45, i32 45, i32 33, i32 33, i32 79, i32 79, i32 41, i32 41, i32 91, i32 91, i32 79, i32 79, i32 45, i32 45, i32 107, i32 107, i32 61, i32 61, i32 107, i32 107, i32 107, i32 107, i32 55, i32 55, i32 5, i32 5, i32 107, i32 107, i32 107, i32 107, i32 39, i32 39, i32 39, i32 39, i32 5, i32 5, i32 5, i32 5, i32 51, i32 51, i32 45, i32 45, i32 45, i32 45, i32 45, i32 45, i32 47, i32 47, i32 47, i32 47, i32 45, i32 45, i32 45, i32 45, i32 5, i32 5, i32 11, i32 11, i32 5, i32 5, i32 11, i32 11>
ret <128 x i8> %p
}
; CHECK-LABEL: test_000a
; CHECK: vdelta
define <128 x i8> @test_000a(<128 x i8> %v0) #0 {
%p = shufflevector <128 x i8> %v0, <128 x i8> undef, <128 x i32><i32 87, i32 87, i32 87, i32 87, i32 45, i32 45, i32 45, i32 45, i32 57, i32 57, i32 57, i32 57, i32 87, i32 87, i32 87, i32 87, i32 15, i32 15, i32 15, i32 15, i32 21, i32 21, i32 21, i32 21, i32 21, i32 21, i32 43, i32 43, i32 81, i32 81, i32 81, i32 81, i32 39, i32 39, i32 77, i32 77, i32 33, i32 33, i32 33, i32 33, i32 9, i32 9, i32 9, i32 9, i32 37, i32 37, i32 37, i32 37, i32 9, i32 9, i32 9, i32 9, i32 77, i32 77, i32 77, i32 77, i32 31, i32 31, i32 31, i32 31, i32 43, i32 43, i32 33, i32 33, i32 125, i32 125, i32 125, i32 125, i32 105, i32 105, i32 105, i32 105, i32 5, i32 5, i32 39, i32 39, i32 39, i32 39, i32 39, i32 39, i32 111, i32 111, i32 25, i32 25, i32 25, i32 25, i32 99, i32 99, i32 99, i32 99, i32 99, i32 99, i32 77, i32 77, i32 99, i32 99, i32 33, i32 33, i32 33, i32 33, i32 19, i32 19, i32 19, i32 19, i32 7, i32 7, i32 125, i32 125, i32 7, i32 7, i32 7, i32 7, i32 59, i32 59, i32 59, i32 59, i32 7, i32 7, i32 57, i32 57, i32 111, i32 111, i32 111, i32 111, i32 109, i32 109, i32 109, i32 109>
ret <128 x i8> %p
}
; CHECK-LABEL: test_000b
; CHECK: vdelta
define <128 x i8> @test_000b(<128 x i8> %v0) #0 {
%p = shufflevector <128 x i8> %v0, <128 x i8> undef, <128 x i32><i32 7, i32 7, i32 7, i32 7, i32 41, i32 41, i32 7, i32 7, i32 41, i32 41, i32 41, i32 41, i32 7, i32 7, i32 41, i32 41, i32 41, i32 41, i32 35, i32 35, i32 35, i32 35, i32 35, i32 35, i32 15, i32 15, i32 113, i32 113, i32 123, i32 123, i32 113, i32 113, i32 35, i32 35, i32 73, i32 73, i32 73, i32 73, i32 35, i32 35, i32 73, i32 73, i32 63, i32 63, i32 69, i32 69, i32 35, i32 35, i32 11, i32 11, i32 11, i32 11, i32 11, i32 11, i32 21, i32 21, i32 77, i32 77, i32 77, i32 77, i32 77, i32 77, i32 77, i32 77, i32 51, i32 51, i32 51, i32 51, i32 89, i32 89, i32 89, i32 89, i32 103, i32 103, i32 103, i32 103, i32 97, i32 97, i32 123, i32 123, i32 31, i32 31, i32 21, i32 21, i32 21, i32 21, i32 21, i32 21, i32 21, i32 21, i32 21, i32 21, i32 21, i32 21, i32 51, i32 51, i32 113, i32 113, i32 113, i32 113, i32 113, i32 113, i32 113, i32 113, i32 51, i32 51, i32 51, i32 51, i32 51, i32 51, i32 89, i32 89, i32 55, i32 55, i32 97, i32 97, i32 55, i32 55, i32 29, i32 29, i32 69, i32 69, i32 51, i32 51, i32 55, i32 55, i32 55, i32 55>
ret <128 x i8> %p
}
; CHECK-LABEL: test_000c
; CHECK: vdelta
define <128 x i8> @test_000c(<128 x i8> %v0) #0 {
%p = shufflevector <128 x i8> %v0, <128 x i8> undef, <128 x i32><i32 101, i32 101, i32 31, i32 31, i32 97, i32 97, i32 31, i32 31, i32 19, i32 19, i32 19, i32 19, i32 19, i32 19, i32 19, i32 19, i32 97, i32 97, i32 97, i32 97, i32 97, i32 97, i32 97, i32 97, i32 97, i32 97, i32 87, i32 87, i32 125, i32 125, i32 125, i32 125, i32 39, i32 39, i32 65, i32 65, i32 19, i32 19, i32 19, i32 19, i32 5, i32 5, i32 43, i32 43, i32 5, i32 5, i32 5, i32 5, i32 15, i32 15, i32 21, i32 21, i32 15, i32 15, i32 15, i32 15, i32 43, i32 43, i32 43, i32 43, i32 13, i32 13, i32 13, i32 13, i32 31, i32 31, i32 31, i32 31, i32 9, i32 9, i32 9, i32 9, i32 117, i32 117, i32 43, i32 43, i32 31, i32 31, i32 117, i32 117, i32 93, i32 93, i32 35, i32 35, i32 65, i32 65, i32 65, i32 65, i32 65, i32 65, i32 65, i32 65, i32 59, i32 59, i32 93, i32 93, i32 125, i32 125, i32 43, i32 43, i32 43, i32 43, i32 43, i32 43, i32 43, i32 43, i32 43, i32 43, i32 49, i32 49, i32 49, i32 49, i32 23, i32 23, i32 5, i32 5, i32 57, i32 57, i32 57, i32 57, i32 23, i32 23, i32 23, i32 23, i32 23, i32 23, i32 5, i32 5>
ret <128 x i8> %p
}
; CHECK-LABEL: test_000d
; CHECK: vdelta
define <128 x i8> @test_000d(<128 x i8> %v0) #0 {
%p = shufflevector <128 x i8> %v0, <128 x i8> undef, <128 x i32><i32 59, i32 59, i32 41, i32 41, i32 125, i32 125, i32 59, i32 59, i32 41, i32 41, i32 63, i32 63, i32 63, i32 63, i32 41, i32 41, i32 41, i32 41, i32 107, i32 107, i32 7, i32 7, i32 7, i32 7, i32 107, i32 107, i32 107, i32 107, i32 41, i32 41, i32 41, i32 41, i32 37, i32 37, i32 37, i32 37, i32 11, i32 11, i32 11, i32 11, i32 81, i32 81, i32 81, i32 81, i32 95, i32 95, i32 45, i32 45, i32 93, i32 93, i32 93, i32 93, i32 93, i32 93, i32 35, i32 35, i32 57, i32 57, i32 95, i32 95, i32 95, i32 95, i32 37, i32 37, i32 97, i32 97, i32 19, i32 19, i32 19, i32 19, i32 97, i32 97, i32 53, i32 53, i32 53, i32 53, i32 43, i32 43, i32 43, i32 43, i32 101, i32 101, i32 101, i32 101, i32 99, i32 99, i32 99, i32 99, i32 99, i32 99, i32 99, i32 99, i32 97, i32 97, i32 23, i32 23, i32 89, i32 89, i32 51, i32 51, i32 51, i32 51, i32 89, i32 89, i32 45, i32 45, i32 51, i32 51, i32 51, i32 51, i32 113, i32 113, i32 89, i32 89, i32 89, i32 89, i32 75, i32 75, i32 75, i32 75, i32 89, i32 89, i32 89, i32 89, i32 63, i32 63, i32 63, i32 63>
ret <128 x i8> %p
}
; CHECK-LABEL: test_000e
; CHECK: vdelta
define <128 x i8> @test_000e(<128 x i8> %v0) #0 {
%p = shufflevector <128 x i8> %v0, <128 x i8> undef, <128 x i32><i32 63, i32 63, i32 63, i32 63, i32 35, i32 35, i32 13, i32 13, i32 35, i32 35, i32 25, i32 25, i32 13, i32 13, i32 13, i32 13, i32 53, i32 53, i32 53, i32 53, i32 7, i32 7, i32 7, i32 7, i32 13, i32 13, i32 13, i32 13, i32 13, i32 13, i32 51, i32 51, i32 125, i32 125, i32 125, i32 125, i32 25, i32 25, i32 25, i32 25, i32 59, i32 59, i32 37, i32 37, i32 37, i32 37, i32 37, i32 37, i32 41, i32 41, i32 41, i32 41, i32 19, i32 19, i32 53, i32 53, i32 53, i32 53, i32 53, i32 53, i32 53, i32 53, i32 53, i32 53, i32 51, i32 51, i32 69, i32 69, i32 113, i32 113, i32 31, i32 31, i32 31, i32 31, i32 31, i32 31, i32 73, i32 73, i32 51, i32 51, i32 3, i32 3, i32 3, i32 3, i32 121, i32 121, i32 3, i32 3, i32 121, i32 121, i32 3, i32 3, i32 121, i32 121, i32 31, i32 31, i32 41, i32 41, i32 55, i32 55, i32 51, i32 51, i32 51, i32 51, i32 51, i32 51, i32 51, i32 51, i32 31, i32 31, i32 117, i32 117, i32 41, i32 41, i32 41, i32 41, i32 69, i32 69, i32 69, i32 69, i32 31, i32 31, i32 31, i32 31, i32 51, i32 51, i32 109, i32 109>
ret <128 x i8> %p
}
; CHECK-LABEL: test_000f
; CHECK: vdelta
define <128 x i8> @test_000f(<128 x i8> %v0) #0 {
%p = shufflevector <128 x i8> %v0, <128 x i8> undef, <128 x i32><i32 119, i32 119, i32 119, i32 119, i32 123, i32 123, i32 123, i32 123, i32 119, i32 119, i32 61, i32 61, i32 61, i32 61, i32 61, i32 61, i32 19, i32 19, i32 19, i32 19, i32 73, i32 73, i32 19, i32 19, i32 109, i32 109, i32 109, i32 109, i32 63, i32 63, i32 63, i32 63, i32 53, i32 53, i32 53, i32 53, i32 51, i32 51, i32 51, i32 51, i32 65, i32 65, i32 65, i32 65, i32 87, i32 87, i32 87, i32 87, i32 65, i32 65, i32 65, i32 65, i32 65, i32 65, i32 65, i32 65, i32 43, i32 43, i32 43, i32 43, i32 53, i32 53, i32 53, i32 53, i32 47, i32 47, i32 47, i32 47, i32 35, i32 35, i32 57, i32 57, i32 35, i32 35, i32 35, i32 35, i32 47, i32 47, i32 47, i32 47, i32 83, i32 83, i32 1, i32 1, i32 55, i32 55, i32 29, i32 29, i32 83, i32 83, i32 83, i32 83, i32 55, i32 55, i32 55, i32 55, i32 125, i32 125, i32 125, i32 125, i32 11, i32 11, i32 11, i32 11, i32 125, i32 125, i32 125, i32 125, i32 57, i32 57, i32 115, i32 115, i32 127, i32 127, i32 53, i32 53, i32 35, i32 35, i32 35, i32 35, i32 57, i32 57, i32 35, i32 35, i32 35, i32 35, i32 35, i32 35>
ret <128 x i8> %p
}
attributes #0 = { nounwind readnone "target-cpu"="hexagonv60" "target-features"="+hvx,+hvx-length128b" }

View File

@ -0,0 +1,115 @@
; RUN: llc -march=hexagon < %s | FileCheck %s
; CHECK-LABEL: test_0000
; CHECK: vdelta
define <64 x i8> @test_0000(<64 x i8> %v0) #0 {
%p = shufflevector <64 x i8> %v0, <64 x i8> undef, <64 x i32><i32 41, i32 41, i32 11, i32 11, i32 53, i32 53, i32 7, i32 7, i32 63, i32 63, i32 53, i32 53, i32 11, i32 11, i32 17, i32 17, i32 35, i32 35, i32 29, i32 29, i32 55, i32 55, i32 29, i32 29, i32 55, i32 55, i32 55, i32 55, i32 17, i32 17, i32 35, i32 35, i32 25, i32 25, i32 39, i32 39, i32 25, i32 25, i32 25, i32 25, i32 29, i32 29, i32 29, i32 29, i32 29, i32 29, i32 27, i32 27, i32 39, i32 39, i32 53, i32 53, i32 25, i32 25, i32 25, i32 25, i32 43, i32 43, i32 45, i32 45, i32 25, i32 25, i32 25, i32 25>
ret <64 x i8> %p
}
; CHECK-LABEL: test_0001
; CHECK: vdelta
define <64 x i8> @test_0001(<64 x i8> %v0) #0 {
%p = shufflevector <64 x i8> %v0, <64 x i8> undef, <64 x i32><i32 33, i32 33, i32 33, i32 33, i32 63, i32 63, i32 61, i32 61, i32 19, i32 19, i32 19, i32 19, i32 55, i32 55, i32 61, i32 61, i32 61, i32 61, i32 7, i32 7, i32 61, i32 61, i32 3, i32 3, i32 33, i32 33, i32 33, i32 33, i32 7, i32 7, i32 61, i32 61, i32 21, i32 21, i32 21, i32 21, i32 27, i32 27, i32 21, i32 21, i32 63, i32 63, i32 63, i32 63, i32 41, i32 41, i32 19, i32 19, i32 3, i32 3, i32 3, i32 3, i32 37, i32 37, i32 37, i32 37, i32 3, i32 3, i32 3, i32 3, i32 55, i32 55, i32 41, i32 41>
ret <64 x i8> %p
}
; CHECK-LABEL: test_0002
; CHECK: vdelta
define <64 x i8> @test_0002(<64 x i8> %v0) #0 {
%p = shufflevector <64 x i8> %v0, <64 x i8> undef, <64 x i32><i32 13, i32 13, i32 13, i32 13, i32 13, i32 13, i32 55, i32 55, i32 59, i32 59, i32 13, i32 13, i32 9, i32 9, i32 9, i32 9, i32 19, i32 19, i32 19, i32 19, i32 61, i32 61, i32 19, i32 19, i32 61, i32 61, i32 61, i32 61, i32 15, i32 15, i32 61, i32 61, i32 1, i32 1, i32 35, i32 35, i32 1, i32 1, i32 15, i32 15, i32 27, i32 27, i32 27, i32 27, i32 27, i32 27, i32 27, i32 27, i32 53, i32 53, i32 53, i32 53, i32 41, i32 41, i32 15, i32 15, i32 35, i32 35, i32 53, i32 53, i32 35, i32 35, i32 35, i32 35>
ret <64 x i8> %p
}
; CHECK-LABEL: test_0003
; CHECK: vdelta
define <64 x i8> @test_0003(<64 x i8> %v0) #0 {
%p = shufflevector <64 x i8> %v0, <64 x i8> undef, <64 x i32><i32 35, i32 35, i32 35, i32 35, i32 35, i32 35, i32 35, i32 35, i32 35, i32 35, i32 35, i32 35, i32 37, i32 37, i32 35, i32 35, i32 45, i32 45, i32 45, i32 45, i32 35, i32 35, i32 35, i32 35, i32 27, i32 27, i32 45, i32 45, i32 45, i32 45, i32 39, i32 39, i32 15, i32 15, i32 15, i32 15, i32 37, i32 37, i32 37, i32 37, i32 15, i32 15, i32 15, i32 15, i32 43, i32 43, i32 37, i32 37, i32 7, i32 7, i32 37, i32 37, i32 7, i32 7, i32 37, i32 37, i32 29, i32 29, i32 43, i32 43, i32 33, i32 33, i32 7, i32 7>
ret <64 x i8> %p
}
; CHECK-LABEL: test_0004
; CHECK: vdelta
define <64 x i8> @test_0004(<64 x i8> %v0) #0 {
%p = shufflevector <64 x i8> %v0, <64 x i8> undef, <64 x i32><i32 21, i32 21, i32 21, i32 21, i32 31, i32 31, i32 31, i32 31, i32 9, i32 9, i32 31, i32 31, i32 9, i32 9, i32 31, i32 31, i32 49, i32 49, i32 27, i32 27, i32 31, i32 31, i32 21, i32 21, i32 55, i32 55, i32 55, i32 55, i32 27, i32 27, i32 9, i32 9, i32 17, i32 17, i32 11, i32 11, i32 17, i32 17, i32 17, i32 17, i32 11, i32 11, i32 17, i32 17, i32 15, i32 15, i32 29, i32 29, i32 25, i32 25, i32 27, i32 27, i32 27, i32 27, i32 27, i32 27, i32 37, i32 37, i32 27, i32 27, i32 27, i32 27, i32 25, i32 25>
ret <64 x i8> %p
}
; CHECK-LABEL: test_0005
; CHECK: vdelta
define <64 x i8> @test_0005(<64 x i8> %v0) #0 {
%p = shufflevector <64 x i8> %v0, <64 x i8> undef, <64 x i32><i32 13, i32 13, i32 43, i32 43, i32 31, i32 31, i32 31, i32 31, i32 31, i32 31, i32 13, i32 13, i32 13, i32 13, i32 43, i32 43, i32 39, i32 39, i32 9, i32 9, i32 9, i32 9, i32 39, i32 39, i32 43, i32 43, i32 9, i32 9, i32 61, i32 61, i32 43, i32 43, i32 53, i32 53, i32 63, i32 63, i32 53, i32 53, i32 19, i32 19, i32 19, i32 19, i32 19, i32 19, i32 19, i32 19, i32 53, i32 53, i32 27, i32 27, i32 53, i32 53, i32 15, i32 15, i32 53, i32 53, i32 17, i32 17, i32 39, i32 39, i32 39, i32 39, i32 39, i32 39>
ret <64 x i8> %p
}
; CHECK-LABEL: test_0006
; CHECK: vdelta
define <64 x i8> @test_0006(<64 x i8> %v0) #0 {
%p = shufflevector <64 x i8> %v0, <64 x i8> undef, <64 x i32><i32 29, i32 29, i32 31, i32 31, i32 29, i32 29, i32 29, i32 29, i32 11, i32 11, i32 37, i32 37, i32 11, i32 11, i32 11, i32 11, i32 21, i32 21, i32 21, i32 21, i32 21, i32 21, i32 21, i32 21, i32 29, i32 29, i32 7, i32 7, i32 35, i32 35, i32 25, i32 25, i32 15, i32 15, i32 49, i32 49, i32 21, i32 21, i32 15, i32 15, i32 15, i32 15, i32 15, i32 15, i32 15, i32 15, i32 49, i32 49, i32 7, i32 7, i32 41, i32 41, i32 41, i32 41, i32 7, i32 7, i32 41, i32 41, i32 7, i32 7, i32 41, i32 41, i32 41, i32 41>
ret <64 x i8> %p
}
; CHECK-LABEL: test_0007
; CHECK: vdelta
define <64 x i8> @test_0007(<64 x i8> %v0) #0 {
%p = shufflevector <64 x i8> %v0, <64 x i8> undef, <64 x i32><i32 43, i32 43, i32 43, i32 43, i32 47, i32 47, i32 47, i32 47, i32 7, i32 7, i32 57, i32 57, i32 45, i32 45, i32 45, i32 45, i32 23, i32 23, i32 33, i32 33, i32 23, i32 23, i32 45, i32 45, i32 31, i32 31, i32 31, i32 31, i32 45, i32 45, i32 31, i32 31, i32 43, i32 43, i32 37, i32 37, i32 25, i32 25, i32 15, i32 15, i32 37, i32 37, i32 37, i32 37, i32 37, i32 37, i32 37, i32 37, i32 15, i32 15, i32 1, i32 1, i32 15, i32 15, i32 15, i32 15, i32 43, i32 43, i32 43, i32 43, i32 43, i32 43, i32 43, i32 43>
ret <64 x i8> %p
}
; CHECK-LABEL: test_0008
; CHECK: vdelta
define <64 x i8> @test_0008(<64 x i8> %v0) #0 {
%p = shufflevector <64 x i8> %v0, <64 x i8> undef, <64 x i32><i32 37, i32 37, i32 63, i32 63, i32 37, i32 37, i32 35, i32 35, i32 63, i32 63, i32 63, i32 63, i32 37, i32 37, i32 37, i32 37, i32 63, i32 63, i32 63, i32 63, i32 37, i32 37, i32 35, i32 35, i32 63, i32 63, i32 37, i32 37, i32 63, i32 63, i32 37, i32 37, i32 37, i32 37, i32 63, i32 63, i32 9, i32 9, i32 63, i32 63, i32 13, i32 13, i32 39, i32 39, i32 19, i32 19, i32 13, i32 13, i32 49, i32 49, i32 49, i32 49, i32 21, i32 21, i32 21, i32 21, i32 19, i32 19, i32 49, i32 49, i32 63, i32 63, i32 63, i32 63>
ret <64 x i8> %p
}
; CHECK-LABEL: test_0009
; CHECK: vdelta
define <64 x i8> @test_0009(<64 x i8> %v0) #0 {
%p = shufflevector <64 x i8> %v0, <64 x i8> undef, <64 x i32><i32 25, i32 25, i32 59, i32 59, i32 59, i32 59, i32 59, i32 59, i32 25, i32 25, i32 25, i32 25, i32 19, i32 19, i32 25, i32 25, i32 35, i32 35, i32 41, i32 41, i32 41, i32 41, i32 41, i32 41, i32 35, i32 35, i32 35, i32 35, i32 35, i32 35, i32 29, i32 29, i32 11, i32 11, i32 11, i32 11, i32 47, i32 47, i32 21, i32 21, i32 33, i32 33, i32 47, i32 47, i32 11, i32 11, i32 33, i32 33, i32 29, i32 29, i32 55, i32 55, i32 33, i32 33, i32 59, i32 59, i32 35, i32 35, i32 35, i32 35, i32 29, i32 29, i32 35, i32 35>
ret <64 x i8> %p
}
; CHECK-LABEL: test_000a
; CHECK: vdelta
define <64 x i8> @test_000a(<64 x i8> %v0) #0 {
%p = shufflevector <64 x i8> %v0, <64 x i8> undef, <64 x i32><i32 17, i32 17, i32 17, i32 17, i32 3, i32 3, i32 29, i32 29, i32 29, i32 29, i32 29, i32 29, i32 29, i32 29, i32 43, i32 43, i32 33, i32 33, i32 33, i32 33, i32 19, i32 19, i32 5, i32 5, i32 13, i32 13, i32 27, i32 27, i32 7, i32 7, i32 33, i32 33, i32 1, i32 1, i32 1, i32 1, i32 13, i32 13, i32 13, i32 13, i32 25, i32 25, i32 15, i32 15, i32 15, i32 15, i32 25, i32 25, i32 35, i32 35, i32 25, i32 25, i32 25, i32 25, i32 35, i32 35, i32 1, i32 1, i32 7, i32 7, i32 5, i32 5, i32 7, i32 7>
ret <64 x i8> %p
}
; CHECK-LABEL: test_000b
; CHECK: vdelta
define <64 x i8> @test_000b(<64 x i8> %v0) #0 {
%p = shufflevector <64 x i8> %v0, <64 x i8> undef, <64 x i32><i32 15, i32 15, i32 15, i32 15, i32 15, i32 15, i32 15, i32 15, i32 15, i32 15, i32 15, i32 15, i32 29, i32 29, i32 15, i32 15, i32 63, i32 63, i32 63, i32 63, i32 11, i32 11, i32 11, i32 11, i32 53, i32 53, i32 53, i32 53, i32 39, i32 39, i32 53, i32 53, i32 59, i32 59, i32 49, i32 49, i32 39, i32 39, i32 13, i32 13, i32 59, i32 59, i32 59, i32 59, i32 57, i32 57, i32 59, i32 59, i32 59, i32 59, i32 59, i32 59, i32 59, i32 59, i32 59, i32 59, i32 15, i32 15, i32 15, i32 15, i32 15, i32 15, i32 9, i32 9>
ret <64 x i8> %p
}
; CHECK-LABEL: test_000c
; CHECK: vdelta
define <64 x i8> @test_000c(<64 x i8> %v0) #0 {
%p = shufflevector <64 x i8> %v0, <64 x i8> undef, <64 x i32><i32 41, i32 41, i32 63, i32 63, i32 45, i32 45, i32 63, i32 63, i32 43, i32 43, i32 43, i32 43, i32 43, i32 43, i32 43, i32 43, i32 23, i32 23, i32 23, i32 23, i32 23, i32 23, i32 23, i32 23, i32 43, i32 43, i32 53, i32 53, i32 23, i32 23, i32 23, i32 23, i32 35, i32 35, i32 41, i32 41, i32 35, i32 35, i32 35, i32 35, i32 31, i32 31, i32 17, i32 17, i32 17, i32 17, i32 35, i32 35, i32 41, i32 41, i32 41, i32 41, i32 37, i32 37, i32 37, i32 37, i32 33, i32 33, i32 31, i32 31, i32 13, i32 13, i32 31, i32 31>
ret <64 x i8> %p
}
; CHECK-LABEL: test_000d
; CHECK: vdelta
define <64 x i8> @test_000d(<64 x i8> %v0) #0 {
%p = shufflevector <64 x i8> %v0, <64 x i8> undef, <64 x i32><i32 47, i32 47, i32 47, i32 47, i32 47, i32 47, i32 53, i32 53, i32 23, i32 23, i32 23, i32 23, i32 23, i32 23, i32 23, i32 23, i32 23, i32 23, i32 23, i32 23, i32 11, i32 11, i32 29, i32 29, i32 29, i32 29, i32 29, i32 29, i32 29, i32 29, i32 29, i32 29, i32 9, i32 9, i32 27, i32 27, i32 9, i32 9, i32 27, i32 27, i32 9, i32 9, i32 9, i32 9, i32 27, i32 27, i32 27, i32 27, i32 35, i32 35, i32 35, i32 35, i32 17, i32 17, i32 35, i32 35, i32 21, i32 21, i32 21, i32 21, i32 35, i32 35, i32 57, i32 57>
ret <64 x i8> %p
}
; CHECK-LABEL: test_000e
; CHECK: vdelta
define <64 x i8> @test_000e(<64 x i8> %v0) #0 {
%p = shufflevector <64 x i8> %v0, <64 x i8> undef, <64 x i32><i32 27, i32 27, i32 13, i32 13, i32 13, i32 13, i32 7, i32 7, i32 63, i32 63, i32 13, i32 13, i32 27, i32 27, i32 13, i32 13, i32 13, i32 13, i32 63, i32 63, i32 43, i32 43, i32 9, i32 9, i32 21, i32 21, i32 19, i32 19, i32 21, i32 21, i32 55, i32 55, i32 5, i32 5, i32 19, i32 19, i32 63, i32 63, i32 5, i32 5, i32 49, i32 49, i32 11, i32 11, i32 63, i32 63, i32 63, i32 63, i32 33, i32 33, i32 33, i32 33, i32 59, i32 59, i32 33, i32 33, i32 5, i32 5, i32 59, i32 59, i32 55, i32 55, i32 5, i32 5>
ret <64 x i8> %p
}
; CHECK-LABEL: test_000f
; CHECK: vdelta
define <64 x i8> @test_000f(<64 x i8> %v0) #0 {
%p = shufflevector <64 x i8> %v0, <64 x i8> undef, <64 x i32><i32 19, i32 19, i32 61, i32 61, i32 61, i32 61, i32 61, i32 61, i32 15, i32 15, i32 15, i32 15, i32 57, i32 57, i32 19, i32 19, i32 19, i32 19, i32 61, i32 61, i32 23, i32 23, i32 61, i32 61, i32 5, i32 5, i32 5, i32 5, i32 41, i32 41, i32 41, i32 41, i32 51, i32 51, i32 1, i32 1, i32 29, i32 29, i32 29, i32 29, i32 29, i32 29, i32 7, i32 7, i32 29, i32 29, i32 7, i32 7, i32 23, i32 23, i32 23, i32 23, i32 23, i32 23, i32 29, i32 29, i32 21, i32 21, i32 43, i32 43, i32 43, i32 43, i32 43, i32 43>
ret <64 x i8> %p
}
attributes #0 = { nounwind readnone "target-cpu"="hexagonv60" "target-features"="+hvx,+hvx-length64b" }

View File

@ -0,0 +1,195 @@
; RUN: llc -march=hexagon < %s | FileCheck %s
; CHECK-LABEL: test_0000
; CHECK-DAG: vdelta
; CHECK-DAG: vdelta
; CHECK-DAG: vdelta
; CHECK-DAG: vdelta
; CHECK-DAG: vmux
; CHECK-DAG: vmux
define <128 x i8> @test_0000(<128 x i8> %v0) #0 {
%p = shufflevector <128 x i8> %v0, <128 x i8> undef, <128 x i32><i32 89, i32 94, i32 119, i32 64, i32 85, i32 34, i32 91, i32 60, i32 33, i32 102, i32 79, i32 88, i32 13, i32 26, i32 35, i32 68, i32 48, i32 81, i32 39, i32 48, i32 48, i32 81, i32 106, i32 106, i32 81, i32 106, i32 76, i32 81, i32 106, i32 106, i32 76, i32 61, i32 81, i32 81, i32 82, i32 81, i32 115, i32 6, i32 61, i32 76, i32 81, i32 81, i32 82, i32 81, i32 82, i32 115, i32 82, i32 115, i32 68, i32 68, i32 85, i32 68, i32 67, i32 67, i32 68, i32 1, i32 82, i32 1, i32 82, i32 1, i32 67, i32 67, i32 67, i32 67, i32 9, i32 106, i32 68, i32 9, i32 68, i32 87, i32 106, i32 87, i32 79, i32 79, i32 126, i32 126, i32 32, i32 35, i32 35, i32 35, i32 79, i32 82, i32 79, i32 104, i32 104, i32 117, i32 79, i32 104, i32 110, i32 117, i32 79, i32 110, i32 117, i32 117, i32 117, i32 110, i32 24, i32 24, i32 24, i32 33, i32 63, i32 28, i32 63, i32 63, i32 119, i32 74, i32 68, i32 33, i32 118, i32 33, i32 112, i32 33, i32 83, i32 104, i32 83, i32 70, i32 58, i32 58, i32 49, i32 49, i32 77, i32 104, i32 70, i32 70, i32 11, i32 11, i32 104, i32 11>
ret <128 x i8> %p
}
; CHECK-LABEL: test_0001
; CHECK-DAG: vdelta
; CHECK-DAG: vdelta
; CHECK-DAG: vdelta
; CHECK-DAG: vdelta
; CHECK-DAG: vmux
; CHECK-DAG: vmux
define <128 x i8> @test_0001(<128 x i8> %v0) #0 {
%p = shufflevector <128 x i8> %v0, <128 x i8> undef, <128 x i32><i32 122, i32 122, i32 12, i32 12, i32 93, i32 88, i32 115, i32 115, i32 88, i32 65, i32 88, i32 88, i32 115, i32 34, i32 65, i32 65, i32 92, i32 92, i32 82, i32 65, i32 82, i32 82, i32 82, i32 82, i32 92, i32 65, i32 92, i32 75, i32 65, i32 82, i32 82, i32 63, i32 95, i32 95, i32 114, i32 95, i32 95, i32 72, i32 72, i32 95, i32 16, i32 23, i32 65, i32 114, i32 65, i32 65, i32 35, i32 35, i32 102, i32 102, i32 36, i32 36, i32 23, i32 23, i32 57, i32 57, i32 93, i32 36, i32 93, i32 36, i32 102, i32 102, i32 102, i32 23, i32 95, i32 86, i32 86, i32 95, i32 19, i32 19, i32 19, i32 96, i32 95, i32 95, i32 72, i32 21, i32 94, i32 94, i32 36, i32 36, i32 94, i32 69, i32 19, i32 92, i32 34, i32 19, i32 19, i32 19, i32 94, i32 113, i32 113, i32 94, i32 123, i32 94, i32 120, i32 120, i32 115, i32 104, i32 104, i32 104, i32 95, i32 95, i32 104, i32 104, i32 17, i32 17, i32 74, i32 107, i32 29, i32 29, i32 95, i32 86, i32 71, i32 74, i32 77, i32 77, i32 91, i32 60, i32 60, i32 60, i32 69, i32 69, i32 14, i32 69, i32 14, i32 73, i32 14, i32 73>
ret <128 x i8> %p
}
; CHECK-LABEL: test_0002
; CHECK-DAG: vdelta
; CHECK-DAG: vdelta
; CHECK-DAG: vdelta
; CHECK-DAG: vdelta
; CHECK-DAG: vmux
; CHECK-DAG: vmux
define <128 x i8> @test_0002(<128 x i8> %v0) #0 {
%p = shufflevector <128 x i8> %v0, <128 x i8> undef, <128 x i32><i32 76, i32 73, i32 76, i32 87, i32 73, i32 76, i32 94, i32 73, i32 113, i32 113, i32 76, i32 76, i32 113, i32 113, i32 2, i32 2, i32 124, i32 124, i32 124, i32 37, i32 87, i32 124, i32 87, i32 87, i32 4, i32 123, i32 37, i32 2, i32 123, i32 2, i32 1, i32 2, i32 2, i32 2, i32 51, i32 51, i32 95, i32 95, i32 62, i32 117, i32 89, i32 89, i32 38, i32 38, i32 38, i32 38, i32 117, i32 38, i32 22, i32 109, i32 109, i32 109, i32 22, i32 22, i32 95, i32 22, i32 114, i32 114, i32 95, i32 114, i32 40, i32 40, i32 107, i32 114, i32 45, i32 45, i32 64, i32 35, i32 28, i32 28, i32 90, i32 90, i32 2, i32 2, i32 2, i32 2, i32 119, i32 119, i32 45, i32 64, i32 89, i32 89, i32 89, i32 89, i32 69, i32 69, i32 108, i32 63, i32 126, i32 91, i32 91, i32 91, i32 56, i32 56, i32 63, i32 56, i32 101, i32 84, i32 2, i32 103, i32 2, i32 103, i32 2, i32 97, i32 103, i32 103, i32 46, i32 46, i32 45, i32 84, i32 46, i32 46, i32 30, i32 30, i32 79, i32 88, i32 88, i32 73, i32 73, i32 88, i32 106, i32 106, i32 106, i32 73, i32 79, i32 106, i32 73, i32 73>
ret <128 x i8> %p
}
; CHECK-LABEL: test_0003
; CHECK-DAG: vdelta
; CHECK-DAG: vdelta
; CHECK-DAG: vdelta
; CHECK-DAG: vdelta
; CHECK-DAG: vmux
; CHECK-DAG: vmux
define <128 x i8> @test_0003(<128 x i8> %v0) #0 {
%p = shufflevector <128 x i8> %v0, <128 x i8> undef, <128 x i32><i32 101, i32 101, i32 71, i32 71, i32 58, i32 101, i32 43, i32 43, i32 71, i32 71, i32 56, i32 56, i32 116, i32 116, i32 125, i32 125, i32 30, i32 30, i32 56, i32 33, i32 87, i32 58, i32 125, i32 125, i32 64, i32 33, i32 33, i32 64, i32 38, i32 33, i32 38, i32 38, i32 77, i32 77, i32 77, i32 48, i32 59, i32 28, i32 77, i32 77, i32 79, i32 48, i32 79, i32 79, i32 62, i32 41, i32 48, i32 48, i32 86, i32 86, i32 86, i32 71, i32 56, i32 56, i32 99, i32 56, i32 113, i32 4, i32 74, i32 74, i32 59, i32 64, i32 62, i32 113, i32 14, i32 97, i32 55, i32 14, i32 3, i32 3, i32 125, i32 125, i32 91, i32 91, i32 91, i32 0, i32 86, i32 37, i32 108, i32 37, i32 82, i32 82, i32 24, i32 24, i32 57, i32 82, i32 57, i32 57, i32 0, i32 0, i32 30, i32 39, i32 30, i32 13, i32 91, i32 91, i32 30, i32 25, i32 25, i32 25, i32 25, i32 30, i32 25, i32 12, i32 24, i32 75, i32 30, i32 30, i32 39, i32 39, i32 39, i32 39, i32 98, i32 98, i32 79, i32 79, i32 93, i32 86, i32 79, i32 79, i32 30, i32 30, i32 85, i32 85, i32 30, i32 30, i32 40, i32 40>
ret <128 x i8> %p
}
; CHECK-LABEL: test_0004
; CHECK-DAG: vdelta
; CHECK-DAG: vdelta
; CHECK-DAG: vdelta
; CHECK-DAG: vdelta
; CHECK-DAG: vmux
; CHECK-DAG: vmux
define <128 x i8> @test_0004(<128 x i8> %v0) #0 {
%p = shufflevector <128 x i8> %v0, <128 x i8> undef, <128 x i32><i32 82, i32 9, i32 82, i32 82, i32 35, i32 102, i32 35, i32 84, i32 81, i32 81, i32 82, i32 81, i32 85, i32 82, i32 80, i32 80, i32 106, i32 106, i32 47, i32 47, i32 80, i32 85, i32 80, i32 51, i32 84, i32 125, i32 125, i32 84, i32 125, i32 125, i32 84, i32 84, i32 13, i32 13, i32 106, i32 106, i32 51, i32 44, i32 13, i32 13, i32 56, i32 56, i32 56, i32 56, i32 70, i32 85, i32 56, i32 56, i32 70, i32 51, i32 51, i32 51, i32 70, i32 70, i32 70, i32 70, i32 92, i32 92, i32 14, i32 14, i32 107, i32 92, i32 14, i32 14, i32 105, i32 105, i32 105, i32 105, i32 74, i32 74, i32 68, i32 68, i32 118, i32 118, i32 31, i32 118, i32 31, i32 31, i32 98, i32 98, i32 94, i32 94, i32 94, i32 94, i32 67, i32 12, i32 12, i32 67, i32 43, i32 24, i32 94, i32 81, i32 125, i32 125, i32 82, i32 125, i32 42, i32 42, i32 113, i32 113, i32 23, i32 42, i32 24, i32 24, i32 24, i32 24, i32 2, i32 45, i32 67, i32 67, i32 105, i32 105, i32 82, i32 45, i32 45, i32 82, i32 8, i32 8, i32 63, i32 63, i32 75, i32 75, i32 6, i32 6, i32 63, i32 8, i32 8, i32 63>
ret <128 x i8> %p
}
; CHECK-LABEL: test_0005
; CHECK-DAG: vdelta
; CHECK-DAG: vdelta
; CHECK-DAG: vdelta
; CHECK-DAG: vdelta
; CHECK-DAG: vmux
; CHECK-DAG: vmux
define <128 x i8> @test_0005(<128 x i8> %v0) #0 {
%p = shufflevector <128 x i8> %v0, <128 x i8> undef, <128 x i32><i32 22, i32 22, i32 22, i32 29, i32 72, i32 29, i32 72, i32 29, i32 67, i32 67, i32 97, i32 22, i32 22, i32 22, i32 39, i32 72, i32 97, i32 97, i32 97, i32 72, i32 70, i32 70, i32 72, i32 72, i32 78, i32 78, i32 78, i32 78, i32 27, i32 27, i32 27, i32 27, i32 27, i32 60, i32 29, i32 74, i32 64, i32 64, i32 27, i32 64, i32 84, i32 41, i32 74, i32 41, i32 46, i32 41, i32 51, i32 51, i32 67, i32 67, i32 67, i32 46, i32 97, i32 74, i32 97, i32 97, i32 29, i32 98, i32 98, i32 29, i32 76, i32 95, i32 98, i32 98, i32 25, i32 25, i32 42, i32 42, i32 80, i32 80, i32 42, i32 42, i32 50, i32 71, i32 71, i32 68, i32 33, i32 22, i32 71, i32 22, i32 50, i32 85, i32 115, i32 115, i32 25, i32 25, i32 6, i32 6, i32 108, i32 108, i32 108, i32 115, i32 50, i32 71, i32 108, i32 93, i32 81, i32 82, i32 81, i32 81, i32 91, i32 91, i32 81, i32 68, i32 81, i32 58, i32 58, i32 58, i32 102, i32 69, i32 69, i32 69, i32 48, i32 93, i32 48, i32 48, i32 81, i32 62, i32 48, i32 115, i32 81, i32 81, i32 118, i32 81, i32 118, i32 118, i32 118, i32 81>
ret <128 x i8> %p
}
; CHECK-LABEL: test_0006
; CHECK-DAG: vdelta
; CHECK-DAG: vdelta
; CHECK-DAG: vdelta
; CHECK-DAG: vdelta
; CHECK-DAG: vmux
; CHECK-DAG: vmux
define <128 x i8> @test_0006(<128 x i8> %v0) #0 {
%p = shufflevector <128 x i8> %v0, <128 x i8> undef, <128 x i32><i32 125, i32 125, i32 28, i32 28, i32 15, i32 26, i32 26, i32 15, i32 86, i32 86, i32 55, i32 55, i32 86, i32 86, i32 86, i32 55, i32 127, i32 127, i32 85, i32 85, i32 89, i32 89, i32 80, i32 107, i32 127, i32 24, i32 127, i32 34, i32 107, i32 107, i32 109, i32 109, i32 86, i32 33, i32 33, i32 4, i32 51, i32 10, i32 10, i32 10, i32 10, i32 10, i32 33, i32 10, i32 33, i32 33, i32 10, i32 33, i32 60, i32 51, i32 85, i32 60, i32 6, i32 85, i32 60, i32 85, i32 6, i32 6, i32 85, i32 24, i32 24, i32 24, i32 33, i32 33, i32 16, i32 16, i32 11, i32 16, i32 42, i32 101, i32 60, i32 101, i32 71, i32 94, i32 81, i32 94, i32 42, i32 101, i32 115, i32 115, i32 120, i32 95, i32 34, i32 34, i32 101, i32 20, i32 20, i32 20, i32 6, i32 6, i32 64, i32 64, i32 64, i32 64, i32 3, i32 6, i32 11, i32 11, i32 11, i32 11, i32 20, i32 20, i32 42, i32 42, i32 93, i32 112, i32 42, i32 93, i32 11, i32 76, i32 76, i32 76, i32 57, i32 38, i32 68, i32 111, i32 57, i32 112, i32 57, i32 57, i32 110, i32 1, i32 110, i32 110, i32 68, i32 3, i32 101, i32 101>
ret <128 x i8> %p
}
; CHECK-LABEL: test_0007
; CHECK-DAG: vdelta
; CHECK-DAG: vdelta
; CHECK-DAG: vdelta
; CHECK-DAG: vdelta
; CHECK-DAG: vmux
; CHECK-DAG: vmux
define <128 x i8> @test_0007(<128 x i8> %v0) #0 {
%p = shufflevector <128 x i8> %v0, <128 x i8> undef, <128 x i32><i32 106, i32 106, i32 106, i32 106, i32 80, i32 25, i32 25, i32 25, i32 119, i32 119, i32 119, i32 119, i32 28, i32 28, i32 77, i32 62, i32 108, i32 77, i32 77, i32 77, i32 108, i32 108, i32 77, i32 108, i32 36, i32 36, i32 25, i32 36, i32 15, i32 15, i32 15, i32 15, i32 65, i32 90, i32 104, i32 65, i32 60, i32 60, i32 123, i32 123, i32 65, i32 65, i32 111, i32 36, i32 111, i32 111, i32 65, i32 65, i32 65, i32 65, i32 50, i32 50, i32 65, i32 64, i32 64, i32 65, i32 125, i32 125, i32 60, i32 11, i32 14, i32 14, i32 60, i32 125, i32 108, i32 108, i32 109, i32 108, i32 112, i32 109, i32 95, i32 112, i32 55, i32 108, i32 55, i32 55, i32 26, i32 75, i32 26, i32 75, i32 54, i32 54, i32 40, i32 51, i32 109, i32 109, i32 108, i32 108, i32 21, i32 54, i32 108, i32 108, i32 55, i32 55, i32 54, i32 21, i32 30, i32 1, i32 30, i32 30, i32 1, i32 1, i32 1, i32 24, i32 2, i32 2, i32 24, i32 24, i32 55, i32 55, i32 13, i32 100, i32 24, i32 24, i32 24, i32 51, i32 54, i32 54, i32 51, i32 100, i32 17, i32 17, i32 55, i32 55, i32 108, i32 17, i32 51, i32 108>
ret <128 x i8> %p
}
; CHECK-LABEL: test_0008
; CHECK-DAG: vdelta
; CHECK-DAG: vdelta
; CHECK-DAG: vdelta
; CHECK-DAG: vdelta
; CHECK-DAG: vmux
; CHECK-DAG: vmux
define <128 x i8> @test_0008(<128 x i8> %v0) #0 {
%p = shufflevector <128 x i8> %v0, <128 x i8> undef, <128 x i32><i32 105, i32 105, i32 76, i32 76, i32 50, i32 50, i32 105, i32 50, i32 107, i32 107, i32 107, i32 107, i32 80, i32 80, i32 31, i32 31, i32 29, i32 78, i32 78, i32 29, i32 34, i32 34, i32 34, i32 29, i32 5, i32 90, i32 120, i32 5, i32 90, i32 89, i32 15, i32 90, i32 33, i32 33, i32 110, i32 87, i32 110, i32 125, i32 48, i32 48, i32 67, i32 70, i32 84, i32 84, i32 122, i32 122, i32 47, i32 48, i32 28, i32 28, i32 28, i32 28, i32 28, i32 47, i32 101, i32 28, i32 110, i32 110, i32 33, i32 33, i32 13, i32 13, i32 110, i32 13, i32 83, i32 74, i32 74, i32 74, i32 17, i32 64, i32 64, i32 64, i32 17, i32 17, i32 39, i32 39, i32 93, i32 116, i32 66, i32 66, i32 78, i32 78, i32 101, i32 101, i32 9, i32 9, i32 91, i32 100, i32 127, i32 24, i32 82, i32 17, i32 24, i32 24, i32 118, i32 118, i32 107, i32 107, i32 100, i32 100, i32 82, i32 17, i32 82, i32 17, i32 23, i32 48, i32 26, i32 26, i32 26, i32 17, i32 48, i32 48, i32 74, i32 61, i32 61, i32 61, i32 17, i32 22, i32 17, i32 24, i32 17, i32 22, i32 22, i32 22, i32 74, i32 74, i32 61, i32 61>
ret <128 x i8> %p
}
; CHECK-LABEL: test_0009
; CHECK-DAG: vdelta
; CHECK-DAG: vdelta
; CHECK-DAG: vdelta
; CHECK-DAG: vdelta
; CHECK-DAG: vmux
; CHECK-DAG: vmux
define <128 x i8> @test_0009(<128 x i8> %v0) #0 {
%p = shufflevector <128 x i8> %v0, <128 x i8> undef, <128 x i32><i32 120, i32 19, i32 25, i32 120, i32 25, i32 25, i32 71, i32 71, i32 110, i32 71, i32 25, i32 120, i32 117, i32 117, i32 59, i32 59, i32 100, i32 33, i32 33, i32 33, i32 33, i32 33, i32 15, i32 120, i32 41, i32 98, i32 41, i32 41, i32 120, i32 87, i32 87, i32 120, i32 61, i32 64, i32 6, i32 61, i32 64, i32 64, i32 27, i32 42, i32 2, i32 73, i32 2, i32 2, i32 61, i32 61, i32 4, i32 61, i32 19, i32 2, i32 5, i32 124, i32 2, i32 5, i32 80, i32 19, i32 2, i32 2, i32 2, i32 2, i32 86, i32 73, i32 103, i32 103, i32 86, i32 86, i32 103, i32 86, i32 86, i32 103, i32 52, i32 52, i32 52, i32 52, i32 2, i32 2, i32 73, i32 73, i32 72, i32 111, i32 30, i32 83, i32 13, i32 13, i32 83, i32 83, i32 13, i32 13, i32 70, i32 13, i32 13, i32 56, i32 83, i32 83, i32 83, i32 83, i32 88, i32 65, i32 18, i32 65, i32 103, i32 88, i32 103, i32 103, i32 122, i32 103, i32 21, i32 21, i32 52, i32 52, i32 65, i32 52, i32 63, i32 92, i32 92, i32 92, i32 0, i32 63, i32 0, i32 0, i32 109, i32 52, i32 63, i32 2, i32 2, i32 63, i32 2, i32 63>
ret <128 x i8> %p
}
; CHECK-LABEL: test_000a
; CHECK-DAG: vdelta
; CHECK-DAG: vdelta
; CHECK-DAG: vdelta
; CHECK-DAG: vdelta
; CHECK-DAG: vmux
; CHECK-DAG: vmux
define <128 x i8> @test_000a(<128 x i8> %v0) #0 {
%p = shufflevector <128 x i8> %v0, <128 x i8> undef, <128 x i32><i32 24, i32 24, i32 102, i32 102, i32 103, i32 103, i32 103, i32 116, i32 116, i32 103, i32 21, i32 21, i32 102, i32 102, i32 19, i32 116, i32 126, i32 109, i32 95, i32 100, i32 109, i32 126, i32 126, i32 126, i32 104, i32 104, i32 19, i32 19, i32 109, i32 126, i32 109, i32 109, i32 63, i32 94, i32 94, i32 94, i32 48, i32 48, i32 48, i32 48, i32 99, i32 68, i32 94, i32 77, i32 17, i32 17, i32 17, i32 17, i32 34, i32 63, i32 34, i32 34, i32 99, i32 94, i32 94, i32 99, i32 101, i32 94, i32 94, i32 94, i32 94, i32 25, i32 56, i32 63, i32 96, i32 97, i32 97, i32 96, i32 62, i32 19, i32 97, i32 97, i32 19, i32 19, i32 19, i32 19, i32 29, i32 29, i32 29, i32 29, i32 40, i32 40, i32 67, i32 40, i32 67, i32 40, i32 67, i32 46, i32 53, i32 53, i32 59, i32 26, i32 73, i32 73, i32 70, i32 59, i32 22, i32 43, i32 97, i32 97, i32 88, i32 37, i32 88, i32 88, i32 29, i32 29, i32 108, i32 108, i32 67, i32 67, i32 62, i32 105, i32 29, i32 29, i32 0, i32 29, i32 81, i32 108, i32 108, i32 81, i32 43, i32 108, i32 81, i32 98, i32 7, i32 22, i32 81, i32 81>
ret <128 x i8> %p
}
; CHECK-LABEL: test_000b
; CHECK-DAG: vdelta
; CHECK-DAG: vdelta
; CHECK-DAG: vdelta
; CHECK-DAG: vdelta
; CHECK-DAG: vmux
; CHECK-DAG: vmux
define <128 x i8> @test_000b(<128 x i8> %v0) #0 {
%p = shufflevector <128 x i8> %v0, <128 x i8> undef, <128 x i32><i32 100, i32 127, i32 98, i32 25, i32 98, i32 25, i32 127, i32 80, i32 28, i32 7, i32 7, i32 28, i32 67, i32 98, i32 67, i32 67, i32 25, i32 25, i32 119, i32 119, i32 100, i32 100, i32 78, i32 78, i32 113, i32 113, i32 80, i32 80, i32 78, i32 47, i32 78, i32 78, i32 100, i32 100, i32 100, i32 101, i32 104, i32 95, i32 101, i32 6, i32 50, i32 119, i32 109, i32 50, i32 97, i32 6, i32 6, i32 6, i32 12, i32 12, i32 53, i32 66, i32 53, i32 12, i32 123, i32 66, i32 66, i32 66, i32 66, i32 97, i32 66, i32 53, i32 7, i32 7, i32 70, i32 71, i32 70, i32 9, i32 71, i32 50, i32 50, i32 50, i32 17, i32 17, i32 17, i32 17, i32 17, i32 17, i32 10, i32 10, i32 65, i32 65, i32 65, i32 65, i32 15, i32 15, i32 5, i32 5, i32 52, i32 52, i32 52, i32 15, i32 13, i32 52, i32 13, i32 70, i32 96, i32 96, i32 71, i32 96, i32 71, i32 71, i32 126, i32 71, i32 11, i32 11, i32 92, i32 92, i32 11, i32 11, i32 105, i32 92, i32 49, i32 49, i32 122, i32 49, i32 122, i32 11, i32 122, i32 49, i32 92, i32 92, i32 35, i32 102, i32 125, i32 88, i32 122, i32 122>
ret <128 x i8> %p
}
; CHECK-LABEL: test_000c
; CHECK-DAG: vdelta
; CHECK-DAG: vdelta
; CHECK-DAG: vdelta
; CHECK-DAG: vdelta
; CHECK-DAG: vmux
; CHECK-DAG: vmux
define <128 x i8> @test_000c(<128 x i8> %v0) #0 {
%p = shufflevector <128 x i8> %v0, <128 x i8> undef, <128 x i32><i32 108, i32 85, i32 85, i32 108, i32 73, i32 73, i32 75, i32 108, i32 90, i32 99, i32 13, i32 90, i32 47, i32 126, i32 126, i32 73, i32 126, i32 5, i32 75, i32 120, i32 2, i32 2, i32 5, i32 4, i32 125, i32 125, i32 125, i32 126, i32 81, i32 81, i32 4, i32 47, i32 25, i32 25, i32 55, i32 55, i32 42, i32 42, i32 116, i32 53, i32 25, i32 25, i32 42, i32 25, i32 13, i32 80, i32 80, i32 13, i32 88, i32 88, i32 13, i32 13, i32 36, i32 91, i32 91, i32 36, i32 88, i32 88, i32 73, i32 73, i32 5, i32 118, i32 5, i32 118, i32 84, i32 125, i32 84, i32 125, i32 22, i32 125, i32 56, i32 56, i32 64, i32 64, i32 19, i32 19, i32 19, i32 46, i32 46, i32 46, i32 31, i32 31, i32 85, i32 126, i32 31, i32 31, i32 98, i32 85, i32 60, i32 60, i32 126, i32 77, i32 126, i32 23, i32 23, i32 23, i32 54, i32 54, i32 105, i32 54, i32 85, i32 85, i32 85, i32 85, i32 103, i32 103, i32 98, i32 103, i32 29, i32 64, i32 29, i32 29, i32 60, i32 60, i32 11, i32 102, i32 103, i32 103, i32 98, i32 29, i32 15, i32 60, i32 105, i32 102, i32 105, i32 102, i32 105, i32 105>
ret <128 x i8> %p
}
; CHECK-LABEL: test_000d
; CHECK-DAG: vdelta
; CHECK-DAG: vdelta
; CHECK-DAG: vdelta
; CHECK-DAG: vdelta
; CHECK-DAG: vmux
; CHECK-DAG: vmux
define <128 x i8> @test_000d(<128 x i8> %v0) #0 {
%p = shufflevector <128 x i8> %v0, <128 x i8> undef, <128 x i32><i32 24, i32 24, i32 24, i32 83, i32 70, i32 93, i32 70, i32 70, i32 37, i32 37, i32 37, i32 80, i32 98, i32 27, i32 68, i32 37, i32 68, i32 68, i32 54, i32 54, i32 27, i32 27, i32 54, i32 54, i32 79, i32 79, i32 89, i32 89, i32 89, i32 68, i32 68, i32 79, i32 108, i32 108, i32 127, i32 127, i32 127, i32 14, i32 127, i32 80, i32 73, i32 70, i32 73, i32 73, i32 122, i32 122, i32 7, i32 7, i32 111, i32 106, i32 49, i32 52, i32 54, i32 54, i32 8, i32 83, i32 52, i32 49, i32 106, i32 59, i32 59, i32 59, i32 32, i32 32, i32 40, i32 95, i32 95, i32 95, i32 53, i32 118, i32 95, i32 40, i32 64, i32 64, i32 71, i32 71, i32 50, i32 71, i32 50, i32 50, i32 53, i32 53, i32 118, i32 95, i32 16, i32 81, i32 16, i32 16, i32 81, i32 106, i32 106, i32 106, i32 106, i32 106, i32 100, i32 53, i32 71, i32 71, i32 109, i32 86, i32 66, i32 66, i32 109, i32 108, i32 66, i32 66, i32 19, i32 19, i32 19, i32 62, i32 105, i32 105, i32 66, i32 71, i32 64, i32 64, i32 66, i32 53, i32 66, i32 66, i32 88, i32 19, i32 61, i32 88, i32 26, i32 71, i32 71, i32 71>
ret <128 x i8> %p
}
; CHECK-LABEL: test_000e
; CHECK-DAG: vdelta
; CHECK-DAG: vdelta
; CHECK-DAG: vdelta
; CHECK-DAG: vdelta
; CHECK-DAG: vmux
; CHECK-DAG: vmux
define <128 x i8> @test_000e(<128 x i8> %v0) #0 {
%p = shufflevector <128 x i8> %v0, <128 x i8> undef, <128 x i32><i32 70, i32 70, i32 70, i32 70, i32 95, i32 95, i32 95, i32 95, i32 92, i32 92, i32 92, i32 92, i32 96, i32 96, i32 51, i32 98, i32 88, i32 49, i32 111, i32 88, i32 69, i32 69, i32 107, i32 107, i32 9, i32 96, i32 9, i32 54, i32 10, i32 10, i32 10, i32 87, i32 61, i32 61, i32 52, i32 61, i32 127, i32 127, i32 18, i32 18, i32 18, i32 18, i32 56, i32 97, i32 60, i32 11, i32 97, i32 86, i32 51, i32 51, i32 9, i32 66, i32 9, i32 9, i32 56, i32 56, i32 21, i32 56, i32 70, i32 70, i32 51, i32 51, i32 97, i32 97, i32 36, i32 36, i32 10, i32 67, i32 10, i32 67, i32 36, i32 1, i32 104, i32 21, i32 21, i32 10, i32 124, i32 124, i32 118, i32 103, i32 113, i32 124, i32 91, i32 34, i32 91, i32 34, i32 34, i32 34, i32 34, i32 79, i32 79, i32 124, i32 113, i32 113, i32 124, i32 124, i32 124, i32 124, i32 124, i32 21, i32 124, i32 21, i32 21, i32 21, i32 78, i32 78, i32 81, i32 78, i32 79, i32 78, i32 21, i32 21, i32 123, i32 78, i32 80, i32 123, i32 123, i32 10, i32 10, i32 10, i32 80, i32 80, i32 80, i32 33, i32 12, i32 103, i32 18, i32 33>
ret <128 x i8> %p
}
; CHECK-LABEL: test_000f
; CHECK-DAG: vdelta
; CHECK-DAG: vdelta
; CHECK-DAG: vdelta
; CHECK-DAG: vdelta
; CHECK-DAG: vmux
; CHECK-DAG: vmux
define <128 x i8> @test_000f(<128 x i8> %v0) #0 {
%p = shufflevector <128 x i8> %v0, <128 x i8> undef, <128 x i32><i32 29, i32 0, i32 75, i32 82, i32 0, i32 75, i32 75, i32 75, i32 29, i32 29, i32 82, i32 103, i32 75, i32 70, i32 75, i32 44, i32 33, i32 33, i32 33, i32 33, i32 104, i32 83, i32 54, i32 54, i32 10, i32 10, i32 104, i32 104, i32 92, i32 92, i32 92, i32 92, i32 104, i32 104, i32 54, i32 54, i32 90, i32 90, i32 90, i32 90, i32 41, i32 41, i32 83, i32 44, i32 34, i32 103, i32 104, i32 104, i32 31, i32 31, i32 1, i32 82, i32 92, i32 92, i32 82, i32 59, i32 59, i32 59, i32 100, i32 100, i32 77, i32 77, i32 100, i32 59, i32 67, i32 68, i32 68, i32 13, i32 13, i32 13, i32 127, i32 22, i32 106, i32 106, i32 127, i32 127, i32 37, i32 37, i32 68, i32 68, i32 107, i32 107, i32 53, i32 53, i32 50, i32 107, i32 50, i32 50, i32 107, i32 70, i32 53, i32 53, i32 47, i32 68, i32 47, i32 68, i32 57, i32 57, i32 87, i32 87, i32 87, i32 72, i32 72, i32 72, i32 83, i32 32, i32 83, i32 62, i32 32, i32 85, i32 32, i32 83, i32 116, i32 116, i32 116, i32 57, i32 95, i32 38, i32 95, i32 95, i32 98, i32 98, i32 95, i32 95, i32 95, i32 95, i32 98, i32 95>
ret <128 x i8> %p
}
attributes #0 = { nounwind readnone "target-cpu"="hexagonv60" "target-features"="+hvx,+hvx-length64b" }

View File

@ -0,0 +1,73 @@
; RUN: llc -march=hexagon < %s | FileCheck %s
; Check that extract-element is handled.
; CHECK-LABEL: ext_00:
; CHECK: r[[R000:[0-9]+]] = and(r0,#3)
; CHECK: r[[R001:[0-9]+]] = vextract(v0,r0)
; CHECK-DAG: r[[R002:[0-9]+]] = asl(r[[R000]],#3)
; CHECK-DAG: r[[R003:[0-9]+]] = #8
; CHECK: r0 = extractu(r[[R001]],r[[R003]]:[[R002]])
define i8 @ext_00(<64 x i8> %a0, i32 %a1) #0 {
b2:
%v3 = extractelement <64 x i8> %a0, i32 %a1
ret i8 %v3
}
; CHECK-LABEL: ext_10:
; CHECK: r[[R100:[0-9]+]] = and(r0,#3)
; CHECK: r[[R101:[0-9]+]] = vextract(v0,r0)
; CHECK-DAG: r[[R102:[0-9]+]] = asl(r[[R100]],#3)
; CHECK-DAG: r[[R103:[0-9]+]] = #8
; CHECK: r0 = extractu(r[[R101]],r[[R103]]:[[R102]])
define i8 @ext_10(<128 x i8> %a0, i32 %a1) #1 {
b2:
%v3 = extractelement <128 x i8> %a0, i32 %a1
ret i8 %v3
}
; CHECK-LABEL: ext_01:
; CHECK-DAG: r[[R010:[0-9]+]] = asl(r0,#1)
; CHECK-DAG: r[[R011:[0-9]+]] = and(r0,#1)
; CHECK-DAG: r[[R012:[0-9]+]] = #16
; CHECK: r[[R013:[0-9]+]] = asl(r[[R011]],#4)
; CHECK: r[[R014:[0-9]+]] = vextract(v0,r[[R010]])
; CHECK: r0 = extractu(r[[R014]],r[[R012]]:[[R013]])
define i16 @ext_01(<32 x i16> %a0, i32 %a1) #0 {
b2:
%v3 = extractelement <32 x i16> %a0, i32 %a1
ret i16 %v3
}
; CHECK-LABEL: ext_11:
; CHECK-DAG: r[[R110:[0-9]+]] = asl(r0,#1)
; CHECK-DAG: r[[R111:[0-9]+]] = and(r0,#1)
; CHECK-DAG: r[[R112:[0-9]+]] = #16
; CHECK: r[[R113:[0-9]+]] = asl(r[[R111]],#4)
; CHECK: r[[R114:[0-9]+]] = vextract(v0,r[[R110]])
; CHECK: r0 = extractu(r[[R114]],r[[R112]]:[[R113]])
define i16 @ext_11(<64 x i16> %a0, i32 %a1) #1 {
b2:
%v3 = extractelement <64 x i16> %a0, i32 %a1
ret i16 %v3
}
; CHECK-LABEL: ext_02:
; CHECK: [[R020:r[0-9]+]] = asl(r0,#2)
; CHECK: r0 = vextract(v0,[[R020]])
define i32 @ext_02(<16 x i32> %a0, i32 %a1) #0 {
b2:
%v3 = extractelement <16 x i32> %a0, i32 %a1
ret i32 %v3
}
; CHECK-LABEL: ext_12:
; CHECK: [[R120:r[0-9]+]] = asl(r0,#2)
; CHECK: r0 = vextract(v0,[[R120]])
define i32 @ext_12(<32 x i32> %a0, i32 %a1) #1 {
b2:
%v3 = extractelement <32 x i32> %a0, i32 %a1
ret i32 %v3
}
attributes #0 = { nounwind readnone "target-cpu"="hexagonv60" "target-features"="+hvx,+hvx-length64b" }
attributes #1 = { nounwind readnone "target-cpu"="hexagonv60" "target-features"="+hvx,+hvx-length128b" }

View File

@ -0,0 +1,157 @@
; RUN: llc -march=hexagon < %s | FileCheck %s
; This testcase is to check that we use REG_SEQUENCE for reordering whole
; vectors.
; Note: some of the vcombines generated are unnecessary. If the codegen
; improves to eliminate them, this testcase will need to be updated.
; CHECK-LABEL: test_00:
; CHECK: v1 = v0
; Result: v1:0 = vcombine(v0,v0)
define <128 x i8> @test_00(<128 x i8> %a0, <128 x i8> %a1) #0 {
b2:
%v3 = shufflevector <128 x i8> %a0, <128 x i8> %a1, <128 x i32> <i32 0, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7, i32 8, i32 9, i32 10, i32 11, i32 12, i32 13, i32 14, i32 15, i32 16, i32 17, i32 18, i32 19, i32 20, i32 21, i32 22, i32 23, i32 24, i32 25, i32 26, i32 27, i32 28, i32 29, i32 30, i32 31, i32 32, i32 33, i32 34, i32 35, i32 36, i32 37, i32 38, i32 39, i32 40, i32 41, i32 42, i32 43, i32 44, i32 45, i32 46, i32 47, i32 48, i32 49, i32 50, i32 51, i32 52, i32 53, i32 54, i32 55, i32 56, i32 57, i32 58, i32 59, i32 60, i32 61, i32 62, i32 63, i32 0, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7, i32 8, i32 9, i32 10, i32 11, i32 12, i32 13, i32 14, i32 15, i32 16, i32 17, i32 18, i32 19, i32 20, i32 21, i32 22, i32 23, i32 24, i32 25, i32 26, i32 27, i32 28, i32 29, i32 30, i32 31, i32 32, i32 33, i32 34, i32 35, i32 36, i32 37, i32 38, i32 39, i32 40, i32 41, i32 42, i32 43, i32 44, i32 45, i32 46, i32 47, i32 48, i32 49, i32 50, i32 51, i32 52, i32 53, i32 54, i32 55, i32 56, i32 57, i32 58, i32 59, i32 60, i32 61, i32 62, i32 63>
ret <128 x i8> %v3
}
; CHECK-LABEL: test_01:
; CHECK-NOT: =
; Result: v1:0 = vcombine(v1,v0)
define <128 x i8> @test_01(<128 x i8> %a0, <128 x i8> %a1) #0 {
b2:
%v3 = shufflevector <128 x i8> %a0, <128 x i8> %a1, <128 x i32> <i32 0, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7, i32 8, i32 9, i32 10, i32 11, i32 12, i32 13, i32 14, i32 15, i32 16, i32 17, i32 18, i32 19, i32 20, i32 21, i32 22, i32 23, i32 24, i32 25, i32 26, i32 27, i32 28, i32 29, i32 30, i32 31, i32 32, i32 33, i32 34, i32 35, i32 36, i32 37, i32 38, i32 39, i32 40, i32 41, i32 42, i32 43, i32 44, i32 45, i32 46, i32 47, i32 48, i32 49, i32 50, i32 51, i32 52, i32 53, i32 54, i32 55, i32 56, i32 57, i32 58, i32 59, i32 60, i32 61, i32 62, i32 63, i32 64, i32 65, i32 66, i32 67, i32 68, i32 69, i32 70, i32 71, i32 72, i32 73, i32 74, i32 75, i32 76, i32 77, i32 78, i32 79, i32 80, i32 81, i32 82, i32 83, i32 84, i32 85, i32 86, i32 87, i32 88, i32 89, i32 90, i32 91, i32 92, i32 93, i32 94, i32 95, i32 96, i32 97, i32 98, i32 99, i32 100, i32 101, i32 102, i32 103, i32 104, i32 105, i32 106, i32 107, i32 108, i32 109, i32 110, i32 111, i32 112, i32 113, i32 114, i32 115, i32 116, i32 117, i32 118, i32 119, i32 120, i32 121, i32 122, i32 123, i32 124, i32 125, i32 126, i32 127>
ret <128 x i8> %v3
}
; CHECK-LABEL: test_02:
; CHECK: v1 = v2
; Result: v1:0 = vcombine(v2,v0)
define <128 x i8> @test_02(<128 x i8> %a0, <128 x i8> %a1) #0 {
b2:
%v3 = shufflevector <128 x i8> %a0, <128 x i8> %a1, <128 x i32> <i32 0, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7, i32 8, i32 9, i32 10, i32 11, i32 12, i32 13, i32 14, i32 15, i32 16, i32 17, i32 18, i32 19, i32 20, i32 21, i32 22, i32 23, i32 24, i32 25, i32 26, i32 27, i32 28, i32 29, i32 30, i32 31, i32 32, i32 33, i32 34, i32 35, i32 36, i32 37, i32 38, i32 39, i32 40, i32 41, i32 42, i32 43, i32 44, i32 45, i32 46, i32 47, i32 48, i32 49, i32 50, i32 51, i32 52, i32 53, i32 54, i32 55, i32 56, i32 57, i32 58, i32 59, i32 60, i32 61, i32 62, i32 63, i32 128, i32 129, i32 130, i32 131, i32 132, i32 133, i32 134, i32 135, i32 136, i32 137, i32 138, i32 139, i32 140, i32 141, i32 142, i32 143, i32 144, i32 145, i32 146, i32 147, i32 148, i32 149, i32 150, i32 151, i32 152, i32 153, i32 154, i32 155, i32 156, i32 157, i32 158, i32 159, i32 160, i32 161, i32 162, i32 163, i32 164, i32 165, i32 166, i32 167, i32 168, i32 169, i32 170, i32 171, i32 172, i32 173, i32 174, i32 175, i32 176, i32 177, i32 178, i32 179, i32 180, i32 181, i32 182, i32 183, i32 184, i32 185, i32 186, i32 187, i32 188, i32 189, i32 190, i32 191>
ret <128 x i8> %v3
}
; CHECK-LABEL: test_03:
; CHECK: v1 = v3
; Result: v1:0 = vcombine(v3,v0)
define <128 x i8> @test_03(<128 x i8> %a0, <128 x i8> %a1) #0 {
b2:
%v3 = shufflevector <128 x i8> %a0, <128 x i8> %a1, <128 x i32> <i32 0, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7, i32 8, i32 9, i32 10, i32 11, i32 12, i32 13, i32 14, i32 15, i32 16, i32 17, i32 18, i32 19, i32 20, i32 21, i32 22, i32 23, i32 24, i32 25, i32 26, i32 27, i32 28, i32 29, i32 30, i32 31, i32 32, i32 33, i32 34, i32 35, i32 36, i32 37, i32 38, i32 39, i32 40, i32 41, i32 42, i32 43, i32 44, i32 45, i32 46, i32 47, i32 48, i32 49, i32 50, i32 51, i32 52, i32 53, i32 54, i32 55, i32 56, i32 57, i32 58, i32 59, i32 60, i32 61, i32 62, i32 63, i32 192, i32 193, i32 194, i32 195, i32 196, i32 197, i32 198, i32 199, i32 200, i32 201, i32 202, i32 203, i32 204, i32 205, i32 206, i32 207, i32 208, i32 209, i32 210, i32 211, i32 212, i32 213, i32 214, i32 215, i32 216, i32 217, i32 218, i32 219, i32 220, i32 221, i32 222, i32 223, i32 224, i32 225, i32 226, i32 227, i32 228, i32 229, i32 230, i32 231, i32 232, i32 233, i32 234, i32 235, i32 236, i32 237, i32 238, i32 239, i32 240, i32 241, i32 242, i32 243, i32 244, i32 245, i32 246, i32 247, i32 248, i32 249, i32 250, i32 251, i32 252, i32 253, i32 254, i32 255>
ret <128 x i8> %v3
}
; CHECK-LABEL: test_10:
; CHECK: vcombine(v0,v1)
; Result: v1:0 = vcombine(v0,v1)
define <128 x i8> @test_10(<128 x i8> %a0, <128 x i8> %a1) #0 {
b2:
%v3 = shufflevector <128 x i8> %a0, <128 x i8> %a1, <128 x i32> <i32 64, i32 65, i32 66, i32 67, i32 68, i32 69, i32 70, i32 71, i32 72, i32 73, i32 74, i32 75, i32 76, i32 77, i32 78, i32 79, i32 80, i32 81, i32 82, i32 83, i32 84, i32 85, i32 86, i32 87, i32 88, i32 89, i32 90, i32 91, i32 92, i32 93, i32 94, i32 95, i32 96, i32 97, i32 98, i32 99, i32 100, i32 101, i32 102, i32 103, i32 104, i32 105, i32 106, i32 107, i32 108, i32 109, i32 110, i32 111, i32 112, i32 113, i32 114, i32 115, i32 116, i32 117, i32 118, i32 119, i32 120, i32 121, i32 122, i32 123, i32 124, i32 125, i32 126, i32 127, i32 0, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7, i32 8, i32 9, i32 10, i32 11, i32 12, i32 13, i32 14, i32 15, i32 16, i32 17, i32 18, i32 19, i32 20, i32 21, i32 22, i32 23, i32 24, i32 25, i32 26, i32 27, i32 28, i32 29, i32 30, i32 31, i32 32, i32 33, i32 34, i32 35, i32 36, i32 37, i32 38, i32 39, i32 40, i32 41, i32 42, i32 43, i32 44, i32 45, i32 46, i32 47, i32 48, i32 49, i32 50, i32 51, i32 52, i32 53, i32 54, i32 55, i32 56, i32 57, i32 58, i32 59, i32 60, i32 61, i32 62, i32 63>
ret <128 x i8> %v3
}
; CHECK-LABEL: test_11:
; CHECK: v0 = v1
; Result: v1:0 = vcombine(v1,v1)
define <128 x i8> @test_11(<128 x i8> %a0, <128 x i8> %a1) #0 {
b2:
%v3 = shufflevector <128 x i8> %a0, <128 x i8> %a1, <128 x i32> <i32 64, i32 65, i32 66, i32 67, i32 68, i32 69, i32 70, i32 71, i32 72, i32 73, i32 74, i32 75, i32 76, i32 77, i32 78, i32 79, i32 80, i32 81, i32 82, i32 83, i32 84, i32 85, i32 86, i32 87, i32 88, i32 89, i32 90, i32 91, i32 92, i32 93, i32 94, i32 95, i32 96, i32 97, i32 98, i32 99, i32 100, i32 101, i32 102, i32 103, i32 104, i32 105, i32 106, i32 107, i32 108, i32 109, i32 110, i32 111, i32 112, i32 113, i32 114, i32 115, i32 116, i32 117, i32 118, i32 119, i32 120, i32 121, i32 122, i32 123, i32 124, i32 125, i32 126, i32 127, i32 64, i32 65, i32 66, i32 67, i32 68, i32 69, i32 70, i32 71, i32 72, i32 73, i32 74, i32 75, i32 76, i32 77, i32 78, i32 79, i32 80, i32 81, i32 82, i32 83, i32 84, i32 85, i32 86, i32 87, i32 88, i32 89, i32 90, i32 91, i32 92, i32 93, i32 94, i32 95, i32 96, i32 97, i32 98, i32 99, i32 100, i32 101, i32 102, i32 103, i32 104, i32 105, i32 106, i32 107, i32 108, i32 109, i32 110, i32 111, i32 112, i32 113, i32 114, i32 115, i32 116, i32 117, i32 118, i32 119, i32 120, i32 121, i32 122, i32 123, i32 124, i32 125, i32 126, i32 127>
ret <128 x i8> %v3
}
; CHECK-LABEL: test_12:
; CHECK: vcombine(v2,v1)
; Result: v1:0 = vcombine(v2,v1)
define <128 x i8> @test_12(<128 x i8> %a0, <128 x i8> %a1) #0 {
b2:
%v3 = shufflevector <128 x i8> %a0, <128 x i8> %a1, <128 x i32> <i32 64, i32 65, i32 66, i32 67, i32 68, i32 69, i32 70, i32 71, i32 72, i32 73, i32 74, i32 75, i32 76, i32 77, i32 78, i32 79, i32 80, i32 81, i32 82, i32 83, i32 84, i32 85, i32 86, i32 87, i32 88, i32 89, i32 90, i32 91, i32 92, i32 93, i32 94, i32 95, i32 96, i32 97, i32 98, i32 99, i32 100, i32 101, i32 102, i32 103, i32 104, i32 105, i32 106, i32 107, i32 108, i32 109, i32 110, i32 111, i32 112, i32 113, i32 114, i32 115, i32 116, i32 117, i32 118, i32 119, i32 120, i32 121, i32 122, i32 123, i32 124, i32 125, i32 126, i32 127, i32 128, i32 129, i32 130, i32 131, i32 132, i32 133, i32 134, i32 135, i32 136, i32 137, i32 138, i32 139, i32 140, i32 141, i32 142, i32 143, i32 144, i32 145, i32 146, i32 147, i32 148, i32 149, i32 150, i32 151, i32 152, i32 153, i32 154, i32 155, i32 156, i32 157, i32 158, i32 159, i32 160, i32 161, i32 162, i32 163, i32 164, i32 165, i32 166, i32 167, i32 168, i32 169, i32 170, i32 171, i32 172, i32 173, i32 174, i32 175, i32 176, i32 177, i32 178, i32 179, i32 180, i32 181, i32 182, i32 183, i32 184, i32 185, i32 186, i32 187, i32 188, i32 189, i32 190, i32 191>
ret <128 x i8> %v3
}
; CHECK-LABEL: test_13:
; CHECK: v2 = v1
; CHECK: vcombine(v3,v2)
; Result: v1:0 = vcombine(v3,v1)
define <128 x i8> @test_13(<128 x i8> %a0, <128 x i8> %a1) #0 {
b2:
%v3 = shufflevector <128 x i8> %a0, <128 x i8> %a1, <128 x i32> <i32 64, i32 65, i32 66, i32 67, i32 68, i32 69, i32 70, i32 71, i32 72, i32 73, i32 74, i32 75, i32 76, i32 77, i32 78, i32 79, i32 80, i32 81, i32 82, i32 83, i32 84, i32 85, i32 86, i32 87, i32 88, i32 89, i32 90, i32 91, i32 92, i32 93, i32 94, i32 95, i32 96, i32 97, i32 98, i32 99, i32 100, i32 101, i32 102, i32 103, i32 104, i32 105, i32 106, i32 107, i32 108, i32 109, i32 110, i32 111, i32 112, i32 113, i32 114, i32 115, i32 116, i32 117, i32 118, i32 119, i32 120, i32 121, i32 122, i32 123, i32 124, i32 125, i32 126, i32 127, i32 192, i32 193, i32 194, i32 195, i32 196, i32 197, i32 198, i32 199, i32 200, i32 201, i32 202, i32 203, i32 204, i32 205, i32 206, i32 207, i32 208, i32 209, i32 210, i32 211, i32 212, i32 213, i32 214, i32 215, i32 216, i32 217, i32 218, i32 219, i32 220, i32 221, i32 222, i32 223, i32 224, i32 225, i32 226, i32 227, i32 228, i32 229, i32 230, i32 231, i32 232, i32 233, i32 234, i32 235, i32 236, i32 237, i32 238, i32 239, i32 240, i32 241, i32 242, i32 243, i32 244, i32 245, i32 246, i32 247, i32 248, i32 249, i32 250, i32 251, i32 252, i32 253, i32 254, i32 255>
ret <128 x i8> %v3
}
; CHECK-LABEL: test_20:
; CHECK: v3 = v0
; CHECK: vcombine(v3,v2)
; Result: v1:0 = vcombine(v0,v2)
define <128 x i8> @test_20(<128 x i8> %a0, <128 x i8> %a1) #0 {
b2:
%v3 = shufflevector <128 x i8> %a0, <128 x i8> %a1, <128 x i32> <i32 128, i32 129, i32 130, i32 131, i32 132, i32 133, i32 134, i32 135, i32 136, i32 137, i32 138, i32 139, i32 140, i32 141, i32 142, i32 143, i32 144, i32 145, i32 146, i32 147, i32 148, i32 149, i32 150, i32 151, i32 152, i32 153, i32 154, i32 155, i32 156, i32 157, i32 158, i32 159, i32 160, i32 161, i32 162, i32 163, i32 164, i32 165, i32 166, i32 167, i32 168, i32 169, i32 170, i32 171, i32 172, i32 173, i32 174, i32 175, i32 176, i32 177, i32 178, i32 179, i32 180, i32 181, i32 182, i32 183, i32 184, i32 185, i32 186, i32 187, i32 188, i32 189, i32 190, i32 191, i32 0, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7, i32 8, i32 9, i32 10, i32 11, i32 12, i32 13, i32 14, i32 15, i32 16, i32 17, i32 18, i32 19, i32 20, i32 21, i32 22, i32 23, i32 24, i32 25, i32 26, i32 27, i32 28, i32 29, i32 30, i32 31, i32 32, i32 33, i32 34, i32 35, i32 36, i32 37, i32 38, i32 39, i32 40, i32 41, i32 42, i32 43, i32 44, i32 45, i32 46, i32 47, i32 48, i32 49, i32 50, i32 51, i32 52, i32 53, i32 54, i32 55, i32 56, i32 57, i32 58, i32 59, i32 60, i32 61, i32 62, i32 63>
ret <128 x i8> %v3
}
; CHECK-LABEL: test_21:
; CHECK: v3 = v1
; CHECK: vcombine(v3,v2)
; Result: v1:0 = vcombine(v1,v2)
define <128 x i8> @test_21(<128 x i8> %a0, <128 x i8> %a1) #0 {
b2:
%v3 = shufflevector <128 x i8> %a0, <128 x i8> %a1, <128 x i32> <i32 128, i32 129, i32 130, i32 131, i32 132, i32 133, i32 134, i32 135, i32 136, i32 137, i32 138, i32 139, i32 140, i32 141, i32 142, i32 143, i32 144, i32 145, i32 146, i32 147, i32 148, i32 149, i32 150, i32 151, i32 152, i32 153, i32 154, i32 155, i32 156, i32 157, i32 158, i32 159, i32 160, i32 161, i32 162, i32 163, i32 164, i32 165, i32 166, i32 167, i32 168, i32 169, i32 170, i32 171, i32 172, i32 173, i32 174, i32 175, i32 176, i32 177, i32 178, i32 179, i32 180, i32 181, i32 182, i32 183, i32 184, i32 185, i32 186, i32 187, i32 188, i32 189, i32 190, i32 191, i32 64, i32 65, i32 66, i32 67, i32 68, i32 69, i32 70, i32 71, i32 72, i32 73, i32 74, i32 75, i32 76, i32 77, i32 78, i32 79, i32 80, i32 81, i32 82, i32 83, i32 84, i32 85, i32 86, i32 87, i32 88, i32 89, i32 90, i32 91, i32 92, i32 93, i32 94, i32 95, i32 96, i32 97, i32 98, i32 99, i32 100, i32 101, i32 102, i32 103, i32 104, i32 105, i32 106, i32 107, i32 108, i32 109, i32 110, i32 111, i32 112, i32 113, i32 114, i32 115, i32 116, i32 117, i32 118, i32 119, i32 120, i32 121, i32 122, i32 123, i32 124, i32 125, i32 126, i32 127>
ret <128 x i8> %v3
}
; CHECK-LABEL: test_22:
; CHECK: v3 = v2
; CHECK: vcombine(v3,v2)
; Result: v1:0 = vcombine(v2,v2)
define <128 x i8> @test_22(<128 x i8> %a0, <128 x i8> %a1) #0 {
b2:
%v3 = shufflevector <128 x i8> %a0, <128 x i8> %a1, <128 x i32> <i32 128, i32 129, i32 130, i32 131, i32 132, i32 133, i32 134, i32 135, i32 136, i32 137, i32 138, i32 139, i32 140, i32 141, i32 142, i32 143, i32 144, i32 145, i32 146, i32 147, i32 148, i32 149, i32 150, i32 151, i32 152, i32 153, i32 154, i32 155, i32 156, i32 157, i32 158, i32 159, i32 160, i32 161, i32 162, i32 163, i32 164, i32 165, i32 166, i32 167, i32 168, i32 169, i32 170, i32 171, i32 172, i32 173, i32 174, i32 175, i32 176, i32 177, i32 178, i32 179, i32 180, i32 181, i32 182, i32 183, i32 184, i32 185, i32 186, i32 187, i32 188, i32 189, i32 190, i32 191, i32 128, i32 129, i32 130, i32 131, i32 132, i32 133, i32 134, i32 135, i32 136, i32 137, i32 138, i32 139, i32 140, i32 141, i32 142, i32 143, i32 144, i32 145, i32 146, i32 147, i32 148, i32 149, i32 150, i32 151, i32 152, i32 153, i32 154, i32 155, i32 156, i32 157, i32 158, i32 159, i32 160, i32 161, i32 162, i32 163, i32 164, i32 165, i32 166, i32 167, i32 168, i32 169, i32 170, i32 171, i32 172, i32 173, i32 174, i32 175, i32 176, i32 177, i32 178, i32 179, i32 180, i32 181, i32 182, i32 183, i32 184, i32 185, i32 186, i32 187, i32 188, i32 189, i32 190, i32 191>
ret <128 x i8> %v3
}
; CHECK-LABEL: test_23:
; CHECK: vcombine(v3,v2)
; Result: v1:0 = vcombine(v3,v2)
define <128 x i8> @test_23(<128 x i8> %a0, <128 x i8> %a1) #0 {
b2:
%v3 = shufflevector <128 x i8> %a0, <128 x i8> %a1, <128 x i32> <i32 128, i32 129, i32 130, i32 131, i32 132, i32 133, i32 134, i32 135, i32 136, i32 137, i32 138, i32 139, i32 140, i32 141, i32 142, i32 143, i32 144, i32 145, i32 146, i32 147, i32 148, i32 149, i32 150, i32 151, i32 152, i32 153, i32 154, i32 155, i32 156, i32 157, i32 158, i32 159, i32 160, i32 161, i32 162, i32 163, i32 164, i32 165, i32 166, i32 167, i32 168, i32 169, i32 170, i32 171, i32 172, i32 173, i32 174, i32 175, i32 176, i32 177, i32 178, i32 179, i32 180, i32 181, i32 182, i32 183, i32 184, i32 185, i32 186, i32 187, i32 188, i32 189, i32 190, i32 191, i32 192, i32 193, i32 194, i32 195, i32 196, i32 197, i32 198, i32 199, i32 200, i32 201, i32 202, i32 203, i32 204, i32 205, i32 206, i32 207, i32 208, i32 209, i32 210, i32 211, i32 212, i32 213, i32 214, i32 215, i32 216, i32 217, i32 218, i32 219, i32 220, i32 221, i32 222, i32 223, i32 224, i32 225, i32 226, i32 227, i32 228, i32 229, i32 230, i32 231, i32 232, i32 233, i32 234, i32 235, i32 236, i32 237, i32 238, i32 239, i32 240, i32 241, i32 242, i32 243, i32 244, i32 245, i32 246, i32 247, i32 248, i32 249, i32 250, i32 251, i32 252, i32 253, i32 254, i32 255>
ret <128 x i8> %v3
}
; CHECK-LABEL: test_30:
; CHECK: vcombine(v0,v3)
; Result: v1:0 = vcombine(v0,v3)
define <128 x i8> @test_30(<128 x i8> %a0, <128 x i8> %a1) #0 {
b2:
%v3 = shufflevector <128 x i8> %a0, <128 x i8> %a1, <128 x i32> <i32 192, i32 193, i32 194, i32 195, i32 196, i32 197, i32 198, i32 199, i32 200, i32 201, i32 202, i32 203, i32 204, i32 205, i32 206, i32 207, i32 208, i32 209, i32 210, i32 211, i32 212, i32 213, i32 214, i32 215, i32 216, i32 217, i32 218, i32 219, i32 220, i32 221, i32 222, i32 223, i32 224, i32 225, i32 226, i32 227, i32 228, i32 229, i32 230, i32 231, i32 232, i32 233, i32 234, i32 235, i32 236, i32 237, i32 238, i32 239, i32 240, i32 241, i32 242, i32 243, i32 244, i32 245, i32 246, i32 247, i32 248, i32 249, i32 250, i32 251, i32 252, i32 253, i32 254, i32 255, i32 0, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7, i32 8, i32 9, i32 10, i32 11, i32 12, i32 13, i32 14, i32 15, i32 16, i32 17, i32 18, i32 19, i32 20, i32 21, i32 22, i32 23, i32 24, i32 25, i32 26, i32 27, i32 28, i32 29, i32 30, i32 31, i32 32, i32 33, i32 34, i32 35, i32 36, i32 37, i32 38, i32 39, i32 40, i32 41, i32 42, i32 43, i32 44, i32 45, i32 46, i32 47, i32 48, i32 49, i32 50, i32 51, i32 52, i32 53, i32 54, i32 55, i32 56, i32 57, i32 58, i32 59, i32 60, i32 61, i32 62, i32 63>
ret <128 x i8> %v3
}
; CHECK-LABEL: test_31:
; CHECK: v0 = v3
; Result: v1:0 = vcombine(v1,v3)
define <128 x i8> @test_31(<128 x i8> %a0, <128 x i8> %a1) #0 {
b2:
%v3 = shufflevector <128 x i8> %a0, <128 x i8> %a1, <128 x i32> <i32 192, i32 193, i32 194, i32 195, i32 196, i32 197, i32 198, i32 199, i32 200, i32 201, i32 202, i32 203, i32 204, i32 205, i32 206, i32 207, i32 208, i32 209, i32 210, i32 211, i32 212, i32 213, i32 214, i32 215, i32 216, i32 217, i32 218, i32 219, i32 220, i32 221, i32 222, i32 223, i32 224, i32 225, i32 226, i32 227, i32 228, i32 229, i32 230, i32 231, i32 232, i32 233, i32 234, i32 235, i32 236, i32 237, i32 238, i32 239, i32 240, i32 241, i32 242, i32 243, i32 244, i32 245, i32 246, i32 247, i32 248, i32 249, i32 250, i32 251, i32 252, i32 253, i32 254, i32 255, i32 64, i32 65, i32 66, i32 67, i32 68, i32 69, i32 70, i32 71, i32 72, i32 73, i32 74, i32 75, i32 76, i32 77, i32 78, i32 79, i32 80, i32 81, i32 82, i32 83, i32 84, i32 85, i32 86, i32 87, i32 88, i32 89, i32 90, i32 91, i32 92, i32 93, i32 94, i32 95, i32 96, i32 97, i32 98, i32 99, i32 100, i32 101, i32 102, i32 103, i32 104, i32 105, i32 106, i32 107, i32 108, i32 109, i32 110, i32 111, i32 112, i32 113, i32 114, i32 115, i32 116, i32 117, i32 118, i32 119, i32 120, i32 121, i32 122, i32 123, i32 124, i32 125, i32 126, i32 127>
ret <128 x i8> %v3
}
; CHECK-LABEL: test_32:
; CHECK: vcombine(v2,v3)
; Result: v1:0 = vcombine(v2,v3)
define <128 x i8> @test_32(<128 x i8> %a0, <128 x i8> %a1) #0 {
b2:
%v3 = shufflevector <128 x i8> %a0, <128 x i8> %a1, <128 x i32> <i32 192, i32 193, i32 194, i32 195, i32 196, i32 197, i32 198, i32 199, i32 200, i32 201, i32 202, i32 203, i32 204, i32 205, i32 206, i32 207, i32 208, i32 209, i32 210, i32 211, i32 212, i32 213, i32 214, i32 215, i32 216, i32 217, i32 218, i32 219, i32 220, i32 221, i32 222, i32 223, i32 224, i32 225, i32 226, i32 227, i32 228, i32 229, i32 230, i32 231, i32 232, i32 233, i32 234, i32 235, i32 236, i32 237, i32 238, i32 239, i32 240, i32 241, i32 242, i32 243, i32 244, i32 245, i32 246, i32 247, i32 248, i32 249, i32 250, i32 251, i32 252, i32 253, i32 254, i32 255, i32 128, i32 129, i32 130, i32 131, i32 132, i32 133, i32 134, i32 135, i32 136, i32 137, i32 138, i32 139, i32 140, i32 141, i32 142, i32 143, i32 144, i32 145, i32 146, i32 147, i32 148, i32 149, i32 150, i32 151, i32 152, i32 153, i32 154, i32 155, i32 156, i32 157, i32 158, i32 159, i32 160, i32 161, i32 162, i32 163, i32 164, i32 165, i32 166, i32 167, i32 168, i32 169, i32 170, i32 171, i32 172, i32 173, i32 174, i32 175, i32 176, i32 177, i32 178, i32 179, i32 180, i32 181, i32 182, i32 183, i32 184, i32 185, i32 186, i32 187, i32 188, i32 189, i32 190, i32 191>
ret <128 x i8> %v3
}
; CHECK-LABEL: test_33:
; CHECK: v2 = v3
; CHECK: vcombine(v3,v2)
; Result: v1:0 = vcombine(v3,v3)
define <128 x i8> @test_33(<128 x i8> %a0, <128 x i8> %a1) #0 {
b2:
%v3 = shufflevector <128 x i8> %a0, <128 x i8> %a1, <128 x i32> <i32 192, i32 193, i32 194, i32 195, i32 196, i32 197, i32 198, i32 199, i32 200, i32 201, i32 202, i32 203, i32 204, i32 205, i32 206, i32 207, i32 208, i32 209, i32 210, i32 211, i32 212, i32 213, i32 214, i32 215, i32 216, i32 217, i32 218, i32 219, i32 220, i32 221, i32 222, i32 223, i32 224, i32 225, i32 226, i32 227, i32 228, i32 229, i32 230, i32 231, i32 232, i32 233, i32 234, i32 235, i32 236, i32 237, i32 238, i32 239, i32 240, i32 241, i32 242, i32 243, i32 244, i32 245, i32 246, i32 247, i32 248, i32 249, i32 250, i32 251, i32 252, i32 253, i32 254, i32 255, i32 192, i32 193, i32 194, i32 195, i32 196, i32 197, i32 198, i32 199, i32 200, i32 201, i32 202, i32 203, i32 204, i32 205, i32 206, i32 207, i32 208, i32 209, i32 210, i32 211, i32 212, i32 213, i32 214, i32 215, i32 216, i32 217, i32 218, i32 219, i32 220, i32 221, i32 222, i32 223, i32 224, i32 225, i32 226, i32 227, i32 228, i32 229, i32 230, i32 231, i32 232, i32 233, i32 234, i32 235, i32 236, i32 237, i32 238, i32 239, i32 240, i32 241, i32 242, i32 243, i32 244, i32 245, i32 246, i32 247, i32 248, i32 249, i32 250, i32 251, i32 252, i32 253, i32 254, i32 255>
ret <128 x i8> %v3
}
attributes #0 = { nounwind readnone "target-cpu"="hexagonv60" "target-features"="+hvx,+hvx-length64b" }

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,517 @@
; RUN: llc -march=hexagon < %s | FileCheck %s
; Check the individual vshuff shuffles for all 64 controls.
; This is an identity shuffle: there should not be any shuffling code emitted.
; CHECK-LABEL: vshuff_00:
; CHECK-NOT: vshuff(
define <128 x i8> @vshuff_00(<128 x i8> %v0, <128 x i8> %v1) #0 {
%p = shufflevector <128 x i8> %v0, <128 x i8> undef, <128 x i32> < i32 0, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7, i32 8, i32 9, i32 10, i32 11, i32 12, i32 13, i32 14, i32 15, i32 16, i32 17, i32 18, i32 19, i32 20, i32 21, i32 22, i32 23, i32 24, i32 25, i32 26, i32 27, i32 28, i32 29, i32 30, i32 31, i32 32, i32 33, i32 34, i32 35, i32 36, i32 37, i32 38, i32 39, i32 40, i32 41, i32 42, i32 43, i32 44, i32 45, i32 46, i32 47, i32 48, i32 49, i32 50, i32 51, i32 52, i32 53, i32 54, i32 55, i32 56, i32 57, i32 58, i32 59, i32 60, i32 61, i32 62, i32 63, i32 64, i32 65, i32 66, i32 67, i32 68, i32 69, i32 70, i32 71, i32 72, i32 73, i32 74, i32 75, i32 76, i32 77, i32 78, i32 79, i32 80, i32 81, i32 82, i32 83, i32 84, i32 85, i32 86, i32 87, i32 88, i32 89, i32 90, i32 91, i32 92, i32 93, i32 94, i32 95, i32 96, i32 97, i32 98, i32 99, i32 100, i32 101, i32 102, i32 103, i32 104, i32 105, i32 106, i32 107, i32 108, i32 109, i32 110, i32 111, i32 112, i32 113, i32 114, i32 115, i32 116, i32 117, i32 118, i32 119, i32 120, i32 121, i32 122, i32 123, i32 124, i32 125, i32 126, i32 127>
ret <128 x i8> %p
}
; CHECK-LABEL: vshuff_01:
; CHECK: [[REG01:r[0-9]+]] = #1
; CHECK: vshuff(v1,v0,[[REG01]])
define <128 x i8> @vshuff_01(<128 x i8> %v0, <128 x i8> %v1) #0 {
%p = shufflevector <128 x i8> %v0, <128 x i8> undef, <128 x i32> < i32 0, i32 64, i32 2, i32 66, i32 4, i32 68, i32 6, i32 70, i32 8, i32 72, i32 10, i32 74, i32 12, i32 76, i32 14, i32 78, i32 16, i32 80, i32 18, i32 82, i32 20, i32 84, i32 22, i32 86, i32 24, i32 88, i32 26, i32 90, i32 28, i32 92, i32 30, i32 94, i32 32, i32 96, i32 34, i32 98, i32 36, i32 100, i32 38, i32 102, i32 40, i32 104, i32 42, i32 106, i32 44, i32 108, i32 46, i32 110, i32 48, i32 112, i32 50, i32 114, i32 52, i32 116, i32 54, i32 118, i32 56, i32 120, i32 58, i32 122, i32 60, i32 124, i32 62, i32 126, i32 1, i32 65, i32 3, i32 67, i32 5, i32 69, i32 7, i32 71, i32 9, i32 73, i32 11, i32 75, i32 13, i32 77, i32 15, i32 79, i32 17, i32 81, i32 19, i32 83, i32 21, i32 85, i32 23, i32 87, i32 25, i32 89, i32 27, i32 91, i32 29, i32 93, i32 31, i32 95, i32 33, i32 97, i32 35, i32 99, i32 37, i32 101, i32 39, i32 103, i32 41, i32 105, i32 43, i32 107, i32 45, i32 109, i32 47, i32 111, i32 49, i32 113, i32 51, i32 115, i32 53, i32 117, i32 55, i32 119, i32 57, i32 121, i32 59, i32 123, i32 61, i32 125, i32 63, i32 127>
ret <128 x i8> %p
}
; CHECK-LABEL: vshuff_02:
; CHECK: [[REG02:r[0-9]+]] = #2
; CHECK: vshuff(v1,v0,[[REG02]])
define <128 x i8> @vshuff_02(<128 x i8> %v0, <128 x i8> %v1) #0 {
%p = shufflevector <128 x i8> %v0, <128 x i8> undef, <128 x i32> < i32 0, i32 1, i32 64, i32 65, i32 4, i32 5, i32 68, i32 69, i32 8, i32 9, i32 72, i32 73, i32 12, i32 13, i32 76, i32 77, i32 16, i32 17, i32 80, i32 81, i32 20, i32 21, i32 84, i32 85, i32 24, i32 25, i32 88, i32 89, i32 28, i32 29, i32 92, i32 93, i32 32, i32 33, i32 96, i32 97, i32 36, i32 37, i32 100, i32 101, i32 40, i32 41, i32 104, i32 105, i32 44, i32 45, i32 108, i32 109, i32 48, i32 49, i32 112, i32 113, i32 52, i32 53, i32 116, i32 117, i32 56, i32 57, i32 120, i32 121, i32 60, i32 61, i32 124, i32 125, i32 2, i32 3, i32 66, i32 67, i32 6, i32 7, i32 70, i32 71, i32 10, i32 11, i32 74, i32 75, i32 14, i32 15, i32 78, i32 79, i32 18, i32 19, i32 82, i32 83, i32 22, i32 23, i32 86, i32 87, i32 26, i32 27, i32 90, i32 91, i32 30, i32 31, i32 94, i32 95, i32 34, i32 35, i32 98, i32 99, i32 38, i32 39, i32 102, i32 103, i32 42, i32 43, i32 106, i32 107, i32 46, i32 47, i32 110, i32 111, i32 50, i32 51, i32 114, i32 115, i32 54, i32 55, i32 118, i32 119, i32 58, i32 59, i32 122, i32 123, i32 62, i32 63, i32 126, i32 127>
ret <128 x i8> %p
}
; CHECK-LABEL: vshuff_03:
; CHECK: [[REG03:r[0-9]+]] = #3
; CHECK: vshuff(v1,v0,[[REG03]])
define <128 x i8> @vshuff_03(<128 x i8> %v0, <128 x i8> %v1) #0 {
%p = shufflevector <128 x i8> %v0, <128 x i8> undef, <128 x i32> < i32 0, i32 64, i32 1, i32 65, i32 4, i32 68, i32 5, i32 69, i32 8, i32 72, i32 9, i32 73, i32 12, i32 76, i32 13, i32 77, i32 16, i32 80, i32 17, i32 81, i32 20, i32 84, i32 21, i32 85, i32 24, i32 88, i32 25, i32 89, i32 28, i32 92, i32 29, i32 93, i32 32, i32 96, i32 33, i32 97, i32 36, i32 100, i32 37, i32 101, i32 40, i32 104, i32 41, i32 105, i32 44, i32 108, i32 45, i32 109, i32 48, i32 112, i32 49, i32 113, i32 52, i32 116, i32 53, i32 117, i32 56, i32 120, i32 57, i32 121, i32 60, i32 124, i32 61, i32 125, i32 2, i32 66, i32 3, i32 67, i32 6, i32 70, i32 7, i32 71, i32 10, i32 74, i32 11, i32 75, i32 14, i32 78, i32 15, i32 79, i32 18, i32 82, i32 19, i32 83, i32 22, i32 86, i32 23, i32 87, i32 26, i32 90, i32 27, i32 91, i32 30, i32 94, i32 31, i32 95, i32 34, i32 98, i32 35, i32 99, i32 38, i32 102, i32 39, i32 103, i32 42, i32 106, i32 43, i32 107, i32 46, i32 110, i32 47, i32 111, i32 50, i32 114, i32 51, i32 115, i32 54, i32 118, i32 55, i32 119, i32 58, i32 122, i32 59, i32 123, i32 62, i32 126, i32 63, i32 127>
ret <128 x i8> %p
}
; CHECK-LABEL: vshuff_04:
; CHECK: [[REG04:r[0-9]+]] = #4
; CHECK: vshuff(v1,v0,[[REG04]])
define <128 x i8> @vshuff_04(<128 x i8> %v0, <128 x i8> %v1) #0 {
%p = shufflevector <128 x i8> %v0, <128 x i8> undef, <128 x i32> < i32 0, i32 1, i32 2, i32 3, i32 64, i32 65, i32 66, i32 67, i32 8, i32 9, i32 10, i32 11, i32 72, i32 73, i32 74, i32 75, i32 16, i32 17, i32 18, i32 19, i32 80, i32 81, i32 82, i32 83, i32 24, i32 25, i32 26, i32 27, i32 88, i32 89, i32 90, i32 91, i32 32, i32 33, i32 34, i32 35, i32 96, i32 97, i32 98, i32 99, i32 40, i32 41, i32 42, i32 43, i32 104, i32 105, i32 106, i32 107, i32 48, i32 49, i32 50, i32 51, i32 112, i32 113, i32 114, i32 115, i32 56, i32 57, i32 58, i32 59, i32 120, i32 121, i32 122, i32 123, i32 4, i32 5, i32 6, i32 7, i32 68, i32 69, i32 70, i32 71, i32 12, i32 13, i32 14, i32 15, i32 76, i32 77, i32 78, i32 79, i32 20, i32 21, i32 22, i32 23, i32 84, i32 85, i32 86, i32 87, i32 28, i32 29, i32 30, i32 31, i32 92, i32 93, i32 94, i32 95, i32 36, i32 37, i32 38, i32 39, i32 100, i32 101, i32 102, i32 103, i32 44, i32 45, i32 46, i32 47, i32 108, i32 109, i32 110, i32 111, i32 52, i32 53, i32 54, i32 55, i32 116, i32 117, i32 118, i32 119, i32 60, i32 61, i32 62, i32 63, i32 124, i32 125, i32 126, i32 127>
ret <128 x i8> %p
}
; CHECK-LABEL: vshuff_05:
; CHECK: [[REG05:r[0-9]+]] = #5
; CHECK: vshuff(v1,v0,[[REG05]])
define <128 x i8> @vshuff_05(<128 x i8> %v0, <128 x i8> %v1) #0 {
%p = shufflevector <128 x i8> %v0, <128 x i8> undef, <128 x i32> < i32 0, i32 64, i32 2, i32 66, i32 1, i32 65, i32 3, i32 67, i32 8, i32 72, i32 10, i32 74, i32 9, i32 73, i32 11, i32 75, i32 16, i32 80, i32 18, i32 82, i32 17, i32 81, i32 19, i32 83, i32 24, i32 88, i32 26, i32 90, i32 25, i32 89, i32 27, i32 91, i32 32, i32 96, i32 34, i32 98, i32 33, i32 97, i32 35, i32 99, i32 40, i32 104, i32 42, i32 106, i32 41, i32 105, i32 43, i32 107, i32 48, i32 112, i32 50, i32 114, i32 49, i32 113, i32 51, i32 115, i32 56, i32 120, i32 58, i32 122, i32 57, i32 121, i32 59, i32 123, i32 4, i32 68, i32 6, i32 70, i32 5, i32 69, i32 7, i32 71, i32 12, i32 76, i32 14, i32 78, i32 13, i32 77, i32 15, i32 79, i32 20, i32 84, i32 22, i32 86, i32 21, i32 85, i32 23, i32 87, i32 28, i32 92, i32 30, i32 94, i32 29, i32 93, i32 31, i32 95, i32 36, i32 100, i32 38, i32 102, i32 37, i32 101, i32 39, i32 103, i32 44, i32 108, i32 46, i32 110, i32 45, i32 109, i32 47, i32 111, i32 52, i32 116, i32 54, i32 118, i32 53, i32 117, i32 55, i32 119, i32 60, i32 124, i32 62, i32 126, i32 61, i32 125, i32 63, i32 127>
ret <128 x i8> %p
}
; CHECK-LABEL: vshuff_06:
; CHECK: [[REG06:r[0-9]+]] = #6
; CHECK: vshuff(v1,v0,[[REG06]])
define <128 x i8> @vshuff_06(<128 x i8> %v0, <128 x i8> %v1) #0 {
%p = shufflevector <128 x i8> %v0, <128 x i8> undef, <128 x i32> < i32 0, i32 1, i32 64, i32 65, i32 2, i32 3, i32 66, i32 67, i32 8, i32 9, i32 72, i32 73, i32 10, i32 11, i32 74, i32 75, i32 16, i32 17, i32 80, i32 81, i32 18, i32 19, i32 82, i32 83, i32 24, i32 25, i32 88, i32 89, i32 26, i32 27, i32 90, i32 91, i32 32, i32 33, i32 96, i32 97, i32 34, i32 35, i32 98, i32 99, i32 40, i32 41, i32 104, i32 105, i32 42, i32 43, i32 106, i32 107, i32 48, i32 49, i32 112, i32 113, i32 50, i32 51, i32 114, i32 115, i32 56, i32 57, i32 120, i32 121, i32 58, i32 59, i32 122, i32 123, i32 4, i32 5, i32 68, i32 69, i32 6, i32 7, i32 70, i32 71, i32 12, i32 13, i32 76, i32 77, i32 14, i32 15, i32 78, i32 79, i32 20, i32 21, i32 84, i32 85, i32 22, i32 23, i32 86, i32 87, i32 28, i32 29, i32 92, i32 93, i32 30, i32 31, i32 94, i32 95, i32 36, i32 37, i32 100, i32 101, i32 38, i32 39, i32 102, i32 103, i32 44, i32 45, i32 108, i32 109, i32 46, i32 47, i32 110, i32 111, i32 52, i32 53, i32 116, i32 117, i32 54, i32 55, i32 118, i32 119, i32 60, i32 61, i32 124, i32 125, i32 62, i32 63, i32 126, i32 127>
ret <128 x i8> %p
}
; CHECK-LABEL: vshuff_07:
; CHECK: [[REG07:r[0-9]+]] = #7
; CHECK: vshuff(v1,v0,[[REG07]])
define <128 x i8> @vshuff_07(<128 x i8> %v0, <128 x i8> %v1) #0 {
%p = shufflevector <128 x i8> %v0, <128 x i8> undef, <128 x i32> < i32 0, i32 64, i32 1, i32 65, i32 2, i32 66, i32 3, i32 67, i32 8, i32 72, i32 9, i32 73, i32 10, i32 74, i32 11, i32 75, i32 16, i32 80, i32 17, i32 81, i32 18, i32 82, i32 19, i32 83, i32 24, i32 88, i32 25, i32 89, i32 26, i32 90, i32 27, i32 91, i32 32, i32 96, i32 33, i32 97, i32 34, i32 98, i32 35, i32 99, i32 40, i32 104, i32 41, i32 105, i32 42, i32 106, i32 43, i32 107, i32 48, i32 112, i32 49, i32 113, i32 50, i32 114, i32 51, i32 115, i32 56, i32 120, i32 57, i32 121, i32 58, i32 122, i32 59, i32 123, i32 4, i32 68, i32 5, i32 69, i32 6, i32 70, i32 7, i32 71, i32 12, i32 76, i32 13, i32 77, i32 14, i32 78, i32 15, i32 79, i32 20, i32 84, i32 21, i32 85, i32 22, i32 86, i32 23, i32 87, i32 28, i32 92, i32 29, i32 93, i32 30, i32 94, i32 31, i32 95, i32 36, i32 100, i32 37, i32 101, i32 38, i32 102, i32 39, i32 103, i32 44, i32 108, i32 45, i32 109, i32 46, i32 110, i32 47, i32 111, i32 52, i32 116, i32 53, i32 117, i32 54, i32 118, i32 55, i32 119, i32 60, i32 124, i32 61, i32 125, i32 62, i32 126, i32 63, i32 127>
ret <128 x i8> %p
}
; CHECK-LABEL: vshuff_08:
; CHECK: [[REG08:r[0-9]+]] = #8
; CHECK: vshuff(v1,v0,[[REG08]])
define <128 x i8> @vshuff_08(<128 x i8> %v0, <128 x i8> %v1) #0 {
%p = shufflevector <128 x i8> %v0, <128 x i8> undef, <128 x i32> < i32 0, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7, i32 64, i32 65, i32 66, i32 67, i32 68, i32 69, i32 70, i32 71, i32 16, i32 17, i32 18, i32 19, i32 20, i32 21, i32 22, i32 23, i32 80, i32 81, i32 82, i32 83, i32 84, i32 85, i32 86, i32 87, i32 32, i32 33, i32 34, i32 35, i32 36, i32 37, i32 38, i32 39, i32 96, i32 97, i32 98, i32 99, i32 100, i32 101, i32 102, i32 103, i32 48, i32 49, i32 50, i32 51, i32 52, i32 53, i32 54, i32 55, i32 112, i32 113, i32 114, i32 115, i32 116, i32 117, i32 118, i32 119, i32 8, i32 9, i32 10, i32 11, i32 12, i32 13, i32 14, i32 15, i32 72, i32 73, i32 74, i32 75, i32 76, i32 77, i32 78, i32 79, i32 24, i32 25, i32 26, i32 27, i32 28, i32 29, i32 30, i32 31, i32 88, i32 89, i32 90, i32 91, i32 92, i32 93, i32 94, i32 95, i32 40, i32 41, i32 42, i32 43, i32 44, i32 45, i32 46, i32 47, i32 104, i32 105, i32 106, i32 107, i32 108, i32 109, i32 110, i32 111, i32 56, i32 57, i32 58, i32 59, i32 60, i32 61, i32 62, i32 63, i32 120, i32 121, i32 122, i32 123, i32 124, i32 125, i32 126, i32 127>
ret <128 x i8> %p
}
; CHECK-LABEL: vshuff_09:
; CHECK: [[REG09:r[0-9]+]] = #9
; CHECK: vshuff(v1,v0,[[REG09]])
define <128 x i8> @vshuff_09(<128 x i8> %v0, <128 x i8> %v1) #0 {
%p = shufflevector <128 x i8> %v0, <128 x i8> undef, <128 x i32> < i32 0, i32 64, i32 2, i32 66, i32 4, i32 68, i32 6, i32 70, i32 1, i32 65, i32 3, i32 67, i32 5, i32 69, i32 7, i32 71, i32 16, i32 80, i32 18, i32 82, i32 20, i32 84, i32 22, i32 86, i32 17, i32 81, i32 19, i32 83, i32 21, i32 85, i32 23, i32 87, i32 32, i32 96, i32 34, i32 98, i32 36, i32 100, i32 38, i32 102, i32 33, i32 97, i32 35, i32 99, i32 37, i32 101, i32 39, i32 103, i32 48, i32 112, i32 50, i32 114, i32 52, i32 116, i32 54, i32 118, i32 49, i32 113, i32 51, i32 115, i32 53, i32 117, i32 55, i32 119, i32 8, i32 72, i32 10, i32 74, i32 12, i32 76, i32 14, i32 78, i32 9, i32 73, i32 11, i32 75, i32 13, i32 77, i32 15, i32 79, i32 24, i32 88, i32 26, i32 90, i32 28, i32 92, i32 30, i32 94, i32 25, i32 89, i32 27, i32 91, i32 29, i32 93, i32 31, i32 95, i32 40, i32 104, i32 42, i32 106, i32 44, i32 108, i32 46, i32 110, i32 41, i32 105, i32 43, i32 107, i32 45, i32 109, i32 47, i32 111, i32 56, i32 120, i32 58, i32 122, i32 60, i32 124, i32 62, i32 126, i32 57, i32 121, i32 59, i32 123, i32 61, i32 125, i32 63, i32 127>
ret <128 x i8> %p
}
; CHECK-LABEL: vshuff_0a:
; CHECK: [[REG0a:r[0-9]+]] = #10
; CHECK: vshuff(v1,v0,[[REG0a]])
define <128 x i8> @vshuff_0a(<128 x i8> %v0, <128 x i8> %v1) #0 {
%p = shufflevector <128 x i8> %v0, <128 x i8> undef, <128 x i32> < i32 0, i32 1, i32 64, i32 65, i32 4, i32 5, i32 68, i32 69, i32 2, i32 3, i32 66, i32 67, i32 6, i32 7, i32 70, i32 71, i32 16, i32 17, i32 80, i32 81, i32 20, i32 21, i32 84, i32 85, i32 18, i32 19, i32 82, i32 83, i32 22, i32 23, i32 86, i32 87, i32 32, i32 33, i32 96, i32 97, i32 36, i32 37, i32 100, i32 101, i32 34, i32 35, i32 98, i32 99, i32 38, i32 39, i32 102, i32 103, i32 48, i32 49, i32 112, i32 113, i32 52, i32 53, i32 116, i32 117, i32 50, i32 51, i32 114, i32 115, i32 54, i32 55, i32 118, i32 119, i32 8, i32 9, i32 72, i32 73, i32 12, i32 13, i32 76, i32 77, i32 10, i32 11, i32 74, i32 75, i32 14, i32 15, i32 78, i32 79, i32 24, i32 25, i32 88, i32 89, i32 28, i32 29, i32 92, i32 93, i32 26, i32 27, i32 90, i32 91, i32 30, i32 31, i32 94, i32 95, i32 40, i32 41, i32 104, i32 105, i32 44, i32 45, i32 108, i32 109, i32 42, i32 43, i32 106, i32 107, i32 46, i32 47, i32 110, i32 111, i32 56, i32 57, i32 120, i32 121, i32 60, i32 61, i32 124, i32 125, i32 58, i32 59, i32 122, i32 123, i32 62, i32 63, i32 126, i32 127>
ret <128 x i8> %p
}
; CHECK-LABEL: vshuff_0b:
; CHECK: [[REG0b:r[0-9]+]] = #11
; CHECK: vshuff(v1,v0,[[REG0b]])
define <128 x i8> @vshuff_0b(<128 x i8> %v0, <128 x i8> %v1) #0 {
%p = shufflevector <128 x i8> %v0, <128 x i8> undef, <128 x i32> < i32 0, i32 64, i32 1, i32 65, i32 4, i32 68, i32 5, i32 69, i32 2, i32 66, i32 3, i32 67, i32 6, i32 70, i32 7, i32 71, i32 16, i32 80, i32 17, i32 81, i32 20, i32 84, i32 21, i32 85, i32 18, i32 82, i32 19, i32 83, i32 22, i32 86, i32 23, i32 87, i32 32, i32 96, i32 33, i32 97, i32 36, i32 100, i32 37, i32 101, i32 34, i32 98, i32 35, i32 99, i32 38, i32 102, i32 39, i32 103, i32 48, i32 112, i32 49, i32 113, i32 52, i32 116, i32 53, i32 117, i32 50, i32 114, i32 51, i32 115, i32 54, i32 118, i32 55, i32 119, i32 8, i32 72, i32 9, i32 73, i32 12, i32 76, i32 13, i32 77, i32 10, i32 74, i32 11, i32 75, i32 14, i32 78, i32 15, i32 79, i32 24, i32 88, i32 25, i32 89, i32 28, i32 92, i32 29, i32 93, i32 26, i32 90, i32 27, i32 91, i32 30, i32 94, i32 31, i32 95, i32 40, i32 104, i32 41, i32 105, i32 44, i32 108, i32 45, i32 109, i32 42, i32 106, i32 43, i32 107, i32 46, i32 110, i32 47, i32 111, i32 56, i32 120, i32 57, i32 121, i32 60, i32 124, i32 61, i32 125, i32 58, i32 122, i32 59, i32 123, i32 62, i32 126, i32 63, i32 127>
ret <128 x i8> %p
}
; CHECK-LABEL: vshuff_0c:
; CHECK: [[REG0c:r[0-9]+]] = #12
; CHECK: vshuff(v1,v0,[[REG0c]])
define <128 x i8> @vshuff_0c(<128 x i8> %v0, <128 x i8> %v1) #0 {
%p = shufflevector <128 x i8> %v0, <128 x i8> undef, <128 x i32> < i32 0, i32 1, i32 2, i32 3, i32 64, i32 65, i32 66, i32 67, i32 4, i32 5, i32 6, i32 7, i32 68, i32 69, i32 70, i32 71, i32 16, i32 17, i32 18, i32 19, i32 80, i32 81, i32 82, i32 83, i32 20, i32 21, i32 22, i32 23, i32 84, i32 85, i32 86, i32 87, i32 32, i32 33, i32 34, i32 35, i32 96, i32 97, i32 98, i32 99, i32 36, i32 37, i32 38, i32 39, i32 100, i32 101, i32 102, i32 103, i32 48, i32 49, i32 50, i32 51, i32 112, i32 113, i32 114, i32 115, i32 52, i32 53, i32 54, i32 55, i32 116, i32 117, i32 118, i32 119, i32 8, i32 9, i32 10, i32 11, i32 72, i32 73, i32 74, i32 75, i32 12, i32 13, i32 14, i32 15, i32 76, i32 77, i32 78, i32 79, i32 24, i32 25, i32 26, i32 27, i32 88, i32 89, i32 90, i32 91, i32 28, i32 29, i32 30, i32 31, i32 92, i32 93, i32 94, i32 95, i32 40, i32 41, i32 42, i32 43, i32 104, i32 105, i32 106, i32 107, i32 44, i32 45, i32 46, i32 47, i32 108, i32 109, i32 110, i32 111, i32 56, i32 57, i32 58, i32 59, i32 120, i32 121, i32 122, i32 123, i32 60, i32 61, i32 62, i32 63, i32 124, i32 125, i32 126, i32 127>
ret <128 x i8> %p
}
; CHECK-LABEL: vshuff_0d:
; CHECK: [[REG0d:r[0-9]+]] = #13
; CHECK: vshuff(v1,v0,[[REG0d]])
define <128 x i8> @vshuff_0d(<128 x i8> %v0, <128 x i8> %v1) #0 {
%p = shufflevector <128 x i8> %v0, <128 x i8> undef, <128 x i32> < i32 0, i32 64, i32 2, i32 66, i32 1, i32 65, i32 3, i32 67, i32 4, i32 68, i32 6, i32 70, i32 5, i32 69, i32 7, i32 71, i32 16, i32 80, i32 18, i32 82, i32 17, i32 81, i32 19, i32 83, i32 20, i32 84, i32 22, i32 86, i32 21, i32 85, i32 23, i32 87, i32 32, i32 96, i32 34, i32 98, i32 33, i32 97, i32 35, i32 99, i32 36, i32 100, i32 38, i32 102, i32 37, i32 101, i32 39, i32 103, i32 48, i32 112, i32 50, i32 114, i32 49, i32 113, i32 51, i32 115, i32 52, i32 116, i32 54, i32 118, i32 53, i32 117, i32 55, i32 119, i32 8, i32 72, i32 10, i32 74, i32 9, i32 73, i32 11, i32 75, i32 12, i32 76, i32 14, i32 78, i32 13, i32 77, i32 15, i32 79, i32 24, i32 88, i32 26, i32 90, i32 25, i32 89, i32 27, i32 91, i32 28, i32 92, i32 30, i32 94, i32 29, i32 93, i32 31, i32 95, i32 40, i32 104, i32 42, i32 106, i32 41, i32 105, i32 43, i32 107, i32 44, i32 108, i32 46, i32 110, i32 45, i32 109, i32 47, i32 111, i32 56, i32 120, i32 58, i32 122, i32 57, i32 121, i32 59, i32 123, i32 60, i32 124, i32 62, i32 126, i32 61, i32 125, i32 63, i32 127>
ret <128 x i8> %p
}
; CHECK-LABEL: vshuff_0e:
; CHECK: [[REG0e:r[0-9]+]] = #14
; CHECK: vshuff(v1,v0,[[REG0e]])
define <128 x i8> @vshuff_0e(<128 x i8> %v0, <128 x i8> %v1) #0 {
%p = shufflevector <128 x i8> %v0, <128 x i8> undef, <128 x i32> < i32 0, i32 1, i32 64, i32 65, i32 2, i32 3, i32 66, i32 67, i32 4, i32 5, i32 68, i32 69, i32 6, i32 7, i32 70, i32 71, i32 16, i32 17, i32 80, i32 81, i32 18, i32 19, i32 82, i32 83, i32 20, i32 21, i32 84, i32 85, i32 22, i32 23, i32 86, i32 87, i32 32, i32 33, i32 96, i32 97, i32 34, i32 35, i32 98, i32 99, i32 36, i32 37, i32 100, i32 101, i32 38, i32 39, i32 102, i32 103, i32 48, i32 49, i32 112, i32 113, i32 50, i32 51, i32 114, i32 115, i32 52, i32 53, i32 116, i32 117, i32 54, i32 55, i32 118, i32 119, i32 8, i32 9, i32 72, i32 73, i32 10, i32 11, i32 74, i32 75, i32 12, i32 13, i32 76, i32 77, i32 14, i32 15, i32 78, i32 79, i32 24, i32 25, i32 88, i32 89, i32 26, i32 27, i32 90, i32 91, i32 28, i32 29, i32 92, i32 93, i32 30, i32 31, i32 94, i32 95, i32 40, i32 41, i32 104, i32 105, i32 42, i32 43, i32 106, i32 107, i32 44, i32 45, i32 108, i32 109, i32 46, i32 47, i32 110, i32 111, i32 56, i32 57, i32 120, i32 121, i32 58, i32 59, i32 122, i32 123, i32 60, i32 61, i32 124, i32 125, i32 62, i32 63, i32 126, i32 127>
ret <128 x i8> %p
}
; CHECK-LABEL: vshuff_0f:
; CHECK: [[REG0f:r[0-9]+]] = #15
; CHECK: vshuff(v1,v0,[[REG0f]])
define <128 x i8> @vshuff_0f(<128 x i8> %v0, <128 x i8> %v1) #0 {
%p = shufflevector <128 x i8> %v0, <128 x i8> undef, <128 x i32> < i32 0, i32 64, i32 1, i32 65, i32 2, i32 66, i32 3, i32 67, i32 4, i32 68, i32 5, i32 69, i32 6, i32 70, i32 7, i32 71, i32 16, i32 80, i32 17, i32 81, i32 18, i32 82, i32 19, i32 83, i32 20, i32 84, i32 21, i32 85, i32 22, i32 86, i32 23, i32 87, i32 32, i32 96, i32 33, i32 97, i32 34, i32 98, i32 35, i32 99, i32 36, i32 100, i32 37, i32 101, i32 38, i32 102, i32 39, i32 103, i32 48, i32 112, i32 49, i32 113, i32 50, i32 114, i32 51, i32 115, i32 52, i32 116, i32 53, i32 117, i32 54, i32 118, i32 55, i32 119, i32 8, i32 72, i32 9, i32 73, i32 10, i32 74, i32 11, i32 75, i32 12, i32 76, i32 13, i32 77, i32 14, i32 78, i32 15, i32 79, i32 24, i32 88, i32 25, i32 89, i32 26, i32 90, i32 27, i32 91, i32 28, i32 92, i32 29, i32 93, i32 30, i32 94, i32 31, i32 95, i32 40, i32 104, i32 41, i32 105, i32 42, i32 106, i32 43, i32 107, i32 44, i32 108, i32 45, i32 109, i32 46, i32 110, i32 47, i32 111, i32 56, i32 120, i32 57, i32 121, i32 58, i32 122, i32 59, i32 123, i32 60, i32 124, i32 61, i32 125, i32 62, i32 126, i32 63, i32 127>
ret <128 x i8> %p
}
; CHECK-LABEL: vshuff_10:
; CHECK: [[REG10:r[0-9]+]] = #16
; CHECK: vshuff(v1,v0,[[REG10]])
define <128 x i8> @vshuff_10(<128 x i8> %v0, <128 x i8> %v1) #0 {
%p = shufflevector <128 x i8> %v0, <128 x i8> undef, <128 x i32> < i32 0, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7, i32 8, i32 9, i32 10, i32 11, i32 12, i32 13, i32 14, i32 15, i32 64, i32 65, i32 66, i32 67, i32 68, i32 69, i32 70, i32 71, i32 72, i32 73, i32 74, i32 75, i32 76, i32 77, i32 78, i32 79, i32 32, i32 33, i32 34, i32 35, i32 36, i32 37, i32 38, i32 39, i32 40, i32 41, i32 42, i32 43, i32 44, i32 45, i32 46, i32 47, i32 96, i32 97, i32 98, i32 99, i32 100, i32 101, i32 102, i32 103, i32 104, i32 105, i32 106, i32 107, i32 108, i32 109, i32 110, i32 111, i32 16, i32 17, i32 18, i32 19, i32 20, i32 21, i32 22, i32 23, i32 24, i32 25, i32 26, i32 27, i32 28, i32 29, i32 30, i32 31, i32 80, i32 81, i32 82, i32 83, i32 84, i32 85, i32 86, i32 87, i32 88, i32 89, i32 90, i32 91, i32 92, i32 93, i32 94, i32 95, i32 48, i32 49, i32 50, i32 51, i32 52, i32 53, i32 54, i32 55, i32 56, i32 57, i32 58, i32 59, i32 60, i32 61, i32 62, i32 63, i32 112, i32 113, i32 114, i32 115, i32 116, i32 117, i32 118, i32 119, i32 120, i32 121, i32 122, i32 123, i32 124, i32 125, i32 126, i32 127>
ret <128 x i8> %p
}
; CHECK-LABEL: vshuff_11:
; CHECK: [[REG11:r[0-9]+]] = #17
; CHECK: vshuff(v1,v0,[[REG11]])
define <128 x i8> @vshuff_11(<128 x i8> %v0, <128 x i8> %v1) #0 {
%p = shufflevector <128 x i8> %v0, <128 x i8> undef, <128 x i32> < i32 0, i32 64, i32 2, i32 66, i32 4, i32 68, i32 6, i32 70, i32 8, i32 72, i32 10, i32 74, i32 12, i32 76, i32 14, i32 78, i32 1, i32 65, i32 3, i32 67, i32 5, i32 69, i32 7, i32 71, i32 9, i32 73, i32 11, i32 75, i32 13, i32 77, i32 15, i32 79, i32 32, i32 96, i32 34, i32 98, i32 36, i32 100, i32 38, i32 102, i32 40, i32 104, i32 42, i32 106, i32 44, i32 108, i32 46, i32 110, i32 33, i32 97, i32 35, i32 99, i32 37, i32 101, i32 39, i32 103, i32 41, i32 105, i32 43, i32 107, i32 45, i32 109, i32 47, i32 111, i32 16, i32 80, i32 18, i32 82, i32 20, i32 84, i32 22, i32 86, i32 24, i32 88, i32 26, i32 90, i32 28, i32 92, i32 30, i32 94, i32 17, i32 81, i32 19, i32 83, i32 21, i32 85, i32 23, i32 87, i32 25, i32 89, i32 27, i32 91, i32 29, i32 93, i32 31, i32 95, i32 48, i32 112, i32 50, i32 114, i32 52, i32 116, i32 54, i32 118, i32 56, i32 120, i32 58, i32 122, i32 60, i32 124, i32 62, i32 126, i32 49, i32 113, i32 51, i32 115, i32 53, i32 117, i32 55, i32 119, i32 57, i32 121, i32 59, i32 123, i32 61, i32 125, i32 63, i32 127>
ret <128 x i8> %p
}
; CHECK-LABEL: vshuff_12:
; CHECK: [[REG12:r[0-9]+]] = #18
; CHECK: vshuff(v1,v0,[[REG12]])
define <128 x i8> @vshuff_12(<128 x i8> %v0, <128 x i8> %v1) #0 {
%p = shufflevector <128 x i8> %v0, <128 x i8> undef, <128 x i32> < i32 0, i32 1, i32 64, i32 65, i32 4, i32 5, i32 68, i32 69, i32 8, i32 9, i32 72, i32 73, i32 12, i32 13, i32 76, i32 77, i32 2, i32 3, i32 66, i32 67, i32 6, i32 7, i32 70, i32 71, i32 10, i32 11, i32 74, i32 75, i32 14, i32 15, i32 78, i32 79, i32 32, i32 33, i32 96, i32 97, i32 36, i32 37, i32 100, i32 101, i32 40, i32 41, i32 104, i32 105, i32 44, i32 45, i32 108, i32 109, i32 34, i32 35, i32 98, i32 99, i32 38, i32 39, i32 102, i32 103, i32 42, i32 43, i32 106, i32 107, i32 46, i32 47, i32 110, i32 111, i32 16, i32 17, i32 80, i32 81, i32 20, i32 21, i32 84, i32 85, i32 24, i32 25, i32 88, i32 89, i32 28, i32 29, i32 92, i32 93, i32 18, i32 19, i32 82, i32 83, i32 22, i32 23, i32 86, i32 87, i32 26, i32 27, i32 90, i32 91, i32 30, i32 31, i32 94, i32 95, i32 48, i32 49, i32 112, i32 113, i32 52, i32 53, i32 116, i32 117, i32 56, i32 57, i32 120, i32 121, i32 60, i32 61, i32 124, i32 125, i32 50, i32 51, i32 114, i32 115, i32 54, i32 55, i32 118, i32 119, i32 58, i32 59, i32 122, i32 123, i32 62, i32 63, i32 126, i32 127>
ret <128 x i8> %p
}
; CHECK-LABEL: vshuff_13:
; CHECK: [[REG13:r[0-9]+]] = #19
; CHECK: vshuff(v1,v0,[[REG13]])
define <128 x i8> @vshuff_13(<128 x i8> %v0, <128 x i8> %v1) #0 {
%p = shufflevector <128 x i8> %v0, <128 x i8> undef, <128 x i32> < i32 0, i32 64, i32 1, i32 65, i32 4, i32 68, i32 5, i32 69, i32 8, i32 72, i32 9, i32 73, i32 12, i32 76, i32 13, i32 77, i32 2, i32 66, i32 3, i32 67, i32 6, i32 70, i32 7, i32 71, i32 10, i32 74, i32 11, i32 75, i32 14, i32 78, i32 15, i32 79, i32 32, i32 96, i32 33, i32 97, i32 36, i32 100, i32 37, i32 101, i32 40, i32 104, i32 41, i32 105, i32 44, i32 108, i32 45, i32 109, i32 34, i32 98, i32 35, i32 99, i32 38, i32 102, i32 39, i32 103, i32 42, i32 106, i32 43, i32 107, i32 46, i32 110, i32 47, i32 111, i32 16, i32 80, i32 17, i32 81, i32 20, i32 84, i32 21, i32 85, i32 24, i32 88, i32 25, i32 89, i32 28, i32 92, i32 29, i32 93, i32 18, i32 82, i32 19, i32 83, i32 22, i32 86, i32 23, i32 87, i32 26, i32 90, i32 27, i32 91, i32 30, i32 94, i32 31, i32 95, i32 48, i32 112, i32 49, i32 113, i32 52, i32 116, i32 53, i32 117, i32 56, i32 120, i32 57, i32 121, i32 60, i32 124, i32 61, i32 125, i32 50, i32 114, i32 51, i32 115, i32 54, i32 118, i32 55, i32 119, i32 58, i32 122, i32 59, i32 123, i32 62, i32 126, i32 63, i32 127>
ret <128 x i8> %p
}
; CHECK-LABEL: vshuff_14:
; CHECK: [[REG14:r[0-9]+]] = #20
; CHECK: vshuff(v1,v0,[[REG14]])
define <128 x i8> @vshuff_14(<128 x i8> %v0, <128 x i8> %v1) #0 {
%p = shufflevector <128 x i8> %v0, <128 x i8> undef, <128 x i32> < i32 0, i32 1, i32 2, i32 3, i32 64, i32 65, i32 66, i32 67, i32 8, i32 9, i32 10, i32 11, i32 72, i32 73, i32 74, i32 75, i32 4, i32 5, i32 6, i32 7, i32 68, i32 69, i32 70, i32 71, i32 12, i32 13, i32 14, i32 15, i32 76, i32 77, i32 78, i32 79, i32 32, i32 33, i32 34, i32 35, i32 96, i32 97, i32 98, i32 99, i32 40, i32 41, i32 42, i32 43, i32 104, i32 105, i32 106, i32 107, i32 36, i32 37, i32 38, i32 39, i32 100, i32 101, i32 102, i32 103, i32 44, i32 45, i32 46, i32 47, i32 108, i32 109, i32 110, i32 111, i32 16, i32 17, i32 18, i32 19, i32 80, i32 81, i32 82, i32 83, i32 24, i32 25, i32 26, i32 27, i32 88, i32 89, i32 90, i32 91, i32 20, i32 21, i32 22, i32 23, i32 84, i32 85, i32 86, i32 87, i32 28, i32 29, i32 30, i32 31, i32 92, i32 93, i32 94, i32 95, i32 48, i32 49, i32 50, i32 51, i32 112, i32 113, i32 114, i32 115, i32 56, i32 57, i32 58, i32 59, i32 120, i32 121, i32 122, i32 123, i32 52, i32 53, i32 54, i32 55, i32 116, i32 117, i32 118, i32 119, i32 60, i32 61, i32 62, i32 63, i32 124, i32 125, i32 126, i32 127>
ret <128 x i8> %p
}
; CHECK-LABEL: vshuff_15:
; CHECK: [[REG15:r[0-9]+]] = #21
; CHECK: vshuff(v1,v0,[[REG15]])
define <128 x i8> @vshuff_15(<128 x i8> %v0, <128 x i8> %v1) #0 {
%p = shufflevector <128 x i8> %v0, <128 x i8> undef, <128 x i32> < i32 0, i32 64, i32 2, i32 66, i32 1, i32 65, i32 3, i32 67, i32 8, i32 72, i32 10, i32 74, i32 9, i32 73, i32 11, i32 75, i32 4, i32 68, i32 6, i32 70, i32 5, i32 69, i32 7, i32 71, i32 12, i32 76, i32 14, i32 78, i32 13, i32 77, i32 15, i32 79, i32 32, i32 96, i32 34, i32 98, i32 33, i32 97, i32 35, i32 99, i32 40, i32 104, i32 42, i32 106, i32 41, i32 105, i32 43, i32 107, i32 36, i32 100, i32 38, i32 102, i32 37, i32 101, i32 39, i32 103, i32 44, i32 108, i32 46, i32 110, i32 45, i32 109, i32 47, i32 111, i32 16, i32 80, i32 18, i32 82, i32 17, i32 81, i32 19, i32 83, i32 24, i32 88, i32 26, i32 90, i32 25, i32 89, i32 27, i32 91, i32 20, i32 84, i32 22, i32 86, i32 21, i32 85, i32 23, i32 87, i32 28, i32 92, i32 30, i32 94, i32 29, i32 93, i32 31, i32 95, i32 48, i32 112, i32 50, i32 114, i32 49, i32 113, i32 51, i32 115, i32 56, i32 120, i32 58, i32 122, i32 57, i32 121, i32 59, i32 123, i32 52, i32 116, i32 54, i32 118, i32 53, i32 117, i32 55, i32 119, i32 60, i32 124, i32 62, i32 126, i32 61, i32 125, i32 63, i32 127>
ret <128 x i8> %p
}
; CHECK-LABEL: vshuff_16:
; CHECK: [[REG16:r[0-9]+]] = #22
; CHECK: vshuff(v1,v0,[[REG16]])
define <128 x i8> @vshuff_16(<128 x i8> %v0, <128 x i8> %v1) #0 {
%p = shufflevector <128 x i8> %v0, <128 x i8> undef, <128 x i32> < i32 0, i32 1, i32 64, i32 65, i32 2, i32 3, i32 66, i32 67, i32 8, i32 9, i32 72, i32 73, i32 10, i32 11, i32 74, i32 75, i32 4, i32 5, i32 68, i32 69, i32 6, i32 7, i32 70, i32 71, i32 12, i32 13, i32 76, i32 77, i32 14, i32 15, i32 78, i32 79, i32 32, i32 33, i32 96, i32 97, i32 34, i32 35, i32 98, i32 99, i32 40, i32 41, i32 104, i32 105, i32 42, i32 43, i32 106, i32 107, i32 36, i32 37, i32 100, i32 101, i32 38, i32 39, i32 102, i32 103, i32 44, i32 45, i32 108, i32 109, i32 46, i32 47, i32 110, i32 111, i32 16, i32 17, i32 80, i32 81, i32 18, i32 19, i32 82, i32 83, i32 24, i32 25, i32 88, i32 89, i32 26, i32 27, i32 90, i32 91, i32 20, i32 21, i32 84, i32 85, i32 22, i32 23, i32 86, i32 87, i32 28, i32 29, i32 92, i32 93, i32 30, i32 31, i32 94, i32 95, i32 48, i32 49, i32 112, i32 113, i32 50, i32 51, i32 114, i32 115, i32 56, i32 57, i32 120, i32 121, i32 58, i32 59, i32 122, i32 123, i32 52, i32 53, i32 116, i32 117, i32 54, i32 55, i32 118, i32 119, i32 60, i32 61, i32 124, i32 125, i32 62, i32 63, i32 126, i32 127>
ret <128 x i8> %p
}
; CHECK-LABEL: vshuff_17:
; CHECK: [[REG17:r[0-9]+]] = #23
; CHECK: vshuff(v1,v0,[[REG17]])
define <128 x i8> @vshuff_17(<128 x i8> %v0, <128 x i8> %v1) #0 {
%p = shufflevector <128 x i8> %v0, <128 x i8> undef, <128 x i32> < i32 0, i32 64, i32 1, i32 65, i32 2, i32 66, i32 3, i32 67, i32 8, i32 72, i32 9, i32 73, i32 10, i32 74, i32 11, i32 75, i32 4, i32 68, i32 5, i32 69, i32 6, i32 70, i32 7, i32 71, i32 12, i32 76, i32 13, i32 77, i32 14, i32 78, i32 15, i32 79, i32 32, i32 96, i32 33, i32 97, i32 34, i32 98, i32 35, i32 99, i32 40, i32 104, i32 41, i32 105, i32 42, i32 106, i32 43, i32 107, i32 36, i32 100, i32 37, i32 101, i32 38, i32 102, i32 39, i32 103, i32 44, i32 108, i32 45, i32 109, i32 46, i32 110, i32 47, i32 111, i32 16, i32 80, i32 17, i32 81, i32 18, i32 82, i32 19, i32 83, i32 24, i32 88, i32 25, i32 89, i32 26, i32 90, i32 27, i32 91, i32 20, i32 84, i32 21, i32 85, i32 22, i32 86, i32 23, i32 87, i32 28, i32 92, i32 29, i32 93, i32 30, i32 94, i32 31, i32 95, i32 48, i32 112, i32 49, i32 113, i32 50, i32 114, i32 51, i32 115, i32 56, i32 120, i32 57, i32 121, i32 58, i32 122, i32 59, i32 123, i32 52, i32 116, i32 53, i32 117, i32 54, i32 118, i32 55, i32 119, i32 60, i32 124, i32 61, i32 125, i32 62, i32 126, i32 63, i32 127>
ret <128 x i8> %p
}
; CHECK-LABEL: vshuff_18:
; CHECK: [[REG18:r[0-9]+]] = #24
; CHECK: vshuff(v1,v0,[[REG18]])
define <128 x i8> @vshuff_18(<128 x i8> %v0, <128 x i8> %v1) #0 {
%p = shufflevector <128 x i8> %v0, <128 x i8> undef, <128 x i32> < i32 0, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7, i32 64, i32 65, i32 66, i32 67, i32 68, i32 69, i32 70, i32 71, i32 8, i32 9, i32 10, i32 11, i32 12, i32 13, i32 14, i32 15, i32 72, i32 73, i32 74, i32 75, i32 76, i32 77, i32 78, i32 79, i32 32, i32 33, i32 34, i32 35, i32 36, i32 37, i32 38, i32 39, i32 96, i32 97, i32 98, i32 99, i32 100, i32 101, i32 102, i32 103, i32 40, i32 41, i32 42, i32 43, i32 44, i32 45, i32 46, i32 47, i32 104, i32 105, i32 106, i32 107, i32 108, i32 109, i32 110, i32 111, i32 16, i32 17, i32 18, i32 19, i32 20, i32 21, i32 22, i32 23, i32 80, i32 81, i32 82, i32 83, i32 84, i32 85, i32 86, i32 87, i32 24, i32 25, i32 26, i32 27, i32 28, i32 29, i32 30, i32 31, i32 88, i32 89, i32 90, i32 91, i32 92, i32 93, i32 94, i32 95, i32 48, i32 49, i32 50, i32 51, i32 52, i32 53, i32 54, i32 55, i32 112, i32 113, i32 114, i32 115, i32 116, i32 117, i32 118, i32 119, i32 56, i32 57, i32 58, i32 59, i32 60, i32 61, i32 62, i32 63, i32 120, i32 121, i32 122, i32 123, i32 124, i32 125, i32 126, i32 127>
ret <128 x i8> %p
}
; CHECK-LABEL: vshuff_19:
; CHECK: [[REG19:r[0-9]+]] = #25
; CHECK: vshuff(v1,v0,[[REG19]])
define <128 x i8> @vshuff_19(<128 x i8> %v0, <128 x i8> %v1) #0 {
%p = shufflevector <128 x i8> %v0, <128 x i8> undef, <128 x i32> < i32 0, i32 64, i32 2, i32 66, i32 4, i32 68, i32 6, i32 70, i32 1, i32 65, i32 3, i32 67, i32 5, i32 69, i32 7, i32 71, i32 8, i32 72, i32 10, i32 74, i32 12, i32 76, i32 14, i32 78, i32 9, i32 73, i32 11, i32 75, i32 13, i32 77, i32 15, i32 79, i32 32, i32 96, i32 34, i32 98, i32 36, i32 100, i32 38, i32 102, i32 33, i32 97, i32 35, i32 99, i32 37, i32 101, i32 39, i32 103, i32 40, i32 104, i32 42, i32 106, i32 44, i32 108, i32 46, i32 110, i32 41, i32 105, i32 43, i32 107, i32 45, i32 109, i32 47, i32 111, i32 16, i32 80, i32 18, i32 82, i32 20, i32 84, i32 22, i32 86, i32 17, i32 81, i32 19, i32 83, i32 21, i32 85, i32 23, i32 87, i32 24, i32 88, i32 26, i32 90, i32 28, i32 92, i32 30, i32 94, i32 25, i32 89, i32 27, i32 91, i32 29, i32 93, i32 31, i32 95, i32 48, i32 112, i32 50, i32 114, i32 52, i32 116, i32 54, i32 118, i32 49, i32 113, i32 51, i32 115, i32 53, i32 117, i32 55, i32 119, i32 56, i32 120, i32 58, i32 122, i32 60, i32 124, i32 62, i32 126, i32 57, i32 121, i32 59, i32 123, i32 61, i32 125, i32 63, i32 127>
ret <128 x i8> %p
}
; CHECK-LABEL: vshuff_1a:
; CHECK: [[REG1a:r[0-9]+]] = #26
; CHECK: vshuff(v1,v0,[[REG1a]])
define <128 x i8> @vshuff_1a(<128 x i8> %v0, <128 x i8> %v1) #0 {
%p = shufflevector <128 x i8> %v0, <128 x i8> undef, <128 x i32> < i32 0, i32 1, i32 64, i32 65, i32 4, i32 5, i32 68, i32 69, i32 2, i32 3, i32 66, i32 67, i32 6, i32 7, i32 70, i32 71, i32 8, i32 9, i32 72, i32 73, i32 12, i32 13, i32 76, i32 77, i32 10, i32 11, i32 74, i32 75, i32 14, i32 15, i32 78, i32 79, i32 32, i32 33, i32 96, i32 97, i32 36, i32 37, i32 100, i32 101, i32 34, i32 35, i32 98, i32 99, i32 38, i32 39, i32 102, i32 103, i32 40, i32 41, i32 104, i32 105, i32 44, i32 45, i32 108, i32 109, i32 42, i32 43, i32 106, i32 107, i32 46, i32 47, i32 110, i32 111, i32 16, i32 17, i32 80, i32 81, i32 20, i32 21, i32 84, i32 85, i32 18, i32 19, i32 82, i32 83, i32 22, i32 23, i32 86, i32 87, i32 24, i32 25, i32 88, i32 89, i32 28, i32 29, i32 92, i32 93, i32 26, i32 27, i32 90, i32 91, i32 30, i32 31, i32 94, i32 95, i32 48, i32 49, i32 112, i32 113, i32 52, i32 53, i32 116, i32 117, i32 50, i32 51, i32 114, i32 115, i32 54, i32 55, i32 118, i32 119, i32 56, i32 57, i32 120, i32 121, i32 60, i32 61, i32 124, i32 125, i32 58, i32 59, i32 122, i32 123, i32 62, i32 63, i32 126, i32 127>
ret <128 x i8> %p
}
; CHECK-LABEL: vshuff_1b:
; CHECK: [[REG1b:r[0-9]+]] = #27
; CHECK: vshuff(v1,v0,[[REG1b]])
define <128 x i8> @vshuff_1b(<128 x i8> %v0, <128 x i8> %v1) #0 {
%p = shufflevector <128 x i8> %v0, <128 x i8> undef, <128 x i32> < i32 0, i32 64, i32 1, i32 65, i32 4, i32 68, i32 5, i32 69, i32 2, i32 66, i32 3, i32 67, i32 6, i32 70, i32 7, i32 71, i32 8, i32 72, i32 9, i32 73, i32 12, i32 76, i32 13, i32 77, i32 10, i32 74, i32 11, i32 75, i32 14, i32 78, i32 15, i32 79, i32 32, i32 96, i32 33, i32 97, i32 36, i32 100, i32 37, i32 101, i32 34, i32 98, i32 35, i32 99, i32 38, i32 102, i32 39, i32 103, i32 40, i32 104, i32 41, i32 105, i32 44, i32 108, i32 45, i32 109, i32 42, i32 106, i32 43, i32 107, i32 46, i32 110, i32 47, i32 111, i32 16, i32 80, i32 17, i32 81, i32 20, i32 84, i32 21, i32 85, i32 18, i32 82, i32 19, i32 83, i32 22, i32 86, i32 23, i32 87, i32 24, i32 88, i32 25, i32 89, i32 28, i32 92, i32 29, i32 93, i32 26, i32 90, i32 27, i32 91, i32 30, i32 94, i32 31, i32 95, i32 48, i32 112, i32 49, i32 113, i32 52, i32 116, i32 53, i32 117, i32 50, i32 114, i32 51, i32 115, i32 54, i32 118, i32 55, i32 119, i32 56, i32 120, i32 57, i32 121, i32 60, i32 124, i32 61, i32 125, i32 58, i32 122, i32 59, i32 123, i32 62, i32 126, i32 63, i32 127>
ret <128 x i8> %p
}
; CHECK-LABEL: vshuff_1c:
; CHECK: [[REG1c:r[0-9]+]] = #28
; CHECK: vshuff(v1,v0,[[REG1c]])
define <128 x i8> @vshuff_1c(<128 x i8> %v0, <128 x i8> %v1) #0 {
%p = shufflevector <128 x i8> %v0, <128 x i8> undef, <128 x i32> < i32 0, i32 1, i32 2, i32 3, i32 64, i32 65, i32 66, i32 67, i32 4, i32 5, i32 6, i32 7, i32 68, i32 69, i32 70, i32 71, i32 8, i32 9, i32 10, i32 11, i32 72, i32 73, i32 74, i32 75, i32 12, i32 13, i32 14, i32 15, i32 76, i32 77, i32 78, i32 79, i32 32, i32 33, i32 34, i32 35, i32 96, i32 97, i32 98, i32 99, i32 36, i32 37, i32 38, i32 39, i32 100, i32 101, i32 102, i32 103, i32 40, i32 41, i32 42, i32 43, i32 104, i32 105, i32 106, i32 107, i32 44, i32 45, i32 46, i32 47, i32 108, i32 109, i32 110, i32 111, i32 16, i32 17, i32 18, i32 19, i32 80, i32 81, i32 82, i32 83, i32 20, i32 21, i32 22, i32 23, i32 84, i32 85, i32 86, i32 87, i32 24, i32 25, i32 26, i32 27, i32 88, i32 89, i32 90, i32 91, i32 28, i32 29, i32 30, i32 31, i32 92, i32 93, i32 94, i32 95, i32 48, i32 49, i32 50, i32 51, i32 112, i32 113, i32 114, i32 115, i32 52, i32 53, i32 54, i32 55, i32 116, i32 117, i32 118, i32 119, i32 56, i32 57, i32 58, i32 59, i32 120, i32 121, i32 122, i32 123, i32 60, i32 61, i32 62, i32 63, i32 124, i32 125, i32 126, i32 127>
ret <128 x i8> %p
}
; CHECK-LABEL: vshuff_1d:
; CHECK: [[REG1d:r[0-9]+]] = #29
; CHECK: vshuff(v1,v0,[[REG1d]])
define <128 x i8> @vshuff_1d(<128 x i8> %v0, <128 x i8> %v1) #0 {
%p = shufflevector <128 x i8> %v0, <128 x i8> undef, <128 x i32> < i32 0, i32 64, i32 2, i32 66, i32 1, i32 65, i32 3, i32 67, i32 4, i32 68, i32 6, i32 70, i32 5, i32 69, i32 7, i32 71, i32 8, i32 72, i32 10, i32 74, i32 9, i32 73, i32 11, i32 75, i32 12, i32 76, i32 14, i32 78, i32 13, i32 77, i32 15, i32 79, i32 32, i32 96, i32 34, i32 98, i32 33, i32 97, i32 35, i32 99, i32 36, i32 100, i32 38, i32 102, i32 37, i32 101, i32 39, i32 103, i32 40, i32 104, i32 42, i32 106, i32 41, i32 105, i32 43, i32 107, i32 44, i32 108, i32 46, i32 110, i32 45, i32 109, i32 47, i32 111, i32 16, i32 80, i32 18, i32 82, i32 17, i32 81, i32 19, i32 83, i32 20, i32 84, i32 22, i32 86, i32 21, i32 85, i32 23, i32 87, i32 24, i32 88, i32 26, i32 90, i32 25, i32 89, i32 27, i32 91, i32 28, i32 92, i32 30, i32 94, i32 29, i32 93, i32 31, i32 95, i32 48, i32 112, i32 50, i32 114, i32 49, i32 113, i32 51, i32 115, i32 52, i32 116, i32 54, i32 118, i32 53, i32 117, i32 55, i32 119, i32 56, i32 120, i32 58, i32 122, i32 57, i32 121, i32 59, i32 123, i32 60, i32 124, i32 62, i32 126, i32 61, i32 125, i32 63, i32 127>
ret <128 x i8> %p
}
; CHECK-LABEL: vshuff_1e:
; CHECK: [[REG1e:r[0-9]+]] = #30
; CHECK: vshuff(v1,v0,[[REG1e]])
define <128 x i8> @vshuff_1e(<128 x i8> %v0, <128 x i8> %v1) #0 {
%p = shufflevector <128 x i8> %v0, <128 x i8> undef, <128 x i32> < i32 0, i32 1, i32 64, i32 65, i32 2, i32 3, i32 66, i32 67, i32 4, i32 5, i32 68, i32 69, i32 6, i32 7, i32 70, i32 71, i32 8, i32 9, i32 72, i32 73, i32 10, i32 11, i32 74, i32 75, i32 12, i32 13, i32 76, i32 77, i32 14, i32 15, i32 78, i32 79, i32 32, i32 33, i32 96, i32 97, i32 34, i32 35, i32 98, i32 99, i32 36, i32 37, i32 100, i32 101, i32 38, i32 39, i32 102, i32 103, i32 40, i32 41, i32 104, i32 105, i32 42, i32 43, i32 106, i32 107, i32 44, i32 45, i32 108, i32 109, i32 46, i32 47, i32 110, i32 111, i32 16, i32 17, i32 80, i32 81, i32 18, i32 19, i32 82, i32 83, i32 20, i32 21, i32 84, i32 85, i32 22, i32 23, i32 86, i32 87, i32 24, i32 25, i32 88, i32 89, i32 26, i32 27, i32 90, i32 91, i32 28, i32 29, i32 92, i32 93, i32 30, i32 31, i32 94, i32 95, i32 48, i32 49, i32 112, i32 113, i32 50, i32 51, i32 114, i32 115, i32 52, i32 53, i32 116, i32 117, i32 54, i32 55, i32 118, i32 119, i32 56, i32 57, i32 120, i32 121, i32 58, i32 59, i32 122, i32 123, i32 60, i32 61, i32 124, i32 125, i32 62, i32 63, i32 126, i32 127>
ret <128 x i8> %p
}
; CHECK-LABEL: vshuff_1f:
; CHECK: [[REG1f:r[0-9]+]] = #31
; CHECK: vshuff(v1,v0,[[REG1f]])
define <128 x i8> @vshuff_1f(<128 x i8> %v0, <128 x i8> %v1) #0 {
%p = shufflevector <128 x i8> %v0, <128 x i8> undef, <128 x i32> < i32 0, i32 64, i32 1, i32 65, i32 2, i32 66, i32 3, i32 67, i32 4, i32 68, i32 5, i32 69, i32 6, i32 70, i32 7, i32 71, i32 8, i32 72, i32 9, i32 73, i32 10, i32 74, i32 11, i32 75, i32 12, i32 76, i32 13, i32 77, i32 14, i32 78, i32 15, i32 79, i32 32, i32 96, i32 33, i32 97, i32 34, i32 98, i32 35, i32 99, i32 36, i32 100, i32 37, i32 101, i32 38, i32 102, i32 39, i32 103, i32 40, i32 104, i32 41, i32 105, i32 42, i32 106, i32 43, i32 107, i32 44, i32 108, i32 45, i32 109, i32 46, i32 110, i32 47, i32 111, i32 16, i32 80, i32 17, i32 81, i32 18, i32 82, i32 19, i32 83, i32 20, i32 84, i32 21, i32 85, i32 22, i32 86, i32 23, i32 87, i32 24, i32 88, i32 25, i32 89, i32 26, i32 90, i32 27, i32 91, i32 28, i32 92, i32 29, i32 93, i32 30, i32 94, i32 31, i32 95, i32 48, i32 112, i32 49, i32 113, i32 50, i32 114, i32 51, i32 115, i32 52, i32 116, i32 53, i32 117, i32 54, i32 118, i32 55, i32 119, i32 56, i32 120, i32 57, i32 121, i32 58, i32 122, i32 59, i32 123, i32 60, i32 124, i32 61, i32 125, i32 62, i32 126, i32 63, i32 127>
ret <128 x i8> %p
}
; CHECK-LABEL: vshuff_20:
; CHECK: [[REG20:r[0-9]+]] = #32
; CHECK: vshuff(v1,v0,[[REG20]])
define <128 x i8> @vshuff_20(<128 x i8> %v0, <128 x i8> %v1) #0 {
%p = shufflevector <128 x i8> %v0, <128 x i8> undef, <128 x i32> < i32 0, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7, i32 8, i32 9, i32 10, i32 11, i32 12, i32 13, i32 14, i32 15, i32 16, i32 17, i32 18, i32 19, i32 20, i32 21, i32 22, i32 23, i32 24, i32 25, i32 26, i32 27, i32 28, i32 29, i32 30, i32 31, i32 64, i32 65, i32 66, i32 67, i32 68, i32 69, i32 70, i32 71, i32 72, i32 73, i32 74, i32 75, i32 76, i32 77, i32 78, i32 79, i32 80, i32 81, i32 82, i32 83, i32 84, i32 85, i32 86, i32 87, i32 88, i32 89, i32 90, i32 91, i32 92, i32 93, i32 94, i32 95, i32 32, i32 33, i32 34, i32 35, i32 36, i32 37, i32 38, i32 39, i32 40, i32 41, i32 42, i32 43, i32 44, i32 45, i32 46, i32 47, i32 48, i32 49, i32 50, i32 51, i32 52, i32 53, i32 54, i32 55, i32 56, i32 57, i32 58, i32 59, i32 60, i32 61, i32 62, i32 63, i32 96, i32 97, i32 98, i32 99, i32 100, i32 101, i32 102, i32 103, i32 104, i32 105, i32 106, i32 107, i32 108, i32 109, i32 110, i32 111, i32 112, i32 113, i32 114, i32 115, i32 116, i32 117, i32 118, i32 119, i32 120, i32 121, i32 122, i32 123, i32 124, i32 125, i32 126, i32 127>
ret <128 x i8> %p
}
; CHECK-LABEL: vshuff_21:
; CHECK: [[REG21:r[0-9]+]] = #33
; CHECK: vshuff(v1,v0,[[REG21]])
define <128 x i8> @vshuff_21(<128 x i8> %v0, <128 x i8> %v1) #0 {
%p = shufflevector <128 x i8> %v0, <128 x i8> undef, <128 x i32> < i32 0, i32 64, i32 2, i32 66, i32 4, i32 68, i32 6, i32 70, i32 8, i32 72, i32 10, i32 74, i32 12, i32 76, i32 14, i32 78, i32 16, i32 80, i32 18, i32 82, i32 20, i32 84, i32 22, i32 86, i32 24, i32 88, i32 26, i32 90, i32 28, i32 92, i32 30, i32 94, i32 1, i32 65, i32 3, i32 67, i32 5, i32 69, i32 7, i32 71, i32 9, i32 73, i32 11, i32 75, i32 13, i32 77, i32 15, i32 79, i32 17, i32 81, i32 19, i32 83, i32 21, i32 85, i32 23, i32 87, i32 25, i32 89, i32 27, i32 91, i32 29, i32 93, i32 31, i32 95, i32 32, i32 96, i32 34, i32 98, i32 36, i32 100, i32 38, i32 102, i32 40, i32 104, i32 42, i32 106, i32 44, i32 108, i32 46, i32 110, i32 48, i32 112, i32 50, i32 114, i32 52, i32 116, i32 54, i32 118, i32 56, i32 120, i32 58, i32 122, i32 60, i32 124, i32 62, i32 126, i32 33, i32 97, i32 35, i32 99, i32 37, i32 101, i32 39, i32 103, i32 41, i32 105, i32 43, i32 107, i32 45, i32 109, i32 47, i32 111, i32 49, i32 113, i32 51, i32 115, i32 53, i32 117, i32 55, i32 119, i32 57, i32 121, i32 59, i32 123, i32 61, i32 125, i32 63, i32 127>
ret <128 x i8> %p
}
; CHECK-LABEL: vshuff_22:
; CHECK: [[REG22:r[0-9]+]] = #34
; CHECK: vshuff(v1,v0,[[REG22]])
define <128 x i8> @vshuff_22(<128 x i8> %v0, <128 x i8> %v1) #0 {
%p = shufflevector <128 x i8> %v0, <128 x i8> undef, <128 x i32> < i32 0, i32 1, i32 64, i32 65, i32 4, i32 5, i32 68, i32 69, i32 8, i32 9, i32 72, i32 73, i32 12, i32 13, i32 76, i32 77, i32 16, i32 17, i32 80, i32 81, i32 20, i32 21, i32 84, i32 85, i32 24, i32 25, i32 88, i32 89, i32 28, i32 29, i32 92, i32 93, i32 2, i32 3, i32 66, i32 67, i32 6, i32 7, i32 70, i32 71, i32 10, i32 11, i32 74, i32 75, i32 14, i32 15, i32 78, i32 79, i32 18, i32 19, i32 82, i32 83, i32 22, i32 23, i32 86, i32 87, i32 26, i32 27, i32 90, i32 91, i32 30, i32 31, i32 94, i32 95, i32 32, i32 33, i32 96, i32 97, i32 36, i32 37, i32 100, i32 101, i32 40, i32 41, i32 104, i32 105, i32 44, i32 45, i32 108, i32 109, i32 48, i32 49, i32 112, i32 113, i32 52, i32 53, i32 116, i32 117, i32 56, i32 57, i32 120, i32 121, i32 60, i32 61, i32 124, i32 125, i32 34, i32 35, i32 98, i32 99, i32 38, i32 39, i32 102, i32 103, i32 42, i32 43, i32 106, i32 107, i32 46, i32 47, i32 110, i32 111, i32 50, i32 51, i32 114, i32 115, i32 54, i32 55, i32 118, i32 119, i32 58, i32 59, i32 122, i32 123, i32 62, i32 63, i32 126, i32 127>
ret <128 x i8> %p
}
; CHECK-LABEL: vshuff_23:
; CHECK: [[REG23:r[0-9]+]] = #35
; CHECK: vshuff(v1,v0,[[REG23]])
define <128 x i8> @vshuff_23(<128 x i8> %v0, <128 x i8> %v1) #0 {
%p = shufflevector <128 x i8> %v0, <128 x i8> undef, <128 x i32> < i32 0, i32 64, i32 1, i32 65, i32 4, i32 68, i32 5, i32 69, i32 8, i32 72, i32 9, i32 73, i32 12, i32 76, i32 13, i32 77, i32 16, i32 80, i32 17, i32 81, i32 20, i32 84, i32 21, i32 85, i32 24, i32 88, i32 25, i32 89, i32 28, i32 92, i32 29, i32 93, i32 2, i32 66, i32 3, i32 67, i32 6, i32 70, i32 7, i32 71, i32 10, i32 74, i32 11, i32 75, i32 14, i32 78, i32 15, i32 79, i32 18, i32 82, i32 19, i32 83, i32 22, i32 86, i32 23, i32 87, i32 26, i32 90, i32 27, i32 91, i32 30, i32 94, i32 31, i32 95, i32 32, i32 96, i32 33, i32 97, i32 36, i32 100, i32 37, i32 101, i32 40, i32 104, i32 41, i32 105, i32 44, i32 108, i32 45, i32 109, i32 48, i32 112, i32 49, i32 113, i32 52, i32 116, i32 53, i32 117, i32 56, i32 120, i32 57, i32 121, i32 60, i32 124, i32 61, i32 125, i32 34, i32 98, i32 35, i32 99, i32 38, i32 102, i32 39, i32 103, i32 42, i32 106, i32 43, i32 107, i32 46, i32 110, i32 47, i32 111, i32 50, i32 114, i32 51, i32 115, i32 54, i32 118, i32 55, i32 119, i32 58, i32 122, i32 59, i32 123, i32 62, i32 126, i32 63, i32 127>
ret <128 x i8> %p
}
; CHECK-LABEL: vshuff_24:
; CHECK: [[REG24:r[0-9]+]] = #36
; CHECK: vshuff(v1,v0,[[REG24]])
define <128 x i8> @vshuff_24(<128 x i8> %v0, <128 x i8> %v1) #0 {
%p = shufflevector <128 x i8> %v0, <128 x i8> undef, <128 x i32> < i32 0, i32 1, i32 2, i32 3, i32 64, i32 65, i32 66, i32 67, i32 8, i32 9, i32 10, i32 11, i32 72, i32 73, i32 74, i32 75, i32 16, i32 17, i32 18, i32 19, i32 80, i32 81, i32 82, i32 83, i32 24, i32 25, i32 26, i32 27, i32 88, i32 89, i32 90, i32 91, i32 4, i32 5, i32 6, i32 7, i32 68, i32 69, i32 70, i32 71, i32 12, i32 13, i32 14, i32 15, i32 76, i32 77, i32 78, i32 79, i32 20, i32 21, i32 22, i32 23, i32 84, i32 85, i32 86, i32 87, i32 28, i32 29, i32 30, i32 31, i32 92, i32 93, i32 94, i32 95, i32 32, i32 33, i32 34, i32 35, i32 96, i32 97, i32 98, i32 99, i32 40, i32 41, i32 42, i32 43, i32 104, i32 105, i32 106, i32 107, i32 48, i32 49, i32 50, i32 51, i32 112, i32 113, i32 114, i32 115, i32 56, i32 57, i32 58, i32 59, i32 120, i32 121, i32 122, i32 123, i32 36, i32 37, i32 38, i32 39, i32 100, i32 101, i32 102, i32 103, i32 44, i32 45, i32 46, i32 47, i32 108, i32 109, i32 110, i32 111, i32 52, i32 53, i32 54, i32 55, i32 116, i32 117, i32 118, i32 119, i32 60, i32 61, i32 62, i32 63, i32 124, i32 125, i32 126, i32 127>
ret <128 x i8> %p
}
; CHECK-LABEL: vshuff_25:
; CHECK: [[REG25:r[0-9]+]] = #37
; CHECK: vshuff(v1,v0,[[REG25]])
define <128 x i8> @vshuff_25(<128 x i8> %v0, <128 x i8> %v1) #0 {
%p = shufflevector <128 x i8> %v0, <128 x i8> undef, <128 x i32> < i32 0, i32 64, i32 2, i32 66, i32 1, i32 65, i32 3, i32 67, i32 8, i32 72, i32 10, i32 74, i32 9, i32 73, i32 11, i32 75, i32 16, i32 80, i32 18, i32 82, i32 17, i32 81, i32 19, i32 83, i32 24, i32 88, i32 26, i32 90, i32 25, i32 89, i32 27, i32 91, i32 4, i32 68, i32 6, i32 70, i32 5, i32 69, i32 7, i32 71, i32 12, i32 76, i32 14, i32 78, i32 13, i32 77, i32 15, i32 79, i32 20, i32 84, i32 22, i32 86, i32 21, i32 85, i32 23, i32 87, i32 28, i32 92, i32 30, i32 94, i32 29, i32 93, i32 31, i32 95, i32 32, i32 96, i32 34, i32 98, i32 33, i32 97, i32 35, i32 99, i32 40, i32 104, i32 42, i32 106, i32 41, i32 105, i32 43, i32 107, i32 48, i32 112, i32 50, i32 114, i32 49, i32 113, i32 51, i32 115, i32 56, i32 120, i32 58, i32 122, i32 57, i32 121, i32 59, i32 123, i32 36, i32 100, i32 38, i32 102, i32 37, i32 101, i32 39, i32 103, i32 44, i32 108, i32 46, i32 110, i32 45, i32 109, i32 47, i32 111, i32 52, i32 116, i32 54, i32 118, i32 53, i32 117, i32 55, i32 119, i32 60, i32 124, i32 62, i32 126, i32 61, i32 125, i32 63, i32 127>
ret <128 x i8> %p
}
; CHECK-LABEL: vshuff_26:
; CHECK: [[REG26:r[0-9]+]] = #38
; CHECK: vshuff(v1,v0,[[REG26]])
define <128 x i8> @vshuff_26(<128 x i8> %v0, <128 x i8> %v1) #0 {
%p = shufflevector <128 x i8> %v0, <128 x i8> undef, <128 x i32> < i32 0, i32 1, i32 64, i32 65, i32 2, i32 3, i32 66, i32 67, i32 8, i32 9, i32 72, i32 73, i32 10, i32 11, i32 74, i32 75, i32 16, i32 17, i32 80, i32 81, i32 18, i32 19, i32 82, i32 83, i32 24, i32 25, i32 88, i32 89, i32 26, i32 27, i32 90, i32 91, i32 4, i32 5, i32 68, i32 69, i32 6, i32 7, i32 70, i32 71, i32 12, i32 13, i32 76, i32 77, i32 14, i32 15, i32 78, i32 79, i32 20, i32 21, i32 84, i32 85, i32 22, i32 23, i32 86, i32 87, i32 28, i32 29, i32 92, i32 93, i32 30, i32 31, i32 94, i32 95, i32 32, i32 33, i32 96, i32 97, i32 34, i32 35, i32 98, i32 99, i32 40, i32 41, i32 104, i32 105, i32 42, i32 43, i32 106, i32 107, i32 48, i32 49, i32 112, i32 113, i32 50, i32 51, i32 114, i32 115, i32 56, i32 57, i32 120, i32 121, i32 58, i32 59, i32 122, i32 123, i32 36, i32 37, i32 100, i32 101, i32 38, i32 39, i32 102, i32 103, i32 44, i32 45, i32 108, i32 109, i32 46, i32 47, i32 110, i32 111, i32 52, i32 53, i32 116, i32 117, i32 54, i32 55, i32 118, i32 119, i32 60, i32 61, i32 124, i32 125, i32 62, i32 63, i32 126, i32 127>
ret <128 x i8> %p
}
; CHECK-LABEL: vshuff_27:
; CHECK: [[REG27:r[0-9]+]] = #39
; CHECK: vshuff(v1,v0,[[REG27]])
define <128 x i8> @vshuff_27(<128 x i8> %v0, <128 x i8> %v1) #0 {
%p = shufflevector <128 x i8> %v0, <128 x i8> undef, <128 x i32> < i32 0, i32 64, i32 1, i32 65, i32 2, i32 66, i32 3, i32 67, i32 8, i32 72, i32 9, i32 73, i32 10, i32 74, i32 11, i32 75, i32 16, i32 80, i32 17, i32 81, i32 18, i32 82, i32 19, i32 83, i32 24, i32 88, i32 25, i32 89, i32 26, i32 90, i32 27, i32 91, i32 4, i32 68, i32 5, i32 69, i32 6, i32 70, i32 7, i32 71, i32 12, i32 76, i32 13, i32 77, i32 14, i32 78, i32 15, i32 79, i32 20, i32 84, i32 21, i32 85, i32 22, i32 86, i32 23, i32 87, i32 28, i32 92, i32 29, i32 93, i32 30, i32 94, i32 31, i32 95, i32 32, i32 96, i32 33, i32 97, i32 34, i32 98, i32 35, i32 99, i32 40, i32 104, i32 41, i32 105, i32 42, i32 106, i32 43, i32 107, i32 48, i32 112, i32 49, i32 113, i32 50, i32 114, i32 51, i32 115, i32 56, i32 120, i32 57, i32 121, i32 58, i32 122, i32 59, i32 123, i32 36, i32 100, i32 37, i32 101, i32 38, i32 102, i32 39, i32 103, i32 44, i32 108, i32 45, i32 109, i32 46, i32 110, i32 47, i32 111, i32 52, i32 116, i32 53, i32 117, i32 54, i32 118, i32 55, i32 119, i32 60, i32 124, i32 61, i32 125, i32 62, i32 126, i32 63, i32 127>
ret <128 x i8> %p
}
; CHECK-LABEL: vshuff_28:
; CHECK: [[REG28:r[0-9]+]] = #40
; CHECK: vshuff(v1,v0,[[REG28]])
define <128 x i8> @vshuff_28(<128 x i8> %v0, <128 x i8> %v1) #0 {
%p = shufflevector <128 x i8> %v0, <128 x i8> undef, <128 x i32> < i32 0, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7, i32 64, i32 65, i32 66, i32 67, i32 68, i32 69, i32 70, i32 71, i32 16, i32 17, i32 18, i32 19, i32 20, i32 21, i32 22, i32 23, i32 80, i32 81, i32 82, i32 83, i32 84, i32 85, i32 86, i32 87, i32 8, i32 9, i32 10, i32 11, i32 12, i32 13, i32 14, i32 15, i32 72, i32 73, i32 74, i32 75, i32 76, i32 77, i32 78, i32 79, i32 24, i32 25, i32 26, i32 27, i32 28, i32 29, i32 30, i32 31, i32 88, i32 89, i32 90, i32 91, i32 92, i32 93, i32 94, i32 95, i32 32, i32 33, i32 34, i32 35, i32 36, i32 37, i32 38, i32 39, i32 96, i32 97, i32 98, i32 99, i32 100, i32 101, i32 102, i32 103, i32 48, i32 49, i32 50, i32 51, i32 52, i32 53, i32 54, i32 55, i32 112, i32 113, i32 114, i32 115, i32 116, i32 117, i32 118, i32 119, i32 40, i32 41, i32 42, i32 43, i32 44, i32 45, i32 46, i32 47, i32 104, i32 105, i32 106, i32 107, i32 108, i32 109, i32 110, i32 111, i32 56, i32 57, i32 58, i32 59, i32 60, i32 61, i32 62, i32 63, i32 120, i32 121, i32 122, i32 123, i32 124, i32 125, i32 126, i32 127>
ret <128 x i8> %p
}
; CHECK-LABEL: vshuff_29:
; CHECK: [[REG29:r[0-9]+]] = #41
; CHECK: vshuff(v1,v0,[[REG29]])
define <128 x i8> @vshuff_29(<128 x i8> %v0, <128 x i8> %v1) #0 {
%p = shufflevector <128 x i8> %v0, <128 x i8> undef, <128 x i32> < i32 0, i32 64, i32 2, i32 66, i32 4, i32 68, i32 6, i32 70, i32 1, i32 65, i32 3, i32 67, i32 5, i32 69, i32 7, i32 71, i32 16, i32 80, i32 18, i32 82, i32 20, i32 84, i32 22, i32 86, i32 17, i32 81, i32 19, i32 83, i32 21, i32 85, i32 23, i32 87, i32 8, i32 72, i32 10, i32 74, i32 12, i32 76, i32 14, i32 78, i32 9, i32 73, i32 11, i32 75, i32 13, i32 77, i32 15, i32 79, i32 24, i32 88, i32 26, i32 90, i32 28, i32 92, i32 30, i32 94, i32 25, i32 89, i32 27, i32 91, i32 29, i32 93, i32 31, i32 95, i32 32, i32 96, i32 34, i32 98, i32 36, i32 100, i32 38, i32 102, i32 33, i32 97, i32 35, i32 99, i32 37, i32 101, i32 39, i32 103, i32 48, i32 112, i32 50, i32 114, i32 52, i32 116, i32 54, i32 118, i32 49, i32 113, i32 51, i32 115, i32 53, i32 117, i32 55, i32 119, i32 40, i32 104, i32 42, i32 106, i32 44, i32 108, i32 46, i32 110, i32 41, i32 105, i32 43, i32 107, i32 45, i32 109, i32 47, i32 111, i32 56, i32 120, i32 58, i32 122, i32 60, i32 124, i32 62, i32 126, i32 57, i32 121, i32 59, i32 123, i32 61, i32 125, i32 63, i32 127>
ret <128 x i8> %p
}
; CHECK-LABEL: vshuff_2a:
; CHECK: [[REG2a:r[0-9]+]] = #42
; CHECK: vshuff(v1,v0,[[REG2a]])
define <128 x i8> @vshuff_2a(<128 x i8> %v0, <128 x i8> %v1) #0 {
%p = shufflevector <128 x i8> %v0, <128 x i8> undef, <128 x i32> < i32 0, i32 1, i32 64, i32 65, i32 4, i32 5, i32 68, i32 69, i32 2, i32 3, i32 66, i32 67, i32 6, i32 7, i32 70, i32 71, i32 16, i32 17, i32 80, i32 81, i32 20, i32 21, i32 84, i32 85, i32 18, i32 19, i32 82, i32 83, i32 22, i32 23, i32 86, i32 87, i32 8, i32 9, i32 72, i32 73, i32 12, i32 13, i32 76, i32 77, i32 10, i32 11, i32 74, i32 75, i32 14, i32 15, i32 78, i32 79, i32 24, i32 25, i32 88, i32 89, i32 28, i32 29, i32 92, i32 93, i32 26, i32 27, i32 90, i32 91, i32 30, i32 31, i32 94, i32 95, i32 32, i32 33, i32 96, i32 97, i32 36, i32 37, i32 100, i32 101, i32 34, i32 35, i32 98, i32 99, i32 38, i32 39, i32 102, i32 103, i32 48, i32 49, i32 112, i32 113, i32 52, i32 53, i32 116, i32 117, i32 50, i32 51, i32 114, i32 115, i32 54, i32 55, i32 118, i32 119, i32 40, i32 41, i32 104, i32 105, i32 44, i32 45, i32 108, i32 109, i32 42, i32 43, i32 106, i32 107, i32 46, i32 47, i32 110, i32 111, i32 56, i32 57, i32 120, i32 121, i32 60, i32 61, i32 124, i32 125, i32 58, i32 59, i32 122, i32 123, i32 62, i32 63, i32 126, i32 127>
ret <128 x i8> %p
}
; CHECK-LABEL: vshuff_2b:
; CHECK: [[REG2b:r[0-9]+]] = #43
; CHECK: vshuff(v1,v0,[[REG2b]])
define <128 x i8> @vshuff_2b(<128 x i8> %v0, <128 x i8> %v1) #0 {
%p = shufflevector <128 x i8> %v0, <128 x i8> undef, <128 x i32> < i32 0, i32 64, i32 1, i32 65, i32 4, i32 68, i32 5, i32 69, i32 2, i32 66, i32 3, i32 67, i32 6, i32 70, i32 7, i32 71, i32 16, i32 80, i32 17, i32 81, i32 20, i32 84, i32 21, i32 85, i32 18, i32 82, i32 19, i32 83, i32 22, i32 86, i32 23, i32 87, i32 8, i32 72, i32 9, i32 73, i32 12, i32 76, i32 13, i32 77, i32 10, i32 74, i32 11, i32 75, i32 14, i32 78, i32 15, i32 79, i32 24, i32 88, i32 25, i32 89, i32 28, i32 92, i32 29, i32 93, i32 26, i32 90, i32 27, i32 91, i32 30, i32 94, i32 31, i32 95, i32 32, i32 96, i32 33, i32 97, i32 36, i32 100, i32 37, i32 101, i32 34, i32 98, i32 35, i32 99, i32 38, i32 102, i32 39, i32 103, i32 48, i32 112, i32 49, i32 113, i32 52, i32 116, i32 53, i32 117, i32 50, i32 114, i32 51, i32 115, i32 54, i32 118, i32 55, i32 119, i32 40, i32 104, i32 41, i32 105, i32 44, i32 108, i32 45, i32 109, i32 42, i32 106, i32 43, i32 107, i32 46, i32 110, i32 47, i32 111, i32 56, i32 120, i32 57, i32 121, i32 60, i32 124, i32 61, i32 125, i32 58, i32 122, i32 59, i32 123, i32 62, i32 126, i32 63, i32 127>
ret <128 x i8> %p
}
; CHECK-LABEL: vshuff_2c:
; CHECK: [[REG2c:r[0-9]+]] = #44
; CHECK: vshuff(v1,v0,[[REG2c]])
define <128 x i8> @vshuff_2c(<128 x i8> %v0, <128 x i8> %v1) #0 {
%p = shufflevector <128 x i8> %v0, <128 x i8> undef, <128 x i32> < i32 0, i32 1, i32 2, i32 3, i32 64, i32 65, i32 66, i32 67, i32 4, i32 5, i32 6, i32 7, i32 68, i32 69, i32 70, i32 71, i32 16, i32 17, i32 18, i32 19, i32 80, i32 81, i32 82, i32 83, i32 20, i32 21, i32 22, i32 23, i32 84, i32 85, i32 86, i32 87, i32 8, i32 9, i32 10, i32 11, i32 72, i32 73, i32 74, i32 75, i32 12, i32 13, i32 14, i32 15, i32 76, i32 77, i32 78, i32 79, i32 24, i32 25, i32 26, i32 27, i32 88, i32 89, i32 90, i32 91, i32 28, i32 29, i32 30, i32 31, i32 92, i32 93, i32 94, i32 95, i32 32, i32 33, i32 34, i32 35, i32 96, i32 97, i32 98, i32 99, i32 36, i32 37, i32 38, i32 39, i32 100, i32 101, i32 102, i32 103, i32 48, i32 49, i32 50, i32 51, i32 112, i32 113, i32 114, i32 115, i32 52, i32 53, i32 54, i32 55, i32 116, i32 117, i32 118, i32 119, i32 40, i32 41, i32 42, i32 43, i32 104, i32 105, i32 106, i32 107, i32 44, i32 45, i32 46, i32 47, i32 108, i32 109, i32 110, i32 111, i32 56, i32 57, i32 58, i32 59, i32 120, i32 121, i32 122, i32 123, i32 60, i32 61, i32 62, i32 63, i32 124, i32 125, i32 126, i32 127>
ret <128 x i8> %p
}
; CHECK-LABEL: vshuff_2d:
; CHECK: [[REG2d:r[0-9]+]] = #45
; CHECK: vshuff(v1,v0,[[REG2d]])
define <128 x i8> @vshuff_2d(<128 x i8> %v0, <128 x i8> %v1) #0 {
%p = shufflevector <128 x i8> %v0, <128 x i8> undef, <128 x i32> < i32 0, i32 64, i32 2, i32 66, i32 1, i32 65, i32 3, i32 67, i32 4, i32 68, i32 6, i32 70, i32 5, i32 69, i32 7, i32 71, i32 16, i32 80, i32 18, i32 82, i32 17, i32 81, i32 19, i32 83, i32 20, i32 84, i32 22, i32 86, i32 21, i32 85, i32 23, i32 87, i32 8, i32 72, i32 10, i32 74, i32 9, i32 73, i32 11, i32 75, i32 12, i32 76, i32 14, i32 78, i32 13, i32 77, i32 15, i32 79, i32 24, i32 88, i32 26, i32 90, i32 25, i32 89, i32 27, i32 91, i32 28, i32 92, i32 30, i32 94, i32 29, i32 93, i32 31, i32 95, i32 32, i32 96, i32 34, i32 98, i32 33, i32 97, i32 35, i32 99, i32 36, i32 100, i32 38, i32 102, i32 37, i32 101, i32 39, i32 103, i32 48, i32 112, i32 50, i32 114, i32 49, i32 113, i32 51, i32 115, i32 52, i32 116, i32 54, i32 118, i32 53, i32 117, i32 55, i32 119, i32 40, i32 104, i32 42, i32 106, i32 41, i32 105, i32 43, i32 107, i32 44, i32 108, i32 46, i32 110, i32 45, i32 109, i32 47, i32 111, i32 56, i32 120, i32 58, i32 122, i32 57, i32 121, i32 59, i32 123, i32 60, i32 124, i32 62, i32 126, i32 61, i32 125, i32 63, i32 127>
ret <128 x i8> %p
}
; CHECK-LABEL: vshuff_2e:
; CHECK: [[REG2e:r[0-9]+]] = #46
; CHECK: vshuff(v1,v0,[[REG2e]])
define <128 x i8> @vshuff_2e(<128 x i8> %v0, <128 x i8> %v1) #0 {
%p = shufflevector <128 x i8> %v0, <128 x i8> undef, <128 x i32> < i32 0, i32 1, i32 64, i32 65, i32 2, i32 3, i32 66, i32 67, i32 4, i32 5, i32 68, i32 69, i32 6, i32 7, i32 70, i32 71, i32 16, i32 17, i32 80, i32 81, i32 18, i32 19, i32 82, i32 83, i32 20, i32 21, i32 84, i32 85, i32 22, i32 23, i32 86, i32 87, i32 8, i32 9, i32 72, i32 73, i32 10, i32 11, i32 74, i32 75, i32 12, i32 13, i32 76, i32 77, i32 14, i32 15, i32 78, i32 79, i32 24, i32 25, i32 88, i32 89, i32 26, i32 27, i32 90, i32 91, i32 28, i32 29, i32 92, i32 93, i32 30, i32 31, i32 94, i32 95, i32 32, i32 33, i32 96, i32 97, i32 34, i32 35, i32 98, i32 99, i32 36, i32 37, i32 100, i32 101, i32 38, i32 39, i32 102, i32 103, i32 48, i32 49, i32 112, i32 113, i32 50, i32 51, i32 114, i32 115, i32 52, i32 53, i32 116, i32 117, i32 54, i32 55, i32 118, i32 119, i32 40, i32 41, i32 104, i32 105, i32 42, i32 43, i32 106, i32 107, i32 44, i32 45, i32 108, i32 109, i32 46, i32 47, i32 110, i32 111, i32 56, i32 57, i32 120, i32 121, i32 58, i32 59, i32 122, i32 123, i32 60, i32 61, i32 124, i32 125, i32 62, i32 63, i32 126, i32 127>
ret <128 x i8> %p
}
; CHECK-LABEL: vshuff_2f:
; CHECK: [[REG2f:r[0-9]+]] = #47
; CHECK: vshuff(v1,v0,[[REG2f]])
define <128 x i8> @vshuff_2f(<128 x i8> %v0, <128 x i8> %v1) #0 {
%p = shufflevector <128 x i8> %v0, <128 x i8> undef, <128 x i32> < i32 0, i32 64, i32 1, i32 65, i32 2, i32 66, i32 3, i32 67, i32 4, i32 68, i32 5, i32 69, i32 6, i32 70, i32 7, i32 71, i32 16, i32 80, i32 17, i32 81, i32 18, i32 82, i32 19, i32 83, i32 20, i32 84, i32 21, i32 85, i32 22, i32 86, i32 23, i32 87, i32 8, i32 72, i32 9, i32 73, i32 10, i32 74, i32 11, i32 75, i32 12, i32 76, i32 13, i32 77, i32 14, i32 78, i32 15, i32 79, i32 24, i32 88, i32 25, i32 89, i32 26, i32 90, i32 27, i32 91, i32 28, i32 92, i32 29, i32 93, i32 30, i32 94, i32 31, i32 95, i32 32, i32 96, i32 33, i32 97, i32 34, i32 98, i32 35, i32 99, i32 36, i32 100, i32 37, i32 101, i32 38, i32 102, i32 39, i32 103, i32 48, i32 112, i32 49, i32 113, i32 50, i32 114, i32 51, i32 115, i32 52, i32 116, i32 53, i32 117, i32 54, i32 118, i32 55, i32 119, i32 40, i32 104, i32 41, i32 105, i32 42, i32 106, i32 43, i32 107, i32 44, i32 108, i32 45, i32 109, i32 46, i32 110, i32 47, i32 111, i32 56, i32 120, i32 57, i32 121, i32 58, i32 122, i32 59, i32 123, i32 60, i32 124, i32 61, i32 125, i32 62, i32 126, i32 63, i32 127>
ret <128 x i8> %p
}
; CHECK-LABEL: vshuff_30:
; CHECK: [[REG30:r[0-9]+]] = #48
; CHECK: vshuff(v1,v0,[[REG30]])
define <128 x i8> @vshuff_30(<128 x i8> %v0, <128 x i8> %v1) #0 {
%p = shufflevector <128 x i8> %v0, <128 x i8> undef, <128 x i32> < i32 0, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7, i32 8, i32 9, i32 10, i32 11, i32 12, i32 13, i32 14, i32 15, i32 64, i32 65, i32 66, i32 67, i32 68, i32 69, i32 70, i32 71, i32 72, i32 73, i32 74, i32 75, i32 76, i32 77, i32 78, i32 79, i32 16, i32 17, i32 18, i32 19, i32 20, i32 21, i32 22, i32 23, i32 24, i32 25, i32 26, i32 27, i32 28, i32 29, i32 30, i32 31, i32 80, i32 81, i32 82, i32 83, i32 84, i32 85, i32 86, i32 87, i32 88, i32 89, i32 90, i32 91, i32 92, i32 93, i32 94, i32 95, i32 32, i32 33, i32 34, i32 35, i32 36, i32 37, i32 38, i32 39, i32 40, i32 41, i32 42, i32 43, i32 44, i32 45, i32 46, i32 47, i32 96, i32 97, i32 98, i32 99, i32 100, i32 101, i32 102, i32 103, i32 104, i32 105, i32 106, i32 107, i32 108, i32 109, i32 110, i32 111, i32 48, i32 49, i32 50, i32 51, i32 52, i32 53, i32 54, i32 55, i32 56, i32 57, i32 58, i32 59, i32 60, i32 61, i32 62, i32 63, i32 112, i32 113, i32 114, i32 115, i32 116, i32 117, i32 118, i32 119, i32 120, i32 121, i32 122, i32 123, i32 124, i32 125, i32 126, i32 127>
ret <128 x i8> %p
}
; CHECK-LABEL: vshuff_31:
; CHECK: [[REG31:r[0-9]+]] = #49
; CHECK: vshuff(v1,v0,[[REG31]])
define <128 x i8> @vshuff_31(<128 x i8> %v0, <128 x i8> %v1) #0 {
%p = shufflevector <128 x i8> %v0, <128 x i8> undef, <128 x i32> < i32 0, i32 64, i32 2, i32 66, i32 4, i32 68, i32 6, i32 70, i32 8, i32 72, i32 10, i32 74, i32 12, i32 76, i32 14, i32 78, i32 1, i32 65, i32 3, i32 67, i32 5, i32 69, i32 7, i32 71, i32 9, i32 73, i32 11, i32 75, i32 13, i32 77, i32 15, i32 79, i32 16, i32 80, i32 18, i32 82, i32 20, i32 84, i32 22, i32 86, i32 24, i32 88, i32 26, i32 90, i32 28, i32 92, i32 30, i32 94, i32 17, i32 81, i32 19, i32 83, i32 21, i32 85, i32 23, i32 87, i32 25, i32 89, i32 27, i32 91, i32 29, i32 93, i32 31, i32 95, i32 32, i32 96, i32 34, i32 98, i32 36, i32 100, i32 38, i32 102, i32 40, i32 104, i32 42, i32 106, i32 44, i32 108, i32 46, i32 110, i32 33, i32 97, i32 35, i32 99, i32 37, i32 101, i32 39, i32 103, i32 41, i32 105, i32 43, i32 107, i32 45, i32 109, i32 47, i32 111, i32 48, i32 112, i32 50, i32 114, i32 52, i32 116, i32 54, i32 118, i32 56, i32 120, i32 58, i32 122, i32 60, i32 124, i32 62, i32 126, i32 49, i32 113, i32 51, i32 115, i32 53, i32 117, i32 55, i32 119, i32 57, i32 121, i32 59, i32 123, i32 61, i32 125, i32 63, i32 127>
ret <128 x i8> %p
}
; CHECK-LABEL: vshuff_32:
; CHECK: [[REG32:r[0-9]+]] = #50
; CHECK: vshuff(v1,v0,[[REG32]])
define <128 x i8> @vshuff_32(<128 x i8> %v0, <128 x i8> %v1) #0 {
%p = shufflevector <128 x i8> %v0, <128 x i8> undef, <128 x i32> < i32 0, i32 1, i32 64, i32 65, i32 4, i32 5, i32 68, i32 69, i32 8, i32 9, i32 72, i32 73, i32 12, i32 13, i32 76, i32 77, i32 2, i32 3, i32 66, i32 67, i32 6, i32 7, i32 70, i32 71, i32 10, i32 11, i32 74, i32 75, i32 14, i32 15, i32 78, i32 79, i32 16, i32 17, i32 80, i32 81, i32 20, i32 21, i32 84, i32 85, i32 24, i32 25, i32 88, i32 89, i32 28, i32 29, i32 92, i32 93, i32 18, i32 19, i32 82, i32 83, i32 22, i32 23, i32 86, i32 87, i32 26, i32 27, i32 90, i32 91, i32 30, i32 31, i32 94, i32 95, i32 32, i32 33, i32 96, i32 97, i32 36, i32 37, i32 100, i32 101, i32 40, i32 41, i32 104, i32 105, i32 44, i32 45, i32 108, i32 109, i32 34, i32 35, i32 98, i32 99, i32 38, i32 39, i32 102, i32 103, i32 42, i32 43, i32 106, i32 107, i32 46, i32 47, i32 110, i32 111, i32 48, i32 49, i32 112, i32 113, i32 52, i32 53, i32 116, i32 117, i32 56, i32 57, i32 120, i32 121, i32 60, i32 61, i32 124, i32 125, i32 50, i32 51, i32 114, i32 115, i32 54, i32 55, i32 118, i32 119, i32 58, i32 59, i32 122, i32 123, i32 62, i32 63, i32 126, i32 127>
ret <128 x i8> %p
}
; CHECK-LABEL: vshuff_33:
; CHECK: [[REG33:r[0-9]+]] = #51
; CHECK: vshuff(v1,v0,[[REG33]])
define <128 x i8> @vshuff_33(<128 x i8> %v0, <128 x i8> %v1) #0 {
%p = shufflevector <128 x i8> %v0, <128 x i8> undef, <128 x i32> < i32 0, i32 64, i32 1, i32 65, i32 4, i32 68, i32 5, i32 69, i32 8, i32 72, i32 9, i32 73, i32 12, i32 76, i32 13, i32 77, i32 2, i32 66, i32 3, i32 67, i32 6, i32 70, i32 7, i32 71, i32 10, i32 74, i32 11, i32 75, i32 14, i32 78, i32 15, i32 79, i32 16, i32 80, i32 17, i32 81, i32 20, i32 84, i32 21, i32 85, i32 24, i32 88, i32 25, i32 89, i32 28, i32 92, i32 29, i32 93, i32 18, i32 82, i32 19, i32 83, i32 22, i32 86, i32 23, i32 87, i32 26, i32 90, i32 27, i32 91, i32 30, i32 94, i32 31, i32 95, i32 32, i32 96, i32 33, i32 97, i32 36, i32 100, i32 37, i32 101, i32 40, i32 104, i32 41, i32 105, i32 44, i32 108, i32 45, i32 109, i32 34, i32 98, i32 35, i32 99, i32 38, i32 102, i32 39, i32 103, i32 42, i32 106, i32 43, i32 107, i32 46, i32 110, i32 47, i32 111, i32 48, i32 112, i32 49, i32 113, i32 52, i32 116, i32 53, i32 117, i32 56, i32 120, i32 57, i32 121, i32 60, i32 124, i32 61, i32 125, i32 50, i32 114, i32 51, i32 115, i32 54, i32 118, i32 55, i32 119, i32 58, i32 122, i32 59, i32 123, i32 62, i32 126, i32 63, i32 127>
ret <128 x i8> %p
}
; CHECK-LABEL: vshuff_34:
; CHECK: [[REG34:r[0-9]+]] = #52
; CHECK: vshuff(v1,v0,[[REG34]])
define <128 x i8> @vshuff_34(<128 x i8> %v0, <128 x i8> %v1) #0 {
%p = shufflevector <128 x i8> %v0, <128 x i8> undef, <128 x i32> < i32 0, i32 1, i32 2, i32 3, i32 64, i32 65, i32 66, i32 67, i32 8, i32 9, i32 10, i32 11, i32 72, i32 73, i32 74, i32 75, i32 4, i32 5, i32 6, i32 7, i32 68, i32 69, i32 70, i32 71, i32 12, i32 13, i32 14, i32 15, i32 76, i32 77, i32 78, i32 79, i32 16, i32 17, i32 18, i32 19, i32 80, i32 81, i32 82, i32 83, i32 24, i32 25, i32 26, i32 27, i32 88, i32 89, i32 90, i32 91, i32 20, i32 21, i32 22, i32 23, i32 84, i32 85, i32 86, i32 87, i32 28, i32 29, i32 30, i32 31, i32 92, i32 93, i32 94, i32 95, i32 32, i32 33, i32 34, i32 35, i32 96, i32 97, i32 98, i32 99, i32 40, i32 41, i32 42, i32 43, i32 104, i32 105, i32 106, i32 107, i32 36, i32 37, i32 38, i32 39, i32 100, i32 101, i32 102, i32 103, i32 44, i32 45, i32 46, i32 47, i32 108, i32 109, i32 110, i32 111, i32 48, i32 49, i32 50, i32 51, i32 112, i32 113, i32 114, i32 115, i32 56, i32 57, i32 58, i32 59, i32 120, i32 121, i32 122, i32 123, i32 52, i32 53, i32 54, i32 55, i32 116, i32 117, i32 118, i32 119, i32 60, i32 61, i32 62, i32 63, i32 124, i32 125, i32 126, i32 127>
ret <128 x i8> %p
}
; CHECK-LABEL: vshuff_35:
; CHECK: [[REG35:r[0-9]+]] = #53
; CHECK: vshuff(v1,v0,[[REG35]])
define <128 x i8> @vshuff_35(<128 x i8> %v0, <128 x i8> %v1) #0 {
%p = shufflevector <128 x i8> %v0, <128 x i8> undef, <128 x i32> < i32 0, i32 64, i32 2, i32 66, i32 1, i32 65, i32 3, i32 67, i32 8, i32 72, i32 10, i32 74, i32 9, i32 73, i32 11, i32 75, i32 4, i32 68, i32 6, i32 70, i32 5, i32 69, i32 7, i32 71, i32 12, i32 76, i32 14, i32 78, i32 13, i32 77, i32 15, i32 79, i32 16, i32 80, i32 18, i32 82, i32 17, i32 81, i32 19, i32 83, i32 24, i32 88, i32 26, i32 90, i32 25, i32 89, i32 27, i32 91, i32 20, i32 84, i32 22, i32 86, i32 21, i32 85, i32 23, i32 87, i32 28, i32 92, i32 30, i32 94, i32 29, i32 93, i32 31, i32 95, i32 32, i32 96, i32 34, i32 98, i32 33, i32 97, i32 35, i32 99, i32 40, i32 104, i32 42, i32 106, i32 41, i32 105, i32 43, i32 107, i32 36, i32 100, i32 38, i32 102, i32 37, i32 101, i32 39, i32 103, i32 44, i32 108, i32 46, i32 110, i32 45, i32 109, i32 47, i32 111, i32 48, i32 112, i32 50, i32 114, i32 49, i32 113, i32 51, i32 115, i32 56, i32 120, i32 58, i32 122, i32 57, i32 121, i32 59, i32 123, i32 52, i32 116, i32 54, i32 118, i32 53, i32 117, i32 55, i32 119, i32 60, i32 124, i32 62, i32 126, i32 61, i32 125, i32 63, i32 127>
ret <128 x i8> %p
}
; CHECK-LABEL: vshuff_36:
; CHECK: [[REG36:r[0-9]+]] = #54
; CHECK: vshuff(v1,v0,[[REG36]])
define <128 x i8> @vshuff_36(<128 x i8> %v0, <128 x i8> %v1) #0 {
%p = shufflevector <128 x i8> %v0, <128 x i8> undef, <128 x i32> < i32 0, i32 1, i32 64, i32 65, i32 2, i32 3, i32 66, i32 67, i32 8, i32 9, i32 72, i32 73, i32 10, i32 11, i32 74, i32 75, i32 4, i32 5, i32 68, i32 69, i32 6, i32 7, i32 70, i32 71, i32 12, i32 13, i32 76, i32 77, i32 14, i32 15, i32 78, i32 79, i32 16, i32 17, i32 80, i32 81, i32 18, i32 19, i32 82, i32 83, i32 24, i32 25, i32 88, i32 89, i32 26, i32 27, i32 90, i32 91, i32 20, i32 21, i32 84, i32 85, i32 22, i32 23, i32 86, i32 87, i32 28, i32 29, i32 92, i32 93, i32 30, i32 31, i32 94, i32 95, i32 32, i32 33, i32 96, i32 97, i32 34, i32 35, i32 98, i32 99, i32 40, i32 41, i32 104, i32 105, i32 42, i32 43, i32 106, i32 107, i32 36, i32 37, i32 100, i32 101, i32 38, i32 39, i32 102, i32 103, i32 44, i32 45, i32 108, i32 109, i32 46, i32 47, i32 110, i32 111, i32 48, i32 49, i32 112, i32 113, i32 50, i32 51, i32 114, i32 115, i32 56, i32 57, i32 120, i32 121, i32 58, i32 59, i32 122, i32 123, i32 52, i32 53, i32 116, i32 117, i32 54, i32 55, i32 118, i32 119, i32 60, i32 61, i32 124, i32 125, i32 62, i32 63, i32 126, i32 127>
ret <128 x i8> %p
}
; CHECK-LABEL: vshuff_37:
; CHECK: [[REG37:r[0-9]+]] = #55
; CHECK: vshuff(v1,v0,[[REG37]])
define <128 x i8> @vshuff_37(<128 x i8> %v0, <128 x i8> %v1) #0 {
%p = shufflevector <128 x i8> %v0, <128 x i8> undef, <128 x i32> < i32 0, i32 64, i32 1, i32 65, i32 2, i32 66, i32 3, i32 67, i32 8, i32 72, i32 9, i32 73, i32 10, i32 74, i32 11, i32 75, i32 4, i32 68, i32 5, i32 69, i32 6, i32 70, i32 7, i32 71, i32 12, i32 76, i32 13, i32 77, i32 14, i32 78, i32 15, i32 79, i32 16, i32 80, i32 17, i32 81, i32 18, i32 82, i32 19, i32 83, i32 24, i32 88, i32 25, i32 89, i32 26, i32 90, i32 27, i32 91, i32 20, i32 84, i32 21, i32 85, i32 22, i32 86, i32 23, i32 87, i32 28, i32 92, i32 29, i32 93, i32 30, i32 94, i32 31, i32 95, i32 32, i32 96, i32 33, i32 97, i32 34, i32 98, i32 35, i32 99, i32 40, i32 104, i32 41, i32 105, i32 42, i32 106, i32 43, i32 107, i32 36, i32 100, i32 37, i32 101, i32 38, i32 102, i32 39, i32 103, i32 44, i32 108, i32 45, i32 109, i32 46, i32 110, i32 47, i32 111, i32 48, i32 112, i32 49, i32 113, i32 50, i32 114, i32 51, i32 115, i32 56, i32 120, i32 57, i32 121, i32 58, i32 122, i32 59, i32 123, i32 52, i32 116, i32 53, i32 117, i32 54, i32 118, i32 55, i32 119, i32 60, i32 124, i32 61, i32 125, i32 62, i32 126, i32 63, i32 127>
ret <128 x i8> %p
}
; CHECK-LABEL: vshuff_38:
; CHECK: [[REG38:r[0-9]+]] = #56
; CHECK: vshuff(v1,v0,[[REG38]])
define <128 x i8> @vshuff_38(<128 x i8> %v0, <128 x i8> %v1) #0 {
%p = shufflevector <128 x i8> %v0, <128 x i8> undef, <128 x i32> < i32 0, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7, i32 64, i32 65, i32 66, i32 67, i32 68, i32 69, i32 70, i32 71, i32 8, i32 9, i32 10, i32 11, i32 12, i32 13, i32 14, i32 15, i32 72, i32 73, i32 74, i32 75, i32 76, i32 77, i32 78, i32 79, i32 16, i32 17, i32 18, i32 19, i32 20, i32 21, i32 22, i32 23, i32 80, i32 81, i32 82, i32 83, i32 84, i32 85, i32 86, i32 87, i32 24, i32 25, i32 26, i32 27, i32 28, i32 29, i32 30, i32 31, i32 88, i32 89, i32 90, i32 91, i32 92, i32 93, i32 94, i32 95, i32 32, i32 33, i32 34, i32 35, i32 36, i32 37, i32 38, i32 39, i32 96, i32 97, i32 98, i32 99, i32 100, i32 101, i32 102, i32 103, i32 40, i32 41, i32 42, i32 43, i32 44, i32 45, i32 46, i32 47, i32 104, i32 105, i32 106, i32 107, i32 108, i32 109, i32 110, i32 111, i32 48, i32 49, i32 50, i32 51, i32 52, i32 53, i32 54, i32 55, i32 112, i32 113, i32 114, i32 115, i32 116, i32 117, i32 118, i32 119, i32 56, i32 57, i32 58, i32 59, i32 60, i32 61, i32 62, i32 63, i32 120, i32 121, i32 122, i32 123, i32 124, i32 125, i32 126, i32 127>
ret <128 x i8> %p
}
; CHECK-LABEL: vshuff_39:
; CHECK: [[REG39:r[0-9]+]] = #57
; CHECK: vshuff(v1,v0,[[REG39]])
define <128 x i8> @vshuff_39(<128 x i8> %v0, <128 x i8> %v1) #0 {
%p = shufflevector <128 x i8> %v0, <128 x i8> undef, <128 x i32> < i32 0, i32 64, i32 2, i32 66, i32 4, i32 68, i32 6, i32 70, i32 1, i32 65, i32 3, i32 67, i32 5, i32 69, i32 7, i32 71, i32 8, i32 72, i32 10, i32 74, i32 12, i32 76, i32 14, i32 78, i32 9, i32 73, i32 11, i32 75, i32 13, i32 77, i32 15, i32 79, i32 16, i32 80, i32 18, i32 82, i32 20, i32 84, i32 22, i32 86, i32 17, i32 81, i32 19, i32 83, i32 21, i32 85, i32 23, i32 87, i32 24, i32 88, i32 26, i32 90, i32 28, i32 92, i32 30, i32 94, i32 25, i32 89, i32 27, i32 91, i32 29, i32 93, i32 31, i32 95, i32 32, i32 96, i32 34, i32 98, i32 36, i32 100, i32 38, i32 102, i32 33, i32 97, i32 35, i32 99, i32 37, i32 101, i32 39, i32 103, i32 40, i32 104, i32 42, i32 106, i32 44, i32 108, i32 46, i32 110, i32 41, i32 105, i32 43, i32 107, i32 45, i32 109, i32 47, i32 111, i32 48, i32 112, i32 50, i32 114, i32 52, i32 116, i32 54, i32 118, i32 49, i32 113, i32 51, i32 115, i32 53, i32 117, i32 55, i32 119, i32 56, i32 120, i32 58, i32 122, i32 60, i32 124, i32 62, i32 126, i32 57, i32 121, i32 59, i32 123, i32 61, i32 125, i32 63, i32 127>
ret <128 x i8> %p
}
; CHECK-LABEL: vshuff_3a:
; CHECK: [[REG3a:r[0-9]+]] = #58
; CHECK: vshuff(v1,v0,[[REG3a]])
define <128 x i8> @vshuff_3a(<128 x i8> %v0, <128 x i8> %v1) #0 {
%p = shufflevector <128 x i8> %v0, <128 x i8> undef, <128 x i32> < i32 0, i32 1, i32 64, i32 65, i32 4, i32 5, i32 68, i32 69, i32 2, i32 3, i32 66, i32 67, i32 6, i32 7, i32 70, i32 71, i32 8, i32 9, i32 72, i32 73, i32 12, i32 13, i32 76, i32 77, i32 10, i32 11, i32 74, i32 75, i32 14, i32 15, i32 78, i32 79, i32 16, i32 17, i32 80, i32 81, i32 20, i32 21, i32 84, i32 85, i32 18, i32 19, i32 82, i32 83, i32 22, i32 23, i32 86, i32 87, i32 24, i32 25, i32 88, i32 89, i32 28, i32 29, i32 92, i32 93, i32 26, i32 27, i32 90, i32 91, i32 30, i32 31, i32 94, i32 95, i32 32, i32 33, i32 96, i32 97, i32 36, i32 37, i32 100, i32 101, i32 34, i32 35, i32 98, i32 99, i32 38, i32 39, i32 102, i32 103, i32 40, i32 41, i32 104, i32 105, i32 44, i32 45, i32 108, i32 109, i32 42, i32 43, i32 106, i32 107, i32 46, i32 47, i32 110, i32 111, i32 48, i32 49, i32 112, i32 113, i32 52, i32 53, i32 116, i32 117, i32 50, i32 51, i32 114, i32 115, i32 54, i32 55, i32 118, i32 119, i32 56, i32 57, i32 120, i32 121, i32 60, i32 61, i32 124, i32 125, i32 58, i32 59, i32 122, i32 123, i32 62, i32 63, i32 126, i32 127>
ret <128 x i8> %p
}
; CHECK-LABEL: vshuff_3b:
; CHECK: [[REG3b:r[0-9]+]] = #59
; CHECK: vshuff(v1,v0,[[REG3b]])
define <128 x i8> @vshuff_3b(<128 x i8> %v0, <128 x i8> %v1) #0 {
%p = shufflevector <128 x i8> %v0, <128 x i8> undef, <128 x i32> < i32 0, i32 64, i32 1, i32 65, i32 4, i32 68, i32 5, i32 69, i32 2, i32 66, i32 3, i32 67, i32 6, i32 70, i32 7, i32 71, i32 8, i32 72, i32 9, i32 73, i32 12, i32 76, i32 13, i32 77, i32 10, i32 74, i32 11, i32 75, i32 14, i32 78, i32 15, i32 79, i32 16, i32 80, i32 17, i32 81, i32 20, i32 84, i32 21, i32 85, i32 18, i32 82, i32 19, i32 83, i32 22, i32 86, i32 23, i32 87, i32 24, i32 88, i32 25, i32 89, i32 28, i32 92, i32 29, i32 93, i32 26, i32 90, i32 27, i32 91, i32 30, i32 94, i32 31, i32 95, i32 32, i32 96, i32 33, i32 97, i32 36, i32 100, i32 37, i32 101, i32 34, i32 98, i32 35, i32 99, i32 38, i32 102, i32 39, i32 103, i32 40, i32 104, i32 41, i32 105, i32 44, i32 108, i32 45, i32 109, i32 42, i32 106, i32 43, i32 107, i32 46, i32 110, i32 47, i32 111, i32 48, i32 112, i32 49, i32 113, i32 52, i32 116, i32 53, i32 117, i32 50, i32 114, i32 51, i32 115, i32 54, i32 118, i32 55, i32 119, i32 56, i32 120, i32 57, i32 121, i32 60, i32 124, i32 61, i32 125, i32 58, i32 122, i32 59, i32 123, i32 62, i32 126, i32 63, i32 127>
ret <128 x i8> %p
}
; CHECK-LABEL: vshuff_3c:
; CHECK: [[REG3c:r[0-9]+]] = #60
; CHECK: vshuff(v1,v0,[[REG3c]])
define <128 x i8> @vshuff_3c(<128 x i8> %v0, <128 x i8> %v1) #0 {
%p = shufflevector <128 x i8> %v0, <128 x i8> undef, <128 x i32> < i32 0, i32 1, i32 2, i32 3, i32 64, i32 65, i32 66, i32 67, i32 4, i32 5, i32 6, i32 7, i32 68, i32 69, i32 70, i32 71, i32 8, i32 9, i32 10, i32 11, i32 72, i32 73, i32 74, i32 75, i32 12, i32 13, i32 14, i32 15, i32 76, i32 77, i32 78, i32 79, i32 16, i32 17, i32 18, i32 19, i32 80, i32 81, i32 82, i32 83, i32 20, i32 21, i32 22, i32 23, i32 84, i32 85, i32 86, i32 87, i32 24, i32 25, i32 26, i32 27, i32 88, i32 89, i32 90, i32 91, i32 28, i32 29, i32 30, i32 31, i32 92, i32 93, i32 94, i32 95, i32 32, i32 33, i32 34, i32 35, i32 96, i32 97, i32 98, i32 99, i32 36, i32 37, i32 38, i32 39, i32 100, i32 101, i32 102, i32 103, i32 40, i32 41, i32 42, i32 43, i32 104, i32 105, i32 106, i32 107, i32 44, i32 45, i32 46, i32 47, i32 108, i32 109, i32 110, i32 111, i32 48, i32 49, i32 50, i32 51, i32 112, i32 113, i32 114, i32 115, i32 52, i32 53, i32 54, i32 55, i32 116, i32 117, i32 118, i32 119, i32 56, i32 57, i32 58, i32 59, i32 120, i32 121, i32 122, i32 123, i32 60, i32 61, i32 62, i32 63, i32 124, i32 125, i32 126, i32 127>
ret <128 x i8> %p
}
; CHECK-LABEL: vshuff_3d:
; CHECK: [[REG3d:r[0-9]+]] = #61
; CHECK: vshuff(v1,v0,[[REG3d]])
define <128 x i8> @vshuff_3d(<128 x i8> %v0, <128 x i8> %v1) #0 {
%p = shufflevector <128 x i8> %v0, <128 x i8> undef, <128 x i32> < i32 0, i32 64, i32 2, i32 66, i32 1, i32 65, i32 3, i32 67, i32 4, i32 68, i32 6, i32 70, i32 5, i32 69, i32 7, i32 71, i32 8, i32 72, i32 10, i32 74, i32 9, i32 73, i32 11, i32 75, i32 12, i32 76, i32 14, i32 78, i32 13, i32 77, i32 15, i32 79, i32 16, i32 80, i32 18, i32 82, i32 17, i32 81, i32 19, i32 83, i32 20, i32 84, i32 22, i32 86, i32 21, i32 85, i32 23, i32 87, i32 24, i32 88, i32 26, i32 90, i32 25, i32 89, i32 27, i32 91, i32 28, i32 92, i32 30, i32 94, i32 29, i32 93, i32 31, i32 95, i32 32, i32 96, i32 34, i32 98, i32 33, i32 97, i32 35, i32 99, i32 36, i32 100, i32 38, i32 102, i32 37, i32 101, i32 39, i32 103, i32 40, i32 104, i32 42, i32 106, i32 41, i32 105, i32 43, i32 107, i32 44, i32 108, i32 46, i32 110, i32 45, i32 109, i32 47, i32 111, i32 48, i32 112, i32 50, i32 114, i32 49, i32 113, i32 51, i32 115, i32 52, i32 116, i32 54, i32 118, i32 53, i32 117, i32 55, i32 119, i32 56, i32 120, i32 58, i32 122, i32 57, i32 121, i32 59, i32 123, i32 60, i32 124, i32 62, i32 126, i32 61, i32 125, i32 63, i32 127>
ret <128 x i8> %p
}
; CHECK-LABEL: vshuff_3e:
; CHECK: [[REG3e:r[0-9]+]] = #62
; CHECK: vshuff(v1,v0,[[REG3e]])
define <128 x i8> @vshuff_3e(<128 x i8> %v0, <128 x i8> %v1) #0 {
%p = shufflevector <128 x i8> %v0, <128 x i8> undef, <128 x i32> < i32 0, i32 1, i32 64, i32 65, i32 2, i32 3, i32 66, i32 67, i32 4, i32 5, i32 68, i32 69, i32 6, i32 7, i32 70, i32 71, i32 8, i32 9, i32 72, i32 73, i32 10, i32 11, i32 74, i32 75, i32 12, i32 13, i32 76, i32 77, i32 14, i32 15, i32 78, i32 79, i32 16, i32 17, i32 80, i32 81, i32 18, i32 19, i32 82, i32 83, i32 20, i32 21, i32 84, i32 85, i32 22, i32 23, i32 86, i32 87, i32 24, i32 25, i32 88, i32 89, i32 26, i32 27, i32 90, i32 91, i32 28, i32 29, i32 92, i32 93, i32 30, i32 31, i32 94, i32 95, i32 32, i32 33, i32 96, i32 97, i32 34, i32 35, i32 98, i32 99, i32 36, i32 37, i32 100, i32 101, i32 38, i32 39, i32 102, i32 103, i32 40, i32 41, i32 104, i32 105, i32 42, i32 43, i32 106, i32 107, i32 44, i32 45, i32 108, i32 109, i32 46, i32 47, i32 110, i32 111, i32 48, i32 49, i32 112, i32 113, i32 50, i32 51, i32 114, i32 115, i32 52, i32 53, i32 116, i32 117, i32 54, i32 55, i32 118, i32 119, i32 56, i32 57, i32 120, i32 121, i32 58, i32 59, i32 122, i32 123, i32 60, i32 61, i32 124, i32 125, i32 62, i32 63, i32 126, i32 127>
ret <128 x i8> %p
}
; CHECK-LABEL: vshuff_3f:
; CHECK: [[REG3f:r[0-9]+]] = #63
; CHECK: vshuff(v1,v0,[[REG3f]])
define <128 x i8> @vshuff_3f(<128 x i8> %v0, <128 x i8> %v1) #0 {
%p = shufflevector <128 x i8> %v0, <128 x i8> undef, <128 x i32> < i32 0, i32 64, i32 1, i32 65, i32 2, i32 66, i32 3, i32 67, i32 4, i32 68, i32 5, i32 69, i32 6, i32 70, i32 7, i32 71, i32 8, i32 72, i32 9, i32 73, i32 10, i32 74, i32 11, i32 75, i32 12, i32 76, i32 13, i32 77, i32 14, i32 78, i32 15, i32 79, i32 16, i32 80, i32 17, i32 81, i32 18, i32 82, i32 19, i32 83, i32 20, i32 84, i32 21, i32 85, i32 22, i32 86, i32 23, i32 87, i32 24, i32 88, i32 25, i32 89, i32 26, i32 90, i32 27, i32 91, i32 28, i32 92, i32 29, i32 93, i32 30, i32 94, i32 31, i32 95, i32 32, i32 96, i32 33, i32 97, i32 34, i32 98, i32 35, i32 99, i32 36, i32 100, i32 37, i32 101, i32 38, i32 102, i32 39, i32 103, i32 40, i32 104, i32 41, i32 105, i32 42, i32 106, i32 43, i32 107, i32 44, i32 108, i32 45, i32 109, i32 46, i32 110, i32 47, i32 111, i32 48, i32 112, i32 49, i32 113, i32 50, i32 114, i32 51, i32 115, i32 52, i32 116, i32 53, i32 117, i32 54, i32 118, i32 55, i32 119, i32 56, i32 120, i32 57, i32 121, i32 58, i32 122, i32 59, i32 123, i32 60, i32 124, i32 61, i32 125, i32 62, i32 126, i32 63, i32 127>
ret <128 x i8> %p
}
attributes #0 = { nounwind readnone "target-cpu"="hexagonv60" "target-features"="+hvx,+hvx-length64b" }

View File

@ -0,0 +1,237 @@
; RUN: llc -march=hexagon < %s | FileCheck %s
; Generator: vdeal(0x37), vdeal(0x53), vshuff(0x2f), vdeal(0x4b), vdeal(0x27), vdeal(0x43), vshuff(0x1f), vdeal(0x5b), vshuff(0x7e), vshuff(0x6c), vdeal(0x5a), vdeal(0x38), vshuff(0x16), vshuff(0x44), vdeal(0x72)
; CHECK-LABEL: test_0000:
; CHECK-DAG: [[R00:r[0-9]+]] = #66
; CHECK-DAG: [[R01:r[0-9]+]] = #46
; CHECK-DAG: [[R02:r[0-9]+]] = #1
; CHECK: v[[H0:[0-9]+]]:[[L0:[0-9]+]] = vshuff(v1,v0,[[R00]])
; CHECK: v[[H0]]:[[L0]] = vshuff(v[[H0]],v[[L0]],[[R01]])
; CHECK: v[[H0]]:[[L0]] = vshuff(v[[H0]],v[[L0]],[[R02]])
; CHECK-NOT: v{{[0-9:]+}} =
define <256 x i8> @test_0000(<256 x i8> %v0) #0 {
%p = shufflevector <256 x i8> %v0, <256 x i8> undef, <256 x i32><i32 0, i32 32, i32 64, i32 96, i32 128, i32 160, i32 192, i32 224, i32 4, i32 36, i32 68, i32 100, i32 132, i32 164, i32 196, i32 228, i32 16, i32 48, i32 80, i32 112, i32 144, i32 176, i32 208, i32 240, i32 20, i32 52, i32 84, i32 116, i32 148, i32 180, i32 212, i32 244, i32 8, i32 40, i32 72, i32 104, i32 136, i32 168, i32 200, i32 232, i32 12, i32 44, i32 76, i32 108, i32 140, i32 172, i32 204, i32 236, i32 24, i32 56, i32 88, i32 120, i32 152, i32 184, i32 216, i32 248, i32 28, i32 60, i32 92, i32 124, i32 156, i32 188, i32 220, i32 252, i32 2, i32 34, i32 66, i32 98, i32 130, i32 162, i32 194, i32 226, i32 6, i32 38, i32 70, i32 102, i32 134, i32 166, i32 198, i32 230, i32 18, i32 50, i32 82, i32 114, i32 146, i32 178, i32 210, i32 242, i32 22, i32 54, i32 86, i32 118, i32 150, i32 182, i32 214, i32 246, i32 10, i32 42, i32 74, i32 106, i32 138, i32 170, i32 202, i32 234, i32 14, i32 46, i32 78, i32 110, i32 142, i32 174, i32 206, i32 238, i32 26, i32 58, i32 90, i32 122, i32 154, i32 186, i32 218, i32 250, i32 30, i32 62, i32 94, i32 126, i32 158, i32 190, i32 222, i32 254, i32 1, i32 33, i32 65, i32 97, i32 129, i32 161, i32 193, i32 225, i32 5, i32 37, i32 69, i32 101, i32 133, i32 165, i32 197, i32 229, i32 17, i32 49, i32 81, i32 113, i32 145, i32 177, i32 209, i32 241, i32 21, i32 53, i32 85, i32 117, i32 149, i32 181, i32 213, i32 245, i32 9, i32 41, i32 73, i32 105, i32 137, i32 169, i32 201, i32 233, i32 13, i32 45, i32 77, i32 109, i32 141, i32 173, i32 205, i32 237, i32 25, i32 57, i32 89, i32 121, i32 153, i32 185, i32 217, i32 249, i32 29, i32 61, i32 93, i32 125, i32 157, i32 189, i32 221, i32 253, i32 3, i32 35, i32 67, i32 99, i32 131, i32 163, i32 195, i32 227, i32 7, i32 39, i32 71, i32 103, i32 135, i32 167, i32 199, i32 231, i32 19, i32 51, i32 83, i32 115, i32 147, i32 179, i32 211, i32 243, i32 23, i32 55, i32 87, i32 119, i32 151, i32 183, i32 215, i32 247, i32 11, i32 43, i32 75, i32 107, i32 139, i32 171, i32 203, i32 235, i32 15, i32 47, i32 79, i32 111, i32 143, i32 175, i32 207, i32 239, i32 27, i32 59, i32 91, i32 123, i32 155, i32 187, i32 219, i32 251, i32 31, i32 63, i32 95, i32 127, i32 159, i32 191, i32 223, i32 255>
ret <256 x i8> %p
}
; Generator: vshuff(0x10), vdeal(0x2e), vshuff(0x1c), vdeal(0x2a), vshuff(0x68), vshuff(0x46), vdeal(0x74), vdeal(0x42), vdeal(0x40), vdeal(0x5e), vshuff(0x0d), vshuff(0x71), vshuff(0x35), vshuff(0x39), vshuff(0x7d)
; CHECK-LABEL: test_0001:
; CHECK-DAG: [[R10:r[0-9]+]] = #24
; CHECK-DAG: [[R11:r[0-9]+]] = #9
; CHECK-DAG: [[R12:r[0-9]+]] = #68
; CHECK-DAG: [[R13:r[0-9]+]] = #34
; CHECK: v[[H1:[0-9]+]]:[[L1:[0-9]+]] = vshuff(v1,v0,[[R10]])
; CHECK: v[[H1]]:[[L1]] = vdeal(v[[H1]],v[[L1]],[[R11]])
; CHECK: v[[H1]]:[[L1]] = vdeal(v[[H1]],v[[L1]],[[R12]])
; CHECK: v[[H1]]:[[L1]] = vdeal(v[[H1]],v[[L1]],[[R13]])
; CHECK-NOT: v{{[0-9:]+}} =
define <256 x i8> @test_0001(<256 x i8> %v0) #0 {
%p = shufflevector <256 x i8> %v0, <256 x i8> undef, <256 x i32><i32 0, i32 128, i32 32, i32 160, i32 64, i32 192, i32 96, i32 224, i32 16, i32 144, i32 48, i32 176, i32 80, i32 208, i32 112, i32 240, i32 8, i32 136, i32 40, i32 168, i32 72, i32 200, i32 104, i32 232, i32 24, i32 152, i32 56, i32 184, i32 88, i32 216, i32 120, i32 248, i32 4, i32 132, i32 36, i32 164, i32 68, i32 196, i32 100, i32 228, i32 20, i32 148, i32 52, i32 180, i32 84, i32 212, i32 116, i32 244, i32 12, i32 140, i32 44, i32 172, i32 76, i32 204, i32 108, i32 236, i32 28, i32 156, i32 60, i32 188, i32 92, i32 220, i32 124, i32 252, i32 1, i32 129, i32 33, i32 161, i32 65, i32 193, i32 97, i32 225, i32 17, i32 145, i32 49, i32 177, i32 81, i32 209, i32 113, i32 241, i32 9, i32 137, i32 41, i32 169, i32 73, i32 201, i32 105, i32 233, i32 25, i32 153, i32 57, i32 185, i32 89, i32 217, i32 121, i32 249, i32 5, i32 133, i32 37, i32 165, i32 69, i32 197, i32 101, i32 229, i32 21, i32 149, i32 53, i32 181, i32 85, i32 213, i32 117, i32 245, i32 13, i32 141, i32 45, i32 173, i32 77, i32 205, i32 109, i32 237, i32 29, i32 157, i32 61, i32 189, i32 93, i32 221, i32 125, i32 253, i32 2, i32 130, i32 34, i32 162, i32 66, i32 194, i32 98, i32 226, i32 18, i32 146, i32 50, i32 178, i32 82, i32 210, i32 114, i32 242, i32 10, i32 138, i32 42, i32 170, i32 74, i32 202, i32 106, i32 234, i32 26, i32 154, i32 58, i32 186, i32 90, i32 218, i32 122, i32 250, i32 6, i32 134, i32 38, i32 166, i32 70, i32 198, i32 102, i32 230, i32 22, i32 150, i32 54, i32 182, i32 86, i32 214, i32 118, i32 246, i32 14, i32 142, i32 46, i32 174, i32 78, i32 206, i32 110, i32 238, i32 30, i32 158, i32 62, i32 190, i32 94, i32 222, i32 126, i32 254, i32 3, i32 131, i32 35, i32 163, i32 67, i32 195, i32 99, i32 227, i32 19, i32 147, i32 51, i32 179, i32 83, i32 211, i32 115, i32 243, i32 11, i32 139, i32 43, i32 171, i32 75, i32 203, i32 107, i32 235, i32 27, i32 155, i32 59, i32 187, i32 91, i32 219, i32 123, i32 251, i32 7, i32 135, i32 39, i32 167, i32 71, i32 199, i32 103, i32 231, i32 23, i32 151, i32 55, i32 183, i32 87, i32 215, i32 119, i32 247, i32 15, i32 143, i32 47, i32 175, i32 79, i32 207, i32 111, i32 239, i32 31, i32 159, i32 63, i32 191, i32 95, i32 223, i32 127, i32 255>
ret <256 x i8> %p
}
; Generator: vshuff(0x01), vdeal(0x25), vdeal(0x29), vdeal(0x6d), vshuff(0x58), vshuff(0x7a), vdeal(0x47), vdeal(0x49), vdeal(0x65), vshuff(0x1e), vdeal(0x1d), vshuff(0x0c), vshuff(0x08), vshuff(0x62), vdeal(0x73)
; CHECK-LABEL: test_0002:
; CHECK-DAG: [[R20:r[0-9]+]] = #18
; CHECK-DAG: [[R21:r[0-9]+]] = #10
; CHECK-DAG: [[R22:r[0-9]+]] = #68
; CHECK-DAG: [[R23:r[0-9]+]] = #5
; CHECK: v[[H2:[0-9]+]]:[[L2:[0-9]+]] = vshuff(v1,v0,[[R20]])
; CHECK: v[[H2]]:[[L2]] = vdeal(v[[H2]],v[[L2]],[[R21]])
; CHECK: v[[H2]]:[[L2]] = vshuff(v[[H2]],v[[L2]],[[R22]])
; CHECK: v[[H2]]:[[L2]] = vdeal(v[[H2]],v[[L2]],[[R23]])
; CHECK-NOT: v{{[0-9:]+}} =
define <256 x i8> @test_0002(<256 x i8> %v0) #0 {
%p = shufflevector <256 x i8> %v0, <256 x i8> undef, <256 x i32><i32 0, i32 128, i32 8, i32 136, i32 64, i32 192, i32 72, i32 200, i32 16, i32 144, i32 24, i32 152, i32 80, i32 208, i32 88, i32 216, i32 2, i32 130, i32 10, i32 138, i32 66, i32 194, i32 74, i32 202, i32 18, i32 146, i32 26, i32 154, i32 82, i32 210, i32 90, i32 218, i32 32, i32 160, i32 40, i32 168, i32 96, i32 224, i32 104, i32 232, i32 48, i32 176, i32 56, i32 184, i32 112, i32 240, i32 120, i32 248, i32 34, i32 162, i32 42, i32 170, i32 98, i32 226, i32 106, i32 234, i32 50, i32 178, i32 58, i32 186, i32 114, i32 242, i32 122, i32 250, i32 4, i32 132, i32 12, i32 140, i32 68, i32 196, i32 76, i32 204, i32 20, i32 148, i32 28, i32 156, i32 84, i32 212, i32 92, i32 220, i32 6, i32 134, i32 14, i32 142, i32 70, i32 198, i32 78, i32 206, i32 22, i32 150, i32 30, i32 158, i32 86, i32 214, i32 94, i32 222, i32 36, i32 164, i32 44, i32 172, i32 100, i32 228, i32 108, i32 236, i32 52, i32 180, i32 60, i32 188, i32 116, i32 244, i32 124, i32 252, i32 38, i32 166, i32 46, i32 174, i32 102, i32 230, i32 110, i32 238, i32 54, i32 182, i32 62, i32 190, i32 118, i32 246, i32 126, i32 254, i32 1, i32 129, i32 9, i32 137, i32 65, i32 193, i32 73, i32 201, i32 17, i32 145, i32 25, i32 153, i32 81, i32 209, i32 89, i32 217, i32 3, i32 131, i32 11, i32 139, i32 67, i32 195, i32 75, i32 203, i32 19, i32 147, i32 27, i32 155, i32 83, i32 211, i32 91, i32 219, i32 33, i32 161, i32 41, i32 169, i32 97, i32 225, i32 105, i32 233, i32 49, i32 177, i32 57, i32 185, i32 113, i32 241, i32 121, i32 249, i32 35, i32 163, i32 43, i32 171, i32 99, i32 227, i32 107, i32 235, i32 51, i32 179, i32 59, i32 187, i32 115, i32 243, i32 123, i32 251, i32 5, i32 133, i32 13, i32 141, i32 69, i32 197, i32 77, i32 205, i32 21, i32 149, i32 29, i32 157, i32 85, i32 213, i32 93, i32 221, i32 7, i32 135, i32 15, i32 143, i32 71, i32 199, i32 79, i32 207, i32 23, i32 151, i32 31, i32 159, i32 87, i32 215, i32 95, i32 223, i32 37, i32 165, i32 45, i32 173, i32 101, i32 229, i32 109, i32 237, i32 53, i32 181, i32 61, i32 189, i32 117, i32 245, i32 125, i32 253, i32 39, i32 167, i32 47, i32 175, i32 103, i32 231, i32 111, i32 239, i32 55, i32 183, i32 63, i32 191, i32 119, i32 247, i32 127, i32 255>
ret <256 x i8> %p
}
; Generator: vshuff(0x60), vdeal(0x36), vdeal(0x11), vdeal(0x57), vdeal(0x45), vshuff(0x03), vdeal(0x14), vdeal(0x64), vdeal(0x3c), vdeal(0x30), vshuff(0x4e), vshuff(0x55), vshuff(0x4a), vshuff(0x4f), vshuff(0x3f)
; CHECK-LABEL: test_0003:
; CHECK-DAG: [[R30:r[0-9]+]] = #21
; CHECK-DAG: [[R31:r[0-9]+]] = #9
; CHECK-DAG: [[R32:r[0-9]+]] = #34
; CHECK-DAG: [[R33:r[0-9]+]] = #66
; CHECK: v[[H3:[0-9]+]]:[[L3:[0-9]+]] = vshuff(v1,v0,[[R30]])
; CHECK: v[[H3]]:[[L3]] = vdeal(v[[H3]],v[[L3]],[[R31]])
; CHECK: v[[H3]]:[[L3]] = vshuff(v[[H3]],v[[L3]],[[R32]])
; CHECK: v[[H3]]:[[L3]] = vshuff(v[[H3]],v[[L3]],[[R33]])
; CHECK-NOT: v{{[0-9:]+}} =
define <256 x i8> @test_0003(<256 x i8> %v0) #0 {
%p = shufflevector <256 x i8> %v0, <256 x i8> undef, <256 x i32><i32 0, i32 8, i32 32, i32 40, i32 1, i32 9, i32 33, i32 41, i32 16, i32 24, i32 48, i32 56, i32 17, i32 25, i32 49, i32 57, i32 4, i32 12, i32 36, i32 44, i32 5, i32 13, i32 37, i32 45, i32 20, i32 28, i32 52, i32 60, i32 21, i32 29, i32 53, i32 61, i32 2, i32 10, i32 34, i32 42, i32 3, i32 11, i32 35, i32 43, i32 18, i32 26, i32 50, i32 58, i32 19, i32 27, i32 51, i32 59, i32 6, i32 14, i32 38, i32 46, i32 7, i32 15, i32 39, i32 47, i32 22, i32 30, i32 54, i32 62, i32 23, i32 31, i32 55, i32 63, i32 128, i32 136, i32 160, i32 168, i32 129, i32 137, i32 161, i32 169, i32 144, i32 152, i32 176, i32 184, i32 145, i32 153, i32 177, i32 185, i32 132, i32 140, i32 164, i32 172, i32 133, i32 141, i32 165, i32 173, i32 148, i32 156, i32 180, i32 188, i32 149, i32 157, i32 181, i32 189, i32 130, i32 138, i32 162, i32 170, i32 131, i32 139, i32 163, i32 171, i32 146, i32 154, i32 178, i32 186, i32 147, i32 155, i32 179, i32 187, i32 134, i32 142, i32 166, i32 174, i32 135, i32 143, i32 167, i32 175, i32 150, i32 158, i32 182, i32 190, i32 151, i32 159, i32 183, i32 191, i32 64, i32 72, i32 96, i32 104, i32 65, i32 73, i32 97, i32 105, i32 80, i32 88, i32 112, i32 120, i32 81, i32 89, i32 113, i32 121, i32 68, i32 76, i32 100, i32 108, i32 69, i32 77, i32 101, i32 109, i32 84, i32 92, i32 116, i32 124, i32 85, i32 93, i32 117, i32 125, i32 66, i32 74, i32 98, i32 106, i32 67, i32 75, i32 99, i32 107, i32 82, i32 90, i32 114, i32 122, i32 83, i32 91, i32 115, i32 123, i32 70, i32 78, i32 102, i32 110, i32 71, i32 79, i32 103, i32 111, i32 86, i32 94, i32 118, i32 126, i32 87, i32 95, i32 119, i32 127, i32 192, i32 200, i32 224, i32 232, i32 193, i32 201, i32 225, i32 233, i32 208, i32 216, i32 240, i32 248, i32 209, i32 217, i32 241, i32 249, i32 196, i32 204, i32 228, i32 236, i32 197, i32 205, i32 229, i32 237, i32 212, i32 220, i32 244, i32 252, i32 213, i32 221, i32 245, i32 253, i32 194, i32 202, i32 226, i32 234, i32 195, i32 203, i32 227, i32 235, i32 210, i32 218, i32 242, i32 250, i32 211, i32 219, i32 243, i32 251, i32 198, i32 206, i32 230, i32 238, i32 199, i32 207, i32 231, i32 239, i32 214, i32 222, i32 246, i32 254, i32 215, i32 223, i32 247, i32 255>
ret <256 x i8> %p
}
; Generator: vdeal(0x63), vshuff(0x6f), vdeal(0x77), vshuff(0x75), vdeal(0x3d), vshuff(0x2d), vshuff(0x00), vshuff(0x5c), vdeal(0x04), vshuff(0x79), vshuff(0x21), vdeal(0x7b), vdeal(0x66), vshuff(0x59), vdeal(0x54)
; CHECK-LABEL: test_0004:
; CHECK-DAG: [[R40:r[0-9]+]] = #38
; CHECK-DAG: [[R41:r[0-9]+]] = #72
; CHECK-DAG: [[R42:r[0-9]+]] = #18
; CHECK: v[[H4:[0-9]+]]:[[L4:[0-9]+]] = vshuff(v1,v0,[[R40]])
; CHECK: v[[H4]]:[[L4]] = vshuff(v[[H4]],v[[L4]],[[R41]])
; CHECK: v[[H4]]:[[L4]] = vshuff(v[[H4]],v[[L4]],[[R42]])
; CHECK-NOT: v{{[0-9:]+}} =
define <256 x i8> @test_0004(<256 x i8> %v0) #0 {
%p = shufflevector <256 x i8> %v0, <256 x i8> undef, <256 x i32><i32 0, i32 1, i32 64, i32 65, i32 2, i32 3, i32 66, i32 67, i32 32, i32 33, i32 96, i32 97, i32 34, i32 35, i32 98, i32 99, i32 128, i32 129, i32 192, i32 193, i32 130, i32 131, i32 194, i32 195, i32 160, i32 161, i32 224, i32 225, i32 162, i32 163, i32 226, i32 227, i32 4, i32 5, i32 68, i32 69, i32 6, i32 7, i32 70, i32 71, i32 36, i32 37, i32 100, i32 101, i32 38, i32 39, i32 102, i32 103, i32 132, i32 133, i32 196, i32 197, i32 134, i32 135, i32 198, i32 199, i32 164, i32 165, i32 228, i32 229, i32 166, i32 167, i32 230, i32 231, i32 8, i32 9, i32 72, i32 73, i32 10, i32 11, i32 74, i32 75, i32 40, i32 41, i32 104, i32 105, i32 42, i32 43, i32 106, i32 107, i32 136, i32 137, i32 200, i32 201, i32 138, i32 139, i32 202, i32 203, i32 168, i32 169, i32 232, i32 233, i32 170, i32 171, i32 234, i32 235, i32 12, i32 13, i32 76, i32 77, i32 14, i32 15, i32 78, i32 79, i32 44, i32 45, i32 108, i32 109, i32 46, i32 47, i32 110, i32 111, i32 140, i32 141, i32 204, i32 205, i32 142, i32 143, i32 206, i32 207, i32 172, i32 173, i32 236, i32 237, i32 174, i32 175, i32 238, i32 239, i32 16, i32 17, i32 80, i32 81, i32 18, i32 19, i32 82, i32 83, i32 48, i32 49, i32 112, i32 113, i32 50, i32 51, i32 114, i32 115, i32 144, i32 145, i32 208, i32 209, i32 146, i32 147, i32 210, i32 211, i32 176, i32 177, i32 240, i32 241, i32 178, i32 179, i32 242, i32 243, i32 20, i32 21, i32 84, i32 85, i32 22, i32 23, i32 86, i32 87, i32 52, i32 53, i32 116, i32 117, i32 54, i32 55, i32 118, i32 119, i32 148, i32 149, i32 212, i32 213, i32 150, i32 151, i32 214, i32 215, i32 180, i32 181, i32 244, i32 245, i32 182, i32 183, i32 246, i32 247, i32 24, i32 25, i32 88, i32 89, i32 26, i32 27, i32 90, i32 91, i32 56, i32 57, i32 120, i32 121, i32 58, i32 59, i32 122, i32 123, i32 152, i32 153, i32 216, i32 217, i32 154, i32 155, i32 218, i32 219, i32 184, i32 185, i32 248, i32 249, i32 186, i32 187, i32 250, i32 251, i32 28, i32 29, i32 92, i32 93, i32 30, i32 31, i32 94, i32 95, i32 60, i32 61, i32 124, i32 125, i32 62, i32 63, i32 126, i32 127, i32 156, i32 157, i32 220, i32 221, i32 158, i32 159, i32 222, i32 223, i32 188, i32 189, i32 252, i32 253, i32 190, i32 191, i32 254, i32 255>
ret <256 x i8> %p
}
; Generator: vshuff(0x02), vshuff(0x1a), vshuff(0x32), vdeal(0x6b), vdeal(0x12), vdeal(0x7c), vdeal(0x52), vdeal(0x0e), vshuff(0x56), vshuff(0x0b), vshuff(0x2b), vdeal(0x19), vshuff(0x48), vdeal(0x67), vdeal(0x69)
; CHECK-LABEL: test_0005:
; CHECK-DAG: [[R50:r[0-9]+]] = #9
; CHECK-DAG: [[R51:r[0-9]+]] = #3
; CHECK-DAG: [[R52:r[0-9]+]] = #48
; CHECK-DAG: [[R53:r[0-9]+]] = #68
; CHECK: v[[H5:[0-9]+]]:[[L5:[0-9]+]] = vshuff(v1,v0,[[R50]])
; CHECK: v[[H5]]:[[L5]] = vdeal(v[[H5]],v[[L5]],[[R51]])
; CHECK: v[[H5]]:[[L5]] = vdeal(v[[H5]],v[[L5]],[[R52]])
; CHECK: v[[H5]]:[[L5]] = vdeal(v[[H5]],v[[L5]],[[R53]])
; CHECK-NOT: v{{[0-9:]+}} =
define <256 x i8> @test_0005(<256 x i8> %v0) #0 {
%p = shufflevector <256 x i8> %v0, <256 x i8> undef, <256 x i32><i32 0, i32 2, i32 8, i32 10, i32 64, i32 66, i32 72, i32 74, i32 1, i32 3, i32 9, i32 11, i32 65, i32 67, i32 73, i32 75, i32 32, i32 34, i32 40, i32 42, i32 96, i32 98, i32 104, i32 106, i32 33, i32 35, i32 41, i32 43, i32 97, i32 99, i32 105, i32 107, i32 128, i32 130, i32 136, i32 138, i32 192, i32 194, i32 200, i32 202, i32 129, i32 131, i32 137, i32 139, i32 193, i32 195, i32 201, i32 203, i32 160, i32 162, i32 168, i32 170, i32 224, i32 226, i32 232, i32 234, i32 161, i32 163, i32 169, i32 171, i32 225, i32 227, i32 233, i32 235, i32 16, i32 18, i32 24, i32 26, i32 80, i32 82, i32 88, i32 90, i32 17, i32 19, i32 25, i32 27, i32 81, i32 83, i32 89, i32 91, i32 48, i32 50, i32 56, i32 58, i32 112, i32 114, i32 120, i32 122, i32 49, i32 51, i32 57, i32 59, i32 113, i32 115, i32 121, i32 123, i32 144, i32 146, i32 152, i32 154, i32 208, i32 210, i32 216, i32 218, i32 145, i32 147, i32 153, i32 155, i32 209, i32 211, i32 217, i32 219, i32 176, i32 178, i32 184, i32 186, i32 240, i32 242, i32 248, i32 250, i32 177, i32 179, i32 185, i32 187, i32 241, i32 243, i32 249, i32 251, i32 4, i32 6, i32 12, i32 14, i32 68, i32 70, i32 76, i32 78, i32 5, i32 7, i32 13, i32 15, i32 69, i32 71, i32 77, i32 79, i32 36, i32 38, i32 44, i32 46, i32 100, i32 102, i32 108, i32 110, i32 37, i32 39, i32 45, i32 47, i32 101, i32 103, i32 109, i32 111, i32 132, i32 134, i32 140, i32 142, i32 196, i32 198, i32 204, i32 206, i32 133, i32 135, i32 141, i32 143, i32 197, i32 199, i32 205, i32 207, i32 164, i32 166, i32 172, i32 174, i32 228, i32 230, i32 236, i32 238, i32 165, i32 167, i32 173, i32 175, i32 229, i32 231, i32 237, i32 239, i32 20, i32 22, i32 28, i32 30, i32 84, i32 86, i32 92, i32 94, i32 21, i32 23, i32 29, i32 31, i32 85, i32 87, i32 93, i32 95, i32 52, i32 54, i32 60, i32 62, i32 116, i32 118, i32 124, i32 126, i32 53, i32 55, i32 61, i32 63, i32 117, i32 119, i32 125, i32 127, i32 148, i32 150, i32 156, i32 158, i32 212, i32 214, i32 220, i32 222, i32 149, i32 151, i32 157, i32 159, i32 213, i32 215, i32 221, i32 223, i32 180, i32 182, i32 188, i32 190, i32 244, i32 246, i32 252, i32 254, i32 181, i32 183, i32 189, i32 191, i32 245, i32 247, i32 253, i32 255>
ret <256 x i8> %p
}
; Generator: vshuff(0x34), vshuff(0x07), vdeal(0x5d), vshuff(0x05), vshuff(0x50), vshuff(0x13), vdeal(0x31), vdeal(0x6e), vdeal(0x0f), vdeal(0x2c), vdeal(0x28), vdeal(0x76), vdeal(0x22), vdeal(0x3a), vdeal(0x51)
; CHECK-LABEL: test_0006:
; CHECK-DAG: [[R60:r[0-9]+]] = #85
; CHECK-DAG: [[R61:r[0-9]+]] = #2
; CHECK: v[[H6:[0-9]+]]:[[L6:[0-9]+]] = vdeal(v1,v0,[[R60]])
; CHECK: v[[H6]]:[[L6]] = vshuff(v[[H6]],v[[L6]],[[R61]])
; CHECK-NOT: v{{[0-9:]+}} =
define <256 x i8> @test_0006(<256 x i8> %v0) #0 {
%p = shufflevector <256 x i8> %v0, <256 x i8> undef, <256 x i32><i32 0, i32 4, i32 1, i32 5, i32 16, i32 20, i32 17, i32 21, i32 8, i32 12, i32 9, i32 13, i32 24, i32 28, i32 25, i32 29, i32 64, i32 68, i32 65, i32 69, i32 80, i32 84, i32 81, i32 85, i32 72, i32 76, i32 73, i32 77, i32 88, i32 92, i32 89, i32 93, i32 32, i32 36, i32 33, i32 37, i32 48, i32 52, i32 49, i32 53, i32 40, i32 44, i32 41, i32 45, i32 56, i32 60, i32 57, i32 61, i32 96, i32 100, i32 97, i32 101, i32 112, i32 116, i32 113, i32 117, i32 104, i32 108, i32 105, i32 109, i32 120, i32 124, i32 121, i32 125, i32 128, i32 132, i32 129, i32 133, i32 144, i32 148, i32 145, i32 149, i32 136, i32 140, i32 137, i32 141, i32 152, i32 156, i32 153, i32 157, i32 192, i32 196, i32 193, i32 197, i32 208, i32 212, i32 209, i32 213, i32 200, i32 204, i32 201, i32 205, i32 216, i32 220, i32 217, i32 221, i32 160, i32 164, i32 161, i32 165, i32 176, i32 180, i32 177, i32 181, i32 168, i32 172, i32 169, i32 173, i32 184, i32 188, i32 185, i32 189, i32 224, i32 228, i32 225, i32 229, i32 240, i32 244, i32 241, i32 245, i32 232, i32 236, i32 233, i32 237, i32 248, i32 252, i32 249, i32 253, i32 2, i32 6, i32 3, i32 7, i32 18, i32 22, i32 19, i32 23, i32 10, i32 14, i32 11, i32 15, i32 26, i32 30, i32 27, i32 31, i32 66, i32 70, i32 67, i32 71, i32 82, i32 86, i32 83, i32 87, i32 74, i32 78, i32 75, i32 79, i32 90, i32 94, i32 91, i32 95, i32 34, i32 38, i32 35, i32 39, i32 50, i32 54, i32 51, i32 55, i32 42, i32 46, i32 43, i32 47, i32 58, i32 62, i32 59, i32 63, i32 98, i32 102, i32 99, i32 103, i32 114, i32 118, i32 115, i32 119, i32 106, i32 110, i32 107, i32 111, i32 122, i32 126, i32 123, i32 127, i32 130, i32 134, i32 131, i32 135, i32 146, i32 150, i32 147, i32 151, i32 138, i32 142, i32 139, i32 143, i32 154, i32 158, i32 155, i32 159, i32 194, i32 198, i32 195, i32 199, i32 210, i32 214, i32 211, i32 215, i32 202, i32 206, i32 203, i32 207, i32 218, i32 222, i32 219, i32 223, i32 162, i32 166, i32 163, i32 167, i32 178, i32 182, i32 179, i32 183, i32 170, i32 174, i32 171, i32 175, i32 186, i32 190, i32 187, i32 191, i32 226, i32 230, i32 227, i32 231, i32 242, i32 246, i32 243, i32 247, i32 234, i32 238, i32 235, i32 239, i32 250, i32 254, i32 251, i32 255>
ret <256 x i8> %p
}
; Generator: vshuff(0x25), vshuff(0x4c), vshuff(0x72), vdeal(0x70), vshuff(0x3b), vshuff(0x26), vshuff(0x4d), vdeal(0x20), vshuff(0x7f), vdeal(0x6a), vdeal(0x78), vshuff(0x5f), vdeal(0x10), vdeal(0x71), vshuff(0x6d)
; CHECK-LABEL: test_0007:
; CHECK-DAG: [[R70:r[0-9]+]] = #74
; CHECK-DAG: [[R71:r[0-9]+]] = #20
; CHECK-DAG: [[R72:r[0-9]+]] = #34
; CHECK: v[[H7:[0-9]+]]:[[L7:[0-9]+]] = vshuff(v1,v0,[[R70]])
; CHECK: v[[H7]]:[[L7]] = vdeal(v[[H7]],v[[L7]],[[R71]])
; CHECK: v[[H7]]:[[L7]] = vdeal(v[[H7]],v[[L7]],[[R72]])
; CHECK-NOT: v{{[0-9:]+}} =
define <256 x i8> @test_0007(<256 x i8> %v0) #0 {
%p = shufflevector <256 x i8> %v0, <256 x i8> undef, <256 x i32><i32 0, i32 1, i32 32, i32 33, i32 16, i32 17, i32 48, i32 49, i32 2, i32 3, i32 34, i32 35, i32 18, i32 19, i32 50, i32 51, i32 64, i32 65, i32 96, i32 97, i32 80, i32 81, i32 112, i32 113, i32 66, i32 67, i32 98, i32 99, i32 82, i32 83, i32 114, i32 115, i32 4, i32 5, i32 36, i32 37, i32 20, i32 21, i32 52, i32 53, i32 6, i32 7, i32 38, i32 39, i32 22, i32 23, i32 54, i32 55, i32 68, i32 69, i32 100, i32 101, i32 84, i32 85, i32 116, i32 117, i32 70, i32 71, i32 102, i32 103, i32 86, i32 87, i32 118, i32 119, i32 8, i32 9, i32 40, i32 41, i32 24, i32 25, i32 56, i32 57, i32 10, i32 11, i32 42, i32 43, i32 26, i32 27, i32 58, i32 59, i32 72, i32 73, i32 104, i32 105, i32 88, i32 89, i32 120, i32 121, i32 74, i32 75, i32 106, i32 107, i32 90, i32 91, i32 122, i32 123, i32 12, i32 13, i32 44, i32 45, i32 28, i32 29, i32 60, i32 61, i32 14, i32 15, i32 46, i32 47, i32 30, i32 31, i32 62, i32 63, i32 76, i32 77, i32 108, i32 109, i32 92, i32 93, i32 124, i32 125, i32 78, i32 79, i32 110, i32 111, i32 94, i32 95, i32 126, i32 127, i32 128, i32 129, i32 160, i32 161, i32 144, i32 145, i32 176, i32 177, i32 130, i32 131, i32 162, i32 163, i32 146, i32 147, i32 178, i32 179, i32 192, i32 193, i32 224, i32 225, i32 208, i32 209, i32 240, i32 241, i32 194, i32 195, i32 226, i32 227, i32 210, i32 211, i32 242, i32 243, i32 132, i32 133, i32 164, i32 165, i32 148, i32 149, i32 180, i32 181, i32 134, i32 135, i32 166, i32 167, i32 150, i32 151, i32 182, i32 183, i32 196, i32 197, i32 228, i32 229, i32 212, i32 213, i32 244, i32 245, i32 198, i32 199, i32 230, i32 231, i32 214, i32 215, i32 246, i32 247, i32 136, i32 137, i32 168, i32 169, i32 152, i32 153, i32 184, i32 185, i32 138, i32 139, i32 170, i32 171, i32 154, i32 155, i32 186, i32 187, i32 200, i32 201, i32 232, i32 233, i32 216, i32 217, i32 248, i32 249, i32 202, i32 203, i32 234, i32 235, i32 218, i32 219, i32 250, i32 251, i32 140, i32 141, i32 172, i32 173, i32 156, i32 157, i32 188, i32 189, i32 142, i32 143, i32 174, i32 175, i32 158, i32 159, i32 190, i32 191, i32 204, i32 205, i32 236, i32 237, i32 220, i32 221, i32 252, i32 253, i32 206, i32 207, i32 238, i32 239, i32 222, i32 223, i32 254, i32 255>
ret <256 x i8> %p
}
; Generator: vshuff(0x2e), vshuff(0x40), vdeal(0x35), vdeal(0x3e), vdeal(0x06), vshuff(0x4b), vshuff(0x24), vshuff(0x09), vdeal(0x18), vshuff(0x42), vshuff(0x43), vshuff(0x41), vshuff(0x23), vdeal(0x3f), vdeal(0x39)
; CHECK-LABEL: test_0008:
; CHECK-DAG: [[R80:r[0-9]+]] = #73
; CHECK-DAG: [[R81:r[0-9]+]] = #5
; CHECK-DAG: [[R82:r[0-9]+]] = #48
; CHECK-DAG: [[R83:r[0-9]+]] = #2
; CHECK: v[[H8:[0-9]+]]:[[L8:[0-9]+]] = vshuff(v1,v0,[[R80]])
; CHECK: v[[H8]]:[[L8]] = vdeal(v[[H8]],v[[L8]],[[R81]])
; CHECK: v[[H8]]:[[L8]] = vshuff(v[[H8]],v[[L8]],[[R82]])
; CHECK: v[[H8]]:[[L8]] = vshuff(v[[H8]],v[[L8]],[[R83]])
; CHECK-NOT: v{{[0-9:]+}} =
define <256 x i8> @test_0008(<256 x i8> %v0) #0 {
%p = shufflevector <256 x i8> %v0, <256 x i8> undef, <256 x i32><i32 0, i32 4, i32 32, i32 36, i32 64, i32 68, i32 96, i32 100, i32 1, i32 5, i32 33, i32 37, i32 65, i32 69, i32 97, i32 101, i32 128, i32 132, i32 160, i32 164, i32 192, i32 196, i32 224, i32 228, i32 129, i32 133, i32 161, i32 165, i32 193, i32 197, i32 225, i32 229, i32 16, i32 20, i32 48, i32 52, i32 80, i32 84, i32 112, i32 116, i32 17, i32 21, i32 49, i32 53, i32 81, i32 85, i32 113, i32 117, i32 144, i32 148, i32 176, i32 180, i32 208, i32 212, i32 240, i32 244, i32 145, i32 149, i32 177, i32 181, i32 209, i32 213, i32 241, i32 245, i32 8, i32 12, i32 40, i32 44, i32 72, i32 76, i32 104, i32 108, i32 9, i32 13, i32 41, i32 45, i32 73, i32 77, i32 105, i32 109, i32 136, i32 140, i32 168, i32 172, i32 200, i32 204, i32 232, i32 236, i32 137, i32 141, i32 169, i32 173, i32 201, i32 205, i32 233, i32 237, i32 24, i32 28, i32 56, i32 60, i32 88, i32 92, i32 120, i32 124, i32 25, i32 29, i32 57, i32 61, i32 89, i32 93, i32 121, i32 125, i32 152, i32 156, i32 184, i32 188, i32 216, i32 220, i32 248, i32 252, i32 153, i32 157, i32 185, i32 189, i32 217, i32 221, i32 249, i32 253, i32 2, i32 6, i32 34, i32 38, i32 66, i32 70, i32 98, i32 102, i32 3, i32 7, i32 35, i32 39, i32 67, i32 71, i32 99, i32 103, i32 130, i32 134, i32 162, i32 166, i32 194, i32 198, i32 226, i32 230, i32 131, i32 135, i32 163, i32 167, i32 195, i32 199, i32 227, i32 231, i32 18, i32 22, i32 50, i32 54, i32 82, i32 86, i32 114, i32 118, i32 19, i32 23, i32 51, i32 55, i32 83, i32 87, i32 115, i32 119, i32 146, i32 150, i32 178, i32 182, i32 210, i32 214, i32 242, i32 246, i32 147, i32 151, i32 179, i32 183, i32 211, i32 215, i32 243, i32 247, i32 10, i32 14, i32 42, i32 46, i32 74, i32 78, i32 106, i32 110, i32 11, i32 15, i32 43, i32 47, i32 75, i32 79, i32 107, i32 111, i32 138, i32 142, i32 170, i32 174, i32 202, i32 206, i32 234, i32 238, i32 139, i32 143, i32 171, i32 175, i32 203, i32 207, i32 235, i32 239, i32 26, i32 30, i32 58, i32 62, i32 90, i32 94, i32 122, i32 126, i32 27, i32 31, i32 59, i32 63, i32 91, i32 95, i32 123, i32 127, i32 154, i32 158, i32 186, i32 190, i32 218, i32 222, i32 250, i32 254, i32 155, i32 159, i32 187, i32 191, i32 219, i32 223, i32 251, i32 255>
ret <256 x i8> %p
}
; Generator: vshuff(0x33), vshuff(0x5e), vshuff(0x2a), vdeal(0x2f), vdeal(0x1f), vshuff(0x14), vshuff(0x17), vshuff(0x1b), vdeal(0x1c), vdeal(0x15), vshuff(0x37), vshuff(0x3c), vdeal(0x4e), vdeal(0x7d), vshuff(0x61)
; CHECK-LABEL: test_0009:
; CHECK-DAG: [[R90:r[0-9]+]] = #96
; CHECK-DAG: [[R91:r[0-9]+]] = #18
; CHECK-DAG: [[R92:r[0-9]+]] = #5
; CHECK: v[[H9:[0-9]+]]:[[L9:[0-9]+]] = vshuff(v1,v0,[[R90]])
; CHECK: v[[H9]]:[[L9]] = vdeal(v[[H9]],v[[L9]],[[R91]])
; CHECK: v[[H9]]:[[L9]] = vdeal(v[[H9]],v[[L9]],[[R92]])
; CHECK-NOT: v{{[0-9:]+}} =
define <256 x i8> @test_0009(<256 x i8> %v0) #0 {
%p = shufflevector <256 x i8> %v0, <256 x i8> undef, <256 x i32><i32 0, i32 4, i32 16, i32 20, i32 2, i32 6, i32 18, i32 22, i32 8, i32 12, i32 24, i32 28, i32 10, i32 14, i32 26, i32 30, i32 64, i32 68, i32 80, i32 84, i32 66, i32 70, i32 82, i32 86, i32 72, i32 76, i32 88, i32 92, i32 74, i32 78, i32 90, i32 94, i32 128, i32 132, i32 144, i32 148, i32 130, i32 134, i32 146, i32 150, i32 136, i32 140, i32 152, i32 156, i32 138, i32 142, i32 154, i32 158, i32 192, i32 196, i32 208, i32 212, i32 194, i32 198, i32 210, i32 214, i32 200, i32 204, i32 216, i32 220, i32 202, i32 206, i32 218, i32 222, i32 32, i32 36, i32 48, i32 52, i32 34, i32 38, i32 50, i32 54, i32 40, i32 44, i32 56, i32 60, i32 42, i32 46, i32 58, i32 62, i32 96, i32 100, i32 112, i32 116, i32 98, i32 102, i32 114, i32 118, i32 104, i32 108, i32 120, i32 124, i32 106, i32 110, i32 122, i32 126, i32 160, i32 164, i32 176, i32 180, i32 162, i32 166, i32 178, i32 182, i32 168, i32 172, i32 184, i32 188, i32 170, i32 174, i32 186, i32 190, i32 224, i32 228, i32 240, i32 244, i32 226, i32 230, i32 242, i32 246, i32 232, i32 236, i32 248, i32 252, i32 234, i32 238, i32 250, i32 254, i32 1, i32 5, i32 17, i32 21, i32 3, i32 7, i32 19, i32 23, i32 9, i32 13, i32 25, i32 29, i32 11, i32 15, i32 27, i32 31, i32 65, i32 69, i32 81, i32 85, i32 67, i32 71, i32 83, i32 87, i32 73, i32 77, i32 89, i32 93, i32 75, i32 79, i32 91, i32 95, i32 129, i32 133, i32 145, i32 149, i32 131, i32 135, i32 147, i32 151, i32 137, i32 141, i32 153, i32 157, i32 139, i32 143, i32 155, i32 159, i32 193, i32 197, i32 209, i32 213, i32 195, i32 199, i32 211, i32 215, i32 201, i32 205, i32 217, i32 221, i32 203, i32 207, i32 219, i32 223, i32 33, i32 37, i32 49, i32 53, i32 35, i32 39, i32 51, i32 55, i32 41, i32 45, i32 57, i32 61, i32 43, i32 47, i32 59, i32 63, i32 97, i32 101, i32 113, i32 117, i32 99, i32 103, i32 115, i32 119, i32 105, i32 109, i32 121, i32 125, i32 107, i32 111, i32 123, i32 127, i32 161, i32 165, i32 177, i32 181, i32 163, i32 167, i32 179, i32 183, i32 169, i32 173, i32 185, i32 189, i32 171, i32 175, i32 187, i32 191, i32 225, i32 229, i32 241, i32 245, i32 227, i32 231, i32 243, i32 247, i32 233, i32 237, i32 249, i32 253, i32 235, i32 239, i32 251, i32 255>
ret <256 x i8> %p
}
; Generator: vshuff(0x12), vshuff(0x5a), vdeal(0x46), vdeal(0x01), vshuff(0x64), vshuff(0x5b), vshuff(0x6b), vdeal(0x6c), vshuff(0x27), vdeal(0x0a), vdeal(0x08), vshuff(0x29), vdeal(0x7e), vdeal(0x0d), vdeal(0x16)
; CHECK-LABEL: test_000a:
; CHECK-DAG: [[Ra0:r[0-9]+]] = #44
; CHECK-DAG: [[Ra1:r[0-9]+]] = #6
; CHECK-DAG: [[Ra2:r[0-9]+]] = #80
; CHECK: v[[Ha:[0-9]+]]:[[La:[0-9]+]] = vshuff(v1,v0,[[Ra0]])
; CHECK: v[[Ha]]:[[La]] = vdeal(v[[Ha]],v[[La]],[[Ra1]])
; CHECK: v[[Ha]]:[[La]] = vshuff(v[[Ha]],v[[La]],[[Ra2]])
; CHECK-NOT: v{{[0-9:]+}} =
define <256 x i8> @test_000a(<256 x i8> %v0) #0 {
%p = shufflevector <256 x i8> %v0, <256 x i8> undef, <256 x i32><i32 0, i32 1, i32 128, i32 129, i32 32, i32 33, i32 160, i32 161, i32 4, i32 5, i32 132, i32 133, i32 36, i32 37, i32 164, i32 165, i32 2, i32 3, i32 130, i32 131, i32 34, i32 35, i32 162, i32 163, i32 6, i32 7, i32 134, i32 135, i32 38, i32 39, i32 166, i32 167, i32 8, i32 9, i32 136, i32 137, i32 40, i32 41, i32 168, i32 169, i32 12, i32 13, i32 140, i32 141, i32 44, i32 45, i32 172, i32 173, i32 10, i32 11, i32 138, i32 139, i32 42, i32 43, i32 170, i32 171, i32 14, i32 15, i32 142, i32 143, i32 46, i32 47, i32 174, i32 175, i32 16, i32 17, i32 144, i32 145, i32 48, i32 49, i32 176, i32 177, i32 20, i32 21, i32 148, i32 149, i32 52, i32 53, i32 180, i32 181, i32 18, i32 19, i32 146, i32 147, i32 50, i32 51, i32 178, i32 179, i32 22, i32 23, i32 150, i32 151, i32 54, i32 55, i32 182, i32 183, i32 24, i32 25, i32 152, i32 153, i32 56, i32 57, i32 184, i32 185, i32 28, i32 29, i32 156, i32 157, i32 60, i32 61, i32 188, i32 189, i32 26, i32 27, i32 154, i32 155, i32 58, i32 59, i32 186, i32 187, i32 30, i32 31, i32 158, i32 159, i32 62, i32 63, i32 190, i32 191, i32 64, i32 65, i32 192, i32 193, i32 96, i32 97, i32 224, i32 225, i32 68, i32 69, i32 196, i32 197, i32 100, i32 101, i32 228, i32 229, i32 66, i32 67, i32 194, i32 195, i32 98, i32 99, i32 226, i32 227, i32 70, i32 71, i32 198, i32 199, i32 102, i32 103, i32 230, i32 231, i32 72, i32 73, i32 200, i32 201, i32 104, i32 105, i32 232, i32 233, i32 76, i32 77, i32 204, i32 205, i32 108, i32 109, i32 236, i32 237, i32 74, i32 75, i32 202, i32 203, i32 106, i32 107, i32 234, i32 235, i32 78, i32 79, i32 206, i32 207, i32 110, i32 111, i32 238, i32 239, i32 80, i32 81, i32 208, i32 209, i32 112, i32 113, i32 240, i32 241, i32 84, i32 85, i32 212, i32 213, i32 116, i32 117, i32 244, i32 245, i32 82, i32 83, i32 210, i32 211, i32 114, i32 115, i32 242, i32 243, i32 86, i32 87, i32 214, i32 215, i32 118, i32 119, i32 246, i32 247, i32 88, i32 89, i32 216, i32 217, i32 120, i32 121, i32 248, i32 249, i32 92, i32 93, i32 220, i32 221, i32 124, i32 125, i32 252, i32 253, i32 90, i32 91, i32 218, i32 219, i32 122, i32 123, i32 250, i32 251, i32 94, i32 95, i32 222, i32 223, i32 126, i32 127, i32 254, i32 255>
ret <256 x i8> %p
}
; Generator: vshuff(0x74), vshuff(0x11), vshuff(0x53), vshuff(0x66), vshuff(0x1d), vdeal(0x59), vshuff(0x63), vshuff(0x49), vdeal(0x00), vshuff(0x38), vshuff(0x45), vdeal(0x68), vshuff(0x65), vshuff(0x6e), vdeal(0x62)
; CHECK-LABEL: test_000b:
; CHECK-DAG: [[Rb0:r[0-9]+]] = #68
; CHECK-DAG: [[Rb1:r[0-9]+]] = #5
; CHECK-DAG: [[Rb2:r[0-9]+]] = #18
; CHECK-DAG: [[Rb3:r[0-9]+]] = #40
; CHECK: v[[Hb:[0-9]+]]:[[Lb:[0-9]+]] = vshuff(v1,v0,[[Rb0]])
; CHECK: v[[Hb]]:[[Lb]] = vdeal(v[[Hb]],v[[Lb]],[[Rb1]])
; CHECK: v[[Hb]]:[[Lb]] = vdeal(v[[Hb]],v[[Lb]],[[Rb2]])
; CHECK: v[[Hb]]:[[Lb]] = vdeal(v[[Hb]],v[[Lb]],[[Rb3]])
; CHECK-NOT: v{{[0-9:]+}} =
define <256 x i8> @test_000b(<256 x i8> %v0) #0 {
%p = shufflevector <256 x i8> %v0, <256 x i8> undef, <256 x i32><i32 0, i32 128, i32 16, i32 144, i32 64, i32 192, i32 80, i32 208, i32 32, i32 160, i32 48, i32 176, i32 96, i32 224, i32 112, i32 240, i32 1, i32 129, i32 17, i32 145, i32 65, i32 193, i32 81, i32 209, i32 33, i32 161, i32 49, i32 177, i32 97, i32 225, i32 113, i32 241, i32 2, i32 130, i32 18, i32 146, i32 66, i32 194, i32 82, i32 210, i32 34, i32 162, i32 50, i32 178, i32 98, i32 226, i32 114, i32 242, i32 3, i32 131, i32 19, i32 147, i32 67, i32 195, i32 83, i32 211, i32 35, i32 163, i32 51, i32 179, i32 99, i32 227, i32 115, i32 243, i32 4, i32 132, i32 20, i32 148, i32 68, i32 196, i32 84, i32 212, i32 36, i32 164, i32 52, i32 180, i32 100, i32 228, i32 116, i32 244, i32 5, i32 133, i32 21, i32 149, i32 69, i32 197, i32 85, i32 213, i32 37, i32 165, i32 53, i32 181, i32 101, i32 229, i32 117, i32 245, i32 6, i32 134, i32 22, i32 150, i32 70, i32 198, i32 86, i32 214, i32 38, i32 166, i32 54, i32 182, i32 102, i32 230, i32 118, i32 246, i32 7, i32 135, i32 23, i32 151, i32 71, i32 199, i32 87, i32 215, i32 39, i32 167, i32 55, i32 183, i32 103, i32 231, i32 119, i32 247, i32 8, i32 136, i32 24, i32 152, i32 72, i32 200, i32 88, i32 216, i32 40, i32 168, i32 56, i32 184, i32 104, i32 232, i32 120, i32 248, i32 9, i32 137, i32 25, i32 153, i32 73, i32 201, i32 89, i32 217, i32 41, i32 169, i32 57, i32 185, i32 105, i32 233, i32 121, i32 249, i32 10, i32 138, i32 26, i32 154, i32 74, i32 202, i32 90, i32 218, i32 42, i32 170, i32 58, i32 186, i32 106, i32 234, i32 122, i32 250, i32 11, i32 139, i32 27, i32 155, i32 75, i32 203, i32 91, i32 219, i32 43, i32 171, i32 59, i32 187, i32 107, i32 235, i32 123, i32 251, i32 12, i32 140, i32 28, i32 156, i32 76, i32 204, i32 92, i32 220, i32 44, i32 172, i32 60, i32 188, i32 108, i32 236, i32 124, i32 252, i32 13, i32 141, i32 29, i32 157, i32 77, i32 205, i32 93, i32 221, i32 45, i32 173, i32 61, i32 189, i32 109, i32 237, i32 125, i32 253, i32 14, i32 142, i32 30, i32 158, i32 78, i32 206, i32 94, i32 222, i32 46, i32 174, i32 62, i32 190, i32 110, i32 238, i32 126, i32 254, i32 15, i32 143, i32 31, i32 159, i32 79, i32 207, i32 95, i32 223, i32 47, i32 175, i32 63, i32 191, i32 111, i32 239, i32 127, i32 255>
ret <256 x i8> %p
}
; Generator: vdeal(0x60), vdeal(0x5c), vdeal(0x4f), vshuff(0x47), vshuff(0x7b), vdeal(0x4a), vdeal(0x1e), vdeal(0x5f), vdeal(0x7a), vshuff(0x36), vshuff(0x69), vshuff(0x31), vdeal(0x03), vdeal(0x1a), vdeal(0x41)
; CHECK-LABEL: test_000c:
; CHECK-DAG: [[Rc0:r[0-9]+]] = #10
; CHECK-DAG: [[Rc1:r[0-9]+]] = #3
; CHECK-DAG: [[Rc2:r[0-9]+]] = #84
; CHECK: v[[Hc:[0-9]+]]:[[Lc:[0-9]+]] = vshuff(v1,v0,[[Rc0]])
; CHECK: v[[Hc]]:[[Lc]] = vdeal(v[[Hc]],v[[Lc]],[[Rc1]])
; CHECK: v[[Hc]]:[[Lc]] = vshuff(v[[Hc]],v[[Lc]],[[Rc2]])
; CHECK-NOT: v{{[0-9:]+}} =
define <256 x i8> @test_000c(<256 x i8> %v0) #0 {
%p = shufflevector <256 x i8> %v0, <256 x i8> undef, <256 x i32><i32 0, i32 128, i32 8, i32 136, i32 1, i32 129, i32 9, i32 137, i32 2, i32 130, i32 10, i32 138, i32 3, i32 131, i32 11, i32 139, i32 4, i32 132, i32 12, i32 140, i32 5, i32 133, i32 13, i32 141, i32 6, i32 134, i32 14, i32 142, i32 7, i32 135, i32 15, i32 143, i32 32, i32 160, i32 40, i32 168, i32 33, i32 161, i32 41, i32 169, i32 34, i32 162, i32 42, i32 170, i32 35, i32 163, i32 43, i32 171, i32 36, i32 164, i32 44, i32 172, i32 37, i32 165, i32 45, i32 173, i32 38, i32 166, i32 46, i32 174, i32 39, i32 167, i32 47, i32 175, i32 16, i32 144, i32 24, i32 152, i32 17, i32 145, i32 25, i32 153, i32 18, i32 146, i32 26, i32 154, i32 19, i32 147, i32 27, i32 155, i32 20, i32 148, i32 28, i32 156, i32 21, i32 149, i32 29, i32 157, i32 22, i32 150, i32 30, i32 158, i32 23, i32 151, i32 31, i32 159, i32 48, i32 176, i32 56, i32 184, i32 49, i32 177, i32 57, i32 185, i32 50, i32 178, i32 58, i32 186, i32 51, i32 179, i32 59, i32 187, i32 52, i32 180, i32 60, i32 188, i32 53, i32 181, i32 61, i32 189, i32 54, i32 182, i32 62, i32 190, i32 55, i32 183, i32 63, i32 191, i32 64, i32 192, i32 72, i32 200, i32 65, i32 193, i32 73, i32 201, i32 66, i32 194, i32 74, i32 202, i32 67, i32 195, i32 75, i32 203, i32 68, i32 196, i32 76, i32 204, i32 69, i32 197, i32 77, i32 205, i32 70, i32 198, i32 78, i32 206, i32 71, i32 199, i32 79, i32 207, i32 96, i32 224, i32 104, i32 232, i32 97, i32 225, i32 105, i32 233, i32 98, i32 226, i32 106, i32 234, i32 99, i32 227, i32 107, i32 235, i32 100, i32 228, i32 108, i32 236, i32 101, i32 229, i32 109, i32 237, i32 102, i32 230, i32 110, i32 238, i32 103, i32 231, i32 111, i32 239, i32 80, i32 208, i32 88, i32 216, i32 81, i32 209, i32 89, i32 217, i32 82, i32 210, i32 90, i32 218, i32 83, i32 211, i32 91, i32 219, i32 84, i32 212, i32 92, i32 220, i32 85, i32 213, i32 93, i32 221, i32 86, i32 214, i32 94, i32 222, i32 87, i32 215, i32 95, i32 223, i32 112, i32 240, i32 120, i32 248, i32 113, i32 241, i32 121, i32 249, i32 114, i32 242, i32 122, i32 250, i32 115, i32 243, i32 123, i32 251, i32 116, i32 244, i32 124, i32 252, i32 117, i32 245, i32 125, i32 253, i32 118, i32 246, i32 126, i32 254, i32 119, i32 247, i32 127, i32 255>
ret <256 x i8> %p
}
; Generator: vdeal(0x58), vdeal(0x0b), vdeal(0x21), vdeal(0x7f), vshuff(0x6a), vshuff(0x78), vshuff(0x52), vshuff(0x73), vshuff(0x06), vdeal(0x2d), vdeal(0x32), vdeal(0x48), vdeal(0x75), vdeal(0x55), vshuff(0x0e)
; CHECK-LABEL: test_000d:
; CHECK-DAG: [[Rd0:r[0-9]+]] = #36
; CHECK-DAG: [[Rd1:r[0-9]+]] = #80
; CHECK-DAG: [[Rd2:r[0-9]+]] = #9
; CHECK: v[[Hd:[0-9]+]]:[[Ld:[0-9]+]] = vshuff(v1,v0,[[Rd0]])
; CHECK: v[[Hd]]:[[Ld]] = vshuff(v[[Hd]],v[[Ld]],[[Rd1]])
; CHECK: v[[Hd]]:[[Ld]] = vdeal(v[[Hd]],v[[Ld]],[[Rd2]])
; CHECK-NOT: v{{[0-9:]+}} =
define <256 x i8> @test_000d(<256 x i8> %v0) #0 {
%p = shufflevector <256 x i8> %v0, <256 x i8> undef, <256 x i32><i32 0, i32 8, i32 2, i32 10, i32 128, i32 136, i32 130, i32 138, i32 64, i32 72, i32 66, i32 74, i32 192, i32 200, i32 194, i32 202, i32 32, i32 40, i32 34, i32 42, i32 160, i32 168, i32 162, i32 170, i32 96, i32 104, i32 98, i32 106, i32 224, i32 232, i32 226, i32 234, i32 4, i32 12, i32 6, i32 14, i32 132, i32 140, i32 134, i32 142, i32 68, i32 76, i32 70, i32 78, i32 196, i32 204, i32 198, i32 206, i32 36, i32 44, i32 38, i32 46, i32 164, i32 172, i32 166, i32 174, i32 100, i32 108, i32 102, i32 110, i32 228, i32 236, i32 230, i32 238, i32 16, i32 24, i32 18, i32 26, i32 144, i32 152, i32 146, i32 154, i32 80, i32 88, i32 82, i32 90, i32 208, i32 216, i32 210, i32 218, i32 48, i32 56, i32 50, i32 58, i32 176, i32 184, i32 178, i32 186, i32 112, i32 120, i32 114, i32 122, i32 240, i32 248, i32 242, i32 250, i32 20, i32 28, i32 22, i32 30, i32 148, i32 156, i32 150, i32 158, i32 84, i32 92, i32 86, i32 94, i32 212, i32 220, i32 214, i32 222, i32 52, i32 60, i32 54, i32 62, i32 180, i32 188, i32 182, i32 190, i32 116, i32 124, i32 118, i32 126, i32 244, i32 252, i32 246, i32 254, i32 1, i32 9, i32 3, i32 11, i32 129, i32 137, i32 131, i32 139, i32 65, i32 73, i32 67, i32 75, i32 193, i32 201, i32 195, i32 203, i32 33, i32 41, i32 35, i32 43, i32 161, i32 169, i32 163, i32 171, i32 97, i32 105, i32 99, i32 107, i32 225, i32 233, i32 227, i32 235, i32 5, i32 13, i32 7, i32 15, i32 133, i32 141, i32 135, i32 143, i32 69, i32 77, i32 71, i32 79, i32 197, i32 205, i32 199, i32 207, i32 37, i32 45, i32 39, i32 47, i32 165, i32 173, i32 167, i32 175, i32 101, i32 109, i32 103, i32 111, i32 229, i32 237, i32 231, i32 239, i32 17, i32 25, i32 19, i32 27, i32 145, i32 153, i32 147, i32 155, i32 81, i32 89, i32 83, i32 91, i32 209, i32 217, i32 211, i32 219, i32 49, i32 57, i32 51, i32 59, i32 177, i32 185, i32 179, i32 187, i32 113, i32 121, i32 115, i32 123, i32 241, i32 249, i32 243, i32 251, i32 21, i32 29, i32 23, i32 31, i32 149, i32 157, i32 151, i32 159, i32 85, i32 93, i32 87, i32 95, i32 213, i32 221, i32 215, i32 223, i32 53, i32 61, i32 55, i32 63, i32 181, i32 189, i32 183, i32 191, i32 117, i32 125, i32 119, i32 127, i32 245, i32 253, i32 247, i32 255>
ret <256 x i8> %p
}
; Generator: vdeal(0x6f), vdeal(0x13), vdeal(0x07), vdeal(0x56), vshuff(0x2c), vdeal(0x0c), vdeal(0x33), vshuff(0x22), vdeal(0x02), vshuff(0x18), vdeal(0x4d), vshuff(0x51), vshuff(0x3e), vshuff(0x77), vshuff(0x30)
; CHECK-LABEL: test_000e:
; CHECK-DAG: [[Re0:r[0-9]+]] = #65
; CHECK-DAG: [[Re1:r[0-9]+]] = #24
; CHECK-DAG: [[Re2:r[0-9]+]] = #36
; CHECK: v[[He:[0-9]+]]:[[Le:[0-9]+]] = vshuff(v1,v0,[[Re0]])
; CHECK: v[[He]]:[[Le]] = vdeal(v[[He]],v[[Le]],[[Re1]])
; CHECK: v[[He]]:[[Le]] = vdeal(v[[He]],v[[Le]],[[Re2]])
; CHECK-NOT: v{{[0-9:]+}} =
define <256 x i8> @test_000e(<256 x i8> %v0) #0 {
%p = shufflevector <256 x i8> %v0, <256 x i8> undef, <256 x i32><i32 0, i32 128, i32 2, i32 130, i32 32, i32 160, i32 34, i32 162, i32 16, i32 144, i32 18, i32 146, i32 48, i32 176, i32 50, i32 178, i32 64, i32 192, i32 66, i32 194, i32 96, i32 224, i32 98, i32 226, i32 80, i32 208, i32 82, i32 210, i32 112, i32 240, i32 114, i32 242, i32 8, i32 136, i32 10, i32 138, i32 40, i32 168, i32 42, i32 170, i32 24, i32 152, i32 26, i32 154, i32 56, i32 184, i32 58, i32 186, i32 72, i32 200, i32 74, i32 202, i32 104, i32 232, i32 106, i32 234, i32 88, i32 216, i32 90, i32 218, i32 120, i32 248, i32 122, i32 250, i32 1, i32 129, i32 3, i32 131, i32 33, i32 161, i32 35, i32 163, i32 17, i32 145, i32 19, i32 147, i32 49, i32 177, i32 51, i32 179, i32 65, i32 193, i32 67, i32 195, i32 97, i32 225, i32 99, i32 227, i32 81, i32 209, i32 83, i32 211, i32 113, i32 241, i32 115, i32 243, i32 9, i32 137, i32 11, i32 139, i32 41, i32 169, i32 43, i32 171, i32 25, i32 153, i32 27, i32 155, i32 57, i32 185, i32 59, i32 187, i32 73, i32 201, i32 75, i32 203, i32 105, i32 233, i32 107, i32 235, i32 89, i32 217, i32 91, i32 219, i32 121, i32 249, i32 123, i32 251, i32 4, i32 132, i32 6, i32 134, i32 36, i32 164, i32 38, i32 166, i32 20, i32 148, i32 22, i32 150, i32 52, i32 180, i32 54, i32 182, i32 68, i32 196, i32 70, i32 198, i32 100, i32 228, i32 102, i32 230, i32 84, i32 212, i32 86, i32 214, i32 116, i32 244, i32 118, i32 246, i32 12, i32 140, i32 14, i32 142, i32 44, i32 172, i32 46, i32 174, i32 28, i32 156, i32 30, i32 158, i32 60, i32 188, i32 62, i32 190, i32 76, i32 204, i32 78, i32 206, i32 108, i32 236, i32 110, i32 238, i32 92, i32 220, i32 94, i32 222, i32 124, i32 252, i32 126, i32 254, i32 5, i32 133, i32 7, i32 135, i32 37, i32 165, i32 39, i32 167, i32 21, i32 149, i32 23, i32 151, i32 53, i32 181, i32 55, i32 183, i32 69, i32 197, i32 71, i32 199, i32 101, i32 229, i32 103, i32 231, i32 85, i32 213, i32 87, i32 215, i32 117, i32 245, i32 119, i32 247, i32 13, i32 141, i32 15, i32 143, i32 45, i32 173, i32 47, i32 175, i32 29, i32 157, i32 31, i32 159, i32 61, i32 189, i32 63, i32 191, i32 77, i32 205, i32 79, i32 207, i32 109, i32 237, i32 111, i32 239, i32 93, i32 221, i32 95, i32 223, i32 125, i32 253, i32 127, i32 255>
ret <256 x i8> %p
}
; Generator: vdeal(0x44), vshuff(0x57), vdeal(0x5e), vdeal(0x3b), vshuff(0x3d), vshuff(0x28), vdeal(0x2b), vdeal(0x09), vdeal(0x1b), vdeal(0x29), vdeal(0x6d), vdeal(0x61), vshuff(0x54), vdeal(0x34), vshuff(0x1c)
; CHECK-LABEL: test_000f:
; CHECK-DAG: [[Rf0:r[0-9]+]] = #6
; CHECK-DAG: [[Rf1:r[0-9]+]] = #58
; CHECK-DAG: [[Rf2:r[0-9]+]] = #9
; CHECK: v[[Hf:[0-9]+]]:[[Lf:[0-9]+]] = vshuff(v1,v0,[[Rf0]])
; CHECK: v[[Hf]]:[[Lf]] = vshuff(v[[Hf]],v[[Lf]],[[Rf1]])
; CHECK: v[[Hf]]:[[Lf]] = vdeal(v[[Hf]],v[[Lf]],[[Rf2]])
; CHECK-NOT: v{{[0-9:]+}} =
define <256 x i8> @test_000f(<256 x i8> %v0) #0 {
%p = shufflevector <256 x i8> %v0, <256 x i8> undef, <256 x i32><i32 0, i32 128, i32 4, i32 132, i32 2, i32 130, i32 6, i32 134, i32 32, i32 160, i32 36, i32 164, i32 34, i32 162, i32 38, i32 166, i32 8, i32 136, i32 12, i32 140, i32 10, i32 138, i32 14, i32 142, i32 40, i32 168, i32 44, i32 172, i32 42, i32 170, i32 46, i32 174, i32 16, i32 144, i32 20, i32 148, i32 18, i32 146, i32 22, i32 150, i32 48, i32 176, i32 52, i32 180, i32 50, i32 178, i32 54, i32 182, i32 24, i32 152, i32 28, i32 156, i32 26, i32 154, i32 30, i32 158, i32 56, i32 184, i32 60, i32 188, i32 58, i32 186, i32 62, i32 190, i32 64, i32 192, i32 68, i32 196, i32 66, i32 194, i32 70, i32 198, i32 96, i32 224, i32 100, i32 228, i32 98, i32 226, i32 102, i32 230, i32 72, i32 200, i32 76, i32 204, i32 74, i32 202, i32 78, i32 206, i32 104, i32 232, i32 108, i32 236, i32 106, i32 234, i32 110, i32 238, i32 80, i32 208, i32 84, i32 212, i32 82, i32 210, i32 86, i32 214, i32 112, i32 240, i32 116, i32 244, i32 114, i32 242, i32 118, i32 246, i32 88, i32 216, i32 92, i32 220, i32 90, i32 218, i32 94, i32 222, i32 120, i32 248, i32 124, i32 252, i32 122, i32 250, i32 126, i32 254, i32 1, i32 129, i32 5, i32 133, i32 3, i32 131, i32 7, i32 135, i32 33, i32 161, i32 37, i32 165, i32 35, i32 163, i32 39, i32 167, i32 9, i32 137, i32 13, i32 141, i32 11, i32 139, i32 15, i32 143, i32 41, i32 169, i32 45, i32 173, i32 43, i32 171, i32 47, i32 175, i32 17, i32 145, i32 21, i32 149, i32 19, i32 147, i32 23, i32 151, i32 49, i32 177, i32 53, i32 181, i32 51, i32 179, i32 55, i32 183, i32 25, i32 153, i32 29, i32 157, i32 27, i32 155, i32 31, i32 159, i32 57, i32 185, i32 61, i32 189, i32 59, i32 187, i32 63, i32 191, i32 65, i32 193, i32 69, i32 197, i32 67, i32 195, i32 71, i32 199, i32 97, i32 225, i32 101, i32 229, i32 99, i32 227, i32 103, i32 231, i32 73, i32 201, i32 77, i32 205, i32 75, i32 203, i32 79, i32 207, i32 105, i32 233, i32 109, i32 237, i32 107, i32 235, i32 111, i32 239, i32 81, i32 209, i32 85, i32 213, i32 83, i32 211, i32 87, i32 215, i32 113, i32 241, i32 117, i32 245, i32 115, i32 243, i32 119, i32 247, i32 89, i32 217, i32 93, i32 221, i32 91, i32 219, i32 95, i32 223, i32 121, i32 249, i32 125, i32 253, i32 123, i32 251, i32 127, i32 255>
ret <256 x i8> %p
}
attributes #0 = { nounwind readnone "target-cpu"="hexagonv60" "target-features"="+hvx,+hvx-length128b" }

View File

@ -0,0 +1,217 @@
; RUN: llc -march=hexagon < %s | FileCheck %s
; Generator: vdeal(0x1f), vshuff(0x32), vshuff(0x24), vshuff(0x26), vshuff(0x08), vdeal(0x3a), vshuff(0x0c), vdeal(0x0e), vdeal(0x30), vdeal(0x22), vdeal(0x14), vdeal(0x36), vdeal(0x18), vdeal(0x0a), vdeal(0x3c)
; CHECK-LABEL: test_0000:
; CHECK-DAG: [[R00:r[0-9]+]] = #49
; CHECK-DAG: [[R01:r[0-9]+]] = #3
; CHECK: v[[H0:[0-9]+]]:[[L0:[0-9]+]] = vshuff(v1,v0,[[R00]])
; CHECK: v[[H0]]:[[L0]] = vdeal(v[[H0]],v[[L0]],[[R01]])
; CHECK-NOT: v{{[0-9:]+}} =
define <128 x i8> @test_0000(<128 x i8> %v0) #0 {
%p = shufflevector <128 x i8> %v0, <128 x i8> undef, <128 x i32><i32 0, i32 2, i32 32, i32 34, i32 4, i32 6, i32 36, i32 38, i32 8, i32 10, i32 40, i32 42, i32 12, i32 14, i32 44, i32 46, i32 1, i32 3, i32 33, i32 35, i32 5, i32 7, i32 37, i32 39, i32 9, i32 11, i32 41, i32 43, i32 13, i32 15, i32 45, i32 47, i32 16, i32 18, i32 48, i32 50, i32 20, i32 22, i32 52, i32 54, i32 24, i32 26, i32 56, i32 58, i32 28, i32 30, i32 60, i32 62, i32 17, i32 19, i32 49, i32 51, i32 21, i32 23, i32 53, i32 55, i32 25, i32 27, i32 57, i32 59, i32 29, i32 31, i32 61, i32 63, i32 64, i32 66, i32 96, i32 98, i32 68, i32 70, i32 100, i32 102, i32 72, i32 74, i32 104, i32 106, i32 76, i32 78, i32 108, i32 110, i32 65, i32 67, i32 97, i32 99, i32 69, i32 71, i32 101, i32 103, i32 73, i32 75, i32 105, i32 107, i32 77, i32 79, i32 109, i32 111, i32 80, i32 82, i32 112, i32 114, i32 84, i32 86, i32 116, i32 118, i32 88, i32 90, i32 120, i32 122, i32 92, i32 94, i32 124, i32 126, i32 81, i32 83, i32 113, i32 115, i32 85, i32 87, i32 117, i32 119, i32 89, i32 91, i32 121, i32 123, i32 93, i32 95, i32 125, i32 127>
ret <128 x i8> %p
}
; Generator: vshuff(0x1e), vshuff(0x00), vdeal(0x12), vshuff(0x34), vshuff(0x0b), vshuff(0x2b), vdeal(0x16), vshuff(0x2e), vshuff(0x1a), vdeal(0x28), vshuff(0x2d), vdeal(0x15), vdeal(0x1d), vshuff(0x25), vshuff(0x0d)
; CHECK-LABEL: test_0001:
; CHECK-DAG: [[R10:r[0-9]+]] = #10
; CHECK-DAG: [[R11:r[0-9]+]] = #34
; CHECK-DAG: [[R12:r[0-9]+]] = #16
; CHECK: v[[H1:[0-9]+]]:[[L1:[0-9]+]] = vshuff(v1,v0,[[R10]])
; CHECK: v[[H1]]:[[L1]] = vshuff(v[[H1]],v[[L1]],[[R11]])
; CHECK: v[[H1]]:[[L1]] = vshuff(v[[H1]],v[[L1]],[[R12]])
; CHECK-NOT: v{{[0-9:]+}} =
define <128 x i8> @test_0001(<128 x i8> %v0) #0 {
%p = shufflevector <128 x i8> %v0, <128 x i8> undef, <128 x i32><i32 0, i32 1, i32 8, i32 9, i32 4, i32 5, i32 12, i32 13, i32 2, i32 3, i32 10, i32 11, i32 6, i32 7, i32 14, i32 15, i32 32, i32 33, i32 40, i32 41, i32 36, i32 37, i32 44, i32 45, i32 34, i32 35, i32 42, i32 43, i32 38, i32 39, i32 46, i32 47, i32 64, i32 65, i32 72, i32 73, i32 68, i32 69, i32 76, i32 77, i32 66, i32 67, i32 74, i32 75, i32 70, i32 71, i32 78, i32 79, i32 96, i32 97, i32 104, i32 105, i32 100, i32 101, i32 108, i32 109, i32 98, i32 99, i32 106, i32 107, i32 102, i32 103, i32 110, i32 111, i32 16, i32 17, i32 24, i32 25, i32 20, i32 21, i32 28, i32 29, i32 18, i32 19, i32 26, i32 27, i32 22, i32 23, i32 30, i32 31, i32 48, i32 49, i32 56, i32 57, i32 52, i32 53, i32 60, i32 61, i32 50, i32 51, i32 58, i32 59, i32 54, i32 55, i32 62, i32 63, i32 80, i32 81, i32 88, i32 89, i32 84, i32 85, i32 92, i32 93, i32 82, i32 83, i32 90, i32 91, i32 86, i32 87, i32 94, i32 95, i32 112, i32 113, i32 120, i32 121, i32 116, i32 117, i32 124, i32 125, i32 114, i32 115, i32 122, i32 123, i32 118, i32 119, i32 126, i32 127>
ret <128 x i8> %p
}
; Generator: vdeal(0x2c), vshuff(0x27), vshuff(0x07), vshuff(0x12), vdeal(0x04), vshuff(0x03), vshuff(0x23), vshuff(0x26), vdeal(0x06), vdeal(0x08), vdeal(0x01), vshuff(0x09), vdeal(0x11), vdeal(0x19), vshuff(0x21)
; CHECK-LABEL: test_0002:
; CHECK-DAG: [[R20:r[0-9]+]] = #5
; CHECK-DAG: [[R21:r[0-9]+]] = #18
; CHECK: v[[H2:[0-9]+]]:[[L2:[0-9]+]] = vdeal(v1,v0,[[R20]])
; CHECK: v[[H2]]:[[L2]] = vshuff(v[[H2]],v[[L2]],[[R21]])
; CHECK-NOT: v{{[0-9:]+}} =
define <128 x i8> @test_0002(<128 x i8> %v0) #0 {
; CHECK-NOT: v{{[0-9:]+}} =
%p = shufflevector <128 x i8> %v0, <128 x i8> undef, <128 x i32><i32 0, i32 4, i32 1, i32 5, i32 64, i32 68, i32 65, i32 69, i32 8, i32 12, i32 9, i32 13, i32 72, i32 76, i32 73, i32 77, i32 2, i32 6, i32 3, i32 7, i32 66, i32 70, i32 67, i32 71, i32 10, i32 14, i32 11, i32 15, i32 74, i32 78, i32 75, i32 79, i32 32, i32 36, i32 33, i32 37, i32 96, i32 100, i32 97, i32 101, i32 40, i32 44, i32 41, i32 45, i32 104, i32 108, i32 105, i32 109, i32 34, i32 38, i32 35, i32 39, i32 98, i32 102, i32 99, i32 103, i32 42, i32 46, i32 43, i32 47, i32 106, i32 110, i32 107, i32 111, i32 16, i32 20, i32 17, i32 21, i32 80, i32 84, i32 81, i32 85, i32 24, i32 28, i32 25, i32 29, i32 88, i32 92, i32 89, i32 93, i32 18, i32 22, i32 19, i32 23, i32 82, i32 86, i32 83, i32 87, i32 26, i32 30, i32 27, i32 31, i32 90, i32 94, i32 91, i32 95, i32 48, i32 52, i32 49, i32 53, i32 112, i32 116, i32 113, i32 117, i32 56, i32 60, i32 57, i32 61, i32 120, i32 124, i32 121, i32 125, i32 50, i32 54, i32 51, i32 55, i32 114, i32 118, i32 115, i32 119, i32 58, i32 62, i32 59, i32 63, i32 122, i32 126, i32 123, i32 127>
ret <128 x i8> %p
}
; Generator: vshuff(0x11), vshuff(0x2b), vdeal(0x3d), vdeal(0x3e), vshuff(0x02), vdeal(0x1c), vdeal(0x2f), vdeal(0x0f), vshuff(0x36), vshuff(0x38), vdeal(0x35), vshuff(0x1b), vshuff(0x3b), vdeal(0x21), vdeal(0x15)
; CHECK-LABEL: test_0003:
; CHECK-DAG: [[R30:r[0-9]+]] = #34
; CHECK-DAG: [[R31:r[0-9]+]] = #10
; CHECK-DAG: [[R32:r[0-9]+]] = #5
; CHECK: v[[H3:[0-9]+]]:[[L3:[0-9]+]] = vshuff(v1,v0,[[R30]])
; CHECK: v[[H3]]:[[L3]] = vdeal(v[[H3]],v[[L3]],[[R31]])
; CHECK: v[[H3]]:[[L3]] = vdeal(v[[H3]],v[[L3]],[[R32]])
; CHECK-NOT: v{{[0-9:]+}} =
define <128 x i8> @test_0003(<128 x i8> %v0) #0 {
%p = shufflevector <128 x i8> %v0, <128 x i8> undef, <128 x i32><i32 0, i32 4, i32 8, i32 12, i32 64, i32 68, i32 72, i32 76, i32 32, i32 36, i32 40, i32 44, i32 96, i32 100, i32 104, i32 108, i32 16, i32 20, i32 24, i32 28, i32 80, i32 84, i32 88, i32 92, i32 48, i32 52, i32 56, i32 60, i32 112, i32 116, i32 120, i32 124, i32 2, i32 6, i32 10, i32 14, i32 66, i32 70, i32 74, i32 78, i32 34, i32 38, i32 42, i32 46, i32 98, i32 102, i32 106, i32 110, i32 18, i32 22, i32 26, i32 30, i32 82, i32 86, i32 90, i32 94, i32 50, i32 54, i32 58, i32 62, i32 114, i32 118, i32 122, i32 126, i32 1, i32 5, i32 9, i32 13, i32 65, i32 69, i32 73, i32 77, i32 33, i32 37, i32 41, i32 45, i32 97, i32 101, i32 105, i32 109, i32 17, i32 21, i32 25, i32 29, i32 81, i32 85, i32 89, i32 93, i32 49, i32 53, i32 57, i32 61, i32 113, i32 117, i32 121, i32 125, i32 3, i32 7, i32 11, i32 15, i32 67, i32 71, i32 75, i32 79, i32 35, i32 39, i32 43, i32 47, i32 99, i32 103, i32 107, i32 111, i32 19, i32 23, i32 27, i32 31, i32 83, i32 87, i32 91, i32 95, i32 51, i32 55, i32 59, i32 63, i32 115, i32 119, i32 123, i32 127>
ret <128 x i8> %p
}
; Generator: vdeal(0x0a), vdeal(0x10), vdeal(0x31), vshuff(0x30), vdeal(0x00), vdeal(0x39), vdeal(0x0e), vshuff(0x37), vshuff(0x17), vshuff(0x06), vshuff(0x07), vshuff(0x09), vshuff(0x3c), vshuff(0x33), vshuff(0x33)
; CHECK-LABEL: test_0004:
; CHECK-DAG: [[R40:r[0-9]+]] = #57
; CHECK-DAG: [[R41:r[0-9]+]] = #6
; CHECK-DAG: [[R42:r[0-9]+]] = #1
; CHECK: v[[H4:[0-9]+]]:[[L4:[0-9]+]] = vshuff(v1,v0,[[R40]])
; CHECK: v[[H4]]:[[L4]] = vshuff(v[[H4]],v[[L4]],[[R41]])
; CHECK: v[[H4]]:[[L4]] = vshuff(v[[H4]],v[[L4]],[[R42]])
; CHECK-NOT: v{{[0-9:]+}} =
define <128 x i8> @test_0004(<128 x i8> %v0) #0 {
%p = shufflevector <128 x i8> %v0, <128 x i8> undef, <128 x i32><i32 0, i32 4, i32 32, i32 36, i32 2, i32 6, i32 34, i32 38, i32 1, i32 5, i32 33, i32 37, i32 3, i32 7, i32 35, i32 39, i32 8, i32 12, i32 40, i32 44, i32 10, i32 14, i32 42, i32 46, i32 9, i32 13, i32 41, i32 45, i32 11, i32 15, i32 43, i32 47, i32 16, i32 20, i32 48, i32 52, i32 18, i32 22, i32 50, i32 54, i32 17, i32 21, i32 49, i32 53, i32 19, i32 23, i32 51, i32 55, i32 24, i32 28, i32 56, i32 60, i32 26, i32 30, i32 58, i32 62, i32 25, i32 29, i32 57, i32 61, i32 27, i32 31, i32 59, i32 63, i32 64, i32 68, i32 96, i32 100, i32 66, i32 70, i32 98, i32 102, i32 65, i32 69, i32 97, i32 101, i32 67, i32 71, i32 99, i32 103, i32 72, i32 76, i32 104, i32 108, i32 74, i32 78, i32 106, i32 110, i32 73, i32 77, i32 105, i32 109, i32 75, i32 79, i32 107, i32 111, i32 80, i32 84, i32 112, i32 116, i32 82, i32 86, i32 114, i32 118, i32 81, i32 85, i32 113, i32 117, i32 83, i32 87, i32 115, i32 119, i32 88, i32 92, i32 120, i32 124, i32 90, i32 94, i32 122, i32 126, i32 89, i32 93, i32 121, i32 125, i32 91, i32 95, i32 123, i32 127>
ret <128 x i8> %p
}
; Generator: vdeal(0x1c), vshuff(0x31), vdeal(0x1f), vshuff(0x29), vdeal(0x1a), vshuff(0x2a), vshuff(0x25), vshuff(0x05), vshuff(0x04), vshuff(0x23), vdeal(0x0d), vdeal(0x20), vshuff(0x29), vdeal(0x2f), vshuff(0x1d)
; CHECK-LABEL: test_0005:
; CHECK-DAG: [[R50:r[0-9]+]] = #33
; CHECK-DAG: [[R51:r[0-9]+]] = #12
; CHECK-DAG: [[R52:r[0-9]+]] = #1{{$}}
; CHECK: v[[H5:[0-9]+]]:[[L5:[0-9]+]] = vshuff(v1,v0,[[R50]])
; CHECK: v[[H5]]:[[L5]] = vshuff(v[[H5]],v[[L5]],[[R51]])
; CHECK: v[[H5]]:[[L5]] = vshuff(v[[H5]],v[[L5]],[[R52]])
; CHECK-NOT: v{{[0-9:]+}} =
define <128 x i8> @test_0005(<128 x i8> %v0) #0 {
%p = shufflevector <128 x i8> %v0, <128 x i8> undef, <128 x i32><i32 0, i32 8, i32 2, i32 10, i32 32, i32 40, i32 34, i32 42, i32 4, i32 12, i32 6, i32 14, i32 36, i32 44, i32 38, i32 46, i32 16, i32 24, i32 18, i32 26, i32 48, i32 56, i32 50, i32 58, i32 20, i32 28, i32 22, i32 30, i32 52, i32 60, i32 54, i32 62, i32 1, i32 9, i32 3, i32 11, i32 33, i32 41, i32 35, i32 43, i32 5, i32 13, i32 7, i32 15, i32 37, i32 45, i32 39, i32 47, i32 17, i32 25, i32 19, i32 27, i32 49, i32 57, i32 51, i32 59, i32 21, i32 29, i32 23, i32 31, i32 53, i32 61, i32 55, i32 63, i32 64, i32 72, i32 66, i32 74, i32 96, i32 104, i32 98, i32 106, i32 68, i32 76, i32 70, i32 78, i32 100, i32 108, i32 102, i32 110, i32 80, i32 88, i32 82, i32 90, i32 112, i32 120, i32 114, i32 122, i32 84, i32 92, i32 86, i32 94, i32 116, i32 124, i32 118, i32 126, i32 65, i32 73, i32 67, i32 75, i32 97, i32 105, i32 99, i32 107, i32 69, i32 77, i32 71, i32 79, i32 101, i32 109, i32 103, i32 111, i32 81, i32 89, i32 83, i32 91, i32 113, i32 121, i32 115, i32 123, i32 85, i32 93, i32 87, i32 95, i32 117, i32 125, i32 119, i32 127>
ret <128 x i8> %p
}
; Generator: vdeal(0x22), vshuff(0x24), vdeal(0x16), vdeal(0x18), vshuff(0x17), vdeal(0x2d), vshuff(0x38), vshuff(0x20), vshuff(0x37), vdeal(0x3f), vdeal(0x10), vdeal(0x32), vshuff(0x14), vshuff(0x13), vdeal(0x0b)
; CHECK-LABEL: test_0006:
; CHECK-DAG: [[R60:r[0-9]+]] = #3{{$}}
; CHECK-DAG: [[R61:r[0-9]+]] = #36
; CHECK: v[[H6:[0-9]+]]:[[L6:[0-9]+]] = vdeal(v1,v0,[[R60]])
; CHECK: v[[H6]]:[[L6]] = vshuff(v[[H6]],v[[L6]],[[R61]])
; CHECK-NOT: v{{[0-9:]+}} =
define <128 x i8> @test_0006(<128 x i8> %v0) #0 {
%p = shufflevector <128 x i8> %v0, <128 x i8> undef, <128 x i32><i32 0, i32 2, i32 64, i32 66, i32 1, i32 3, i32 65, i32 67, i32 8, i32 10, i32 72, i32 74, i32 9, i32 11, i32 73, i32 75, i32 16, i32 18, i32 80, i32 82, i32 17, i32 19, i32 81, i32 83, i32 24, i32 26, i32 88, i32 90, i32 25, i32 27, i32 89, i32 91, i32 4, i32 6, i32 68, i32 70, i32 5, i32 7, i32 69, i32 71, i32 12, i32 14, i32 76, i32 78, i32 13, i32 15, i32 77, i32 79, i32 20, i32 22, i32 84, i32 86, i32 21, i32 23, i32 85, i32 87, i32 28, i32 30, i32 92, i32 94, i32 29, i32 31, i32 93, i32 95, i32 32, i32 34, i32 96, i32 98, i32 33, i32 35, i32 97, i32 99, i32 40, i32 42, i32 104, i32 106, i32 41, i32 43, i32 105, i32 107, i32 48, i32 50, i32 112, i32 114, i32 49, i32 51, i32 113, i32 115, i32 56, i32 58, i32 120, i32 122, i32 57, i32 59, i32 121, i32 123, i32 36, i32 38, i32 100, i32 102, i32 37, i32 39, i32 101, i32 103, i32 44, i32 46, i32 108, i32 110, i32 45, i32 47, i32 109, i32 111, i32 52, i32 54, i32 116, i32 118, i32 53, i32 55, i32 117, i32 119, i32 60, i32 62, i32 124, i32 126, i32 61, i32 63, i32 125, i32 127>
ret <128 x i8> %p
}
; Generator: vdeal(0x0f), vdeal(0x01), vshuff(0x3b), vdeal(0x0c), vdeal(0x3f), vdeal(0x26), vshuff(0x28), vdeal(0x3a), vdeal(0x02), vdeal(0x1b), vshuff(0x0e), vdeal(0x03), vshuff(0x3d), vshuff(0x2c), vshuff(0x15)
; CHECK-LABEL: test_0007:
; CHECK-DAG: [[R70:r[0-9]+]] = #50
; CHECK-DAG: [[R71:r[0-9]+]] = #5{{$}}
; CHECK-DAG: [[R72:r[0-9]+]] = #8
; CHECK: v[[H7:[0-9]+]]:[[L7:[0-9]+]] = vshuff(v1,v0,[[R70]])
; CHECK: v[[H7]]:[[L7]] = vdeal(v[[H7]],v[[L7]],[[R71]])
; CHECK: v[[H7]]:[[L7]] = vshuff(v[[H7]],v[[L7]],[[R72]])
; CHECK-NOT: v{{[0-9:]+}} =
define <128 x i8> @test_0007(<128 x i8> %v0) #0 {
%p = shufflevector <128 x i8> %v0, <128 x i8> undef, <128 x i32><i32 0, i32 4, i32 64, i32 68, i32 32, i32 36, i32 96, i32 100, i32 1, i32 5, i32 65, i32 69, i32 33, i32 37, i32 97, i32 101, i32 2, i32 6, i32 66, i32 70, i32 34, i32 38, i32 98, i32 102, i32 3, i32 7, i32 67, i32 71, i32 35, i32 39, i32 99, i32 103, i32 16, i32 20, i32 80, i32 84, i32 48, i32 52, i32 112, i32 116, i32 17, i32 21, i32 81, i32 85, i32 49, i32 53, i32 113, i32 117, i32 18, i32 22, i32 82, i32 86, i32 50, i32 54, i32 114, i32 118, i32 19, i32 23, i32 83, i32 87, i32 51, i32 55, i32 115, i32 119, i32 8, i32 12, i32 72, i32 76, i32 40, i32 44, i32 104, i32 108, i32 9, i32 13, i32 73, i32 77, i32 41, i32 45, i32 105, i32 109, i32 10, i32 14, i32 74, i32 78, i32 42, i32 46, i32 106, i32 110, i32 11, i32 15, i32 75, i32 79, i32 43, i32 47, i32 107, i32 111, i32 24, i32 28, i32 88, i32 92, i32 56, i32 60, i32 120, i32 124, i32 25, i32 29, i32 89, i32 93, i32 57, i32 61, i32 121, i32 125, i32 26, i32 30, i32 90, i32 94, i32 58, i32 62, i32 122, i32 126, i32 27, i32 31, i32 91, i32 95, i32 59, i32 63, i32 123, i32 127>
ret <128 x i8> %p
}
; Generator: vdeal(0x1e), vdeal(0x19), vdeal(0x34), vdeal(0x07), vshuff(0x27), vdeal(0x1e), vdeal(0x21), vdeal(0x2b), vshuff(0x11), vdeal(0x35), vshuff(0x0a), vdeal(0x39), vdeal(0x0c), vdeal(0x17), vdeal(0x23)
; CHECK-LABEL: test_0008:
; CHECK-DAG: [[R80:r[0-9]+]] = #5
; CHECK-DAG: [[R81:r[0-9]+]] = #18
; CHECK-DAG: [[R82:r[0-9]+]] = #9
; CHECK: v[[H8:[0-9]+]]:[[L8:[0-9]+]] = vshuff(v1,v0,[[R80]])
; CHECK: v[[H8]]:[[L8]] = vshuff(v[[H8]],v[[L8]],[[R81]])
; CHECK: v[[H8]]:[[L8]] = vshuff(v[[H8]],v[[L8]],[[R82]])
; CHECK-NOT: v{{[0-9:]+}} =
define <128 x i8> @test_0008(<128 x i8> %v0) #0 {
%p = shufflevector <128 x i8> %v0, <128 x i8> undef, <128 x i32><i32 0, i32 16, i32 4, i32 20, i32 1, i32 17, i32 5, i32 21, i32 64, i32 80, i32 68, i32 84, i32 65, i32 81, i32 69, i32 85, i32 2, i32 18, i32 6, i32 22, i32 3, i32 19, i32 7, i32 23, i32 66, i32 82, i32 70, i32 86, i32 67, i32 83, i32 71, i32 87, i32 32, i32 48, i32 36, i32 52, i32 33, i32 49, i32 37, i32 53, i32 96, i32 112, i32 100, i32 116, i32 97, i32 113, i32 101, i32 117, i32 34, i32 50, i32 38, i32 54, i32 35, i32 51, i32 39, i32 55, i32 98, i32 114, i32 102, i32 118, i32 99, i32 115, i32 103, i32 119, i32 8, i32 24, i32 12, i32 28, i32 9, i32 25, i32 13, i32 29, i32 72, i32 88, i32 76, i32 92, i32 73, i32 89, i32 77, i32 93, i32 10, i32 26, i32 14, i32 30, i32 11, i32 27, i32 15, i32 31, i32 74, i32 90, i32 78, i32 94, i32 75, i32 91, i32 79, i32 95, i32 40, i32 56, i32 44, i32 60, i32 41, i32 57, i32 45, i32 61, i32 104, i32 120, i32 108, i32 124, i32 105, i32 121, i32 109, i32 125, i32 42, i32 58, i32 46, i32 62, i32 43, i32 59, i32 47, i32 63, i32 106, i32 122, i32 110, i32 126, i32 107, i32 123, i32 111, i32 127>
ret <128 x i8> %p
}
; Generator: vshuff(0x1d), vshuff(0x18), vdeal(0x09), vshuff(0x2a), vdeal(0x03), vdeal(0x27), vdeal(0x25), vdeal(0x13), vshuff(0x3a), vshuff(0x19), vshuff(0x06), vshuff(0x0f), vshuff(0x3c), vshuff(0x2e), vshuff(0x36)
; CHECK-LABEL: test_0009:
; CHECK-DAG: [[R90:r[0-9]+]] = #17
; CHECK-DAG: [[R91:r[0-9]+]] = #40
; CHECK-DAG: [[R92:r[0-9]+]] = #6
; CHECK: v[[H9:[0-9]+]]:[[L9:[0-9]+]] = vdeal(v1,v0,[[R90]])
; CHECK: v[[H9]]:[[L9]] = vshuff(v[[H9]],v[[L9]],[[R91]])
; CHECK: v[[H9]]:[[L9]] = vdeal(v[[H9]],v[[L9]],[[R92]])
; CHECK-NOT: v{{[0-9:]+}} =
define <128 x i8> @test_0009(<128 x i8> %v0) #0 {
%p = shufflevector <128 x i8> %v0, <128 x i8> undef, <128 x i32><i32 0, i32 16, i32 4, i32 20, i32 32, i32 48, i32 36, i32 52, i32 1, i32 17, i32 5, i32 21, i32 33, i32 49, i32 37, i32 53, i32 64, i32 80, i32 68, i32 84, i32 96, i32 112, i32 100, i32 116, i32 65, i32 81, i32 69, i32 85, i32 97, i32 113, i32 101, i32 117, i32 8, i32 24, i32 12, i32 28, i32 40, i32 56, i32 44, i32 60, i32 9, i32 25, i32 13, i32 29, i32 41, i32 57, i32 45, i32 61, i32 72, i32 88, i32 76, i32 92, i32 104, i32 120, i32 108, i32 124, i32 73, i32 89, i32 77, i32 93, i32 105, i32 121, i32 109, i32 125, i32 2, i32 18, i32 6, i32 22, i32 34, i32 50, i32 38, i32 54, i32 3, i32 19, i32 7, i32 23, i32 35, i32 51, i32 39, i32 55, i32 66, i32 82, i32 70, i32 86, i32 98, i32 114, i32 102, i32 118, i32 67, i32 83, i32 71, i32 87, i32 99, i32 115, i32 103, i32 119, i32 10, i32 26, i32 14, i32 30, i32 42, i32 58, i32 46, i32 62, i32 11, i32 27, i32 15, i32 31, i32 43, i32 59, i32 47, i32 63, i32 74, i32 90, i32 78, i32 94, i32 106, i32 122, i32 110, i32 126, i32 75, i32 91, i32 79, i32 95, i32 107, i32 123, i32 111, i32 127>
ret <128 x i8> %p
}
; Generator: vdeal(0x05), vshuff(0x10), vdeal(0x0d), vshuff(0x12), vdeal(0x08), vshuff(0x22), vdeal(0x24), vshuff(0x3e), vdeal(0x00), vshuff(0x14), vdeal(0x3b), vdeal(0x33), vshuff(0x2f), vdeal(0x13), vdeal(0x14)
; CHECK-LABEL: test_000a:
; CHECK-DAG: [[Ra0:r[0-9]+]] = #56
; CHECK-DAG: [[Ra1:r[0-9]+]] = #13
; CHECK-DAG: [[Ra2:r[0-9]+]] = #2
; CHECK: v[[Ha:[0-9]+]]:[[La:[0-9]+]] = vshuff(v1,v0,[[Ra0]])
; CHECK: v[[Ha]]:[[La]] = vdeal(v[[Ha]],v[[La]],[[Ra1]])
; CHECK: v[[Ha]]:[[La]] = vshuff(v[[Ha]],v[[La]],[[Ra2]])
; CHECK-NOT: v{{[0-9:]+}} =
define <128 x i8> @test_000a(<128 x i8> %v0) #0 {
%p = shufflevector <128 x i8> %v0, <128 x i8> undef, <128 x i32><i32 0, i32 4, i32 1, i32 5, i32 64, i32 68, i32 65, i32 69, i32 32, i32 36, i32 33, i32 37, i32 96, i32 100, i32 97, i32 101, i32 8, i32 12, i32 9, i32 13, i32 72, i32 76, i32 73, i32 77, i32 40, i32 44, i32 41, i32 45, i32 104, i32 108, i32 105, i32 109, i32 16, i32 20, i32 17, i32 21, i32 80, i32 84, i32 81, i32 85, i32 48, i32 52, i32 49, i32 53, i32 112, i32 116, i32 113, i32 117, i32 24, i32 28, i32 25, i32 29, i32 88, i32 92, i32 89, i32 93, i32 56, i32 60, i32 57, i32 61, i32 120, i32 124, i32 121, i32 125, i32 2, i32 6, i32 3, i32 7, i32 66, i32 70, i32 67, i32 71, i32 34, i32 38, i32 35, i32 39, i32 98, i32 102, i32 99, i32 103, i32 10, i32 14, i32 11, i32 15, i32 74, i32 78, i32 75, i32 79, i32 42, i32 46, i32 43, i32 47, i32 106, i32 110, i32 107, i32 111, i32 18, i32 22, i32 19, i32 23, i32 82, i32 86, i32 83, i32 87, i32 50, i32 54, i32 51, i32 55, i32 114, i32 118, i32 115, i32 119, i32 26, i32 30, i32 27, i32 31, i32 90, i32 94, i32 91, i32 95, i32 58, i32 62, i32 59, i32 63, i32 122, i32 126, i32 123, i32 127>
ret <128 x i8> %p
}
; Generator: vdeal(0x12), vshuff(0x2c), vdeal(0x2d), vshuff(0x01), vshuff(0x1f), vshuff(0x30), vdeal(0x2a), vdeal(0x0b), vdeal(0x32), vshuff(0x08), vdeal(0x1b), vdeal(0x09), vshuff(0x1c), vshuff(0x16), vdeal(0x38)
; CHECK-LABEL: test_000b:
; CHECK-DAG: [[Rb0:r[0-9]+]] = #12
; CHECK-DAG: [[Rb1:r[0-9]+]] = #33
; CHECK-DAG: [[Rb2:r[0-9]+]] = #18
; CHECK: v[[Hb:[0-9]+]]:[[Lb:[0-9]+]] = vdeal(v1,v0,[[Rb0]])
; CHECK: v[[Hb]]:[[Lb]] = vdeal(v[[Hb]],v[[Lb]],[[Rb1]])
; CHECK: v[[Hb]]:[[Lb]] = vshuff(v[[Hb]],v[[Lb]],[[Rb2]])
; CHECK-NOT: v{{[0-9:]+}} =
define <128 x i8> @test_000b(<128 x i8> %v0) #0 {
%p = shufflevector <128 x i8> %v0, <128 x i8> undef, <128 x i32><i32 0, i32 32, i32 1, i32 33, i32 8, i32 40, i32 9, i32 41, i32 64, i32 96, i32 65, i32 97, i32 72, i32 104, i32 73, i32 105, i32 2, i32 34, i32 3, i32 35, i32 10, i32 42, i32 11, i32 43, i32 66, i32 98, i32 67, i32 99, i32 74, i32 106, i32 75, i32 107, i32 4, i32 36, i32 5, i32 37, i32 12, i32 44, i32 13, i32 45, i32 68, i32 100, i32 69, i32 101, i32 76, i32 108, i32 77, i32 109, i32 6, i32 38, i32 7, i32 39, i32 14, i32 46, i32 15, i32 47, i32 70, i32 102, i32 71, i32 103, i32 78, i32 110, i32 79, i32 111, i32 16, i32 48, i32 17, i32 49, i32 24, i32 56, i32 25, i32 57, i32 80, i32 112, i32 81, i32 113, i32 88, i32 120, i32 89, i32 121, i32 18, i32 50, i32 19, i32 51, i32 26, i32 58, i32 27, i32 59, i32 82, i32 114, i32 83, i32 115, i32 90, i32 122, i32 91, i32 123, i32 20, i32 52, i32 21, i32 53, i32 28, i32 60, i32 29, i32 61, i32 84, i32 116, i32 85, i32 117, i32 92, i32 124, i32 93, i32 125, i32 22, i32 54, i32 23, i32 55, i32 30, i32 62, i32 31, i32 63, i32 86, i32 118, i32 87, i32 119, i32 94, i32 126, i32 95, i32 127>
ret <128 x i8> %p
}
; Generator: vshuff(0x31), vdeal(0x29), vshuff(0x19), vshuff(0x39), vdeal(0x17), vshuff(0x28), vshuff(0x0f), vdeal(0x23), vdeal(0x2e), vshuff(0x3d), vdeal(0x1a), vdeal(0x02), vshuff(0x3e), vshuff(0x20), vshuff(0x3f)
; CHECK-LABEL: test_000c:
; CHECK-DAG: [[Rc0:r[0-9]+]] = #12
; CHECK-DAG: [[Rc1:r[0-9]+]] = #6
; CHECK-DAG: [[Rc2:r[0-9]+]] = #17
; CHECK-DAG: [[Rc3:r[0-9]+]] = #32
; CHECK: v[[Hc:[0-9]+]]:[[Lc:[0-9]+]] = vshuff(v1,v0,[[Rc0]])
; CHECK: v[[Hc]]:[[Lc]] = vdeal(v[[Hc]],v[[Lc]],[[Rc1]])
; CHECK: v[[Hc]]:[[Lc]] = vdeal(v[[Hc]],v[[Lc]],[[Rc2]])
; CHECK: v[[Hc]]:[[Lc]] = vshuff(v[[Hc]],v[[Lc]],[[Rc3]])
; CHECK-NOT: v{{[0-9:]+}} =
define <128 x i8> @test_000c(<128 x i8> %v0) #0 {
%p = shufflevector <128 x i8> %v0, <128 x i8> undef, <128 x i32><i32 0, i32 16, i32 64, i32 80, i32 8, i32 24, i32 72, i32 88, i32 4, i32 20, i32 68, i32 84, i32 12, i32 28, i32 76, i32 92, i32 2, i32 18, i32 66, i32 82, i32 10, i32 26, i32 74, i32 90, i32 6, i32 22, i32 70, i32 86, i32 14, i32 30, i32 78, i32 94, i32 1, i32 17, i32 65, i32 81, i32 9, i32 25, i32 73, i32 89, i32 5, i32 21, i32 69, i32 85, i32 13, i32 29, i32 77, i32 93, i32 3, i32 19, i32 67, i32 83, i32 11, i32 27, i32 75, i32 91, i32 7, i32 23, i32 71, i32 87, i32 15, i32 31, i32 79, i32 95, i32 32, i32 48, i32 96, i32 112, i32 40, i32 56, i32 104, i32 120, i32 36, i32 52, i32 100, i32 116, i32 44, i32 60, i32 108, i32 124, i32 34, i32 50, i32 98, i32 114, i32 42, i32 58, i32 106, i32 122, i32 38, i32 54, i32 102, i32 118, i32 46, i32 62, i32 110, i32 126, i32 33, i32 49, i32 97, i32 113, i32 41, i32 57, i32 105, i32 121, i32 37, i32 53, i32 101, i32 117, i32 45, i32 61, i32 109, i32 125, i32 35, i32 51, i32 99, i32 115, i32 43, i32 59, i32 107, i32 123, i32 39, i32 55, i32 103, i32 119, i32 47, i32 63, i32 111, i32 127>
ret <128 x i8> %p
}
; Generator: vdeal(0x3c), vdeal(0x24), vdeal(0x05), vdeal(0x37), vshuff(0x21), vdeal(0x11), vdeal(0x1d), vshuff(0x00), vshuff(0x34), vshuff(0x0d), vshuff(0x3a), vshuff(0x1f), vshuff(0x03), vshuff(0x1e), vdeal(0x29)
; CHECK-LABEL: test_000d:
; CHECK-DAG: [[Rd0:r[0-9]+]] = #40
; CHECK-DAG: [[Rd1:r[0-9]+]] = #28
; CHECK: v[[Hd:[0-9]+]]:[[Ld:[0-9]+]] = vshuff(v1,v0,[[Rd0]])
; CHECK: v[[Hd]]:[[Ld]] = vdeal(v[[Hd]],v[[Ld]],[[Rd1]])
; CHECK-NOT: v{{[0-9:]+}} =
define <128 x i8> @test_000d(<128 x i8> %v0) #0 {
%p = shufflevector <128 x i8> %v0, <128 x i8> undef, <128 x i32><i32 0, i32 1, i32 2, i32 3, i32 64, i32 65, i32 66, i32 67, i32 16, i32 17, i32 18, i32 19, i32 80, i32 81, i32 82, i32 83, i32 32, i32 33, i32 34, i32 35, i32 96, i32 97, i32 98, i32 99, i32 48, i32 49, i32 50, i32 51, i32 112, i32 113, i32 114, i32 115, i32 8, i32 9, i32 10, i32 11, i32 72, i32 73, i32 74, i32 75, i32 24, i32 25, i32 26, i32 27, i32 88, i32 89, i32 90, i32 91, i32 40, i32 41, i32 42, i32 43, i32 104, i32 105, i32 106, i32 107, i32 56, i32 57, i32 58, i32 59, i32 120, i32 121, i32 122, i32 123, i32 4, i32 5, i32 6, i32 7, i32 68, i32 69, i32 70, i32 71, i32 20, i32 21, i32 22, i32 23, i32 84, i32 85, i32 86, i32 87, i32 36, i32 37, i32 38, i32 39, i32 100, i32 101, i32 102, i32 103, i32 52, i32 53, i32 54, i32 55, i32 116, i32 117, i32 118, i32 119, i32 12, i32 13, i32 14, i32 15, i32 76, i32 77, i32 78, i32 79, i32 28, i32 29, i32 30, i32 31, i32 92, i32 93, i32 94, i32 95, i32 44, i32 45, i32 46, i32 47, i32 108, i32 109, i32 110, i32 111, i32 60, i32 61, i32 62, i32 63, i32 124, i32 125, i32 126, i32 127>
ret <128 x i8> %p
}
; Generator: vshuff(0x18), vdeal(0x36), vdeal(0x33), vdeal(0x26), vshuff(0x04), vshuff(0x2d), vshuff(0x35), vdeal(0x34), vdeal(0x2e), vdeal(0x25), vdeal(0x28), vshuff(0x0c), vdeal(0x07), vshuff(0x35), vshuff(0x01)
; CHECK-LABEL: test_000e:
; CHECK-DAG: [[Re0:r[0-9]+]] = #58
; CHECK: v[[He:[0-9]+]]:[[Le:[0-9]+]] = vshuff(v1,v0,[[Re0]])
; CHECK-NOT: v{{[0-9:]+}} =
define <128 x i8> @test_000e(<128 x i8> %v0) #0 {
%p = shufflevector <128 x i8> %v0, <128 x i8> undef, <128 x i32><i32 0, i32 1, i32 64, i32 65, i32 4, i32 5, i32 68, i32 69, i32 2, i32 3, i32 66, i32 67, i32 6, i32 7, i32 70, i32 71, i32 8, i32 9, i32 72, i32 73, i32 12, i32 13, i32 76, i32 77, i32 10, i32 11, i32 74, i32 75, i32 14, i32 15, i32 78, i32 79, i32 16, i32 17, i32 80, i32 81, i32 20, i32 21, i32 84, i32 85, i32 18, i32 19, i32 82, i32 83, i32 22, i32 23, i32 86, i32 87, i32 24, i32 25, i32 88, i32 89, i32 28, i32 29, i32 92, i32 93, i32 26, i32 27, i32 90, i32 91, i32 30, i32 31, i32 94, i32 95, i32 32, i32 33, i32 96, i32 97, i32 36, i32 37, i32 100, i32 101, i32 34, i32 35, i32 98, i32 99, i32 38, i32 39, i32 102, i32 103, i32 40, i32 41, i32 104, i32 105, i32 44, i32 45, i32 108, i32 109, i32 42, i32 43, i32 106, i32 107, i32 46, i32 47, i32 110, i32 111, i32 48, i32 49, i32 112, i32 113, i32 52, i32 53, i32 116, i32 117, i32 50, i32 51, i32 114, i32 115, i32 54, i32 55, i32 118, i32 119, i32 56, i32 57, i32 120, i32 121, i32 60, i32 61, i32 124, i32 125, i32 58, i32 59, i32 122, i32 123, i32 62, i32 63, i32 126, i32 127>
ret <128 x i8> %p
}
; Generator: vshuff(0x1a), vshuff(0x10), vdeal(0x2b), vshuff(0x15), vdeal(0x12), vdeal(0x30), vshuff(0x23), vshuff(0x02), vshuff(0x32), vshuff(0x08), vshuff(0x05), vdeal(0x3e), vshuff(0x39), vshuff(0x0a), vshuff(0x0e)
; CHECK-LABEL: test_000f:
; CHECK-DAG: [[Rf0:r[0-9]+]] = #44
; CHECK-DAG: [[Rf1:r[0-9]+]] = #18
; CHECK: v[[Hf:[0-9]+]]:[[Lf:[0-9]+]] = vshuff(v1,v0,[[Rf0]])
; CHECK: v[[Hf]]:[[Lf]] = vshuff(v[[Hf]],v[[Lf]],[[Rf1]])
; CHECK-NOT: v{{[0-9:]+}} =
define <128 x i8> @test_000f(<128 x i8> %v0) #0 {
%p = shufflevector <128 x i8> %v0, <128 x i8> undef, <128 x i32><i32 0, i32 1, i32 32, i32 33, i32 64, i32 65, i32 96, i32 97, i32 4, i32 5, i32 36, i32 37, i32 68, i32 69, i32 100, i32 101, i32 2, i32 3, i32 34, i32 35, i32 66, i32 67, i32 98, i32 99, i32 6, i32 7, i32 38, i32 39, i32 70, i32 71, i32 102, i32 103, i32 8, i32 9, i32 40, i32 41, i32 72, i32 73, i32 104, i32 105, i32 12, i32 13, i32 44, i32 45, i32 76, i32 77, i32 108, i32 109, i32 10, i32 11, i32 42, i32 43, i32 74, i32 75, i32 106, i32 107, i32 14, i32 15, i32 46, i32 47, i32 78, i32 79, i32 110, i32 111, i32 16, i32 17, i32 48, i32 49, i32 80, i32 81, i32 112, i32 113, i32 20, i32 21, i32 52, i32 53, i32 84, i32 85, i32 116, i32 117, i32 18, i32 19, i32 50, i32 51, i32 82, i32 83, i32 114, i32 115, i32 22, i32 23, i32 54, i32 55, i32 86, i32 87, i32 118, i32 119, i32 24, i32 25, i32 56, i32 57, i32 88, i32 89, i32 120, i32 121, i32 28, i32 29, i32 60, i32 61, i32 92, i32 93, i32 124, i32 125, i32 26, i32 27, i32 58, i32 59, i32 90, i32 91, i32 122, i32 123, i32 30, i32 31, i32 62, i32 63, i32 94, i32 95, i32 126, i32 127>
ret <128 x i8> %p
}
attributes #0 = { nounwind readnone "target-cpu"="hexagonv60" "target-features"="+hvx,+hvx-length64b" }