Eric Richter erichte@linux.ibm.com writes:
I do have a macro though that calculates which register number contains the chunk of input data based on an index -- in other words, I use registers v16-v31 to hold the input data, the macro just adds 16 to the index to get the corresponding register. Right now it operates on raw register numbers, should I adjust this macro to be more clear that it is operating on vector registers in any way, or should I look into changing how that is done?
If it's this macro,
C Convert an index for W[i] to the corresponding register define(`IV', `eval($1 + VW0)')
and the argument $1 is always a numerical expression, then I'd suggest deleting the definitions of VW0 - VW15 (with only a comment to document this register usage), and something like
define(`IV', `v`'eval($1 + 16)')
You could also consider moving the % 16 operation into this macro,
define(`IV', `v`'eval((($1) % 16) + 16)')
which should make it clear that it can't expand to a register outside of the intended v16-v31 range.
Regards, /Niels