From 5401d393f88b9fa99a8d3a2a1b3013e757d958a2 Mon Sep 17 00:00:00 2001 From: Hans Wennborg Date: Thu, 19 Mar 2020 10:12:16 +0100 Subject: [PATCH] ../llvm/utils/update_test_checks.py --opt-binary bin/opt ../llvm/test/Transforms/PhaseOrdering/min-max-abs-cse.ll --- .../PhaseOrdering/min-max-abs-cse.ll | 30 +++++++++++++++---- 1 file changed, 24 insertions(+), 6 deletions(-) diff --git a/llvm/test/Transforms/PhaseOrdering/min-max-abs-cse.ll b/llvm/test/Transforms/PhaseOrdering/min-max-abs-cse.ll index bdf75ca7e82e4..0cdb56748d519 100644 --- a/llvm/test/Transforms/PhaseOrdering/min-max-abs-cse.ll +++ b/llvm/test/Transforms/PhaseOrdering/min-max-abs-cse.ll @@ -34,9 +34,12 @@ define i8 @smax_nsw(i8 %a, i8 %b) { define i8 @abs_swapped(i8 %a) { ; CHECK-LABEL: @abs_swapped( ; CHECK-NEXT: [[NEG:%.*]] = sub i8 0, [[A:%.*]] -; CHECK-NEXT: [[CMP1:%.*]] = icmp slt i8 [[A]], 0 -; CHECK-NEXT: [[M1:%.*]] = select i1 [[CMP1]], i8 [[NEG]], i8 [[A]] -; CHECK-NEXT: ret i8 [[M1]] +; CHECK-NEXT: [[CMP1:%.*]] = icmp sgt i8 [[A]], 0 +; CHECK-NEXT: [[CMP2:%.*]] = icmp slt i8 [[A]], 0 +; CHECK-NEXT: [[M1:%.*]] = select i1 [[CMP1]], i8 [[A]], i8 [[NEG]] +; CHECK-NEXT: [[M2:%.*]] = select i1 [[CMP2]], i8 [[NEG]], i8 [[A]] +; CHECK-NEXT: [[R:%.*]] = or i8 [[M2]], [[M1]] +; CHECK-NEXT: ret i8 [[R]] ; %neg = sub i8 0, %a %cmp1 = icmp sgt i8 %a, 0 @@ -51,7 +54,13 @@ define i8 @abs_swapped(i8 %a) { define i8 @nabs_swapped(i8 %a) { ; CHECK-LABEL: @nabs_swapped( -; CHECK-NEXT: ret i8 0 +; CHECK-NEXT: [[NEG:%.*]] = sub i8 0, [[A:%.*]] +; CHECK-NEXT: [[CMP1:%.*]] = icmp slt i8 [[A]], 0 +; CHECK-NEXT: [[CMP2:%.*]] = icmp sgt i8 [[A]], 0 +; CHECK-NEXT: [[M1:%.*]] = select i1 [[CMP1]], i8 [[A]], i8 [[NEG]] +; CHECK-NEXT: [[M2:%.*]] = select i1 [[CMP2]], i8 [[NEG]], i8 [[A]] +; CHECK-NEXT: [[R:%.*]] = xor i8 [[M2]], [[M1]] +; CHECK-NEXT: ret i8 [[R]] ; %neg = sub i8 0, %a %cmp1 = icmp slt i8 %a, 0 @@ -66,7 +75,13 @@ define i8 @nabs_swapped(i8 %a) { define i8 @abs_different_constants(i8 %a) { ; CHECK-LABEL: @abs_different_constants( -; CHECK-NEXT: ret i8 0 +; CHECK-NEXT: [[NEG:%.*]] = sub i8 0, [[A:%.*]] +; CHECK-NEXT: [[CMP1:%.*]] = icmp sgt i8 [[A]], -1 +; CHECK-NEXT: [[CMP2:%.*]] = icmp slt i8 [[A]], 0 +; CHECK-NEXT: [[M1:%.*]] = select i1 [[CMP1]], i8 [[A]], i8 [[NEG]] +; CHECK-NEXT: [[M2:%.*]] = select i1 [[CMP2]], i8 [[NEG]], i8 [[A]] +; CHECK-NEXT: [[R:%.*]] = xor i8 [[M2]], [[M1]] +; CHECK-NEXT: ret i8 [[R]] ; %neg = sub i8 0, %a %cmp1 = icmp sgt i8 %a, -1 @@ -83,8 +98,11 @@ define i8 @nabs_different_constants(i8 %a) { ; CHECK-LABEL: @nabs_different_constants( ; CHECK-NEXT: [[NEG:%.*]] = sub i8 0, [[A:%.*]] ; CHECK-NEXT: [[CMP1:%.*]] = icmp slt i8 [[A]], 0 +; CHECK-NEXT: [[CMP2:%.*]] = icmp sgt i8 [[A]], -1 ; CHECK-NEXT: [[M1:%.*]] = select i1 [[CMP1]], i8 [[A]], i8 [[NEG]] -; CHECK-NEXT: ret i8 [[M1]] +; CHECK-NEXT: [[M2:%.*]] = select i1 [[CMP2]], i8 [[NEG]], i8 [[A]] +; CHECK-NEXT: [[R:%.*]] = or i8 [[M2]], [[M1]] +; CHECK-NEXT: ret i8 [[R]] ; %neg = sub i8 0, %a %cmp1 = icmp slt i8 %a, 0