File tree Expand file tree Collapse file tree 1 file changed +17
-0
lines changed
llvm/test/Transforms/InstCombine Expand file tree Collapse file tree 1 file changed +17
-0
lines changed Original file line number Diff line number Diff 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+
325342define 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
You can’t perform that action at this time.
0 commit comments