[llvm] r330986 - [InstCombine][NFC] add2.ll: add a few commutative checks.

Roman Lebedev via llvm-commits llvm-commits at lists.llvm.org
Thu Apr 26 13:07:17 PDT 2018


Author: lebedevri
Date: Thu Apr 26 13:07:17 2018
New Revision: 330986

URL: http://llvm.org/viewvc/llvm-project?rev=330986&view=rev
Log:
[InstCombine][NFC] add2.ll: add a few commutative checks.

Fixes some missing test coverage in InstCombineAddSub.cpp, visitAdd()

Modified:
    llvm/trunk/test/Transforms/InstCombine/add2.ll

Modified: llvm/trunk/test/Transforms/InstCombine/add2.ll
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/Transforms/InstCombine/add2.ll?rev=330986&r1=330985&r2=330986&view=diff
==============================================================================
--- llvm/trunk/test/Transforms/InstCombine/add2.ll (original)
+++ llvm/trunk/test/Transforms/InstCombine/add2.ll Thu Apr 26 13:07:17 2018
@@ -379,6 +379,39 @@ define i32 @add_or_and(i32 %x, i32 %y) {
   ret i32 %add
 }
 
+define i32 @add_or_and_commutative(i32 %x, i32 %y) {
+; CHECK-LABEL: @add_or_and_commutative(
+; CHECK-NEXT:    [[ADD:%.*]] = add i32 [[X:%.*]], [[Y:%.*]]
+; CHECK-NEXT:    ret i32 [[ADD]]
+;
+  %or = or i32 %x, %y
+  %and = and i32 %y, %x ; swapped
+  %add = add i32 %or, %and
+  ret i32 %add
+}
+
+define i32 @add_and_or(i32 %x, i32 %y) {
+; CHECK-LABEL: @add_and_or(
+; CHECK-NEXT:    [[ADD:%.*]] = add i32 [[X:%.*]], [[Y:%.*]]
+; CHECK-NEXT:    ret i32 [[ADD]]
+;
+  %or = or i32 %x, %y
+  %and = and i32 %x, %y
+  %add = add i32 %and, %or
+  ret i32 %add
+}
+
+define i32 @add_and_or_commutative(i32 %x, i32 %y) {
+; CHECK-LABEL: @add_and_or_commutative(
+; CHECK-NEXT:    [[ADD:%.*]] = add i32 [[X:%.*]], [[Y:%.*]]
+; CHECK-NEXT:    ret i32 [[ADD]]
+;
+  %or = or i32 %x, %y
+  %and = and i32 %y, %x ; swapped
+  %add = add i32 %and, %or
+  ret i32 %add
+}
+
 define i32 @add_nsw_or_and(i32 %x, i32 %y) {
 ; CHECK-LABEL: @add_nsw_or_and(
 ; CHECK-NEXT:    [[ADD:%.*]] = add nsw i32 [[X:%.*]], [[Y:%.*]]




More information about the llvm-commits mailing list