Displaying 4 results from an estimated 4 matches for "ld_d".
Did you mean:
l_d
2016 Mar 18
2
Immediate operand for load instruction, in back end
...ctor load
instruction that takes an immediate address operand. (I got inspired from Mips' MSA SIMD
extensions.)
Could you please tell me what's the right way to do it?
Here, the load class has $addrsrc which is a relative address with base a certain
register and offset:
class LD_DESC_BASE<string instr_asm, SDPatternOperator OpNode,
ValueType TyNode, RegisterOperand ROWD,
Operand MemOpnd = mem_msa,
ComplexPattern Addr = addrimm10,
InstrItinClass itin = NoItinerary> {
dag OutOperandList = (outs ROWD:$wd);
dag InOperandList = (ins MemOpnd:$addrsr...
2016 Mar 22
0
Immediate operand for load instruction, in back end
Hi Alex,
So far, the code you've mentioned only defines a couple tablegen classes but doesn't define the instruction itself. To define the instruction you will also need a 'def' statement. For MIPS MSA, this statement looks like this:
def LD_D: LD_D_ENC, LD_D_DESC;
This defines an instruction (LD_D) with the encoding specified by the LD_D_ENC class, and the operation description (including assembly syntax) specified by the LD_D_DESC class. You'll sometimes find 'adjectives' like ISA_MIPS2 which specify the version of the MIPS...
2016 Jun 28
2
Instruction selection problem with type i64 - mistaken as v8i64?
...(index = 0; index < N - (N % 8); index += 8) {.
_BEGIN_KERNEL(BatchNumber);
EXECUTE_IN_ALL(> [sideeffect] [attdialect]
INLINEASM <es:connex->writeDataToArray(&C[index], /*numVectors*/ 1, /*offset*/
3);> [sideeffect] [attdialect]
%Wd1<def> = LD_D 3; mem:LD64[inttoptr (i64 3 to <8 x i64>*)](align=8)
%Wd0<def> = ADDV_D %Wd1<kill>, %Wd0<kill>
INLINEASM <es: );.
_END_KERNEL(BatchNumber);
connex->executeKernel(TEST_PREFIX + to_string((long long int)BatchNumber));
connex->execute...
2016 Jun 29
0
Instruction selection problem with type i64 - mistaken as v8i64?
...N % 8); index += 8) {.
> _BEGIN_KERNEL(BatchNumber);
> EXECUTE_IN_ALL(> [sideeffect] [attdialect]
> INLINEASM <es:connex->writeDataToArray(&C[index], /*numVectors*/
> 1, /*offset*/
> 3);> [sideeffect] [attdialect]
> %Wd1<def> = LD_D 3; mem:LD64[inttoptr (i64 3 to <8 x i64>*)](align=8)
> %Wd0<def> = ADDV_D %Wd1<kill>, %Wd0<kill>
> INLINEASM <es: );.
> _END_KERNEL(BatchNumber);
> connex->executeKernel(TEST_PREFIX + to_string((long long
> int)BatchNumber...