Lines Matching refs:Elem
2520 HexagonTargetLowering::buildVector32(ArrayRef<SDValue> Elem, const SDLoc &dl,
2523 assert(VecTy.getVectorNumElements() == Elem.size());
2525 SmallVector<ConstantInt*,4> Consts(Elem.size());
2526 bool AllConst = getBuildVectorConstInts(Elem, VecTy, DAG, Consts);
2528 unsigned First, Num = Elem.size();
2530 if (!isUndef(Elem[First]))
2541 assert(Elem.size() == 2);
2551 E0 = DAG.getZExtOrTrunc(DAG.getBitcast(MVT::i16, Elem[0]), dl, MVT::i32);
2552 E1 = DAG.getZExtOrTrunc(DAG.getBitcast(MVT::i16, Elem[1]), dl, MVT::i32);
2554 E0 = Elem[0];
2555 E1 = Elem[1];
2574 if (Elem[i] == Elem[First] || isUndef(Elem[i]))
2581 SDValue Ext = DAG.getZExtOrTrunc(Elem[First], dl, MVT::i32);
2586 // (zxtb(Elem[0]) | (zxtb(Elem[1]) << 8)) |
2587 // (zxtb(Elem[2]) | (zxtb(Elem[3]) << 8)) << 16
2588 assert(Elem.size() == 4);
2591 Vs[i] = DAG.getZExtOrTrunc(Elem[i], dl, MVT::i32);
2611 HexagonTargetLowering::buildVector64(ArrayRef<SDValue> Elem, const SDLoc &dl,
2614 assert(VecTy.getVectorNumElements() == Elem.size());
2616 SmallVector<ConstantInt*,8> Consts(Elem.size());
2617 bool AllConst = getBuildVectorConstInts(Elem, VecTy, DAG, Consts);
2619 unsigned First, Num = Elem.size();
2621 if (!isUndef(Elem[First]))
2635 if (Elem[i] == Elem[First] || isUndef(Elem[i]))
2642 SDValue S = ElemTy == MVT::f16 ? DAG.getBitcast(MVT::i16, Elem[First])
2643 : Elem[First];
2663 ? Elem[0]
2664 : buildVector32(Elem.take_front(Num/2), dl, HalfTy, DAG);
2666 ? Elem[1]
2667 : buildVector32(Elem.drop_front(Num/2), dl, HalfTy, DAG);