Files
clang-p2996/llvm/test/Transforms/InstCombine/vscale_zero.ll
David Green bd1a4c8565 [ValueTracking] Teach isKnownNonZero that a vscale is never 0.
A llvm.vscale will always be at least 1, never zero. Teaching that to
isKnownNonZero can help fold away some statically known compares.

Differential Revision: https://reviews.llvm.org/D128217
2022-06-23 15:25:24 +01:00

27 lines
559 B
LLVM

; NOTE: Assertions have been autogenerated by utils/update_test_checks.py
; RUN: opt < %s -passes=instcombine -S | FileCheck %s
define i1 @iszero() {
; CHECK-LABEL: @iszero(
; CHECK-NEXT: entry:
; CHECK-NEXT: ret i1 false
;
entry:
%0 = call i32 @llvm.vscale.i32()
%1 = icmp eq i32 %0, 0
ret i1 %1
}
define i1 @iszero_range() vscale_range(1,16) {
; CHECK-LABEL: @iszero_range(
; CHECK-NEXT: entry:
; CHECK-NEXT: ret i1 false
;
entry:
%0 = call i32 @llvm.vscale.i32()
%1 = icmp eq i32 %0, 0
ret i1 %1
}
declare i32 @llvm.vscale.i32()