On Mon, Mar 17 2025 at 09:53, Sean Christopherson wrote: > On Mon, Mar 17, 2025, Thomas Gleixner wrote: >> > - for (i = 0; i < 4; i++) >> > + for (i = 0; i < 4; i++) { >> > pir_copy[i] = READ_ONCE(pir[i]); >> > + if (pir_copy[i]) >> > + found_irq = true; >> > + } >> >> That's four extra conditional branches. You can avoid them completely. See >> delta patch below. > > Huh. gcc elides the conditional branches when computing found_irq regardless of > the approach; the JEs in the changelog are from skipping the XCHG. > > But clang-14 does not. I'll slot this in. Neither does GCC 12. That's why I noticed.