From 7228b5e6f4708e83a881f5cb3b18b5a763d7725a Mon Sep 17 00:00:00 2001 From: Juneyoung Lee Date: Wed, 10 Mar 2021 17:54:31 +0900 Subject: [PATCH] [InstSimplify] Add tests for pr49495 (NFC) --- test/Transforms/InstSimplify/pr49495.ll | 30 +++++++++++++++++++++++++ 1 file changed, 30 insertions(+) create mode 100644 test/Transforms/InstSimplify/pr49495.ll diff --git a/test/Transforms/InstSimplify/pr49495.ll b/test/Transforms/InstSimplify/pr49495.ll new file mode 100644 index 00000000000..f085de3b4a2 --- /dev/null +++ b/test/Transforms/InstSimplify/pr49495.ll @@ -0,0 +1,30 @@ +; NOTE: Assertions have been autogenerated by utils/update_test_checks.py +; RUN: opt < %s -instsimplify -S | FileCheck %s + +; The first comparison (a != b) should not be dropped +define i1 @test1(i8* %a, i8* %b) { +; CHECK-LABEL: @test1( +; CHECK-NEXT: [[A2:%.*]] = getelementptr inbounds i8, i8* [[A:%.*]], i64 -1 +; CHECK-NEXT: [[COND2:%.*]] = icmp ugt i8* [[A2]], [[B:%.*]] +; CHECK-NEXT: ret i1 [[COND2]] +; + %cond1 = icmp ne i8* %a, %b + %a2 = getelementptr inbounds i8, i8* %a, i64 -1 + %cond2 = icmp ugt i8* %a2, %b + %res = select i1 %cond1, i1 %cond2, i1 false + ret i1 %res +} + +; The first comparison (a != b) should not be dropped +define i1 @test2(i32 %a, i32 %b) { +; CHECK-LABEL: @test2( +; CHECK-NEXT: [[A2:%.*]] = add nuw i32 [[A:%.*]], 1 +; CHECK-NEXT: [[COND2:%.*]] = icmp ult i32 [[A2]], [[B:%.*]] +; CHECK-NEXT: ret i1 [[COND2]] +; + %cond1 = icmp ne i32 %a, %b + %a2 = add nuw i32 %a, 1 + %cond2 = icmp ult i32 %a2, %b + %res = select i1 %cond1, i1 %cond2, i1 false + ret i1 %res +}