Displaying 3 results from an estimated 3 matches for "nv50_ir_mod_neg".
2015 Mar 25
0
[PATCH] nv50/ir: take postFactor into account when doing peephole optimizations
...->postFactor = 0;
          i->setSrc(1, NULL);
       } else
-      if (imm0.isInteger(1) || imm0.isInteger(-1)) {
+      if (!i->postFactor && (imm0.isInteger(1) || imm0.isInteger(-1))) {
          if (imm0.isNegative())
             i->src(t).mod = i->src(t).mod ^ Modifier(NV50_IR_MOD_NEG);
          i->op = i->src(t).mod.getOp();
@@ -797,7 +801,7 @@ ConstantFolding::opnd(Instruction *i, ImmediateValue &imm0, int s)
             i->src(0).mod = 0;
          i->setSrc(1, NULL);
       } else
-      if (imm0.isInteger(2) || imm0.isInteger(-2)) {
+      if (!i->postF...
2017 Mar 26
5
[PATCH v5 0/5] nvc0/ir: add support for MAD/FMA PostRALoadPropagation
was "nv50/ir: PostRaConstantFolding improvements" before.
nothing really changed from the last version, just minor things.
Karol Herbst (5):
  nv50/ir: restructure and rename postraconstantfolding pass
  nv50/ir: implement mad post ra folding for nvc0+
  gk110/ir: add LIMM form of mad
  gm107/ir: add LIMM form of mad
  nv50/ir: also do PostRaLoadPropagation for FMA
2015 Jan 01
0
[PATCH] nv50/ir: fold MAD when one of the multiplicands is const
...+         i->op = OP_MOV;
+         i->setSrc(0, i->getSrc(2));
+         i->setSrc(1, NULL);
+         i->setSrc(2, NULL);
+      } else
+      if (imm0.isInteger(1) || imm0.isInteger(-1)) {
+         if (imm0.isNegative())
+            i->src(t).mod = i->src(t).mod ^ Modifier(NV50_IR_MOD_NEG);
+         if (s == 0) {
+            i->setSrc(0, i->getSrc(1));
+            i->src(0).mod = i->src(1).mod;
+         }
+         i->setSrc(1, i->getSrc(2));
+         i->src(1).mod = 0;
+         i->setSrc(2, NULL);
+         i->op = OP_ADD;
+      }
+      break;...