[PATCH] D136244: [AArch64] Optimize memcmp when the result is tested for [in]equality with 0
    Dave Green via Phabricator via llvm-commits 
    llvm-commits at lists.llvm.org
       
    Sat Oct 22 06:55:52 PDT 2022
    
    
  
dmgreen added a comment.
Could this be done during lowering, int AArch64TargetLowering::LowerSETCC, or does that not work?
The getNZCVToSatisfyCondCode method is useful for getting the constant needed for CCMP's.
================
Comment at: llvm/test/CodeGen/AArch64/i128-cmp.ll:11
+; CHECK-NEXT:    ccmp x1, x3, #0, eq
+; CHECK-NEXT:    cset w0, ne
 ; CHECK-NEXT:    ret
----------------
Are you sure this is correct? It doesn't look right.
I think I would expect `ccmp #0, eq;  cset eq`.
================
Comment at: llvm/test/CodeGen/AArch64/i128-cmp.ll:21-22
+; CHECK-NEXT:    cmp x0, x2
+; CHECK-NEXT:    ccmp x1, x3, #0, eq
+; CHECK-NEXT:    cset w0, eq
 ; CHECK-NEXT:    ret
----------------
And here it needs to set based on ne, so maybe `ccmp #8, eq; cmp ne`.
Those two verify as equivalent.
CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D136244/new/
https://reviews.llvm.org/D136244
    
    
More information about the llvm-commits
mailing list