<html><head><meta http-equiv="Content-Type" content="text/html charset=utf-8"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class="">Hi James,<div class=""><br class=""></div><div class="">I’m attaching two disasm files for the TwoFish hot function, the first one (slow.s) is obtained by compiler with default options, the second one (fast.s) - with aarch64-gep-opt=false.</div><div class="">It’s a pretty big function, and for me it’s not obvious what piece of code is responsible for the total performance. However, slow.s is 100 lines longer, and that’s corresponds to the performance I observe (for slow.s geekbench score of the Twofish is 733, for fast.s - 951, higher is better).</div><div class=""><br class=""></div><div class="">The tests arm64-cse.ll and arm64-addr-mode-folding.ll also might give some ideas what’s wrong - and we need to fix them, or properly explain why it’s ok to disable them (please note that they were written exactly to detect issues that had been fixed once).</div><div class=""><br class=""></div><div class="">I totally support that we need to understand what’s wrong, and what I suggest is a temporal disabling until it’s done.</div><div class=""><br class=""></div><div class="">Thanks,</div><div class="">Michael</div><div class=""><br class=""></div><div class=""><br class=""></div><div class=""></div></body></html>