[PATCH] D140087: [X86] Replace (31/63 -/^ X) with (NOT X) and ignore (32/64 ^ X) when computing shift count

Craig Topper via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Tue Dec 20 11:31:05 PST 2022


craig.topper added a comment.

>>    3,782,331      port0                                                          
>>    3,207,023      port1                                                          
>>    1,001,220      port23                                                         
>>    3,216,022      port5                                                          
>>    4,940,975      port6                                                          
>>   11,575,101      port49                                                         

I'm having trouble accounting for these numbers. As far as I know
shlx is 1 uop
mov is 1 uop
shr is 1 uop
and with load+store is 4 uops
dec is 1 uop
bnz is 1uop  and could possibly be macrofused with the dec.

so that's 9 or maybe 8 with macrofusion uops per iteration. what am I missing?


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D140087/new/

https://reviews.llvm.org/D140087



More information about the llvm-commits mailing list