diff --git a/llvm/test/Transforms/InstSimplify/ConstProp/icmp-null.ll b/llvm/test/Transforms/InstSimplify/ConstProp/icmp-null.ll new file mode 100644 index 0000000000000..5ee8e7a4983b7 --- /dev/null +++ b/llvm/test/Transforms/InstSimplify/ConstProp/icmp-null.ll @@ -0,0 +1,34 @@ +; NOTE: Assertions have been autogenerated by utils/update_test_checks.py +; RUN: opt < %s -instsimplify -S -verify | FileCheck %s + +define i1 @ule_null_constexpr(i8* %x) { +; CHECK-LABEL: @ule_null_constexpr( +; CHECK-NEXT: ret i1 icmp uge (i8 (...)* bitcast (i1 (i8*)* @ule_null_constexpr to i8 (...)*), i8 (...)* null) +; + %cmp = icmp ule i8 (...)* null, bitcast (i1 (i8*)* @ule_null_constexpr to i8 (...)*) + ret i1 %cmp +} + +define i1 @ugt_null_constexpr(i8* %x) { +; CHECK-LABEL: @ugt_null_constexpr( +; CHECK-NEXT: ret i1 icmp ult (i8 (...)* bitcast (i1 (i8*)* @ugt_null_constexpr to i8 (...)*), i8 (...)* null) +; + %cmp = icmp ugt i8 (...)* null, bitcast (i1 (i8*)* @ugt_null_constexpr to i8 (...)*) + ret i1 %cmp +} + +define i1 @uge_constexpr_null(i8* %x) { +; CHECK-LABEL: @uge_constexpr_null( +; CHECK-NEXT: ret i1 icmp uge (i8 (...)* bitcast (i1 (i8*)* @ugt_null_constexpr to i8 (...)*), i8 (...)* null) +; + %cmp = icmp uge i8 (...)* bitcast (i1 (i8*)* @ugt_null_constexpr to i8 (...)*), null + ret i1 %cmp +} + +define i1 @ult_constexpr_null(i8* %x) { +; CHECK-LABEL: @ult_constexpr_null( +; CHECK-NEXT: ret i1 icmp ult (i8 (...)* bitcast (i1 (i8*)* @ugt_null_constexpr to i8 (...)*), i8 (...)* null) +; + %cmp = icmp ult i8 (...)* bitcast (i1 (i8*)* @ugt_null_constexpr to i8 (...)*), null + ret i1 %cmp +}