pan/bi: Don't hide SCHED_ADD inside HI_LATENCY
authorAlyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Wed, 18 Mar 2020 17:42:12 +0000 (13:42 -0400)
committerMarge Bot <eric+marge@anholt.net>
Thu, 19 Mar 2020 03:23:07 +0000 (03:23 +0000)
It makes bitwise property checking annoying.

Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4242>

src/panfrost/bifrost/bi_tables.c
src/panfrost/bifrost/compiler.h

index 07dde05e02738d4f11ac7f5653d10c2e0b620bec..03d1bb72a4853fcbaa67a2476ffe16297b2601fa 100644 (file)
 
 unsigned bi_class_props[BI_NUM_CLASSES] = {
         [BI_ADD]               = BI_GENERIC | BI_MODS | BI_SCHED_ALL,
-        [BI_ATEST]             = BI_SCHED_HI_LATENCY | BI_VECTOR,
-        [BI_BRANCH]            = BI_SCHED_HI_LATENCY,
+        [BI_ATEST]             = BI_SCHED_HI_LATENCY | BI_SCHED_ADD | BI_VECTOR,
+        [BI_BRANCH]            = BI_SCHED_HI_LATENCY | BI_SCHED_ADD,
         [BI_CMP]               = BI_GENERIC | BI_MODS | BI_SCHED_ALL,
-        [BI_BLEND]             = BI_SCHED_HI_LATENCY | BI_VECTOR,
+        [BI_BLEND]             = BI_SCHED_HI_LATENCY | BI_SCHED_ADD | BI_VECTOR,
         [BI_BITWISE]           = BI_GENERIC | BI_SCHED_ALL,
         [BI_CONVERT]           = BI_SCHED_ALL | BI_SWIZZLABLE,
         [BI_CSEL]              = BI_SCHED_FMA,
-        [BI_DISCARD]           = BI_SCHED_HI_LATENCY,
+        [BI_DISCARD]           = BI_SCHED_HI_LATENCY | BI_SCHED_ADD,
         [BI_FMA]               = BI_ROUNDMODE | BI_SCHED_FMA,
         [BI_FREXP]             = BI_SCHED_ALL,
         [BI_ISUB]              = BI_GENERIC | BI_SCHED_ALL,
-        [BI_LOAD]              = BI_SCHED_HI_LATENCY | BI_VECTOR | BI_DATA_REG_DEST,
-        [BI_LOAD_UNIFORM]      = BI_SCHED_HI_LATENCY | BI_VECTOR | BI_DATA_REG_DEST,
-        [BI_LOAD_ATTR]                 = BI_SCHED_HI_LATENCY | BI_VECTOR | BI_DATA_REG_DEST,
-        [BI_LOAD_VAR]          = BI_SCHED_HI_LATENCY | BI_VECTOR | BI_DATA_REG_DEST,
-        [BI_LOAD_VAR_ADDRESS]  = BI_SCHED_HI_LATENCY,
+        [BI_LOAD]              = BI_SCHED_HI_LATENCY | BI_SCHED_ADD | BI_VECTOR | BI_DATA_REG_DEST,
+        [BI_LOAD_UNIFORM]      = BI_SCHED_HI_LATENCY | BI_SCHED_ADD | BI_VECTOR | BI_DATA_REG_DEST,
+        [BI_LOAD_ATTR]                 = BI_SCHED_HI_LATENCY | BI_SCHED_ADD | BI_VECTOR | BI_DATA_REG_DEST,
+        [BI_LOAD_VAR]          = BI_SCHED_HI_LATENCY | BI_SCHED_ADD | BI_VECTOR | BI_DATA_REG_DEST,
+        [BI_LOAD_VAR_ADDRESS]  = BI_SCHED_HI_LATENCY | BI_SCHED_ADD,
         [BI_MINMAX]            = BI_GENERIC | BI_SCHED_ALL,
         [BI_MOV]               = BI_MODS | BI_SCHED_ALL,
         [BI_SHIFT]             = BI_SCHED_ALL,
-        [BI_STORE]             = BI_SCHED_HI_LATENCY | BI_VECTOR | BI_DATA_REG_SRC,
-        [BI_STORE_VAR]                 = BI_SCHED_HI_LATENCY | BI_VECTOR | BI_DATA_REG_SRC,
+        [BI_STORE]             = BI_SCHED_HI_LATENCY | BI_SCHED_ADD | BI_VECTOR | BI_DATA_REG_SRC,
+        [BI_STORE_VAR]                 = BI_SCHED_HI_LATENCY | BI_SCHED_ADD | BI_VECTOR | BI_DATA_REG_SRC,
         [BI_SPECIAL]           = BI_SCHED_ADD | BI_SCHED_SLOW,
         [BI_SWIZZLE]            = BI_SCHED_ALL | BI_SWIZZLABLE,
-        [BI_TEX]               = BI_SCHED_HI_LATENCY | BI_VECTOR,
+        [BI_TEX]               = BI_SCHED_HI_LATENCY | BI_SCHED_ADD | BI_VECTOR,
         [BI_ROUND]             = BI_GENERIC | BI_ROUNDMODE | BI_SCHED_ALL,
 };
index 3c84c2671d52cc37782f6430c37e42bce8f9348a..483a282b57d0d947c6667ea95add145a6b694bb3 100644 (file)
@@ -108,7 +108,7 @@ extern unsigned bi_class_props[BI_NUM_CLASSES];
 
 /* For scheduling purposes this is a high latency instruction and must be at
  * the end of a clause. Implies ADD */
-#define BI_SCHED_HI_LATENCY ((1 << 7) | BI_SCHED_ADD)
+#define BI_SCHED_HI_LATENCY (1 << 7)
 
 /* Intrinsic is vectorized and should read 4 components regardless of writemask */
 #define BI_VECTOR (1 << 8)