[llvm] [InstCombine] Reducing rust i128::midpoint instructions (PR #99614)

Yingwei Zheng via llvm-commits llvm-commits at lists.llvm.org
Fri Jul 19 07:07:45 PDT 2024


================
@@ -0,0 +1,152 @@
+; NOTE: Assertions have been autogenerated by utils/update_test_checks.py UTC_ARGS: --version 5
+; RUN: opt < %s -passes=instcombine -S | FileCheck %s
+
+define noundef i128 @xor_lshr_and(i128 noundef %x, i128 noundef %y) unnamed_addr #0 {
+; check-label: define noundef i128 @xor_lshr_and(
+; check-same: i128 noundef [[x:%.*]], i128 noundef [[y:%.*]]) unnamed_addr {
+; check-next:  [[start:.*:]]
+; check-next:    [[xor:%.*]] = xor i128 [[y]], [[x]]
+; check-next:    [[lshr:%.*]] = lshr i128 [[xor]], 1
+; check-next:    [[and:%.*]] = and i128 [[y]], [[x]]
+; check-next:    [[add:%.*]] = add i128 [[lshr]], [[and]]
+; check-next:    ret i128 [[add]]
+;
----------------
dtcxzyw wrote:

```suggestion
```
It is not generated by `utils/update_test_checks.py`.

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


More information about the llvm-commits mailing list