pan/bi: Add EXTRACT, MAKE_VEC synthetic ops
authorAlyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Tue, 3 Mar 2020 13:57:03 +0000 (08:57 -0500)
committerMarge Bot <eric+marge@anholt.net>
Thu, 5 Mar 2020 14:35:38 +0000 (14:35 +0000)
These allow translating between the vector I/O and scalar ALUs,
facilitated by an RA dance to ensured contiguous registers are used.

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

src/panfrost/bifrost/compiler.h

index a06f9881908ff4d47cf8d939958c0e6d8e1fa375..654a0859fd7c4a47c73fd85e168e2d28d51f91f0 100644 (file)
@@ -55,12 +55,14 @@ enum bi_class {
         BI_CONVERT,
         BI_CSEL,
         BI_DISCARD,
+        BI_EXTRACT,
         BI_FMA,
         BI_FREXP,
         BI_LOAD,
         BI_LOAD_ATTR,
         BI_LOAD_VAR,
         BI_LOAD_VAR_ADDRESS,
+        BI_MAKE_VEC,
         BI_MINMAX,
         BI_MOV,
         BI_SHIFT,
@@ -152,7 +154,8 @@ typedef struct {
         unsigned dest;
         unsigned src[BIR_SRC_COUNT];
 
-        /* If one of the sources has BIR_INDEX_CONSTANT... */
+        /* If one of the sources has BIR_INDEX_CONSTANT... Also, for
+         * BI_EXTRACT, the component index is stored here. */
         union {
                 uint64_t u64;
                 uint32_t u32;