panfrost: Add XML for attribute buffers
[mesa.git] / src / panfrost / bifrost / bi_tables.c
index 03d1bb72a4853fcbaa67a2476ffe16297b2601fa..942de5eae5af910fa1faec99d72e7ff0a1fcb84e 100644 (file)
 #include "compiler.h"
 
 unsigned bi_class_props[BI_NUM_CLASSES] = {
-        [BI_ADD]               = BI_GENERIC | BI_MODS | BI_SCHED_ALL,
-        [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_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_SCHED_ADD,
-        [BI_FMA]               = BI_ROUNDMODE | BI_SCHED_FMA,
+        [BI_ADD]               = BI_MODS | BI_SCHED_ALL | BI_NO_ABS_ABS_FP16_FMA,
+        [BI_ATEST]             = BI_SCHED_HI_LATENCY | BI_SCHED_ADD,
+        [BI_BRANCH]            = BI_SCHED_HI_LATENCY | BI_SCHED_ADD | BI_CONDITIONAL,
+        [BI_CMP]               = BI_MODS | BI_SCHED_ALL | BI_CONDITIONAL,
+        [BI_BLEND]             = BI_SCHED_HI_LATENCY | BI_SCHED_ADD | BI_VECTOR | BI_DATA_REG_SRC,
+        [BI_BITWISE]           = BI_SCHED_ALL,
+        [BI_COMBINE]           = 0,
+        [BI_CONVERT]           = BI_SCHED_ADD | BI_SWIZZLABLE | BI_ROUNDMODE, /* +FMA on G71 */
+        [BI_CSEL]              = BI_SCHED_FMA | BI_CONDITIONAL,
+        [BI_DISCARD]           = BI_SCHED_HI_LATENCY | BI_SCHED_ADD | BI_CONDITIONAL,
+        [BI_FMA]               = BI_ROUNDMODE | BI_SCHED_FMA | BI_MODS,
         [BI_FREXP]             = BI_SCHED_ALL,
-        [BI_ISUB]              = BI_GENERIC | BI_SCHED_ALL,
+        [BI_IMATH]             = BI_SCHED_ALL,
         [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_LOAD_VAR_ADDRESS]  = BI_SCHED_HI_LATENCY | BI_SCHED_ADD | BI_VECTOR | BI_DATA_REG_DEST,
+        [BI_MINMAX]            = BI_SCHED_ADD | BI_NO_ABS_ABS_FP16_FMA | BI_MODS, /* | FMA on some? */
+        [BI_MOV]               = BI_SCHED_ALL,
+        [BI_FMOV]               = BI_MODS | BI_SCHED_ALL,
+        [BI_REDUCE_FMA]         = BI_SCHED_FMA,
         [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_SCHED_ADD | BI_VECTOR,
-        [BI_ROUND]             = BI_GENERIC | BI_ROUNDMODE | BI_SCHED_ALL,
+        [BI_TABLE]              = BI_SCHED_ADD,
+        [BI_SELECT]             = BI_SCHED_ALL | BI_SWIZZLABLE,
+        [BI_TEX]               = BI_SCHED_HI_LATENCY | BI_SCHED_ADD | BI_VECTOR | BI_DATA_REG_DEST,
+        [BI_ROUND]             = BI_ROUNDMODE | BI_SCHED_ALL,
+        [BI_IMUL]       = BI_SCHED_FMA,
 };