[llvm] r360690 - [Test] Autogen a test for ease of later changing
Philip Reames via llvm-commits
llvm-commits at lists.llvm.org
Tue May 14 09:37:29 PDT 2019
Author: reames
Date: Tue May 14 09:37:29 2019
New Revision: 360690
URL: http://llvm.org/viewvc/llvm-project?rev=360690&view=rev
Log:
[Test] Autogen a test for ease of later changing
Modified:
llvm/trunk/test/Transforms/IndVarSimplify/rewrite-loop-exit-value.ll
Modified: llvm/trunk/test/Transforms/IndVarSimplify/rewrite-loop-exit-value.ll
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/Transforms/IndVarSimplify/rewrite-loop-exit-value.ll?rev=360690&r1=360689&r2=360690&view=diff
==============================================================================
--- llvm/trunk/test/Transforms/IndVarSimplify/rewrite-loop-exit-value.ll (original)
+++ llvm/trunk/test/Transforms/IndVarSimplify/rewrite-loop-exit-value.ll Tue May 14 09:37:29 2019
@@ -1,63 +1,96 @@
+; NOTE: Assertions have been autogenerated by utils/update_test_checks.py
; RUN: opt -indvars -instcombine -S < %s | FileCheck %s
;; Test that loop's exit value is rewritten to its initial
;; value from loop preheader
define i32 @test1(i32* %var) {
-; CHECK-LABEL: @test1
+; CHECK-LABEL: @test1(
+; CHECK-NEXT: entry:
+; CHECK-NEXT: [[COND:%.*]] = icmp eq i32* [[VAR:%.*]], null
+; CHECK-NEXT: br label [[HEADER:%.*]]
+; CHECK: header:
+; CHECK-NEXT: br i1 [[COND]], label [[LOOP:%.*]], label [[EXIT:%.*]]
+; CHECK: loop:
+; CHECK-NEXT: br label [[HEADER]]
+; CHECK: exit:
+; CHECK-NEXT: ret i32 0
+;
entry:
- %cond = icmp eq i32* %var, null
- br label %header
+ %cond = icmp eq i32* %var, null
+ br label %header
header:
- %phi_indvar = phi i32 [0, %entry], [%indvar, %loop]
- br i1 %cond, label %loop, label %exit
+ %phi_indvar = phi i32 [0, %entry], [%indvar, %loop]
+ br i1 %cond, label %loop, label %exit
loop:
- %indvar = add i32 %phi_indvar, 1
- br label %header
+ %indvar = add i32 %phi_indvar, 1
+ br label %header
exit:
-; CHECK: ret i32 0
- ret i32 %phi_indvar
+ ret i32 %phi_indvar
}
;; Test that we can not rewrite loop exit value if it's not
;; a phi node (%indvar is an add instruction in this test).
define i32 @test2(i32* %var) {
-; CHECK-LABEL: @test2
+; CHECK-LABEL: @test2(
+; CHECK-NEXT: entry:
+; CHECK-NEXT: [[COND:%.*]] = icmp eq i32* [[VAR:%.*]], null
+; CHECK-NEXT: br label [[HEADER:%.*]]
+; CHECK: header:
+; CHECK-NEXT: [[PHI_INDVAR:%.*]] = phi i32 [ 0, [[ENTRY:%.*]] ], [ [[INDVAR:%.*]], [[HEADER]] ]
+; CHECK-NEXT: [[INDVAR]] = add i32 [[PHI_INDVAR]], 1
+; CHECK-NEXT: br i1 [[COND]], label [[HEADER]], label [[EXIT:%.*]]
+; CHECK: exit:
+; CHECK-NEXT: ret i32 [[INDVAR]]
+;
entry:
- %cond = icmp eq i32* %var, null
- br label %header
+ %cond = icmp eq i32* %var, null
+ br label %header
header:
- %phi_indvar = phi i32 [0, %entry], [%indvar, %header]
- %indvar = add i32 %phi_indvar, 1
- br i1 %cond, label %header, label %exit
+ %phi_indvar = phi i32 [0, %entry], [%indvar, %header]
+ %indvar = add i32 %phi_indvar, 1
+ br i1 %cond, label %header, label %exit
exit:
-; CHECK: ret i32 %indvar
- ret i32 %indvar
+ ret i32 %indvar
}
;; Test that we can not rewrite loop exit value if the condition
;; is not in loop header.
define i32 @test3(i32* %var) {
-; CHECK-LABEL: @test3
+; CHECK-LABEL: @test3(
+; CHECK-NEXT: entry:
+; CHECK-NEXT: [[COND1:%.*]] = icmp eq i32* [[VAR:%.*]], null
+; CHECK-NEXT: br label [[HEADER:%.*]]
+; CHECK: header:
+; CHECK-NEXT: [[PHI_INDVAR:%.*]] = phi i32 [ 0, [[ENTRY:%.*]] ], [ [[INDVAR:%.*]], [[HEADER_BACKEDGE:%.*]] ]
+; CHECK-NEXT: [[INDVAR]] = add i32 [[PHI_INDVAR]], 1
+; CHECK-NEXT: [[COND2:%.*]] = icmp eq i32 [[INDVAR]], 10
+; CHECK-NEXT: br i1 [[COND2]], label [[HEADER_BACKEDGE]], label [[BODY:%.*]]
+; CHECK: header.backedge:
+; CHECK-NEXT: br label [[HEADER]]
+; CHECK: body:
+; CHECK-NEXT: br i1 [[COND1]], label [[HEADER_BACKEDGE]], label [[EXIT:%.*]]
+; CHECK: exit:
+; CHECK-NEXT: ret i32 [[PHI_INDVAR]]
+;
entry:
- %cond1 = icmp eq i32* %var, null
- br label %header
+ %cond1 = icmp eq i32* %var, null
+ br label %header
header:
- %phi_indvar = phi i32 [0, %entry], [%indvar, %header], [%indvar, %body]
- %indvar = add i32 %phi_indvar, 1
- %cond2 = icmp eq i32 %indvar, 10
- br i1 %cond2, label %header, label %body
-
+ %phi_indvar = phi i32 [0, %entry], [%indvar, %header], [%indvar, %body]
+ %indvar = add i32 %phi_indvar, 1
+ %cond2 = icmp eq i32 %indvar, 10
+ br i1 %cond2, label %header, label %body
+
body:
- br i1 %cond1, label %header, label %exit
+ br i1 %cond1, label %header, label %exit
exit:
-; CHECK: ret i32 %phi_indvar
- ret i32 %phi_indvar
+ ret i32 %phi_indvar
}
More information about the llvm-commits
mailing list