From 9e06c767a4b66f600f77626807688e4a213a3242 Mon Sep 17 00:00:00 2001 From: =?utf8?q?D=C3=A1vid=20Bolvansk=C3=BD?= Date: Sat, 4 Sep 2021 10:52:46 +0200 Subject: [PATCH] [NFC] Added testcase for PR39116 --- llvm/test/Transforms/PhaseOrdering/pr39116.ll | 36 +++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) create mode 100644 llvm/test/Transforms/PhaseOrdering/pr39116.ll diff --git a/llvm/test/Transforms/PhaseOrdering/pr39116.ll b/llvm/test/Transforms/PhaseOrdering/pr39116.ll new file mode 100644 index 0000000..fab0a62 --- /dev/null +++ b/llvm/test/Transforms/PhaseOrdering/pr39116.ll @@ -0,0 +1,36 @@ +; NOTE: Assertions have been autogenerated by utils/update_test_checks.py +; RUN: opt -simplifycfg -simplifycfg-require-and-preserve-domtree=1 -instcombine -S < %s | FileCheck %s + +define zeroext i1 @switch_ob_one_two_cases(i32 %arg) { +; CHECK-LABEL: @switch_ob_one_two_cases( +; CHECK-NEXT: bb: +; CHECK-NEXT: [[TMP0:%.*]] = and i32 [[ARG:%.*]], -3 +; CHECK-NEXT: [[TMP1:%.*]] = icmp eq i32 [[TMP0]], 0 +; CHECK-NEXT: ret i1 [[TMP1]] +; +bb: + switch i32 %arg, label %bb1 [ + i32 0, label %bb2 + i32 2, label %bb2 + ] + +bb1: + br label %bb2 + +bb2: + %i = phi i1 [ false, %bb1 ], [ true, %bb ], [ true, %bb ] + ret i1 %i +} + +define zeroext i1 @switch_ob_one_two_cases2(i32 %arg) { +; CHECK-LABEL: @switch_ob_one_two_cases2( +; CHECK-NEXT: [[I:%.*]] = icmp eq i32 [[ARG:%.*]], 7 +; CHECK-NEXT: [[I1:%.*]] = icmp eq i32 [[ARG]], 11 +; CHECK-NEXT: [[I2:%.*]] = or i1 [[I]], [[I1]] +; CHECK-NEXT: ret i1 [[I2]] +; + %i = icmp eq i32 %arg, 7 + %i1 = icmp eq i32 %arg, 11 + %i2 = or i1 %i, %i1 + ret i1 %i2 +} -- 2.7.4