Не уверен, что это абсолютно правильно, но при операциях с long в ИАР я предпочитаю явно приводить все типы переменных и констант в выражении к long-у. Не зная типов переменных, участвующих в выражении, я бы написал все же так
Код
v0 += ((((unsigned long)v1<<4UL) + k0) ^ ((unsigned long)v1 + sum) ^ (((unsigned long)v1>>5UL) + (unsigned long)k1));
Или сделал бы может не столь наглядно, но проще, разбив сложную операцию, на более простые. По крайней мере советую в ИАР явно указывать тип констант суффиксами L(long) и UL(unsigned long).