Displaying 5 results from an estimated 5 matches for "repeat_x_times".
2016 Dec 03
2
Immediate operand for vector instructions
...OutOperandList = (outs);
/* From include/llvm/Target/Target.td:
let OperandType = "OPERAND_IMMEDIATE" in {
...
def i64imm : Operand<i64>; */
dag InOperandList = (ins i64imm:$imm);
string AsmString = "REPEAT_X_TIMES($imm";
list<dag> Pattern = [(int_repeat_x_times i64imm:$imm)];
InstrItinClass Itinerary = itin;
}
class REP_D_DESC : REP_1R_DESC_BASE;
class REP_D_ENC : MSA_I16_FMT<0b101010111>;
def REP_D: REP_D_ENC, REP_D_DESC;
and...
2016 May 30
2
Back end with special loop instructions
Hello.
I'm writing a back end for my research SIMD processor that has an assembly language
that is blocked structured, with one-level loops. An example program with my assembly
language:
REPEAT_X_TIMES(Param2)
R0 = LS[offset_A];
END_REPEAT;
The LLVM code somewhat equivalent to the above ASM program is:
vector.body:
%index = phi i64 [ %index.unr, %vector.body.preheader.split.split ], [
%index.next.3, %vector.body ]
%20 = getelementptr inbounds i32, i...
2016 Jun 13
2
LLVM IR intrinsics placeholder for strings [was Re: Back end with special loop instructions (using LLVM IR intrinsics)]
...()->getParent();
> Value *MTCTRFunc = Intrinsic::getDeclaration(M, Intrinsic::ppc_mtctr,CountType);
> CountBuilder.CreateCall(MTCTRFunc, ECValue);
>
> I have defined also some intrinsics for my loop instructions in my file
> Intrinsics_Connex.td: 1 intrinsic for REPEAT_X_TIMES and 1 for END_REPEAT.
> /* following Intrinsics.td:
> class Intrinsic<list<LLVMType> ret_types,
> list<LLVMType> param_types = [],
> list<IntrinsicProperty> properties = [],
> string name = "&q...
2016 May 30
1
Back end with special loop instructions
...[llvm-dev] Back end with special loop instructions
>
> Hello.
> I'm writing a back end for my research SIMD processor that has
> an assembly language
> that is blocked structured, with one-level loops. An example program
> with my assembly
> language:
> REPEAT_X_TIMES(Param2)
> R0 = LS[offset_A];
> END_REPEAT;
>
> The LLVM code somewhat equivalent to the above ASM program is:
> vector.body:
> %index = phi i64 [ %index.unr,
> %vector.body.preheader.split.split ], [
> %index.next.3, %vector.bod...
2016 Dec 06
0
Immediate operand for vector instructions
...com> wrote:
> We can compile it. Note that this is the only compilable code w.r.t.
> using i64 or i64imm (in the 2 lines above: "dag InOperandList", "list<dag>
> Pattern").
Yeah, you actually want to use "imm":
list<dag> Pattern = [(int_repeat_x_times imm:$imm)];
When the table generator sees "i64" it doesn't go looking in the
InOperandList to determine that the operand should be an immediate. It
just matches anything and shoves it into a register. It *does* know
about "imm" though because that's defined to match up...