Displaying 20 results from an estimated 44 matches for "op_cvt".
2015 Jan 11
0
[PATCH v2] nv50/ir: Handle OP_CVT when folding constant expressions
...>> +++ b/src/gallium/drivers/nouveau/codegen/nv50_ir_peephole.cpp
>>> @@ -997,6 +997,87 @@ ConstantFolding::opnd(Instruction *i, ImmediateValue
>>> &imm0, int s)
>>> i->op = OP_MOV;
>>> break;
>>> }
>>> + case OP_CVT: {
>>> + Storage res;
>>> + bld.setPosition(i, true); /* make sure bld is init'ed */
>>> + switch(i->dType) {
>>> + case TYPE_U16:
>>> + switch (i->sType) {
>>> + case TYPE_F32:
>>> +...
2015 Jan 11
0
[PATCH v2] nv50/ir: Handle OP_CVT when folding constant expressions
...>>>>> @@ -997,6 +997,87 @@ ConstantFolding::opnd(Instruction *i,
>>>>> ImmediateValue
>>>>> &imm0, int s)
>>>>> i->op = OP_MOV;
>>>>> break;
>>>>> }
>>>>> + case OP_CVT: {
>>>>> + Storage res;
>>>>> + bld.setPosition(i, true); /* make sure bld is init'ed */
>>>>> + switch(i->dType) {
>>>>> + case TYPE_U16:
>>>>> + switch (i->sType) {
>>>>>...
2015 Jan 11
2
[PATCH v2] nv50/ir: Handle OP_CVT when folding constant expressions
...drivers/nouveau/codegen/nv50_ir_peephole.cpp
>>>> @@ -997,6 +997,87 @@ ConstantFolding::opnd(Instruction *i, ImmediateValue
>>>> &imm0, int s)
>>>> i->op = OP_MOV;
>>>> break;
>>>> }
>>>> + case OP_CVT: {
>>>> + Storage res;
>>>> + bld.setPosition(i, true); /* make sure bld is init'ed */
>>>> + switch(i->dType) {
>>>> + case TYPE_U16:
>>>> + switch (i->sType) {
>>>> + case TYPE_F3...
2015 Jan 11
2
[PATCH v2] nv50/ir: Handle OP_CVT when folding constant expressions
...eau/codegen/nv50_ir_peephole.cpp
>> +++ b/src/gallium/drivers/nouveau/codegen/nv50_ir_peephole.cpp
>> @@ -997,6 +997,87 @@ ConstantFolding::opnd(Instruction *i, ImmediateValue &imm0, int s)
>> i->op = OP_MOV;
>> break;
>> }
>> + case OP_CVT: {
>> + Storage res;
>> + bld.setPosition(i, true); /* make sure bld is init'ed */
>> + switch(i->dType) {
>> + case TYPE_U16:
>> + switch (i->sType) {
>> + case TYPE_F32:
>> + if (i->saturate)
>...
2017 Apr 29
5
[PATCH v2] nv50/ir: optimize shl(a, 0) to a
.../src/gallium/drivers/nouveau/codegen/nv50_ir_peephole.cpp
@@ -1284,6 +1284,13 @@ ConstantFolding::opnd(Instruction *i, ImmediateValue &imm0, int s)
case OP_SHL:
{
+ if (s == 1 && imm0.isInteger(0)) {
+ i->op = i->src(0).mod.getOp();
+ if (i->op != OP_CVT)
+ i->src(0).mod = 0;
+ i->setSrc(1, NULL);
+ break;
+ }
if (s != 1 || i->src(0).mod != Modifier(0))
break;
// try to concatenate shifts
--
2.12.2
2015 Jan 11
0
[PATCH v2] nv50/ir: Handle OP_CVT when folding constant expressions
...a/src/gallium/drivers/nouveau/codegen/nv50_ir_peephole.cpp
> +++ b/src/gallium/drivers/nouveau/codegen/nv50_ir_peephole.cpp
> @@ -997,6 +997,87 @@ ConstantFolding::opnd(Instruction *i, ImmediateValue &imm0, int s)
> i->op = OP_MOV;
> break;
> }
> + case OP_CVT: {
> + Storage res;
> + bld.setPosition(i, true); /* make sure bld is init'ed */
> + switch(i->dType) {
> + case TYPE_U16:
> + switch (i->sType) {
> + case TYPE_F32:
> + if (i->saturate)
> + res.data.u...
2015 Jan 11
2
[PATCH] nv50/ir: Handle OP_CVT when folding constant expressions
...a/src/gallium/drivers/nouveau/codegen/nv50_ir_peephole.cpp
> +++ b/src/gallium/drivers/nouveau/codegen/nv50_ir_peephole.cpp
> @@ -997,6 +997,79 @@ ConstantFolding::opnd(Instruction *i, ImmediateValue &imm0, int s)
> i->op = OP_MOV;
> break;
> }
> + case OP_CVT: {
> + Storage res;
> + bld.setPosition(i, true); /* make sure bld is init'ed */
> + switch(i->dType) {
> + case TYPE_U16:
> + switch (i->sType) {
> + case TYPE_F32:
> + if (i->saturate)
> + res.data.u...
2015 Jan 11
0
[PATCH] nv50/ir: Handle OP_CVT when folding constant expressions
...eau/codegen/nv50_ir_peephole.cpp
>> +++ b/src/gallium/drivers/nouveau/codegen/nv50_ir_peephole.cpp
>> @@ -997,6 +997,79 @@ ConstantFolding::opnd(Instruction *i, ImmediateValue &imm0, int s)
>> i->op = OP_MOV;
>> break;
>> }
>> + case OP_CVT: {
>> + Storage res;
>> + bld.setPosition(i, true); /* make sure bld is init'ed */
>> + switch(i->dType) {
>> + case TYPE_U16:
>> + switch (i->sType) {
>> + case TYPE_F32:
>> + if (i->saturate)
>...
2015 Jan 11
0
[PATCH] nv50/ir: Handle OP_CVT when folding constant expressions
...drivers/nouveau/codegen/nv50_ir_peephole.cpp
>>>> @@ -997,6 +997,79 @@ ConstantFolding::opnd(Instruction *i, ImmediateValue
>>>> &imm0, int s)
>>>> i->op = OP_MOV;
>>>> break;
>>>> }
>>>> + case OP_CVT: {
>>>> + Storage res;
>>>> + bld.setPosition(i, true); /* make sure bld is init'ed */
>>>> + switch(i->dType) {
>>>> + case TYPE_U16:
>>>> + switch (i->sType) {
>>>> + case TYPE_F3...
2015 Jan 11
0
[PATCH] nv50/ir: Handle OP_CVT when folding constant expressions
...ex 21d20ca..aaf0d0d 100644
--- a/src/gallium/drivers/nouveau/codegen/nv50_ir_peephole.cpp
+++ b/src/gallium/drivers/nouveau/codegen/nv50_ir_peephole.cpp
@@ -997,6 +997,79 @@ ConstantFolding::opnd(Instruction *i, ImmediateValue &imm0, int s)
i->op = OP_MOV;
break;
}
+ case OP_CVT: {
+ Storage res;
+ bld.setPosition(i, true); /* make sure bld is init'ed */
+ switch(i->dType) {
+ case TYPE_U16:
+ switch (i->sType) {
+ case TYPE_F32:
+ if (i->saturate)
+ res.data.u16 = util_iround(CLAMP(imm0.reg.data.f32...
2015 Jan 11
2
[PATCH v2] nv50/ir: Handle OP_CVT when folding constant expressions
...7,6 +997,87 @@ ConstantFolding::opnd(Instruction *i,
>>>>>> ImmediateValue
>>>>>> &imm0, int s)
>>>>>> i->op = OP_MOV;
>>>>>> break;
>>>>>> }
>>>>>> + case OP_CVT: {
>>>>>> + Storage res;
>>>>>> + bld.setPosition(i, true); /* make sure bld is init'ed */
>>>>>> + switch(i->dType) {
>>>>>> + case TYPE_U16:
>>>>>> + switch (i->sType) {...
2014 Jul 03
0
[PATCH] nv50/ir: Handle OP_CVT when folding constant expressions
...ex b89da43..f92e635 100644
--- a/src/gallium/drivers/nouveau/codegen/nv50_ir_peephole.cpp
+++ b/src/gallium/drivers/nouveau/codegen/nv50_ir_peephole.cpp
@@ -970,6 +970,80 @@ ConstantFolding::opnd(Instruction *i, ImmediateValue &imm0, int s)
i->op = OP_MOV;
break;
}
+ case OP_CVT: {
+ Storage res;
+ bld.setPosition(i, true); /* make sure bld is init'ed */
+
+ switch(i->dType) {
+ case TYPE_U16:
+ switch (i->sType) {
+ case TYPE_F32: res.data.u16 = util_iround(imm0.reg.data.f32); break;
+ case TYPE_F64: res.data.u16 = uti...
2015 Jan 10
2
[PATCH v2] nv50/ir: Handle OP_CVT when folding constant expressions
...ex 9a0bb60..741c74f 100644
--- a/src/gallium/drivers/nouveau/codegen/nv50_ir_peephole.cpp
+++ b/src/gallium/drivers/nouveau/codegen/nv50_ir_peephole.cpp
@@ -997,6 +997,87 @@ ConstantFolding::opnd(Instruction *i, ImmediateValue &imm0, int s)
i->op = OP_MOV;
break;
}
+ case OP_CVT: {
+ Storage res;
+ bld.setPosition(i, true); /* make sure bld is init'ed */
+ switch(i->dType) {
+ case TYPE_U16:
+ switch (i->sType) {
+ case TYPE_F32:
+ if (i->saturate)
+ res.data.u16 = util_iround(CLAMP(imm0.reg.data.f32...
2015 Jan 11
2
[PATCH] nv50/ir: Handle OP_CVT when folding constant expressions
...>> +++ b/src/gallium/drivers/nouveau/codegen/nv50_ir_peephole.cpp
>>> @@ -997,6 +997,79 @@ ConstantFolding::opnd(Instruction *i, ImmediateValue
>>> &imm0, int s)
>>> i->op = OP_MOV;
>>> break;
>>> }
>>> + case OP_CVT: {
>>> + Storage res;
>>> + bld.setPosition(i, true); /* make sure bld is init'ed */
>>> + switch(i->dType) {
>>> + case TYPE_U16:
>>> + switch (i->sType) {
>>> + case TYPE_F32:
>>> +...
2015 Jan 10
0
[RESEND/PATCH] nv50/ir: Handle OP_CVT when folding constant expressions
...a/src/gallium/drivers/nouveau/codegen/nv50_ir_peephole.cpp
> +++ b/src/gallium/drivers/nouveau/codegen/nv50_ir_peephole.cpp
> @@ -997,6 +997,115 @@ ConstantFolding::opnd(Instruction *i, ImmediateValue &imm0, int s)
> i->op = OP_MOV;
> break;
> }
> + case OP_CVT: {
> + Storage res;
> + bld.setPosition(i, true); /* make sure bld is init'ed */
> + switch(i->dType) {
> + case TYPE_U16:
> + switch (i->sType) {
> + case TYPE_F32:
> + if (i->saturate)
> + res.data.u...
2014 Jul 06
0
[PATCH v5] nv50/ir: Handle OP_CVT when folding constant expressions
...x b89da43..c162ac4 100644
--- a/src/gallium/drivers/nouveau/codegen/nv50_ir_peephole.cpp
+++ b/src/gallium/drivers/nouveau/codegen/nv50_ir_peephole.cpp
@@ -970,6 +970,127 @@ ConstantFolding::opnd(Instruction *i, ImmediateValue &imm0, int s)
i->op = OP_MOV;
break;
}
+ case OP_CVT: {
+ Storage res;
+ bld.setPosition(i, true); /* make sure bld is init'ed */
+ switch(i->dType) {
+ case TYPE_U16:
+ switch (i->sType) {
+ case TYPE_F32:
+ if (i->saturate)
+ res.data.u16 = util_iround(CLAMP(imm0.reg.data.f32...
2015 Jan 11
2
[PATCH] nv50/ir: Handle OP_CVT when folding constant expressions
...>>>>> @@ -997,6 +997,79 @@ ConstantFolding::opnd(Instruction *i,
>>>>> ImmediateValue
>>>>> &imm0, int s)
>>>>> i->op = OP_MOV;
>>>>> break;
>>>>> }
>>>>> + case OP_CVT: {
>>>>> + Storage res;
>>>>> + bld.setPosition(i, true); /* make sure bld is init'ed */
>>>>> + switch(i->dType) {
>>>>> + case TYPE_U16:
>>>>> + switch (i->sType) {
>>>>>...
2014 Jul 05
1
[PATCH v4] nv50/ir: Handle OP_CVT when folding constant expressions
...x b89da43..c97f8f4 100644
--- a/src/gallium/drivers/nouveau/codegen/nv50_ir_peephole.cpp
+++ b/src/gallium/drivers/nouveau/codegen/nv50_ir_peephole.cpp
@@ -970,6 +970,127 @@ ConstantFolding::opnd(Instruction *i, ImmediateValue &imm0, int s)
i->op = OP_MOV;
break;
}
+ case OP_CVT: {
+ Storage res;
+ bld.setPosition(i, true); /* make sure bld is init'ed */
+ switch(i->dType) {
+ case TYPE_U16:
+ switch (i->sType) {
+ case TYPE_F32:
+ if (i->saturate) {
+ int32_t conv = util_iround(imm0.reg.data.f32);
+...
2016 Oct 02
2
[PATCH] nv50/ir: Propagate third immediate src when folding OP_MAD
...P_MAD:
if (imm0.isInteger(0)) {
+ ImmediateValue imm1;
i->setSrc(0, i->getSrc(2));
i->src(0).mod = i->src(2).mod;
i->setSrc(1, NULL);
i->setSrc(2, NULL);
- i->op = i->src(0).mod.getOp();
- if (i->op != OP_CVT)
- i->src(0).mod = 0;
+ if (i->src(0).getImmediate(imm1)) {
+ bld.setPosition(i, false);
+ newi = bld.mkMov(i->getDef(0), bld.mkImm(imm1.reg.data.u64),
+ i->dType);
+ delete_Instruction(prog, i);
+ }...
2015 Jan 09
3
[RESEND/PATCH] nv50/ir: Handle OP_CVT when folding constant expressions
...x 9a0bb60..6a3d515 100644
--- a/src/gallium/drivers/nouveau/codegen/nv50_ir_peephole.cpp
+++ b/src/gallium/drivers/nouveau/codegen/nv50_ir_peephole.cpp
@@ -997,6 +997,115 @@ ConstantFolding::opnd(Instruction *i, ImmediateValue &imm0, int s)
i->op = OP_MOV;
break;
}
+ case OP_CVT: {
+ Storage res;
+ bld.setPosition(i, true); /* make sure bld is init'ed */
+ switch(i->dType) {
+ case TYPE_U16:
+ switch (i->sType) {
+ case TYPE_F32:
+ if (i->saturate)
+ res.data.u16 = util_iround(CLAMP(imm0.reg.data.f32...