Hallo Peter,
Ein solches Kommando ist vermutlich einfacher in einen Prozessor zu implementieren als das o.g. Schieberegister ... gibt es solche Prozessoren?
Keine Ahnung. In den meisten Anwendungen sind wahrscheinlich keine Shift-Operationen das Problem sondern Operationen wie Floatingpoint-Operationen, die viel aufwendiger sind.
Machst Du Dir auch immer Gedanken, wenn Du zwei Zahlen multiplizierst, ob das jetzt O(1) O(n) oder gar O(n²) ist? ;-)
Auf dieser Ebene ist die O-Notation sowieso nicht mehr besonders hilfreich. So lang Deine Argumente beschränkt sind (Du shiftest ja maximal um 31 oder 63 Bit), hast Du immer O(1).
Es kommt also auf den Gesammtalgorithmus an, wie Deine asymptothische Laufzeit aussieht. Wenn es Dir nicht nur um eine rein akademische Diskussion geht, solltest Du Deine Anwendung beschreiben.
Wenn Du wirklich darauf angewiesen bist, die Geschwindigkeit deines Programmes auf dieser ebene zu optimieren, solltest Du erstmal eine compilierte Sprache nehmen und gucken, was das bringt. Das muss nicht C sein, selbst etwas wie Java oder eine .NET-Sprache wäre ein schritt.
Wenn Du wirklich über Prozessorbefehle nachdenken musst (was ich nicht glaube), solltest Du dann zu C oder gar Assembler wechseln.
Grüße
Daniel