豊福です。
私の言葉足らずと書き間違えで長引かせてしまいましたが、

[ruby-dev:8563] えぐちさん
> 問題は、hpux-10 を特別扱いするあまり、
> 『x<0 の時、MSB に0が入って来る``ANSIC 準拠な処理系''の
>   サポートを無くしては行けなかろう。』
> と言うのが私の意見です。
 ...
>    if (-1==(-1>>1)) /* unsigned へのキャストは外す */
 ...
> こうすれば、hpux-10 もそれ以外の処理系も、
>   (x)>>(int)y)
> を使って、
> 「x<0 の時、MSB に0が入って来る」処理系には、
>   (((x)<0) ? ~((~(x))>>y) : (x)>>y)
> が使われます。

とまったく同意見です。

  ところでクイズ的興味なんですが、
 (((x)<0) ? ~((~(x))>>y) : (x)>>y) を分岐なしで
効率もあまり落とさない書き方はないでしょうか。
---
                        豊福
                        toyofuku / juice.or.jp