Displaying 20 results from an estimated 41 matches for "rs1".
Did you mean:
rc1
2019 Nov 22
2
Tablegen PAT limitation?
def STOREbos { // InstructionEncoding Instruction RPPInst RPPInstMMEMrr
field bits<32> Inst = { 0, 0, 0, 1, rs1{2}, rs1{1}, rs1{0}, index{0}, 0, 0, 0, 1, 0, rbase{3}, rbase{2}, rbase{1}, rbase{0}, rbase{4}, roffset{4}, roffset{3}, roffset{2}, roffset{1}, roffset{0}, 0, 0, 0, 0, 0, 0, 0, 0, 0 };
field bits<32> SoftFail = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,...
2019 Nov 25
2
Tablegen PAT limitation?
...t;;
Date: Fri, Nov 22, 2019 09:51 PM
To: "Celine"<595602881 at qq.com>;"llvm-dev"<llvm-dev at lists.llvm.org>;
Subject: RE: Re:RE: Re:RE: Re:RE: [llvm-dev] Tablegen PAT limitation?
Thanks.
Looking at the InOperandList, the rs1, rbase, etc. have register class prefixes, e.g. MGPR:$rs1. In the pattern they don’t have them. The error you saw (“rs1 must be an identifier”) was caused by tablegen being unable to match the rs1 in the pattern with any of the instruction operands.
Could you change the patte...
2019 Nov 21
2
Tablegen PAT limitation?
Hi Krzysztof,
Today I try it on llvm9.0.0 version.
def bos : RPPInstMMEMrr<OPC_STORE,
(outs), (ins MGPR:$rs1, SGPR32:$rbase, MGPR:$roffset, uimm2:$rshift),
!strconcat(opcodestr, ""), "$rs1, [$rbase + ( $roffset << $rshift )]",
// ...
2015 Sep 18
5
multiply-accumulate instruction
...similarly but performs signed multiply and accumulate. The MAC instructions execute in one clock but have two clocks latency, meaning that one pipeline stall cycle will be inserted if the following instruction uses the destination register of the MAC as a source operand.
Assembler syntax:
smac rs1, reg_imm, rd
Operation:
prod[31:0] = rs1[15:0] * reg_imm[15:0]
result[39:0] = (Y[7:0] & %asr18[31:0]) + prod[31:0]
(Y[7:0] & %asr18[31:0]) = result[39:0]
rd = result[31:0]
%asr18 can be read and written using the rdasr and wrasr instructions.
===
I have the following in S...
2019 Nov 20
4
Tablegen PAT limitation?
...ls/TableGen/TableGen.cpp:253:0
#27 0x00007f163fa21830 __libc_start_main /build/glibc-LK5gWL/glibc-2.23/csu/../csu/libc-start.c:325:0
#28 0x0000000000407bd9 _start (../../../bin/llvm-tblgen+0x407bd9)
===========================================================
PATTERN: (st v1i16:{ *:[v1i16] }:$rs1, (add:{ *:[v1i32] } (shl:{ *:[v1i32] } (sext:{ *:[v1i32] } v1i16:{ *:[v1i16] }:$roffset), (build_vector:{ *:[v1i32] } (imm:{ *:[i32] })<<P:Predicate_uimm2>>:$rshift)), (bitconvert:{ *:[v1i32] } i32:{ *:[i32] }:$rbase)))<<P:Predicate_unindexedstore>><<P:...
2018 Dec 14
2
Dealing with information loss for widened integer operations at ISel time
...iedma at codeaurora.org> wrote:
>
> On 12/13/2018 6:25 AM, Alex Bradbury wrote:
> > There's also likely to be cases where you want to calculate the demanded bits
> > in order to determine if e.g. a W-suffixed instruction can be selected for
> > `(somoeop (zexti32 GPR:$rs1), (zexti32 GPR:$rs2))`. This is easy to match if
> > the SelectionDAG contains an explicit `sext_inreg` of the result. But if not,
> > you'd need to check whether the upper 32 bits are actually demanded or not.
>
> Could you describe more specifically where this matters? I wo...
2015 Sep 21
2
multiply-accumulate instruction
...t it from some higher level construct? I'd expect the former would be entirely sufficient, in which case this should be sufficient:
let Predicates = [HasLeon3, HasLeon4], Defs = [Y, ASR18], Uses = [Y, ASR18] in
def SMACrr : F3_1<3, 0b111110,
(outs IntRegs:$rd), (ins IntRegs:$rs1, IntRegs:$rs2),
"smac $rs1, $rs2, $rd",
[]>;
If you want the latter, I'm not sure how you'd go about being able to pattern-match it, because of the unusual 40 bit accumulate input and output, and the unusual for sparc 16-bit inputs. Hopefully...
2003 Mar 20
1
bind blocking rsync
Hi Guys,
Here is the setup.
LVS NAT cluster with director (dir), backup director (bdir), and two
realservers (rs1 and rs2) running apache webserver.
SSH DSA key-based authentication set up between rs1 and rs2 in order to
facilitate automated (via cron) mirorring of htdocs directories. All
works fine untill I decide to host DNS on the same cluster. As soon as I
start BIND on rs1, ssh no longer works to this mac...
2014 Mar 06
2
'parallel' package changes '.Random.seed'
...parallelized) checks that depends on random number generation,
e.g., the simulated data in the check suite are no longer the same as
before parallelization was added. This seems to be due to 'parallel'
changing '.Random.seed' when loading its name space:
> set.seed(1)
> rs1 <- .Random.seed
> rnorm(1)
[1] -0.6264538
> set.seed(1)
> rs2 <- .Random.seed
> identical(rs1, rs2)
[1] TRUE
> loadNamespace("parallel")
<environment: namespace:parallel>
> rs3 <- .Random.seed
> identical(rs1, rs3)
[1] FALSE
> rnorm(1)
[1] -0...
2017 Dec 15
2
InstAlias with tied operands - can it be supported?
...quot;' can never be matched!");
// FIXME: Should reject these. The ARM backend hits this with
$lane in a
// bunch of instructions. It is unclear what the right answer is.
…
Is there a way to fix this limitation?
I would like to express: InstAlias<(opcode $rd, $rd, $rs1), (newopcode
$rd, $rs1)>
Thank you,
Ana.
--
Ana Pazos
Qualcomm Innovation Center, Inc.
Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum,
a Linux Foundation Collaborative Project.
2018 Dec 13
2
Dealing with information loss for widened integer operations at ISel time
...or this. It is
essential to know the original type of the shift amount. The fact it was i32
means that it's safe to select SLLW in this case (as a shift amount > 31 would
be undefined behaviour). It's tempting to write a pattern like the following:
def : Pat<(sext_inreg (shl GPR:$rs1, GPR:$rs2), i32),
(SLLW GPR:$rs1, GPR:$rs2)>;
But as Eli Friedman kindly pointed out, the `sext_inreg` node can be generated
in cases other than i32 to i64 widening. e.g.
define i64 @tricky_shl(i64 %a, i64 %b) {
%1 = shl i64 %a, %b
%2 = shl i64 %1, 32
%3 = a...
2019 Sep 27
2
Maybe a TableGen bug?
Hi,
Here's llvm-tblgen -print-records message:
def LOADbos { // Instruction ABCInst ABCInstMMEMrr
field bits<32> Inst = { 0, 0, 0, 0, rs1{2}, rs1{1}, rs1{0}, index{0}, 0,
0, 0, 1, 0, rbase{3}, rbase{2}, rbase{1}, rbase{0}, rbase{4}, roffset{4},
roffset{3}, roffset{2}, roffset{1}, roffset{0}, 0, 0, 0, 0, 0, 0, 0, 0, 0 };
field bits<32> SoftFail = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0...
2018 Jan 04
1
InstAlias with tied operands - can it be supported?
Hi Daniel,
I defined checkEarlyTargetMatchPredicate() to explicitly check for the
tied operands, and it worked.
I could define an alias like: InstAlias<"oldOP $rd, $rd, $rs1", (NEWOP
$rd, $rs1)>
However, I had to additionally change AsmMatcherEmitter 'Hack' variable
setting to allow the repeated operand $rd in the AsmString.
Do you or anyone else know the history with this 'Hack' flag?
Thanks,
Ana.
diff --git a/utils/TableGen/AsmMatcherEmi...
2017 Dec 15
0
InstAlias with tied operands - can it be supported?
...hed!");
> // FIXME: Should reject these. The ARM backend hits this with $lane in a
> // bunch of instructions. It is unclear what the right answer is.
> …
>
> Is there a way to fix this limitation?
>
> I would like to express: InstAlias<(opcode $rd, $rd, $rs1), (newopcode $rd, $rs1)>
>
> Thank you,
> Ana.
>
>
> --
> Ana Pazos
> Qualcomm Innovation Center, Inc.
> Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum,
> a Linux Foundation Collaborative Project.
> _________________________________________...
2013 Mar 31
10
Debootstrapping a rootfs for Xen on FastModels A15
Hi,
I''ve tried several different approaches to debootstrap a working
rootfs for with a Cortex A15 model ( FastModels ) and Xen but still
face some issues.
Some information on my setup.
For a Dom0 kernel I''m using the latest version from
git://github.com/torvalds/linux.git, I attached my config as it might
be of some use for others. I''m using the latest Xen unstable
2018 Apr 09
2
Tablegen pattern: How to emit a SDNode in an output pattern?
I'm trying to write a tablegen pattern to that matches a sequence of
SDNodes and emits again an SDNode and another instruction.
The pattern I've written looks like the folowing:
def : Pat<(foo (bar GPR:$rs1), simm12:$imm1),
(bar (BAZ GPR:$rs1, simm12:$imm1))>;
foo and bar are SDNodes, BAZ is an instruction. In particular, bar is
defined as follows:
def bar : SDNode<"ISD::BAR", SDTIntUnaryOp>;
The basic idea of this pattern is to propagate bar over certain
instructions u...
2020 Mar 23
3
[InstCombine] Addrspacecast and GEP assumed commutative
...ot otherwise. Matt, wdyt?
> I stumbled upon this because this reordering actually gives problems for instruction selection in the NVPTX backend.
> Without reordering, the above IR gets lowered to:
>
> ld.param.u64 %rd1, [test_param_0];
> cvta.to.global.u64 %rd2, %rd1;
> mov.u16 %rs1, 0;
> st.global.u16 [%rd2+32], %rs1;
> ret;
>
> But with the reordering, the backend instead emits this:
>
> ld.param.u64 %rd1, [test_param_0];
> add.s64 %rd2, %rd1, 32;
> cvta.to.global.u64 %rd3, %rd2;
> mov.u16 %rs1, 0;
> st.global.u16 [%rd3], %rs1;
> ret;
>
&g...
2015 Nov 23
3
Qs about TwoOperandAliasConstraint and TIED_TO
in llvm-3.6.2.src
1. when I put this around one of my instruction definitions in my target "InstrInfo.td" file,
let TwoOperandAliasConstraint = "$dst = $rs1" in {
}
I do not see any TIED_TO in the generated GenInstrInfo.inc file for the OperandInfo used by the instruction,
the question is what am I doing wrong ?
2. I've noticed that TwoOperandAliasConstraint does not appear anywhere in source/lib/Target/X86/*
yet TIED_TO occurs in...
2018 Jun 28
1
1.0 or 1.1pre?
...14.
Now I'm trying to add an Openwrt device and it includes 1.0.33 only.
This will replace the Tomato Shibby device with 1.1pre14.
I just downgraded one of my other devices to 1.0 (1.0.34) to see if this
was going to work, and it doesn't connect. The master is logging:
Jun 27 20:27:28 rs1 tincd[3169]: Peer dbtest3
(2400:8901::f03c:91ff:fe2c:2d7e port 48389) tries to roll back protocol
version to 17.0
Jun 27 20:27:28 rs1 tincd[3169]: Error while processing ID from dbtest3
(2400:8901::f03c:91ff:fe2c:2d7e port 48389)
Should this connect? Do I need to downgrade everything to 1.0, o...
2014 Sep 01
3
[LLVMdev] understanding DAG: node creation
Hi,
I'm not sure. But in your lowered DAG the chain nodes are the first
operands for you custom nodes, however for the other nodes the chain is
the last operand. I seem to remember that during targetlowering the
chain is the first operand and then it seems to switch over after
ISelDAG, this confused me and may have something to do with the issue
that you are seeing. I really don't