[llvm] [AArch64] Use isKnownNonZero to optimize eligible compares to cmn (PR #96349)

David Green via llvm-commits llvm-commits at lists.llvm.org
Mon Jul 8 11:20:53 PDT 2024


================
@@ -262,4 +262,18 @@ define <4 x i65> @sign_4xi65(<4 x i65> %a) {
   ret <4 x i65> %res
 }
 
+define i32 @or_neg(i32 %x, i32 %y) {
+; CHECK-LABEL: or_neg:
+; CHECK:       // %bb.0:
+; CHECK-NEXT:    orr w8, w0, #0x1
+; CHECK-NEXT:    cmn w1, w8
+; CHECK-NEXT:    cset w0, lt
+; CHECK-NEXT:    ret
+  %3 = or i32 %x, 1
+  %4 = sub nsw i32 0, %3
----------------
davemgreen wrote:

Remove nsw if it is not needed.

https://github.com/llvm/llvm-project/pull/96349


More information about the llvm-commits mailing list