Én inkább gyakorlati egyed vagyok, kipróbáltam: ubin (ubi64, mint32 bit) ugyan pofázik a gcc a casting hiánya miatt, de ha a return-be odaírsz egy (void *)0x...-t, a legyártott assembly kód bitről-bitre azonos marad.
Viszont azt a cltq-t sehol sem látom benne.