this code should display previous link and then next link , its showing totally opposite , is this wordpress issue or this is something me doing wrong
From the Codex (emphasis mine):
In standard usage (within the default, unaltered loop) next_post_link will generate a link to a post that is newer (more recent) than the current post. This is in contrary to the similarly-named previous_posts_link, which will typically link to a page of posts that is older than the current batch.
It sounds like you just have different expectations about what "next" and "previous" means (I think if you asked me I would've guessed the opposite of this too).
If your - or more importantly, your readers' - conception of what next and previous means is different, then just swap the order of the links and change the labels to the opposite:
<?php next_post_link( '« %link' ); ?> | <?php previous_post_link( '%link »' ); ?>