Skip to content

Commit b7e9ef7

Browse files
committed
[InstCombine] Add conjugate part of pre-commit tests for PR57328. NFC.
1 parent 15f29c4 commit b7e9ef7

File tree

1 file changed

+30
-0
lines changed

1 file changed

+30
-0
lines changed

llvm/test/Transforms/InstCombine/ispow2.ll

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -223,6 +223,36 @@ define i1 @is_pow2_non_zero_eq_1(i32 %x) {
223223
ret i1 %cmp
224224
}
225225

226+
define i1 @is_pow2_non_zero_ugt_1(i32 %x) {
227+
; CHECK-LABEL: @is_pow2_non_zero_ugt_1(
228+
; CHECK-NEXT: [[NOTZERO:%.*]] = icmp ne i32 [[X:%.*]], 0
229+
; CHECK-NEXT: call void @llvm.assume(i1 [[NOTZERO]])
230+
; CHECK-NEXT: [[T0:%.*]] = tail call i32 @llvm.ctpop.i32(i32 [[X]]), !range [[RNG0]]
231+
; CHECK-NEXT: [[CMP:%.*]] = icmp ugt i32 [[T0]], 1
232+
; CHECK-NEXT: ret i1 [[CMP]]
233+
;
234+
%notzero = icmp ne i32 %x, 0
235+
call void @llvm.assume(i1 %notzero)
236+
%t0 = tail call i32 @llvm.ctpop.i32(i32 %x)
237+
%cmp = icmp ugt i32 %t0, 1
238+
ret i1 %cmp
239+
}
240+
241+
define i1 @is_pow2_non_zero_ne_1(i32 %x) {
242+
; CHECK-LABEL: @is_pow2_non_zero_ne_1(
243+
; CHECK-NEXT: [[NOTZERO:%.*]] = icmp ne i32 [[X:%.*]], 0
244+
; CHECK-NEXT: call void @llvm.assume(i1 [[NOTZERO]])
245+
; CHECK-NEXT: [[T0:%.*]] = tail call i32 @llvm.ctpop.i32(i32 [[X]]), !range [[RNG0]]
246+
; CHECK-NEXT: [[CMP:%.*]] = icmp ne i32 [[T0]], 1
247+
; CHECK-NEXT: ret i1 [[CMP]]
248+
;
249+
%notzero = icmp ne i32 %x, 0
250+
call void @llvm.assume(i1 %notzero)
251+
%t0 = tail call i32 @llvm.ctpop.i32(i32 %x)
252+
%cmp = icmp ne i32 %t0, 1
253+
ret i1 %cmp
254+
}
255+
226256
define i1 @is_pow2_ctpop_logical(i32 %x) {
227257
; CHECK-LABEL: @is_pow2_ctpop_logical(
228258
; CHECK-NEXT: [[T0:%.*]] = tail call i32 @llvm.ctpop.i32(i32 [[X:%.*]]), !range [[RNG0]]

0 commit comments

Comments
 (0)