summaryrefslogtreecommitdiffstats
path: root/llvm/test/Transforms
diff options
context:
space:
mode:
authorSanjay Patel <spatel@rotateright.com>2019-01-31 16:48:42 +0000
committerSanjay Patel <spatel@rotateright.com>2019-01-31 16:48:42 +0000
commit4ec15990820bc3e378dc742c2df7b62716e6f823 (patch)
tree2ee198e0eac1ff24573bbcecc450dd1fbfaf4fcd /llvm/test/Transforms
parent4877715ee693e8e2fc7e7d76aee8fb9bad26babe (diff)
downloadbcm5719-llvm-4ec15990820bc3e378dc742c2df7b62716e6f823.tar.gz
bcm5719-llvm-4ec15990820bc3e378dc742c2df7b62716e6f823.zip
revert r352766: [PatternMatch] add special-case uaddo matching for increment-by-one
Missed some regression test updates when testing this. llvm-svn: 352769
Diffstat (limited to 'llvm/test/Transforms')
-rw-r--r--llvm/test/Transforms/CodeGenPrepare/overflow-intrinsics.ll45
1 files changed, 20 insertions, 25 deletions
diff --git a/llvm/test/Transforms/CodeGenPrepare/overflow-intrinsics.ll b/llvm/test/Transforms/CodeGenPrepare/overflow-intrinsics.ll
index 6b91a3b3c18..d3d23768980 100644
--- a/llvm/test/Transforms/CodeGenPrepare/overflow-intrinsics.ll
+++ b/llvm/test/Transforms/CodeGenPrepare/overflow-intrinsics.ll
@@ -105,11 +105,10 @@ exit:
define i1 @uaddo_i64_increment(i64 %x, i64* %p) {
; CHECK-LABEL: @uaddo_i64_increment(
-; CHECK-NEXT: [[UADD_OVERFLOW:%.*]] = call { i64, i1 } @llvm.uadd.with.overflow.i64(i64 [[X:%.*]], i64 1)
-; CHECK-NEXT: [[UADD:%.*]] = extractvalue { i64, i1 } [[UADD_OVERFLOW]], 0
-; CHECK-NEXT: [[OVERFLOW:%.*]] = extractvalue { i64, i1 } [[UADD_OVERFLOW]], 1
-; CHECK-NEXT: store i64 [[UADD]], i64* [[P:%.*]]
-; CHECK-NEXT: ret i1 [[OVERFLOW]]
+; CHECK-NEXT: [[A:%.*]] = add i64 [[X:%.*]], 1
+; CHECK-NEXT: [[OV:%.*]] = icmp eq i64 [[A]], 0
+; CHECK-NEXT: store i64 [[A]], i64* [[P:%.*]]
+; CHECK-NEXT: ret i1 [[OV]]
;
%a = add i64 %x, 1
%ov = icmp eq i64 %a, 0
@@ -119,11 +118,10 @@ define i1 @uaddo_i64_increment(i64 %x, i64* %p) {
define i1 @uaddo_i8_increment_noncanonical_1(i8 %x, i8* %p) {
; CHECK-LABEL: @uaddo_i8_increment_noncanonical_1(
-; CHECK-NEXT: [[UADD_OVERFLOW:%.*]] = call { i8, i1 } @llvm.uadd.with.overflow.i8(i8 1, i8 [[X:%.*]])
-; CHECK-NEXT: [[UADD:%.*]] = extractvalue { i8, i1 } [[UADD_OVERFLOW]], 0
-; CHECK-NEXT: [[OVERFLOW:%.*]] = extractvalue { i8, i1 } [[UADD_OVERFLOW]], 1
-; CHECK-NEXT: store i8 [[UADD]], i8* [[P:%.*]]
-; CHECK-NEXT: ret i1 [[OVERFLOW]]
+; CHECK-NEXT: [[A:%.*]] = add i8 1, [[X:%.*]]
+; CHECK-NEXT: [[OV:%.*]] = icmp eq i8 [[A]], 0
+; CHECK-NEXT: store i8 [[A]], i8* [[P:%.*]]
+; CHECK-NEXT: ret i1 [[OV]]
;
%a = add i8 1, %x ; commute
%ov = icmp eq i8 %a, 0
@@ -133,11 +131,10 @@ define i1 @uaddo_i8_increment_noncanonical_1(i8 %x, i8* %p) {
define i1 @uaddo_i32_increment_noncanonical_2(i32 %x, i32* %p) {
; CHECK-LABEL: @uaddo_i32_increment_noncanonical_2(
-; CHECK-NEXT: [[UADD_OVERFLOW:%.*]] = call { i32, i1 } @llvm.uadd.with.overflow.i32(i32 [[X:%.*]], i32 1)
-; CHECK-NEXT: [[UADD:%.*]] = extractvalue { i32, i1 } [[UADD_OVERFLOW]], 0
-; CHECK-NEXT: [[OVERFLOW:%.*]] = extractvalue { i32, i1 } [[UADD_OVERFLOW]], 1
-; CHECK-NEXT: store i32 [[UADD]], i32* [[P:%.*]]
-; CHECK-NEXT: ret i1 [[OVERFLOW]]
+; CHECK-NEXT: [[A:%.*]] = add i32 [[X:%.*]], 1
+; CHECK-NEXT: [[OV:%.*]] = icmp eq i32 0, [[A]]
+; CHECK-NEXT: store i32 [[A]], i32* [[P:%.*]]
+; CHECK-NEXT: ret i1 [[OV]]
;
%a = add i32 %x, 1
%ov = icmp eq i32 0, %a ; commute
@@ -147,11 +144,10 @@ define i1 @uaddo_i32_increment_noncanonical_2(i32 %x, i32* %p) {
define i1 @uaddo_i16_increment_noncanonical_3(i16 %x, i16* %p) {
; CHECK-LABEL: @uaddo_i16_increment_noncanonical_3(
-; CHECK-NEXT: [[UADD_OVERFLOW:%.*]] = call { i16, i1 } @llvm.uadd.with.overflow.i16(i16 1, i16 [[X:%.*]])
-; CHECK-NEXT: [[UADD:%.*]] = extractvalue { i16, i1 } [[UADD_OVERFLOW]], 0
-; CHECK-NEXT: [[OVERFLOW:%.*]] = extractvalue { i16, i1 } [[UADD_OVERFLOW]], 1
-; CHECK-NEXT: store i16 [[UADD]], i16* [[P:%.*]]
-; CHECK-NEXT: ret i1 [[OVERFLOW]]
+; CHECK-NEXT: [[A:%.*]] = add i16 1, [[X:%.*]]
+; CHECK-NEXT: [[OV:%.*]] = icmp eq i16 0, [[A]]
+; CHECK-NEXT: store i16 [[A]], i16* [[P:%.*]]
+; CHECK-NEXT: ret i1 [[OV]]
;
%a = add i16 1, %x ; commute
%ov = icmp eq i16 0, %a ; commute
@@ -163,11 +159,10 @@ define i1 @uaddo_i16_increment_noncanonical_3(i16 %x, i16* %p) {
define i1 @uaddo_i42_increment_illegal_type(i42 %x, i42* %p) {
; CHECK-LABEL: @uaddo_i42_increment_illegal_type(
-; CHECK-NEXT: [[UADD_OVERFLOW:%.*]] = call { i42, i1 } @llvm.uadd.with.overflow.i42(i42 [[X:%.*]], i42 1)
-; CHECK-NEXT: [[UADD:%.*]] = extractvalue { i42, i1 } [[UADD_OVERFLOW]], 0
-; CHECK-NEXT: [[OVERFLOW:%.*]] = extractvalue { i42, i1 } [[UADD_OVERFLOW]], 1
-; CHECK-NEXT: store i42 [[UADD]], i42* [[P:%.*]]
-; CHECK-NEXT: ret i1 [[OVERFLOW]]
+; CHECK-NEXT: [[A:%.*]] = add i42 [[X:%.*]], 1
+; CHECK-NEXT: [[OV:%.*]] = icmp eq i42 [[A]], 0
+; CHECK-NEXT: store i42 [[A]], i42* [[P:%.*]]
+; CHECK-NEXT: ret i1 [[OV]]
;
%a = add i42 %x, 1
%ov = icmp eq i42 %a, 0
OpenPOWER on IntegriCloud