Skip to content

Commit 8c7a4f4

Browse files
committed
[InstCombine] Add pre-commit tests. NFC.
1 parent 05bd7d2 commit 8c7a4f4

File tree

1 file changed

+17
-0
lines changed

1 file changed

+17
-0
lines changed

llvm/test/Transforms/InstCombine/select-divrem.ll

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -322,6 +322,23 @@ define i8 @rem_euclid_non_const_pow2(i8 %0, i8 %1) {
322322
ret i8 %sel
323323
}
324324

325+
define i8 @rem_euclid_non_const_pow2_commuted(i8 %0, i8 %1) {
326+
; CHECK-LABEL: @rem_euclid_non_const_pow2_commuted(
327+
; CHECK-NEXT: [[POW2:%.*]] = shl nuw i8 1, [[TMP0:%.*]]
328+
; CHECK-NEXT: [[REM:%.*]] = srem i8 [[TMP1:%.*]], [[POW2]]
329+
; CHECK-NEXT: [[COND:%.*]] = icmp slt i8 [[REM]], 0
330+
; CHECK-NEXT: [[ADD:%.*]] = select i1 [[COND]], i8 [[POW2]], i8 0
331+
; CHECK-NEXT: [[SEL:%.*]] = add i8 [[REM]], [[ADD]]
332+
; CHECK-NEXT: ret i8 [[SEL]]
333+
;
334+
%pow2 = shl i8 1, %0
335+
%rem = srem i8 %1, %pow2
336+
%cond = icmp slt i8 %rem, 0
337+
%add = add i8 %pow2, %rem
338+
%sel = select i1 %cond, i8 %add, i8 %rem
339+
ret i8 %sel
340+
}
341+
325342
define i32 @rem_euclid_pow2_true_arm_folded(i32 %n) {
326343
; CHECK-LABEL: @rem_euclid_pow2_true_arm_folded(
327344
; CHECK-NEXT: [[RES:%.*]] = and i32 [[N:%.*]], 1

0 commit comments

Comments
 (0)