[llvm] r374111 - [CVP][NFC] Revisit sext vs. zext test

Roman Lebedev via llvm-commits llvm-commits at lists.llvm.org
Tue Oct 8 13:29:37 PDT 2019


Author: lebedevri
Date: Tue Oct  8 13:29:36 2019
New Revision: 374111

URL: http://llvm.org/viewvc/llvm-project?rev=374111&view=rev
Log:
[CVP][NFC] Revisit sext vs. zext test

Modified:
    llvm/trunk/test/Transforms/CorrelatedValuePropagation/sext.ll

Modified: llvm/trunk/test/Transforms/CorrelatedValuePropagation/sext.ll
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/Transforms/CorrelatedValuePropagation/sext.ll?rev=374111&r1=374110&r2=374111&view=diff
==============================================================================
--- llvm/trunk/test/Transforms/CorrelatedValuePropagation/sext.ll (original)
+++ llvm/trunk/test/Transforms/CorrelatedValuePropagation/sext.ll Tue Oct  8 13:29:36 2019
@@ -15,7 +15,7 @@ define void @test1(i32 %n) {
 ; CHECK-NEXT:    br label [[FOR_COND:%.*]]
 ; CHECK:       for.cond:
 ; CHECK-NEXT:    [[A:%.*]] = phi i32 [ [[N:%.*]], [[ENTRY:%.*]] ], [ [[EXT:%.*]], [[FOR_BODY:%.*]] ]
-; CHECK-NEXT:    [[CMP:%.*]] = icmp sgt i32 [[A]], 1
+; CHECK-NEXT:    [[CMP:%.*]] = icmp sgt i32 [[A]], -1
 ; CHECK-NEXT:    br i1 [[CMP]], label [[FOR_BODY]], label [[FOR_END:%.*]]
 ; CHECK:       for.body:
 ; CHECK-NEXT:    [[EXT_WIDE:%.*]] = sext i32 [[A]] to i64
@@ -30,7 +30,7 @@ entry:
 
 for.cond:                                         ; preds = %for.body, %entry
   %a = phi i32 [ %n, %entry ], [ %ext, %for.body ]
-  %cmp = icmp sgt i32 %a, 1
+  %cmp = icmp sgt i32 %a, -1
   br i1 %cmp, label %for.body, label %for.end
 
 for.body:                                         ; preds = %for.cond
@@ -43,7 +43,7 @@ for.end:
   ret void
 }
 
-;; Negative test to show transform doesn't happen unless n > 0.
+;; Negative test to show transform doesn't happen unless n >= 0.
 define void @test2(i32 %n) {
 ; CHECK-LABEL: @test2(
 ; CHECK-NEXT:  entry:
@@ -82,7 +82,7 @@ for.end:
 define void @test3(i32 %n) {
 ; CHECK-LABEL: @test3(
 ; CHECK-NEXT:  entry:
-; CHECK-NEXT:    [[CMP:%.*]] = icmp sgt i32 [[N:%.*]], 0
+; CHECK-NEXT:    [[CMP:%.*]] = icmp sgt i32 [[N:%.*]], -1
 ; CHECK-NEXT:    br i1 [[CMP]], label [[BB:%.*]], label [[EXIT:%.*]]
 ; CHECK:       bb:
 ; CHECK-NEXT:    [[EXT_WIDE:%.*]] = sext i32 [[N]] to i64
@@ -93,7 +93,35 @@ define void @test3(i32 %n) {
 ; CHECK-NEXT:    ret void
 ;
 entry:
-  %cmp = icmp sgt i32 %n, 0
+  %cmp = icmp sgt i32 %n, -1
+  br i1 %cmp, label %bb, label %exit
+
+bb:
+  %ext.wide = sext i32 %n to i64
+  call void @use64(i64 %ext.wide)
+  %ext = trunc i64 %ext.wide to i32
+  br label %exit
+
+exit:
+  ret void
+}
+
+;; Non looping negative test case.
+define void @test4(i32 %n) {
+; CHECK-LABEL: @test4(
+; CHECK-NEXT:  entry:
+; CHECK-NEXT:    [[CMP:%.*]] = icmp sgt i32 [[N:%.*]], -2
+; CHECK-NEXT:    br i1 [[CMP]], label [[BB:%.*]], label [[EXIT:%.*]]
+; CHECK:       bb:
+; CHECK-NEXT:    [[EXT_WIDE:%.*]] = sext i32 [[N]] to i64
+; CHECK-NEXT:    call void @use64(i64 [[EXT_WIDE]])
+; CHECK-NEXT:    [[EXT:%.*]] = trunc i64 [[EXT_WIDE]] to i32
+; CHECK-NEXT:    br label [[EXIT]]
+; CHECK:       exit:
+; CHECK-NEXT:    ret void
+;
+entry:
+  %cmp = icmp sgt i32 %n, -2
   br i1 %cmp, label %bb, label %exit
 
 bb:




More information about the llvm-commits mailing list