mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2024-12-13 20:32:21 +00:00
Use MVT instead of EVT in more instruction lowering code.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@172933 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
f9147c41d8
commit
45e1c75833
@ -4390,7 +4390,7 @@ static SDValue getZeroVector(EVT VT, const X86Subtarget *Subtarget,
|
|||||||
/// Always build ones vectors as <4 x i32> or <8 x i32>. For 256-bit types with
|
/// Always build ones vectors as <4 x i32> or <8 x i32>. For 256-bit types with
|
||||||
/// no AVX2 supprt, use two <4 x i32> inserted in a <8 x i32> appropriately.
|
/// no AVX2 supprt, use two <4 x i32> inserted in a <8 x i32> appropriately.
|
||||||
/// Then bitcast to their original type, ensuring they get CSE'd.
|
/// Then bitcast to their original type, ensuring they get CSE'd.
|
||||||
static SDValue getOnesVector(EVT VT, bool HasInt256, SelectionDAG &DAG,
|
static SDValue getOnesVector(MVT VT, bool HasInt256, SelectionDAG &DAG,
|
||||||
DebugLoc dl) {
|
DebugLoc dl) {
|
||||||
assert(VT.isVector() && "Expected a vector type");
|
assert(VT.isVector() && "Expected a vector type");
|
||||||
|
|
||||||
@ -5100,7 +5100,7 @@ X86TargetLowering::LowerVectorBroadcast(SDValue Op, SelectionDAG &DAG) const {
|
|||||||
if (!Subtarget->hasFp256())
|
if (!Subtarget->hasFp256())
|
||||||
return SDValue();
|
return SDValue();
|
||||||
|
|
||||||
EVT VT = Op.getValueType();
|
MVT VT = Op.getValueType().getSimpleVT();
|
||||||
DebugLoc dl = Op.getDebugLoc();
|
DebugLoc dl = Op.getDebugLoc();
|
||||||
|
|
||||||
assert((VT.is128BitVector() || VT.is256BitVector()) &&
|
assert((VT.is128BitVector() || VT.is256BitVector()) &&
|
||||||
@ -5298,8 +5298,8 @@ SDValue
|
|||||||
X86TargetLowering::LowerBUILD_VECTOR(SDValue Op, SelectionDAG &DAG) const {
|
X86TargetLowering::LowerBUILD_VECTOR(SDValue Op, SelectionDAG &DAG) const {
|
||||||
DebugLoc dl = Op.getDebugLoc();
|
DebugLoc dl = Op.getDebugLoc();
|
||||||
|
|
||||||
EVT VT = Op.getValueType();
|
MVT VT = Op.getValueType().getSimpleVT();
|
||||||
EVT ExtVT = VT.getVectorElementType();
|
MVT ExtVT = VT.getVectorElementType();
|
||||||
unsigned NumElems = Op.getNumOperands();
|
unsigned NumElems = Op.getNumOperands();
|
||||||
|
|
||||||
// Vectors containing all zeros can be matched by pxor and xorps later
|
// Vectors containing all zeros can be matched by pxor and xorps later
|
||||||
@ -5630,7 +5630,7 @@ X86TargetLowering::LowerBUILD_VECTOR(SDValue Op, SelectionDAG &DAG) const {
|
|||||||
// to create 256-bit vectors from two other 128-bit ones.
|
// to create 256-bit vectors from two other 128-bit ones.
|
||||||
static SDValue LowerAVXCONCAT_VECTORS(SDValue Op, SelectionDAG &DAG) {
|
static SDValue LowerAVXCONCAT_VECTORS(SDValue Op, SelectionDAG &DAG) {
|
||||||
DebugLoc dl = Op.getDebugLoc();
|
DebugLoc dl = Op.getDebugLoc();
|
||||||
EVT ResVT = Op.getValueType();
|
MVT ResVT = Op.getValueType().getSimpleVT();
|
||||||
|
|
||||||
assert(ResVT.is256BitVector() && "Value type must be 256-bit wide");
|
assert(ResVT.is256BitVector() && "Value type must be 256-bit wide");
|
||||||
|
|
||||||
@ -7038,10 +7038,10 @@ X86TargetLowering::LowerVECTOR_SHUFFLE(SDValue Op, SelectionDAG &DAG) const {
|
|||||||
SDValue
|
SDValue
|
||||||
X86TargetLowering::LowerEXTRACT_VECTOR_ELT_SSE4(SDValue Op,
|
X86TargetLowering::LowerEXTRACT_VECTOR_ELT_SSE4(SDValue Op,
|
||||||
SelectionDAG &DAG) const {
|
SelectionDAG &DAG) const {
|
||||||
EVT VT = Op.getValueType();
|
MVT VT = Op.getValueType().getSimpleVT();
|
||||||
DebugLoc dl = Op.getDebugLoc();
|
DebugLoc dl = Op.getDebugLoc();
|
||||||
|
|
||||||
if (!Op.getOperand(0).getValueType().is128BitVector())
|
if (!Op.getOperand(0).getValueType().getSimpleVT().is128BitVector())
|
||||||
return SDValue();
|
return SDValue();
|
||||||
|
|
||||||
if (VT.getSizeInBits() == 8) {
|
if (VT.getSizeInBits() == 8) {
|
||||||
@ -7106,7 +7106,7 @@ X86TargetLowering::LowerEXTRACT_VECTOR_ELT(SDValue Op,
|
|||||||
return SDValue();
|
return SDValue();
|
||||||
|
|
||||||
SDValue Vec = Op.getOperand(0);
|
SDValue Vec = Op.getOperand(0);
|
||||||
EVT VecVT = Vec.getValueType();
|
MVT VecVT = Vec.getValueType().getSimpleVT();
|
||||||
|
|
||||||
// If this is a 256-bit vector result, first extract the 128-bit vector and
|
// If this is a 256-bit vector result, first extract the 128-bit vector and
|
||||||
// then extract the element from the 128-bit vector.
|
// then extract the element from the 128-bit vector.
|
||||||
@ -7133,7 +7133,7 @@ X86TargetLowering::LowerEXTRACT_VECTOR_ELT(SDValue Op,
|
|||||||
return Res;
|
return Res;
|
||||||
}
|
}
|
||||||
|
|
||||||
EVT VT = Op.getValueType();
|
MVT VT = Op.getValueType().getSimpleVT();
|
||||||
DebugLoc dl = Op.getDebugLoc();
|
DebugLoc dl = Op.getDebugLoc();
|
||||||
// TODO: handle v16i8.
|
// TODO: handle v16i8.
|
||||||
if (VT.getSizeInBits() == 16) {
|
if (VT.getSizeInBits() == 16) {
|
||||||
@ -7146,7 +7146,7 @@ X86TargetLowering::LowerEXTRACT_VECTOR_ELT(SDValue Op,
|
|||||||
MVT::v4i32, Vec),
|
MVT::v4i32, Vec),
|
||||||
Op.getOperand(1)));
|
Op.getOperand(1)));
|
||||||
// Transform it so it match pextrw which produces a 32-bit result.
|
// Transform it so it match pextrw which produces a 32-bit result.
|
||||||
EVT EltVT = MVT::i32;
|
MVT EltVT = MVT::i32;
|
||||||
SDValue Extract = DAG.getNode(X86ISD::PEXTRW, dl, EltVT,
|
SDValue Extract = DAG.getNode(X86ISD::PEXTRW, dl, EltVT,
|
||||||
Op.getOperand(0), Op.getOperand(1));
|
Op.getOperand(0), Op.getOperand(1));
|
||||||
SDValue Assert = DAG.getNode(ISD::AssertZext, dl, EltVT, Extract,
|
SDValue Assert = DAG.getNode(ISD::AssertZext, dl, EltVT, Extract,
|
||||||
@ -7161,7 +7161,7 @@ X86TargetLowering::LowerEXTRACT_VECTOR_ELT(SDValue Op,
|
|||||||
|
|
||||||
// SHUFPS the element to the lowest double word, then movss.
|
// SHUFPS the element to the lowest double word, then movss.
|
||||||
int Mask[4] = { static_cast<int>(Idx), -1, -1, -1 };
|
int Mask[4] = { static_cast<int>(Idx), -1, -1, -1 };
|
||||||
EVT VVT = Op.getOperand(0).getValueType();
|
MVT VVT = Op.getOperand(0).getValueType().getSimpleVT();
|
||||||
SDValue Vec = DAG.getVectorShuffle(VVT, dl, Op.getOperand(0),
|
SDValue Vec = DAG.getVectorShuffle(VVT, dl, Op.getOperand(0),
|
||||||
DAG.getUNDEF(VVT), Mask);
|
DAG.getUNDEF(VVT), Mask);
|
||||||
return DAG.getNode(ISD::EXTRACT_VECTOR_ELT, dl, VT, Vec,
|
return DAG.getNode(ISD::EXTRACT_VECTOR_ELT, dl, VT, Vec,
|
||||||
@ -7180,7 +7180,7 @@ X86TargetLowering::LowerEXTRACT_VECTOR_ELT(SDValue Op,
|
|||||||
// Note if the lower 64 bits of the result of the UNPCKHPD is then stored
|
// Note if the lower 64 bits of the result of the UNPCKHPD is then stored
|
||||||
// to a f64mem, the whole operation is folded into a single MOVHPDmr.
|
// to a f64mem, the whole operation is folded into a single MOVHPDmr.
|
||||||
int Mask[2] = { 1, -1 };
|
int Mask[2] = { 1, -1 };
|
||||||
EVT VVT = Op.getOperand(0).getValueType();
|
MVT VVT = Op.getOperand(0).getValueType().getSimpleVT();
|
||||||
SDValue Vec = DAG.getVectorShuffle(VVT, dl, Op.getOperand(0),
|
SDValue Vec = DAG.getVectorShuffle(VVT, dl, Op.getOperand(0),
|
||||||
DAG.getUNDEF(VVT), Mask);
|
DAG.getUNDEF(VVT), Mask);
|
||||||
return DAG.getNode(ISD::EXTRACT_VECTOR_ELT, dl, VT, Vec,
|
return DAG.getNode(ISD::EXTRACT_VECTOR_ELT, dl, VT, Vec,
|
||||||
@ -7193,8 +7193,8 @@ X86TargetLowering::LowerEXTRACT_VECTOR_ELT(SDValue Op,
|
|||||||
SDValue
|
SDValue
|
||||||
X86TargetLowering::LowerINSERT_VECTOR_ELT_SSE4(SDValue Op,
|
X86TargetLowering::LowerINSERT_VECTOR_ELT_SSE4(SDValue Op,
|
||||||
SelectionDAG &DAG) const {
|
SelectionDAG &DAG) const {
|
||||||
EVT VT = Op.getValueType();
|
MVT VT = Op.getValueType().getSimpleVT();
|
||||||
EVT EltVT = VT.getVectorElementType();
|
MVT EltVT = VT.getVectorElementType();
|
||||||
DebugLoc dl = Op.getDebugLoc();
|
DebugLoc dl = Op.getDebugLoc();
|
||||||
|
|
||||||
SDValue N0 = Op.getOperand(0);
|
SDValue N0 = Op.getOperand(0);
|
||||||
@ -7247,8 +7247,8 @@ X86TargetLowering::LowerINSERT_VECTOR_ELT_SSE4(SDValue Op,
|
|||||||
|
|
||||||
SDValue
|
SDValue
|
||||||
X86TargetLowering::LowerINSERT_VECTOR_ELT(SDValue Op, SelectionDAG &DAG) const {
|
X86TargetLowering::LowerINSERT_VECTOR_ELT(SDValue Op, SelectionDAG &DAG) const {
|
||||||
EVT VT = Op.getValueType();
|
MVT VT = Op.getValueType().getSimpleVT();
|
||||||
EVT EltVT = VT.getVectorElementType();
|
MVT EltVT = VT.getVectorElementType();
|
||||||
|
|
||||||
DebugLoc dl = Op.getDebugLoc();
|
DebugLoc dl = Op.getDebugLoc();
|
||||||
SDValue N0 = Op.getOperand(0);
|
SDValue N0 = Op.getOperand(0);
|
||||||
@ -7296,7 +7296,7 @@ X86TargetLowering::LowerINSERT_VECTOR_ELT(SDValue Op, SelectionDAG &DAG) const {
|
|||||||
static SDValue LowerSCALAR_TO_VECTOR(SDValue Op, SelectionDAG &DAG) {
|
static SDValue LowerSCALAR_TO_VECTOR(SDValue Op, SelectionDAG &DAG) {
|
||||||
LLVMContext *Context = DAG.getContext();
|
LLVMContext *Context = DAG.getContext();
|
||||||
DebugLoc dl = Op.getDebugLoc();
|
DebugLoc dl = Op.getDebugLoc();
|
||||||
EVT OpVT = Op.getValueType();
|
MVT OpVT = Op.getValueType().getSimpleVT();
|
||||||
|
|
||||||
// If this is a 256-bit vector result, first insert into a 128-bit
|
// If this is a 256-bit vector result, first insert into a 128-bit
|
||||||
// vector and then insert into the 256-bit vector.
|
// vector and then insert into the 256-bit vector.
|
||||||
|
Loading…
Reference in New Issue
Block a user