From d572f4dfd9cf1d5dda42fd51203e43d17afa4189 Mon Sep 17 00:00:00 2001 From: Jesse Natalie Date: Mon, 22 Jun 2020 11:49:41 -0700 Subject: [PATCH] nir: Support algebraic opts on vectors larger than 4 Reviewed-by: Boris Brezillon Reviewed-by: Alyssa Rosenzweig Reviewed-by: Jason Ekstrand Part-of: --- src/compiler/nir/nir_algebraic.py | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/compiler/nir/nir_algebraic.py b/src/compiler/nir/nir_algebraic.py index 2112854570d..6871af36ef8 100644 --- a/src/compiler/nir/nir_algebraic.py +++ b/src/compiler/nir/nir_algebraic.py @@ -348,9 +348,13 @@ class Variable(Value): def swizzle(self): if self.swiz is not None: - swizzles = {'x' : 0, 'y' : 1, 'z' : 2, 'w': 3} + swizzles = {'x' : 0, 'y' : 1, 'z' : 2, 'w' : 3, + 'a' : 0, 'b' : 1, 'c' : 2, 'd' : 3, + 'e' : 4, 'f' : 5, 'g' : 6, 'h' : 7, + 'i' : 8, 'j' : 9, 'k' : 10, 'l' : 11, + 'm' : 12, 'n' : 13, 'o' : 14, 'p' : 15 } return '{' + ', '.join([str(swizzles[c]) for c in self.swiz[1:]]) + '}' - return '{0, 1, 2, 3}' + return '{0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15}' _opcode_re = re.compile(r"(?P~)?(?P!)?(?P\w+)(?:@(?P\d+))?" r"(?P\([^\)]+\))?") -- 2.30.2