Proper name 16 bit libcalls
[llvm/msp430.git] / lib / Target / Alpha / README.txt
blob9ae15174c5822e6515c8e40ac81da20584cf0340
1 ***
3 add gcc builtins for alpha instructions
6 ***
8 custom expand byteswap into nifty 
9 extract/insert/mask byte/word/longword/quadword low/high
10 sequences
12 ***
14 see if any of the extract/insert/mask operations can be added
16 ***
18 match more interesting things for cmovlbc cmovlbs (move if low bit clear/set)
20 ***
22 lower srem and urem
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
29 ***
31 add crazy vector instructions (MVI):
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 accross bytes of bytewise abs(i8v8 a - i8v8 b))
38 cmpbytes bytewise cmpeq of i8v8 a and i8v8 b (not part of MVI extentions)
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