なんかスゲー間違えてる・・・気がする・・・
だれか助けて

関数に引数1つをつけて呼んでリターンした場合
movl $0xa,(%esp)        ; 0.5クロック
call 0x4013e1 <func1(int)>  ; 5クロック
mov $0x0,%eax         ; 0.5クロック
leave                ; leaveは実質mov pop movなので、2.5クロック
ret                ; 8クロック
なので、最低 16.5クロック+関数内での演算クロック数が必要

ビットシフトは、
sarl $0x2,0x1c(%esp) ; 4クロック
4クロック+演算クロック数

if文
cmpl $0x0,0x18(%esp)     ; 0.5クロック
jne 0x4013ee <main()+46>  ; 不明:0.5クロック程度?
1クロック+演算クロック数が必要

あれ?
If 文って結構早くね?
てか、ビットシフト遅くね?
If文って分岐予測が当たればさらに高速化するし。