We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
There was an error while loading. Please reload this page.
1 parent e96adfd commit f502ab7Copy full SHA for f502ab7
llvm/test/Transforms/InstCombine/ctpop.ll
@@ -475,3 +475,16 @@ define i32 @parity_xor_extra_use2(i32 %arg, i32 %arg1) {
475
%i5 = xor i32 %i2, %i4
476
ret i32 %i5
477
}
478
+
479
+define i32 @select_ctpop_zero(i32 %x) {
480
+; CHECK-LABEL: @select_ctpop_zero(
481
+; CHECK-NEXT: [[CTPOP:%.*]] = call i32 @llvm.ctpop.i32(i32 [[X:%.*]]), !range [[RNG1]]
482
+; CHECK-NEXT: [[CMP:%.*]] = icmp eq i32 [[X]], 0
483
+; CHECK-NEXT: [[RES:%.*]] = select i1 [[CMP]], i32 0, i32 [[CTPOP]]
484
+; CHECK-NEXT: ret i32 [[RES]]
485
+;
486
+ %ctpop = call i32 @llvm.ctpop.i32(i32 %x)
487
+ %cmp = icmp eq i32 %x, 0
488
+ %res = select i1 %cmp, i32 0, i32 %ctpop
489
+ ret i32 %res
490
+}
0 commit comments