int64_tとsize_tを暗黙の型変換を期待して混ぜて計算するとはまる?

(int64t - int64t) + sizet >= int64t
の比較をしたら2つ目のint64tが大きくなっても(とは言っても全ての値は10~-10くらい)boolの値はずっと1でした。
比較の前まで切り出してprintfすると正しい値が出るのですが、比較式に組み込むとおかしくなります。
sizetをint64tにキャストすると正しく動きました。

暗黙の型変換はsizetをint64tにしてくれないのでしょうか

環境はWSL2のg++です。

教えて下さい