[llvm] 6a2ce34 - [InstCombine] free-inversion.ll - add test coverage for #71390

Simon Pilgrim via llvm-commits llvm-commits at lists.llvm.org
Mon Feb 3 02:32:19 PST 2025


Author: Simon Pilgrim
Date: 2025-02-03T10:29:36Z
New Revision: 6a2ce3432eb4648e954fd4999979d85e770409c5

URL: https://github.com/llvm/llvm-project/commit/6a2ce3432eb4648e954fd4999979d85e770409c5
DIFF: https://github.com/llvm/llvm-project/commit/6a2ce3432eb4648e954fd4999979d85e770409c5.diff

LOG: [InstCombine] free-inversion.ll - add test coverage for #71390

Added: 
    

Modified: 
    llvm/test/Transforms/InstCombine/free-inversion.ll

Removed: 
    


################################################################################
diff  --git a/llvm/test/Transforms/InstCombine/free-inversion.ll b/llvm/test/Transforms/InstCombine/free-inversion.ll
index ebb9310ee0a78c..4b69a5e77b4cea 100644
--- a/llvm/test/Transforms/InstCombine/free-inversion.ll
+++ b/llvm/test/Transforms/InstCombine/free-inversion.ll
@@ -740,3 +740,23 @@ exit:
 b4:
   ret i1 true
 }
+
+define i64 @PR71390(i64 %v) {
+; CHECK-LABEL: @PR71390(
+; CHECK-NEXT:    [[AND:%.*]] = and i64 [[V:%.*]], 9187201950435737471
+; CHECK-NEXT:    [[TMP1:%.*]] = sub nuw i64 -72340172838076674, [[AND]]
+; CHECK-NEXT:    [[TMP2:%.*]] = add nuw i64 [[AND]], 6872316419617283935
+; CHECK-NEXT:    [[OR_NOT:%.*]] = and i64 [[TMP1]], [[TMP2]]
+; CHECK-NEXT:    [[NOT5:%.*]] = or i64 [[V]], [[OR_NOT]]
+; CHECK-NEXT:    ret i64 [[NOT5]]
+;
+  %and = and i64 %v, 9187201950435737471
+  %add = add nuw i64 %and, 72340172838076673
+  %add2 = add nuw i64 %and, 6872316419617283935
+  %not = xor i64 %v, -1
+  %not3 = xor i64 %add2, -1
+  %or = or i64 %add, %not3
+  %and4 = and i64 %not, %or
+  %not5 = xor i64 %and4, -1
+  ret i64 %not5
+}


        


More information about the llvm-commits mailing list