[llvm] 811167b - [NFC][InstCombine] Add a few test of adding to add-like or

Roman Lebedev via llvm-commits llvm-commits at lists.llvm.org
Sun Apr 11 08:08:51 PDT 2021


Author: Roman Lebedev
Date: 2021-04-11T18:08:08+03:00
New Revision: 811167b1f6a611363ce43c8e27e71b1494af6fc5

URL: https://github.com/llvm/llvm-project/commit/811167b1f6a611363ce43c8e27e71b1494af6fc5
DIFF: https://github.com/llvm/llvm-project/commit/811167b1f6a611363ce43c8e27e71b1494af6fc5.diff

LOG: [NFC][InstCombine] Add a few test of adding to add-like or

Added: 
    

Modified: 
    llvm/test/Transforms/InstCombine/add.ll

Removed: 
    


################################################################################
diff  --git a/llvm/test/Transforms/InstCombine/add.ll b/llvm/test/Transforms/InstCombine/add.ll
index b6a7a52ed126..223f033c1fd8 100644
--- a/llvm/test/Transforms/InstCombine/add.ll
+++ b/llvm/test/Transforms/InstCombine/add.ll
@@ -1354,3 +1354,42 @@ define i32 @lshr_add_use2_sexts(i1 %x, i1 %y, i32* %p) {
   %r = lshr i32 %sub, 31
   ret i32 %r
 }
+
+define i8 @add_like_or_t0(i8 %x) {
+; CHECK-LABEL: @add_like_or_t0(
+; CHECK-NEXT:    [[I0:%.*]] = shl i8 [[X:%.*]], 4
+; CHECK-NEXT:    [[I1:%.*]] = or i8 [[I0]], 15
+; CHECK-NEXT:    [[R:%.*]] = add i8 [[I1]], 42
+; CHECK-NEXT:    ret i8 [[R]]
+;
+  %i0 = shl i8 %x, 4
+  %i1 = or i8 %i0, 15 ; no common bits
+  %r = add i8 %i1, 42
+  ret i8 %r
+}
+define i8 @add_like_or_n1(i8 %x) {
+; CHECK-LABEL: @add_like_or_n1(
+; CHECK-NEXT:    [[I0:%.*]] = shl i8 [[X:%.*]], 4
+; CHECK-NEXT:    [[I1:%.*]] = or i8 [[I0]], 31
+; CHECK-NEXT:    [[R:%.*]] = add i8 [[I1]], 42
+; CHECK-NEXT:    ret i8 [[R]]
+;
+  %i0 = shl i8 %x, 4
+  %i1 = or i8 %i0, 31 ; 4'th bit might be common-set
+  %r = add i8 %i1, 42
+  ret i8 %r
+}
+define i8 @add_like_or_t2_extrause(i8 %x) {
+; CHECK-LABEL: @add_like_or_t2_extrause(
+; CHECK-NEXT:    [[I0:%.*]] = shl i8 [[X:%.*]], 4
+; CHECK-NEXT:    [[I1:%.*]] = or i8 [[I0]], 15
+; CHECK-NEXT:    call void @use(i8 [[I1]])
+; CHECK-NEXT:    [[R:%.*]] = add i8 [[I1]], 42
+; CHECK-NEXT:    ret i8 [[R]]
+;
+  %i0 = shl i8 %x, 4
+  %i1 = or i8 %i0, 15 ; no common bits
+  call void @use(i8 %i1) ; extra use
+  %r = add i8 %i1, 42
+  ret i8 %r
+}


        


More information about the llvm-commits mailing list