1 *** 2 3 add gcc builtins for alpha instructions 4 5 6 *** 7 8 custom expand byteswap into nifty 9 extract/insert/mask byte/word/longword/quadword low/high 10 sequences 11 12 *** 13 14 see if any of the extract/insert/mask operations can be added 15 16 *** 17 18 match more interesting things for cmovlbc cmovlbs (move if low bit clear/set) 19 20 *** 21 22 lower srem and urem 23 24 remq(i,j): i - (j * divq(i,j)) if j != 0 25 remqu(i,j): i - (j * divqu(i,j)) if j != 0 26 reml(i,j): i - (j * divl(i,j)) if j != 0 27 remlu(i,j): i - (j * divlu(i,j)) if j != 0 28 29 *** 30 31 add crazy vector instructions (MVI): 32 33 (MIN|MAX)(U|S)(B8|W4) min and max, signed and unsigned, byte and word 34 PKWB, UNPKBW pack/unpack word to byte 35 PKLB UNPKBL pack/unpack long to byte 36 PERR pixel error (sum across bytes of bytewise abs(i8v8 a - i8v8 b)) 37 38 cmpbytes bytewise cmpeq of i8v8 a and i8v8 b (not part of MVI extensions) 39 40 this has some good examples for other operations that can be synthesised well 41 from these rather meager vector ops (such as saturating add). 42 http://www.alphalinux.org/docs/MVI-full.html 43