[Mesa-dev] [PATCH] nv50/ir: Add missing handling of U64/S64 in inlines

Pierre Moreau pierre.morrow at free.fr
Thu May 19 18:13:50 UTC 2016


Signed-off-by: Pierre Moreau <pierre.morrow at free.fr>
---

U64/S64 support is missing in other places of codegen (like in
nv50_ir_peephole.cpp for example), however its absence will result in code not
being as optimised as it could have. Adding that support is not as straight
forward as this patch, and will need a thorough testing to avoid any
regressions, therefore I’m only sending this patch for now.

 src/gallium/drivers/nouveau/codegen/nv50_ir_inlines.h | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/src/gallium/drivers/nouveau/codegen/nv50_ir_inlines.h b/src/gallium/drivers/nouveau/codegen/nv50_ir_inlines.h
index 4c5de2e..4cb53ab 100644
--- a/src/gallium/drivers/nouveau/codegen/nv50_ir_inlines.h
+++ b/src/gallium/drivers/nouveau/codegen/nv50_ir_inlines.h
@@ -126,7 +126,7 @@ static inline bool isFloatType(DataType ty)
 
 static inline bool isSignedIntType(DataType ty)
 {
-   return (ty == TYPE_S8 || ty == TYPE_S16 || ty == TYPE_S32);
+   return (ty == TYPE_S8 || ty == TYPE_S16 || ty == TYPE_S32 || ty == TYPE_S64);
 }
 
 static inline bool isSignedType(DataType ty)
@@ -136,6 +136,7 @@ static inline bool isSignedType(DataType ty)
    case TYPE_U8:
    case TYPE_U16:
    case TYPE_U32:
+   case TYPE_U64:
    case TYPE_B96:
    case TYPE_B128:
       return false;
@@ -147,6 +148,7 @@ static inline bool isSignedType(DataType ty)
 static inline DataType intTypeToSigned(DataType ty)
 {
    switch (ty) {
+   case TYPE_U64: return TYPE_S64;
    case TYPE_U32: return TYPE_S32;
    case TYPE_U16: return TYPE_S16;
    case TYPE_U8: return TYPE_S8;
-- 
2.8.2



More information about the mesa-dev mailing list