It seems sdas perform 24bit signed shift for constants.
413 ; ../test.c: 55: EASY_PDK_CALIBRATE_IHRC(0x12345678,5000);
414 ; genInline
000064 52 54 415 and a, #'R'
000066 43 54 416 and a, #'C'
000068 01 54 417 and a, #(1)
00006A 78 54 418 and a, #((0x12345678))
00006C 56 54 419 and a, #((0x12345678)>>8)
00006E 34 54 420 and a, #((0x12345678)>>16)
000070 00 54 421 and a, #((0x12345678)>>24) <--- bug is here
000072 88 54 422 and a, #((5000))
000074 13 54 423 and a, #((5000)>>8)
000076 0B 54 424 and a, #(0x0b)
for "and a, #((16000000)>>24)" it emit "FF 54" which looks like extension from bit 23.