[llvm] 51d3cb0 - [InstCombine] add tests for div/rem with 0 select arm; NFC

Sanjay Patel via llvm-commits llvm-commits at lists.llvm.org
Tue Dec 7 12:32:43 PST 2021


Author: Sanjay Patel
Date: 2021-12-07T15:30:06-05:00
New Revision: 51d3cb0ab15de7acb7131b5f967cf7fc84def99e

URL: https://github.com/llvm/llvm-project/commit/51d3cb0ab15de7acb7131b5f967cf7fc84def99e
DIFF: https://github.com/llvm/llvm-project/commit/51d3cb0ab15de7acb7131b5f967cf7fc84def99e.diff

LOG: [InstCombine] add tests for div/rem with 0 select arm; NFC

More coverage for D115173 and its div sibling. These are
existing transforms handled by simplifyDivRemOfSelectWithZeroOp().

Added: 
    

Modified: 
    llvm/test/Transforms/InstCombine/div.ll
    llvm/test/Transforms/InstCombine/rem.ll

Removed: 
    


################################################################################
diff  --git a/llvm/test/Transforms/InstCombine/div.ll b/llvm/test/Transforms/InstCombine/div.ll
index 858d7dbb3e3f..f84ec873b274 100644
--- a/llvm/test/Transforms/InstCombine/div.ll
+++ b/llvm/test/Transforms/InstCombine/div.ll
@@ -1112,6 +1112,15 @@ define i32 @sdiv_constant_dividend_select_of_constants_divisor_use(i1 %b) {
   ret i32 %r
 }
 
+define i32 @sdiv_constant_dividend_select_of_constants_divisor_0_arm(i1 %b) {
+; CHECK-LABEL: @sdiv_constant_dividend_select_of_constants_divisor_0_arm(
+; CHECK-NEXT:    ret i32 3
+;
+  %s = select i1 %b, i32 12, i32 0
+  %r = sdiv i32 42, %s
+  ret i32 %r
+}
+
 define i32 @sdiv_constant_dividend_select_divisor1(i1 %b, i32 %x) {
 ; CHECK-LABEL: @sdiv_constant_dividend_select_divisor1(
 ; CHECK-NEXT:    [[S:%.*]] = select i1 [[B:%.*]], i32 [[X:%.*]], i32 -3
@@ -1200,6 +1209,15 @@ define i32 @udiv_constant_dividend_select_of_constants_divisor_use(i1 %b) {
   ret i32 %r
 }
 
+define i32 @udiv_constant_dividend_select_of_constants_divisor_0_arm(i1 %b) {
+; CHECK-LABEL: @udiv_constant_dividend_select_of_constants_divisor_0_arm(
+; CHECK-NEXT:    ret i32 3
+;
+  %s = select i1 %b, i32 12, i32 0
+  %r = udiv i32 42, %s
+  ret i32 %r
+}
+
 define i32 @udiv_constant_dividend_select_divisor1(i1 %b, i32 %x) {
 ; CHECK-LABEL: @udiv_constant_dividend_select_divisor1(
 ; CHECK-NEXT:    [[S:%.*]] = select i1 [[B:%.*]], i32 [[X:%.*]], i32 -3

diff  --git a/llvm/test/Transforms/InstCombine/rem.ll b/llvm/test/Transforms/InstCombine/rem.ll
index 468ccb261d2f..cceb12ab6e41 100644
--- a/llvm/test/Transforms/InstCombine/rem.ll
+++ b/llvm/test/Transforms/InstCombine/rem.ll
@@ -799,6 +799,15 @@ define i32 @srem_constant_dividend_select_of_constants_divisor_use(i1 %b) {
   ret i32 %r
 }
 
+define i32 @srem_constant_dividend_select_of_constants_divisor_0_arm(i1 %b) {
+; CHECK-LABEL: @srem_constant_dividend_select_of_constants_divisor_0_arm(
+; CHECK-NEXT:    ret i32 6
+;
+  %s = select i1 %b, i32 12, i32 0
+  %r = srem i32 42, %s
+  ret i32 %r
+}
+
 define i32 @srem_constant_dividend_select_divisor1(i1 %b, i32 %x) {
 ; CHECK-LABEL: @srem_constant_dividend_select_divisor1(
 ; CHECK-NEXT:    [[S:%.*]] = select i1 [[B:%.*]], i32 [[X:%.*]], i32 -3
@@ -887,6 +896,15 @@ define i32 @urem_constant_dividend_select_of_constants_divisor_use(i1 %b) {
   ret i32 %r
 }
 
+define i32 @urem_constant_dividend_select_of_constants_divisor_0_arm(i1 %b) {
+; CHECK-LABEL: @urem_constant_dividend_select_of_constants_divisor_0_arm(
+; CHECK-NEXT:    ret i32 6
+;
+  %s = select i1 %b, i32 12, i32 0
+  %r = urem i32 42, %s
+  ret i32 %r
+}
+
 define i32 @urem_constant_dividend_select_divisor1(i1 %b, i32 %x) {
 ; CHECK-LABEL: @urem_constant_dividend_select_divisor1(
 ; CHECK-NEXT:    [[S:%.*]] = select i1 [[B:%.*]], i32 [[X:%.*]], i32 -3


        


More information about the llvm-commits mailing list