Skip to content

Commit 15f29c4

Browse files
committed
[InstCombine] Add more pre-commit tests for PR57328. NFC.
1 parent 0d821b2 commit 15f29c4

File tree

1 file changed

+17
-2
lines changed

1 file changed

+17
-2
lines changed

llvm/test/Transforms/InstCombine/ispow2.ll

Lines changed: 17 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -193,8 +193,8 @@ define i1 @is_pow2_ctpop(i32 %x) {
193193
}
194194

195195
; tests from PR57328
196-
define i1 @is_pow2_non_zero(i32 %x) {
197-
; CHECK-LABEL: @is_pow2_non_zero(
196+
define i1 @is_pow2_non_zero_ult_2(i32 %x) {
197+
; CHECK-LABEL: @is_pow2_non_zero_ult_2(
198198
; CHECK-NEXT: [[NOTZERO:%.*]] = icmp ne i32 [[X:%.*]], 0
199199
; CHECK-NEXT: call void @llvm.assume(i1 [[NOTZERO]])
200200
; CHECK-NEXT: [[T0:%.*]] = tail call i32 @llvm.ctpop.i32(i32 [[X]]), !range [[RNG0]]
@@ -208,6 +208,21 @@ define i1 @is_pow2_non_zero(i32 %x) {
208208
ret i1 %cmp
209209
}
210210

211+
define i1 @is_pow2_non_zero_eq_1(i32 %x) {
212+
; CHECK-LABEL: @is_pow2_non_zero_eq_1(
213+
; CHECK-NEXT: [[NOTZERO:%.*]] = icmp ne i32 [[X:%.*]], 0
214+
; CHECK-NEXT: call void @llvm.assume(i1 [[NOTZERO]])
215+
; CHECK-NEXT: [[T0:%.*]] = tail call i32 @llvm.ctpop.i32(i32 [[X]]), !range [[RNG0]]
216+
; CHECK-NEXT: [[CMP:%.*]] = icmp eq i32 [[T0]], 1
217+
; CHECK-NEXT: ret i1 [[CMP]]
218+
;
219+
%notzero = icmp ne i32 %x, 0
220+
call void @llvm.assume(i1 %notzero)
221+
%t0 = tail call i32 @llvm.ctpop.i32(i32 %x)
222+
%cmp = icmp eq i32 %t0, 1
223+
ret i1 %cmp
224+
}
225+
211226
define i1 @is_pow2_ctpop_logical(i32 %x) {
212227
; CHECK-LABEL: @is_pow2_ctpop_logical(
213228
; CHECK-NEXT: [[T0:%.*]] = tail call i32 @llvm.ctpop.i32(i32 [[X:%.*]]), !range [[RNG0]]

0 commit comments

Comments
 (0)