In my travels through TableGen and the backends, I came across:
foreach Index = Indexes<!add(33, !mul(Size, -1))>.slice in {
To clean this up, I changed it to:
foreach Index = Indexes<!sub(33, Size)>.slice in {
Only then did I finally realize that there is no subtraction bang operator. So there is now.
I also used this opportunity to change the old '-' range punctuation to '...'.
Can you improve this description so that I can understand what it does if there are more than two operands please? :) (I guess it probably follows the LISP precedent where (- a b c d) is (- a (+ b c d))?)