This is a list of the pseudo-operations used internally by Scc.  It is here
mostly for my own reference.

NUM		A constant single number
VNUM		A constant parallel number

ADD		Parallel add
ADDH		Parallel add high (low bit is carry-out of add)
AVG		Parallel average
DIV		Parallel divide
MOD		Parallel modulus
MUL		Parallel multiply (low N bits of result of NxN)
MULEVEN		Parallel multiply (even N-bit fields yeilding 2N-bit result)
MULODD		Parallel multiply (odd N-bit fields yeilding 2N-bit result)
MULH		Parallel multiply high (high N bits of result)
NEG		Parallel negate
MAX		Parallel maximum
MIN		Parallel minimum
RCP		Parallel reciprocal (or 1st step of 3 step operation)
RCP1		Parallel reciprocal (or 2nd step of 3 step operation)
RCP2		Parallel reciprocal (or 3rd step of 3 step operation)
SUB		Parallel subtract

ALL		Reduce logical-AND of arg0
ANY		Reduce logical-OR of arg0
REDUCEADD	Reduce add of arg0
REDUCEAND	Reduce bitwise-AND of arg0
REDUCEAVG	Reduce average of arg0
REDUCEMAX	Reduce maximum of arg0
REDUCEMIN	Reduce minimum of arg0
REDUCEMUL	Reduce multiply of arg0
REDUCEOR	Reduce bitwise-OR of arg0
REDUCEXOR	Reduce bitwise-XOR of arg0

AND		Parallel bitwise-AND
ANDN(x,y)	Parallel bitwise-AND with compliment == AND(NOT x, y)
NOR		Parallel bitwise-NOR
OR		Parallel bitwise-OR
XOR		Parallel bitwise-XOR
NOT		Parallel bitwise-NOT (one's compliment)

BLOCK		Root of tree representing a block of code
BREAK		Root of tree representing SWARC break statement
CALL		Root of tree representing SWARC function call
CONTINUE	Root of tree representing SWARC continue statement
DO		Root of tree representing SWARC do statement
EVERYWHERE	Root of tree representing SWARC everywhere statement
EXPR		Root of tree representing SWARC expression
FOR		Root of tree representing SWARC for statement
GOTO		Root of tree representing SWARC goto statement
IF		Root of tree representing SWARC if statement
LABEL		Root of tree representing SWARC label
QUEST		Root of tree representing SWARC trinary construct
RETURN		Root of tree representing SWARC return statement
SEMI		Root of tree representing SWARC empty statement
SIZEOF		Root of tree representing SWARC sizeof statement
WHERE		Root of tree representing SWARC where statement
WHILE		Root of tree representing SWARC while statement

CAST		Type cast arg0
I2F		Parallel convert arg0 from integer to floating-point
F2I		Parallel convert arg0 from floating-point to integer

EQ		Parallel compare for == yielding 1's or 0's
EQ_C		Parallel compare for == yielding 1 or 0 (C-like result)
GE		Parallel compare for >= yielding 1's or 0's
GT		Parallel compare for >  yielding 1's or 0's
GT_C		Parallel compare for >  yielding 1 or 0 (C-like result)
LE		Parallel compare for <= yielding 1's or 0's
LT		Parallel compare for <  yielding 1's or 0's
NE		Parallel compare for != yielding 1's or 0's

LAND		Parallel logical AND yielding 1's or 0's
LNOT		Parallel logical NOT yielding 1's or 0's
LOR		Parallel logical OR yielding 1's or 0's

LEA		Load/calculate effective address and store in register
LVSL		Load index vector for shift left (used for alignment in AltiVec)
LOAD		Vector load
LOADR		Fragment load based on effective address in register
LOADRR		Fragment load based on effective address in a pair of registers
LOADX		Vector element load

STORE		Vector store
STORER		Fragment store based on effective address in register
STORERR		Fragment store based on effective address in a pair of registers
STOREX		Vector element store

ROTATE		Vector rotate (inter-element rotate) (count>0 is left?)
SHIFT		Vector shift (inter-element shift) (count>0 is left?)
SHL		Parallel intra-element shift left
SHLBIT		Parallel fragment shift left by bits
SHLBYTE		Parallel fragment shift left by bytes
SHR		Parallel intra-element shift right
SHRBIT		Parallel fragment shift right by bits
SHRBYTE		Parallel fragment shift right by bytes

INTRLVLOW	Interleave the lower fields of two sources
INTRLVHIGH	Interleave the higher fields of two sources
INTRLVEVEN	Interleave the even fields of two sources
INTRLVODD	Interleave the odd fields of two sources
PACK		Catenate the even fields of two sources (arg0 into low half)
PACKS2U		Catenate the signed, even? fields of two sources (arg0 into low
		  half) using unsigned saturation.
PERM		Permute arg0 indexed via arg1
REPL		Replicate field 'arg1' of 'arg0' in rest of fragment
TPERM		Permute arg0 and arg1 indexed via arg2

UNPACKL		Unpack and extend the lower fields of a source
UNPACKH		Unpack and extend the higher fields of a source

PUTGET		Unused

