pan/bi: Model LD_VAR_BUF instructions
authorAlyssa Rosenzweig <alyssa@collabora.com>
Wed, 23 Mar 2022 15:57:11 +0000 (11:57 -0400)
committerMarge Bot <emma+marge@anholt.net>
Fri, 25 Mar 2022 19:00:13 +0000 (19:00 +0000)
These are indirect versions of LD_VAR_BUF_IMM, taking their index in bytes. Used
for indirect varying loads (the NIR lowering is inefficient).

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

src/panfrost/bifrost/ISA.xml

index 0232347..0ae1fba 100644 (file)
     </mod>
   </ins>
 
+  <ins name="+LD_VAR_BUF.f32" staging="w=format" message="varying" pseudo="true">
+    <src start="0"/>
+    <src start="1"/>
+    <mod name="vecsize" start="8" size="2">
+      <opt>none</opt>
+      <opt>v2</opt>
+      <opt>v3</opt>
+      <opt>v4</opt>
+    </mod>
+    <mod name="update" size="2">
+      <opt>store</opt>
+      <opt>retrieve</opt>
+      <opt>conditional</opt>
+      <opt>clobber</opt>
+    </mod>
+    <mod name="register_format" size="2">
+      <opt>f32</opt>
+      <opt>f16</opt>
+      <opt>u32</opt>
+      <opt>u16</opt>
+    </mod>
+    <mod name="sample" size="3">
+      <opt>center</opt>
+      <opt>centroid</opt>
+      <opt>sample</opt>
+      <opt>explicit</opt>
+      <opt>none</opt>
+    </mod>
+  </ins>
+
   <ins name="+LD_VAR_BUF_IMM.f16" staging="w=format" message="varying" pseudo="true">
     <src start="0"/>
     <immediate name="index" start="3" size="5"/>
     </mod>
   </ins>
 
+  <ins name="+LD_VAR_BUF.f16" staging="w=format" message="varying" pseudo="true">
+    <src start="0"/>
+    <src start="1"/>
+    <mod name="vecsize" start="8" size="2">
+      <opt>none</opt>
+      <opt>v2</opt>
+      <opt>v3</opt>
+      <opt>v4</opt>
+    </mod>
+    <mod name="update" size="2">
+      <opt>store</opt>
+      <opt>retrieve</opt>
+      <opt>conditional</opt>
+      <opt>clobber</opt>
+    </mod>
+    <mod name="register_format" size="2">
+      <opt>f32</opt>
+      <opt>f16</opt>
+      <opt>u32</opt>
+      <opt>u16</opt>
+    </mod>
+    <mod name="sample" size="3">
+      <opt>center</opt>
+      <opt>centroid</opt>
+      <opt>sample</opt>
+      <opt>explicit</opt>
+      <opt>none</opt>
+    </mod>
+  </ins>
+
   <ins name="+LEA_BUF_IMM" staging="w=2" message="attribute" pseudo="true">
     <src start="0"/>
   </ins>