diff options
author | Thorsten Schütt <schuett@gmail.com> | 2024-11-11 10:45:02 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-11-11 10:45:02 +0100 |
commit | a5d09f4ad94fab718e787fb6dce7933e7742eb1b (patch) | |
tree | d3c9b42d7786c5a3b3c0353f41f30f27eafb4e59 /llvm/lib/CodeGen/GlobalISel/MachineIRBuilder.cpp | |
parent | a4e507df7a07f234350669395d3521ed343a06ea (diff) | |
download | llvm-a5d09f4ad94fab718e787fb6dce7933e7742eb1b.zip llvm-a5d09f4ad94fab718e787fb6dce7933e7742eb1b.tar.gz llvm-a5d09f4ad94fab718e787fb6dce7933e7742eb1b.tar.bz2 |
[GlobalISel] Add G_STEP_VECTOR instruction (#115598)
aka llvm.stepvector Intrinsic
Diffstat (limited to 'llvm/lib/CodeGen/GlobalISel/MachineIRBuilder.cpp')
-rw-r--r-- | llvm/lib/CodeGen/GlobalISel/MachineIRBuilder.cpp | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/llvm/lib/CodeGen/GlobalISel/MachineIRBuilder.cpp b/llvm/lib/CodeGen/GlobalISel/MachineIRBuilder.cpp index 02dbe78..c5e5c92 100644 --- a/llvm/lib/CodeGen/GlobalISel/MachineIRBuilder.cpp +++ b/llvm/lib/CodeGen/GlobalISel/MachineIRBuilder.cpp @@ -809,6 +809,17 @@ MachineInstrBuilder MachineIRBuilder::buildInsert(const DstOp &Res, return buildInstr(TargetOpcode::G_INSERT, Res, {Src, Op, uint64_t(Index)}); } +MachineInstrBuilder MachineIRBuilder::buildStepVector(const DstOp &Res, + unsigned Step) { + ConstantInt *CI = + ConstantInt::get(getMF().getFunction().getContext(), APInt(64, Step)); + auto StepVector = buildInstr(TargetOpcode::G_STEP_VECTOR); + StepVector->setDebugLoc(DebugLoc()); + Res.addDefToMIB(*getMRI(), StepVector); + StepVector.addCImm(CI); + return StepVector; +} + MachineInstrBuilder MachineIRBuilder::buildVScale(const DstOp &Res, unsigned MinElts) { |