Are you sure your versions of the code are correct? this cypher works on 2x32 bit values, or a 64-bit block. Whereas your functions take 2x16 bit values and:
unsigned int delta=0x9e3779b9;
0x9e3779b9 is too large for the integer type.
for (i=0; i < 32; i++) {
This line is the same as the 64-bit version, I'd imagine yours would have half the iterations.