Mesa (master): nv50/ir: fix cas lowering for 64 bit

GitLab Mirror gitlab-mirror at kemper.freedesktop.org
Tue Sep 1 19:05:30 UTC 2020


Module: Mesa
Branch: master
Commit: d7b65cf7d3d51124be590a1b66fb89f94f723fe3
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=d7b65cf7d3d51124be590a1b66fb89f94f723fe3

Author: Karol Herbst <kherbst at redhat.com>
Date:   Sat Mar  7 16:55:19 2020 +0100

nv50/ir: fix cas lowering for 64 bit

Signed-off-by: Karol Herbst <kherbst at redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6433>

---

 src/gallium/drivers/nouveau/codegen/nv50_ir_lowering_nvc0.cpp | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/src/gallium/drivers/nouveau/codegen/nv50_ir_lowering_nvc0.cpp b/src/gallium/drivers/nouveau/codegen/nv50_ir_lowering_nvc0.cpp
index 52106cb931f..0e69f25ca28 100644
--- a/src/gallium/drivers/nouveau/codegen/nv50_ir_lowering_nvc0.cpp
+++ b/src/gallium/drivers/nouveau/codegen/nv50_ir_lowering_nvc0.cpp
@@ -1734,9 +1734,10 @@ NVC0LoweringPass::handleCasExch(Instruction *cas, bool needCctl)
       // happen elsewhere in the universe.
       // Also, it sometimes returns the new value instead of the old one
       // under mysterious circumstances.
-      Value *dreg = bld.getSSA(8);
+      DataType ty = typeOfSize(typeSizeof(cas->dType) * 2);
+      Value *dreg = bld.getSSA(typeSizeof(ty));
       bld.setPosition(cas, false);
-      bld.mkOp2(OP_MERGE, TYPE_U64, dreg, cas->getSrc(1), cas->getSrc(2));
+      bld.mkOp2(OP_MERGE, ty, dreg, cas->getSrc(1), cas->getSrc(2));
       cas->setSrc(1, dreg);
       cas->setSrc(2, dreg);
    }



More information about the mesa-commit mailing list