Skip to content

Commit 6a9ab60

Browse files
committed
[ValueTracking] Add tests for isKnownNonZero of llvm.vector.reduce.or; NFC
1 parent 6b9a725 commit 6a9ab60

File tree

1 file changed

+26
-0
lines changed

1 file changed

+26
-0
lines changed

llvm/test/Transforms/InstSimplify/known-non-zero.ll

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -377,3 +377,29 @@ define <2 x i1> @insert_nonzero_any_idx_fail(<2 x i8> %xx, i8 %yy, i32 %idx) {
377377
%r = icmp eq <2 x i8> %ins, zeroinitializer
378378
ret <2 x i1> %r
379379
}
380+
381+
define i1 @nonzero_reduce_or(<2 x i8> %xx) {
382+
; CHECK-LABEL: @nonzero_reduce_or(
383+
; CHECK-NEXT: [[X:%.*]] = add nuw <2 x i8> [[XX:%.*]], <i8 1, i8 1>
384+
; CHECK-NEXT: [[V:%.*]] = call i8 @llvm.vector.reduce.or.v2i8(<2 x i8> [[X]])
385+
; CHECK-NEXT: [[R:%.*]] = icmp eq i8 [[V]], 0
386+
; CHECK-NEXT: ret i1 [[R]]
387+
;
388+
%x = add nuw <2 x i8> %xx, <i8 1, i8 1>
389+
%v = call i8 @llvm.vector.reduce.or(<2 x i8> %x)
390+
%r = icmp eq i8 %v, 0
391+
ret i1 %r
392+
}
393+
394+
define i1 @nonzero_reduce_or_fail(<2 x i8> %xx) {
395+
; CHECK-LABEL: @nonzero_reduce_or_fail(
396+
; CHECK-NEXT: [[X:%.*]] = add nsw <2 x i8> [[XX:%.*]], <i8 1, i8 1>
397+
; CHECK-NEXT: [[V:%.*]] = call i8 @llvm.vector.reduce.or.v2i8(<2 x i8> [[X]])
398+
; CHECK-NEXT: [[R:%.*]] = icmp eq i8 [[V]], 0
399+
; CHECK-NEXT: ret i1 [[R]]
400+
;
401+
%x = add nsw <2 x i8> %xx, <i8 1, i8 1>
402+
%v = call i8 @llvm.vector.reduce.or(<2 x i8> %x)
403+
%r = icmp eq i8 %v, 0
404+
ret i1 %r
405+
}

0 commit comments

Comments
 (0)