panfrost/midgard: Add more ball/bany, iabs ops
authorAlyssa Rosenzweig <alyssa@rosenzweig.io>
Mon, 25 Mar 2019 00:07:32 +0000 (00:07 +0000)
committerAlyssa Rosenzweig <alyssa@rosenzweig.io>
Tue, 26 Mar 2019 23:35:18 +0000 (23:35 +0000)
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
src/gallium/drivers/panfrost/midgard/midgard.h

index f3cabff8c2f9aa7c29e7ab8eeeaf1f6f2831852b..c40c94bc3783f87b3eaa1269211d769abdc5ad05 100644 (file)
@@ -84,24 +84,39 @@ typedef enum {
         midgard_alu_op_iandnot    = 0x74, /* (a, b) -> a & ~b, used for not/b2f */
         midgard_alu_op_ixor       = 0x76,
         midgard_alu_op_imov       = 0x7B,
+        midgard_alu_op_iabs       = 0x7C,
         midgard_alu_op_feq        = 0x80,
         midgard_alu_op_fne        = 0x81,
         midgard_alu_op_flt        = 0x82,
         midgard_alu_op_fle        = 0x83,
         midgard_alu_op_fball_eq   = 0x88,
         midgard_alu_op_bball_eq   = 0x89,
+        midgard_alu_op_fball_lt   = 0x8A, /* all(lessThan(.., ..)) */
+        midgard_alu_op_fball_lte  = 0x8B, /* all(lessThanEqual(.., ..)) */
         midgard_alu_op_bbany_neq  = 0x90, /* used for bvec4(1) */
         midgard_alu_op_fbany_neq  = 0x91, /* bvec4(0) also */
+        midgard_alu_op_fbany_lt   = 0x92, /* any(lessThan(.., ..)) */
+        midgard_alu_op_fbany_lte  = 0x93, /* any(lessThanEqual(.., ..)) */
         midgard_alu_op_f2i        = 0x99,
         midgard_alu_op_f2u8       = 0x9C,
         midgard_alu_op_f2u        = 0x9D,
+
         midgard_alu_op_ieq        = 0xA0,
         midgard_alu_op_ine        = 0xA1,
         midgard_alu_op_ilt        = 0xA4,
         midgard_alu_op_ile        = 0xA5,
         midgard_alu_op_iball_eq   = 0xA8,
         midgard_alu_op_ball       = 0xA9,
+        midgard_alu_op_uball_lt   = 0xAA,
+        midgard_alu_op_uball_lte  = 0xAB,
+        midgard_alu_op_iball_lt   = 0xAC,
+        midgard_alu_op_iball_lte  = 0xAD,
+        midgard_alu_op_ibany_eq   = 0xB0,
         midgard_alu_op_ibany_neq  = 0xB1,
+        midgard_alu_op_ubany_lt   = 0xB2,
+        midgard_alu_op_ubany_lte  = 0xB3,
+        midgard_alu_op_ibany_lt   = 0xB4, /* any(lessThan(.., ..)) */
+        midgard_alu_op_ibany_lte  = 0xB5, /* any(lessThanEqual(.., ..)) */
         midgard_alu_op_i2f        = 0xB8,
         midgard_alu_op_u2f        = 0xBC,
         midgard_alu_op_icsel      = 0xC1,
@@ -432,6 +447,7 @@ static char *alu_opcode_names[256] = {
         [midgard_alu_op_isub]       = "isub",
         [midgard_alu_op_imul]       = "imul",
         [midgard_alu_op_imov]       = "imov",
+        [midgard_alu_op_iabs]       = "iabs",
         [midgard_alu_op_iand]       = "iand",
         [midgard_alu_op_ior]        = "ior",
         [midgard_alu_op_inot]       = "inot",
@@ -444,7 +460,11 @@ static char *alu_opcode_names[256] = {
         [midgard_alu_op_fball_eq]   = "fball_eq",
         [midgard_alu_op_fbany_neq]  = "fbany_neq",
         [midgard_alu_op_bball_eq]   = "bball_eq",
+        [midgard_alu_op_fball_lt]   = "fball_lt",
+        [midgard_alu_op_fball_lte]  = "fball_lte",
         [midgard_alu_op_bbany_neq]  = "bbany_neq",
+        [midgard_alu_op_fbany_lt]   = "fbany_lt",
+        [midgard_alu_op_fbany_lte]  = "fbany_lte",
         [midgard_alu_op_f2i]        = "f2i",
         [midgard_alu_op_f2u]        = "f2u",
         [midgard_alu_op_f2u8]       = "f2u8",
@@ -454,7 +474,16 @@ static char *alu_opcode_names[256] = {
         [midgard_alu_op_ile]        = "ile",
         [midgard_alu_op_iball_eq]   = "iball_eq",
         [midgard_alu_op_ball]       = "ball",
+        [midgard_alu_op_uball_lt]   = "uball_lt",
+        [midgard_alu_op_uball_lte]  = "uball_lte",
+        [midgard_alu_op_iball_lt]   = "iball_lt",
+        [midgard_alu_op_iball_lte]  = "iball_lte",
+        [midgard_alu_op_iball_eq]   = "iball_eq",
         [midgard_alu_op_ibany_neq]  = "ibany_neq",
+        [midgard_alu_op_ubany_lt]   = "ubany_lt",
+        [midgard_alu_op_ubany_lte]  = "ubany_lte",
+        [midgard_alu_op_ibany_lt]   = "ibany_lt",
+        [midgard_alu_op_ibany_lte]  = "ibany_lte",
         [midgard_alu_op_i2f]        = "i2f",
         [midgard_alu_op_u2f]        = "u2f",
         [midgard_alu_op_icsel]      = "icsel",