nir: Add a comment about how intrinsic definitions work.
authorEric Anholt <eric@anholt.net>
Thu, 11 Apr 2019 16:49:13 +0000 (09:49 -0700)
committerEric Anholt <eric@anholt.net>
Fri, 12 Apr 2019 22:56:12 +0000 (15:56 -0700)
I was thinking about a refactor, and needed to read this first.

Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
src/compiler/nir/nir_intrinsics.py

index 1b4fcf9f98b5f912174ebecc1add2c1871d1bd28..9b3f480f7af150e8fbf1b8508911b224a1d1ad5c 100644 (file)
@@ -128,6 +128,17 @@ CAN_REORDER   = "NIR_INTRINSIC_CAN_REORDER"
 
 INTR_OPCODES = {}
 
+# Defines a new NIR intrinsic.  By default, the intrinsic will have no sources
+# and no destination.
+#
+# You can set dest_comp=n to enable a destination for the intrinsic, in which
+# case it will have that many components, or =0 for "as many components as the
+# NIR destination value."
+#
+# Set src_comp=n to enable sources for the intruction.  It can be an array of
+# component counts, or (for convenience) a scalar component count if there's
+# only one source.  If a component count is 0, it will be as many components as
+# the intrinsic has based on the dest_comp.
 def intrinsic(name, src_comp=[], dest_comp=-1, indices=[],
               flags=[], sysval=False, bit_sizes=[]):
     assert name not in INTR_OPCODES