From db01d633875631719f949dffc7b695c293e2b853 Mon Sep 17 00:00:00 2001 From: lkcl Date: Tue, 14 Jun 2022 07:16:29 +0100 Subject: [PATCH] --- openpower/sv/mv.swizzle.mdwn | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/openpower/sv/mv.swizzle.mdwn b/openpower/sv/mv.swizzle.mdwn index b1cf79955..26ab13877 100644 --- a/openpower/sv/mv.swizzle.mdwn +++ b/openpower/sv/mv.swizzle.mdwn @@ -7,13 +7,16 @@ Links * * -Swizzle is usually done on a per-operand basis in 3D GPU ISAs, making -for extremely long instructions (64 bits or greater). +Swizzle is a type of permute shorthand allowing arbitrary selection +of elements from vec2/3/4 creating a new vec2/3/4. Their value lies in the high occurrence of Swizzle -in 3D Shader Binaries (over 10% of all instructions), +in 3D Shader Binaries (over 10% of all instructions). +Swizzle is usually done on a per-vec-operand basis in 3D GPU ISAs, making +for extremely long instructions (64 bits or greater), however it is not practical to add two or more sets of 12-bit prefixes into a single instruction. -A compromise is to provide a Swizzle "Move". +A compromise is to provide a Swizzle "Move": one such move is +then required for each operand to a subsequent instruction. The encoding for this instruction embeds static predication into the swizzle as well as constants 1/1.0 and 0/0.0 -- 2.30.2