search for: op_set

Displaying 13 results from an estimated 13 matches for "op_set".

Did you mean: vp_set
2014 May 10
1
[PATCH] nv50/ir: make sure to reverse cond codes on all the OP_SET variants
...degen/nv50_ir_peephole.cpp index c89e1c3..cdae3c8 100644 --- a/src/gallium/drivers/nouveau/codegen/nv50_ir_peephole.cpp +++ b/src/gallium/drivers/nouveau/codegen/nv50_ir_peephole.cpp @@ -187,7 +187,8 @@ LoadPropagation::checkSwapSrc01(Instruction *insn) return; } - if (insn->op == OP_SET) + if (insn->op == OP_SET || insn->op == OP_SET_AND || + insn->op == OP_SET_OR || insn->op == OP_SET_XOR) insn->asCmp()->setCond = reverseCondCode(insn->asCmp()->setCond); else if (insn->op == OP_SLCT) -- 1.8.5.5
2015 May 09
5
[PATCH 1/4] nvc0/ir: avoid jumping to a sched instruction
Signed-off-by: Ilia Mirkin <imirkin at alum.mit.edu> --- Pretty sure there's nothing wrong with it, but it looks odd in the code. src/gallium/drivers/nouveau/codegen/nv50_ir_emit_gk110.cpp | 2 ++ src/gallium/drivers/nouveau/codegen/nv50_ir_emit_gm107.cpp | 7 +++++-- src/gallium/drivers/nouveau/codegen/nv50_ir_emit_nvc0.cpp | 2 ++ 3 files changed, 9 insertions(+), 2 deletions(-)
2015 May 09
2
[PATCH 3/4] nvc0/ir: optimize set & 1.0 to produce boolean-float sets
...vers/nouveau/codegen/nv50_ir_target_nv50.cpp > +++ b/src/gallium/drivers/nouveau/codegen/nv50_ir_target_nv50.cpp > @@ -413,6 +413,8 @@ TargetNV50::isOpSupported(operation op, DataType ty) const > return false; > case OP_SAD: > return ty == TYPE_S32; > + case OP_SET: > + return !isFloatType(ty); > default: > return true; > }
2019 Oct 14
1
[PATCH] gm107/ir: fix loading z offset for layered 3d image bindings
...su->tex.bindless) + v = loadSuInfo32(ind, slot, NVC0_SU_INFO_UNK1C, su->tex.bindless); + else + v = bld.mkOp2v(OP_SHR, TYPE_U32, bld.getSSA(), ind, bld.mkImm(11)); + Value *is_3d = bld.mkOp2v(OP_AND, TYPE_U32, bld.getSSA(), v, bld.mkImm(1)); + pred2d = bld.mkCmp(OP_SET, CC_EQ, TYPE_U32, bld.getSSA(1, FILE_PREDICATE), + TYPE_U32, bld.mkImm(0), is_3d); + + bld.mkOp2(OP_SHR, TYPE_U32, v, v, bld.loadImm(NULL, 16)); + su->moveSources(dim, 1); + su->setSrc(dim, v); + su->tex.target = nv50_ir::TEX_TARGET_3D; + po...
2016 Mar 17
4
[PATCH mesa v2 1/2] nouveau: codegen: Use FILE_MEMORY_BUFFER for buffers
...X come up with a way not to do this for EVERY little access but @@ -1978,6 +1979,7 @@ NVC0LoweringPass::visit(Instruction *i) } i->setIndirect(0, 1, NULL); i->setIndirect(0, 0, ptr); + i->getSrc(0)->reg.file = FILE_MEMORY_GLOBAL; bld.mkCmp(OP_SET, CC_GT, TYPE_U32, pred, TYPE_U32, offset, length); i->setPredicate(CC_NOT_P, pred); if (i->defExists(0)) { @@ -1987,7 +1989,7 @@ NVC0LoweringPass::visit(Instruction *i) break; case OP_ATOM: { - const bool cctl = i->src(0).getFile() == FILE_MEMORY_GLO...
2014 May 18
1
[PATCH 1/2] nv50/ir: fix s32 x s32 -> high s32 multiply logic
Retrieving the high 32 bits of a signed multiply is rather annoying. It appears that the simplest way to do this is to compute the absolute value of the arguments, and perform a u32 x u32 -> u64 operation. If the arguments' signs differ, then negate the result. Since there is no u64 support in the cvt instruction, we have the perform the 2's complement negation "by hand".
2015 Feb 20
10
[PATCH 01/11] nvc0/ir: add emission of dadd/dmul/dmad opcodes, fix minmax
Signed-off-by: Ilia Mirkin <imirkin at alum.mit.edu> --- .../drivers/nouveau/codegen/nv50_ir_emit_nvc0.cpp | 66 +++++++++++++++++++++- 1 file changed, 63 insertions(+), 3 deletions(-) diff --git a/src/gallium/drivers/nouveau/codegen/nv50_ir_emit_nvc0.cpp b/src/gallium/drivers/nouveau/codegen/nv50_ir_emit_nvc0.cpp index dfb093c..e38a3b8 100644 ---
2016 Apr 08
2
[PATCH mesa v2 1/2] nouveau: codegen: Use FILE_MEMORY_BUFFER for buffers
...s but >> @@ -1978,6 +1979,7 @@ NVC0LoweringPass::visit(Instruction *i) >> } >> i->setIndirect(0, 1, NULL); >> i->setIndirect(0, 0, ptr); >> + i->getSrc(0)->reg.file = FILE_MEMORY_GLOBAL; >> bld.mkCmp(OP_SET, CC_GT, TYPE_U32, pred, TYPE_U32, offset, length); >> i->setPredicate(CC_NOT_P, pred); >> if (i->defExists(0)) { >> @@ -1987,7 +1989,7 @@ NVC0LoweringPass::visit(Instruction *i) >> break; >> case OP_ATOM: >> { >&gt...
2016 Mar 23
0
[PATCH mesa v2 1/2] nouveau: codegen: Use FILE_MEMORY_BUFFER for buffers
...s for EVERY little access but > @@ -1978,6 +1979,7 @@ NVC0LoweringPass::visit(Instruction *i) > } > i->setIndirect(0, 1, NULL); > i->setIndirect(0, 0, ptr); > + i->getSrc(0)->reg.file = FILE_MEMORY_GLOBAL; > bld.mkCmp(OP_SET, CC_GT, TYPE_U32, pred, TYPE_U32, offset, length); > i->setPredicate(CC_NOT_P, pred); > if (i->defExists(0)) { > @@ -1987,7 +1989,7 @@ NVC0LoweringPass::visit(Instruction *i) > break; > case OP_ATOM: > { > - const bool cctl = i...
2016 Apr 12
2
[PATCH mesa v2 1/2] nouveau: codegen: Use FILE_MEMORY_BUFFER for buffers
...0LoweringPass::visit(Instruction *i) >>>> } >>>> i->setIndirect(0, 1, NULL); >>>> i->setIndirect(0, 0, ptr); >>>> + i->getSrc(0)->reg.file = FILE_MEMORY_GLOBAL; >>>> bld.mkCmp(OP_SET, CC_GT, TYPE_U32, pred, TYPE_U32, offset, >>>> length); >>>> i->setPredicate(CC_NOT_P, pred); >>>> if (i->defExists(0)) { >>>> @@ -1987,7 +1989,7 @@ NVC0LoweringPass::visit(Instruction *i) >>>> break; &g...
2014 May 20
14
[PATCH 00/12] Cherry-pick nv50/nvc0 patches from gallium-nine
I went through the gallium-nine tree and picked out nouveau patches that are general bug-fixes. The first bunch I'd like to also get into 10.2. I've reviewed all of them and they make sense to me, but sending them out for public review as well in case there are any objections. Unless I hear objections, I'd like to push this by Friday. Christoph Bumiller (11): nv50,nvc0: always pull
2016 Apr 08
0
[PATCH mesa v2 1/2] nouveau: codegen: Use FILE_MEMORY_BUFFER for buffers
...978,6 +1979,7 @@ NVC0LoweringPass::visit(Instruction *i) >>> } >>> i->setIndirect(0, 1, NULL); >>> i->setIndirect(0, 0, ptr); >>> + i->getSrc(0)->reg.file = FILE_MEMORY_GLOBAL; >>> bld.mkCmp(OP_SET, CC_GT, TYPE_U32, pred, TYPE_U32, offset, >>> length); >>> i->setPredicate(CC_NOT_P, pred); >>> if (i->defExists(0)) { >>> @@ -1987,7 +1989,7 @@ NVC0LoweringPass::visit(Instruction *i) >>> break; >>> case...
2016 Apr 14
0
[PATCH mesa v2 1/2] nouveau: codegen: Use FILE_MEMORY_BUFFER for buffers
...(Instruction *i) >>>>> } >>>>> i->setIndirect(0, 1, NULL); >>>>> i->setIndirect(0, 0, ptr); >>>>> + i->getSrc(0)->reg.file = FILE_MEMORY_GLOBAL; >>>>> bld.mkCmp(OP_SET, CC_GT, TYPE_U32, pred, TYPE_U32, offset, >>>>> length); >>>>> i->setPredicate(CC_NOT_P, pred); >>>>> if (i->defExists(0)) { >>>>> @@ -1987,7 +1989,7 @@ NVC0LoweringPass::visit(Instruction *i) >>>>&g...