Changeset View
Changeset View
Standalone View
Standalone View
llvm/lib/Target/RISCV/RISCVISelLowering.cpp
- This file is larger than 256 KB, so syntax highlighting is disabled by default.
Show First 20 Lines • Show All 451 Lines • ▼ Show 20 Lines | static const unsigned IntegerVPOps[] = { | ||||
ISD::VP_SHL, ISD::VP_REDUCE_ADD, ISD::VP_REDUCE_AND, | ISD::VP_SHL, ISD::VP_REDUCE_ADD, ISD::VP_REDUCE_AND, | ||||
ISD::VP_REDUCE_OR, ISD::VP_REDUCE_XOR, ISD::VP_REDUCE_SMAX, | ISD::VP_REDUCE_OR, ISD::VP_REDUCE_XOR, ISD::VP_REDUCE_SMAX, | ||||
ISD::VP_REDUCE_SMIN, ISD::VP_REDUCE_UMAX, ISD::VP_REDUCE_UMIN, | ISD::VP_REDUCE_SMIN, ISD::VP_REDUCE_UMAX, ISD::VP_REDUCE_UMIN, | ||||
ISD::VP_MERGE, ISD::VP_SELECT, ISD::VP_FP_TO_SINT, | ISD::VP_MERGE, ISD::VP_SELECT, ISD::VP_FP_TO_SINT, | ||||
ISD::VP_FP_TO_UINT, ISD::VP_SETCC, ISD::VP_SIGN_EXTEND, | ISD::VP_FP_TO_UINT, ISD::VP_SETCC, ISD::VP_SIGN_EXTEND, | ||||
ISD::VP_ZERO_EXTEND, ISD::VP_TRUNCATE}; | ISD::VP_ZERO_EXTEND, ISD::VP_TRUNCATE}; | ||||
static const unsigned FloatingPointVPOps[] = { | static const unsigned FloatingPointVPOps[] = { | ||||
ISD::VP_FADD, ISD::VP_FSUB, | ISD::VP_FADD, ISD::VP_FSUB, ISD::VP_FMUL, | ||||
ISD::VP_FMUL, ISD::VP_FDIV, | ISD::VP_FDIV, ISD::VP_FNEG, ISD::VP_FABS, | ||||
ISD::VP_FNEG, ISD::VP_FMA, | ISD::VP_FMA, ISD::VP_REDUCE_FADD, ISD::VP_REDUCE_SEQ_FADD, | ||||
ISD::VP_REDUCE_FADD, ISD::VP_REDUCE_SEQ_FADD, | ISD::VP_REDUCE_FMIN, ISD::VP_REDUCE_FMAX, ISD::VP_MERGE, | ||||
ISD::VP_REDUCE_FMIN, ISD::VP_REDUCE_FMAX, | ISD::VP_SELECT, ISD::VP_SINT_TO_FP, ISD::VP_UINT_TO_FP, | ||||
ISD::VP_MERGE, ISD::VP_SELECT, | ISD::VP_SETCC, ISD::VP_FP_ROUND, ISD::VP_FP_EXTEND}; | ||||
ISD::VP_SINT_TO_FP, ISD::VP_UINT_TO_FP, | |||||
ISD::VP_SETCC, ISD::VP_FP_ROUND, | |||||
ISD::VP_FP_EXTEND}; | |||||
static const unsigned IntegerVecReduceOps[] = { | static const unsigned IntegerVecReduceOps[] = { | ||||
ISD::VECREDUCE_ADD, ISD::VECREDUCE_AND, ISD::VECREDUCE_OR, | ISD::VECREDUCE_ADD, ISD::VECREDUCE_AND, ISD::VECREDUCE_OR, | ||||
ISD::VECREDUCE_XOR, ISD::VECREDUCE_SMAX, ISD::VECREDUCE_SMIN, | ISD::VECREDUCE_XOR, ISD::VECREDUCE_SMAX, ISD::VECREDUCE_SMIN, | ||||
ISD::VECREDUCE_UMAX, ISD::VECREDUCE_UMIN}; | ISD::VECREDUCE_UMAX, ISD::VECREDUCE_UMIN}; | ||||
static const unsigned FloatingPointVecReduceOps[] = { | static const unsigned FloatingPointVecReduceOps[] = { | ||||
ISD::VECREDUCE_FADD, ISD::VECREDUCE_SEQ_FADD, ISD::VECREDUCE_FMIN, | ISD::VECREDUCE_FADD, ISD::VECREDUCE_SEQ_FADD, ISD::VECREDUCE_FMIN, | ||||
▲ Show 20 Lines • Show All 3,313 Lines • ▼ Show 20 Lines | SDValue RISCVTargetLowering::LowerOperation(SDValue Op, | ||||
case ISD::VP_FSUB: | case ISD::VP_FSUB: | ||||
return lowerVPOp(Op, DAG, RISCVISD::FSUB_VL, /*HasMergeOp*/ true); | return lowerVPOp(Op, DAG, RISCVISD::FSUB_VL, /*HasMergeOp*/ true); | ||||
case ISD::VP_FMUL: | case ISD::VP_FMUL: | ||||
return lowerVPOp(Op, DAG, RISCVISD::FMUL_VL, /*HasMergeOp*/ true); | return lowerVPOp(Op, DAG, RISCVISD::FMUL_VL, /*HasMergeOp*/ true); | ||||
case ISD::VP_FDIV: | case ISD::VP_FDIV: | ||||
return lowerVPOp(Op, DAG, RISCVISD::FDIV_VL, /*HasMergeOp*/ true); | return lowerVPOp(Op, DAG, RISCVISD::FDIV_VL, /*HasMergeOp*/ true); | ||||
case ISD::VP_FNEG: | case ISD::VP_FNEG: | ||||
return lowerVPOp(Op, DAG, RISCVISD::FNEG_VL); | return lowerVPOp(Op, DAG, RISCVISD::FNEG_VL); | ||||
case ISD::VP_FABS: | |||||
return lowerVPOp(Op, DAG, RISCVISD::FABS_VL); | |||||
case ISD::VP_FMA: | case ISD::VP_FMA: | ||||
return lowerVPOp(Op, DAG, RISCVISD::VFMADD_VL); | return lowerVPOp(Op, DAG, RISCVISD::VFMADD_VL); | ||||
case ISD::VP_SIGN_EXTEND: | case ISD::VP_SIGN_EXTEND: | ||||
case ISD::VP_ZERO_EXTEND: | case ISD::VP_ZERO_EXTEND: | ||||
if (Op.getOperand(0).getSimpleValueType().getVectorElementType() == MVT::i1) | if (Op.getOperand(0).getSimpleValueType().getVectorElementType() == MVT::i1) | ||||
return lowerVPExtMaskOp(Op, DAG); | return lowerVPExtMaskOp(Op, DAG); | ||||
return lowerVPOp(Op, DAG, | return lowerVPOp(Op, DAG, | ||||
Op.getOpcode() == ISD::VP_SIGN_EXTEND | Op.getOpcode() == ISD::VP_SIGN_EXTEND | ||||
▲ Show 20 Lines • Show All 9,229 Lines • Show Last 20 Lines |