aboutsummaryrefslogtreecommitdiffstats
path: root/src/glsl/builtins/ir
diff options
context:
space:
mode:
authorMatt Turner <[email protected]>2013-04-09 16:03:15 -0700
committerMatt Turner <[email protected]>2013-05-06 10:17:13 -0700
commit44d3287ecd8b81a30a51613cd578dd31a115d820 (patch)
tree9136e236e0d583efa24c08562357ec8f400c7f5e /src/glsl/builtins/ir
parentf9e37879eb6407d9374e74d3982651b60ce096a1 (diff)
glsl: Add new bit built-ins IR and prototypes from ARB_gpu_shader5.
Reviewed-by: Chris Forbes <[email protected]>
Diffstat (limited to 'src/glsl/builtins/ir')
-rw-r--r--src/glsl/builtins/ir/bitCount.ir41
-rw-r--r--src/glsl/builtins/ir/bitfieldExtract.ir57
-rw-r--r--src/glsl/builtins/ir/bitfieldInsert.ir65
-rw-r--r--src/glsl/builtins/ir/bitfieldReverse.ir41
-rw-r--r--src/glsl/builtins/ir/findLSB.ir41
-rw-r--r--src/glsl/builtins/ir/findMSB.ir41
6 files changed, 286 insertions, 0 deletions
diff --git a/src/glsl/builtins/ir/bitCount.ir b/src/glsl/builtins/ir/bitCount.ir
new file mode 100644
index 00000000000..71fcae2db1a
--- /dev/null
+++ b/src/glsl/builtins/ir/bitCount.ir
@@ -0,0 +1,41 @@
+((function bitCount
+ (signature int
+ (parameters
+ (declare (in) int value))
+ ((return (expression int bit_count (var_ref value)))))
+
+ (signature ivec2
+ (parameters
+ (declare (in) ivec2 value))
+ ((return (expression ivec2 bit_count (var_ref value)))))
+
+ (signature ivec3
+ (parameters
+ (declare (in) ivec3 value))
+ ((return (expression ivec3 bit_count (var_ref value)))))
+
+ (signature ivec4
+ (parameters
+ (declare (in) ivec4 value))
+ ((return (expression ivec4 bit_count (var_ref value)))))
+
+ (signature int
+ (parameters
+ (declare (in) uint value))
+ ((return (expression int bit_count (var_ref value)))))
+
+ (signature ivec2
+ (parameters
+ (declare (in) uvec2 value))
+ ((return (expression ivec2 bit_count (var_ref value)))))
+
+ (signature ivec3
+ (parameters
+ (declare (in) uvec3 value))
+ ((return (expression ivec3 bit_count (var_ref value)))))
+
+ (signature ivec4
+ (parameters
+ (declare (in) uvec4 value))
+ ((return (expression ivec4 bit_count (var_ref value)))))
+))
diff --git a/src/glsl/builtins/ir/bitfieldExtract.ir b/src/glsl/builtins/ir/bitfieldExtract.ir
new file mode 100644
index 00000000000..0491c82180b
--- /dev/null
+++ b/src/glsl/builtins/ir/bitfieldExtract.ir
@@ -0,0 +1,57 @@
+((function bitfieldExtract
+ (signature int
+ (parameters
+ (declare (in) int value)
+ (declare (in) int offset)
+ (declare (in) int bits))
+ ((return (expression int bitfield_extract (var_ref value) (var_ref offset) (var_ref bits)))))
+
+ (signature ivec2
+ (parameters
+ (declare (in) ivec2 value)
+ (declare (in) int offset)
+ (declare (in) int bits))
+ ((return (expression ivec2 bitfield_extract (var_ref value) (var_ref offset) (var_ref bits)))))
+
+ (signature ivec3
+ (parameters
+ (declare (in) ivec3 value)
+ (declare (in) int offset)
+ (declare (in) int bits))
+ ((return (expression ivec3 bitfield_extract (var_ref value) (var_ref offset) (var_ref bits)))))
+
+ (signature ivec4
+ (parameters
+ (declare (in) ivec4 value)
+ (declare (in) int offset)
+ (declare (in) int bits))
+ ((return (expression ivec4 bitfield_extract (var_ref value) (var_ref offset) (var_ref bits)))))
+
+ (signature uint
+ (parameters
+ (declare (in) uint value)
+ (declare (in) int offset)
+ (declare (in) int bits))
+ ((return (expression uint bitfield_extract (var_ref value) (var_ref offset) (var_ref bits)))))
+
+ (signature uvec2
+ (parameters
+ (declare (in) uvec2 value)
+ (declare (in) int offset)
+ (declare (in) int bits))
+ ((return (expression uvec2 bitfield_extract (var_ref value) (var_ref offset) (var_ref bits)))))
+
+ (signature uvec3
+ (parameters
+ (declare (in) uvec3 value)
+ (declare (in) int offset)
+ (declare (in) int bits))
+ ((return (expression uvec3 bitfield_extract (var_ref value) (var_ref offset) (var_ref bits)))))
+
+ (signature uvec4
+ (parameters
+ (declare (in) uvec4 value)
+ (declare (in) int offset)
+ (declare (in) int bits))
+ ((return (expression uvec4 bitfield_extract (var_ref value) (var_ref offset) (var_ref bits)))))
+))
diff --git a/src/glsl/builtins/ir/bitfieldInsert.ir b/src/glsl/builtins/ir/bitfieldInsert.ir
new file mode 100644
index 00000000000..2bb4442bef8
--- /dev/null
+++ b/src/glsl/builtins/ir/bitfieldInsert.ir
@@ -0,0 +1,65 @@
+((function bitfieldInsert
+ (signature int
+ (parameters
+ (declare (in) int base)
+ (declare (in) int insert)
+ (declare (in) int offset)
+ (declare (in) int bits))
+ ((return (expression int bitfield_insert (var_ref base) (var_ref insert) (var_ref offset) (var_ref bits)))))
+
+ (signature ivec2
+ (parameters
+ (declare (in) ivec2 base)
+ (declare (in) ivec2 insert)
+ (declare (in) int offset)
+ (declare (in) int bits))
+ ((return (expression ivec2 bitfield_insert (var_ref base) (var_ref insert) (var_ref offset) (var_ref bits)))))
+
+ (signature ivec3
+ (parameters
+ (declare (in) ivec3 base)
+ (declare (in) ivec3 insert)
+ (declare (in) int offset)
+ (declare (in) int bits))
+ ((return (expression ivec3 bitfield_insert (var_ref base) (var_ref insert) (var_ref offset) (var_ref bits)))))
+
+ (signature ivec4
+ (parameters
+ (declare (in) ivec4 base)
+ (declare (in) ivec4 insert)
+ (declare (in) int offset)
+ (declare (in) int bits))
+ ((return (expression ivec4 bitfield_insert (var_ref base) (var_ref insert) (var_ref offset) (var_ref bits)))))
+
+ (signature uint
+ (parameters
+ (declare (in) uint base)
+ (declare (in) uint insert)
+ (declare (in) int offset)
+ (declare (in) int bits))
+ ((return (expression uint bitfield_insert (var_ref base) (var_ref insert) (var_ref offset) (var_ref bits)))))
+
+ (signature uvec2
+ (parameters
+ (declare (in) uvec2 base)
+ (declare (in) uvec2 insert)
+ (declare (in) int offset)
+ (declare (in) int bits))
+ ((return (expression uvec2 bitfield_insert (var_ref base) (var_ref insert) (var_ref offset) (var_ref bits)))))
+
+ (signature uvec3
+ (parameters
+ (declare (in) uvec3 base)
+ (declare (in) uvec3 insert)
+ (declare (in) int offset)
+ (declare (in) int bits))
+ ((return (expression uvec3 bitfield_insert (var_ref base) (var_ref insert) (var_ref offset) (var_ref bits)))))
+
+ (signature uvec4
+ (parameters
+ (declare (in) uvec4 base)
+ (declare (in) uvec4 insert)
+ (declare (in) int offset)
+ (declare (in) int bits))
+ ((return (expression uvec4 bitfield_insert (var_ref base) (var_ref insert) (var_ref offset) (var_ref bits)))))
+))
diff --git a/src/glsl/builtins/ir/bitfieldReverse.ir b/src/glsl/builtins/ir/bitfieldReverse.ir
new file mode 100644
index 00000000000..f05c119edb3
--- /dev/null
+++ b/src/glsl/builtins/ir/bitfieldReverse.ir
@@ -0,0 +1,41 @@
+((function bitfieldReverse
+ (signature int
+ (parameters
+ (declare (in) int value))
+ ((return (expression int bitfield_reverse (var_ref value)))))
+
+ (signature ivec2
+ (parameters
+ (declare (in) ivec2 value))
+ ((return (expression ivec2 bitfield_reverse (var_ref value)))))
+
+ (signature ivec3
+ (parameters
+ (declare (in) ivec3 value))
+ ((return (expression ivec3 bitfield_reverse (var_ref value)))))
+
+ (signature ivec4
+ (parameters
+ (declare (in) ivec4 value))
+ ((return (expression ivec4 bitfield_reverse (var_ref value)))))
+
+ (signature uint
+ (parameters
+ (declare (in) uint value))
+ ((return (expression uint bitfield_reverse (var_ref value)))))
+
+ (signature uvec2
+ (parameters
+ (declare (in) uvec2 value))
+ ((return (expression uvec2 bitfield_reverse (var_ref value)))))
+
+ (signature uvec3
+ (parameters
+ (declare (in) uvec3 value))
+ ((return (expression uvec3 bitfield_reverse (var_ref value)))))
+
+ (signature uvec4
+ (parameters
+ (declare (in) uvec4 value))
+ ((return (expression uvec4 bitfield_reverse (var_ref value)))))
+))
diff --git a/src/glsl/builtins/ir/findLSB.ir b/src/glsl/builtins/ir/findLSB.ir
new file mode 100644
index 00000000000..2ddbb7f704d
--- /dev/null
+++ b/src/glsl/builtins/ir/findLSB.ir
@@ -0,0 +1,41 @@
+((function findLSB
+ (signature int
+ (parameters
+ (declare (in) int value))
+ ((return (expression int find_lsb (var_ref value)))))
+
+ (signature ivec2
+ (parameters
+ (declare (in) ivec2 value))
+ ((return (expression ivec2 find_lsb (var_ref value)))))
+
+ (signature ivec3
+ (parameters
+ (declare (in) ivec3 value))
+ ((return (expression ivec3 find_lsb (var_ref value)))))
+
+ (signature ivec4
+ (parameters
+ (declare (in) ivec4 value))
+ ((return (expression ivec4 find_lsb (var_ref value)))))
+
+ (signature int
+ (parameters
+ (declare (in) uint value))
+ ((return (expression int find_lsb (var_ref value)))))
+
+ (signature ivec2
+ (parameters
+ (declare (in) uvec2 value))
+ ((return (expression ivec2 find_lsb (var_ref value)))))
+
+ (signature ivec3
+ (parameters
+ (declare (in) uvec3 value))
+ ((return (expression ivec3 find_lsb (var_ref value)))))
+
+ (signature ivec4
+ (parameters
+ (declare (in) uvec4 value))
+ ((return (expression ivec4 find_lsb (var_ref value)))))
+))
diff --git a/src/glsl/builtins/ir/findMSB.ir b/src/glsl/builtins/ir/findMSB.ir
new file mode 100644
index 00000000000..24e270f5e17
--- /dev/null
+++ b/src/glsl/builtins/ir/findMSB.ir
@@ -0,0 +1,41 @@
+((function findMSB
+ (signature int
+ (parameters
+ (declare (in) int value))
+ ((return (expression int find_msb (var_ref value)))))
+
+ (signature ivec2
+ (parameters
+ (declare (in) ivec2 value))
+ ((return (expression ivec2 find_msb (var_ref value)))))
+
+ (signature ivec3
+ (parameters
+ (declare (in) ivec3 value))
+ ((return (expression ivec3 find_msb (var_ref value)))))
+
+ (signature ivec4
+ (parameters
+ (declare (in) ivec4 value))
+ ((return (expression ivec4 find_msb (var_ref value)))))
+
+ (signature int
+ (parameters
+ (declare (in) uint value))
+ ((return (expression int find_msb (var_ref value)))))
+
+ (signature ivec2
+ (parameters
+ (declare (in) uvec2 value))
+ ((return (expression ivec2 find_msb (var_ref value)))))
+
+ (signature ivec3
+ (parameters
+ (declare (in) uvec3 value))
+ ((return (expression ivec3 find_msb (var_ref value)))))
+
+ (signature ivec4
+ (parameters
+ (declare (in) uvec4 value))
+ ((return (expression ivec4 find_msb (var_ref value)))))
+))