search for: repeat_x_times

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...