[llvm] r263668 - use FileCheck for tighter checking
Sanjay Patel via llvm-commits
llvm-commits at lists.llvm.org
Wed Mar 16 15:34:57 PDT 2016
Author: spatel
Date: Wed Mar 16 17:34:57 2016
New Revision: 263668
URL: http://llvm.org/viewvc/llvm-project?rev=263668&view=rev
Log:
use FileCheck for tighter checking
I'm testing out a script that auto-generates the check lines.
It's 98% copied from utils/update_llc_test_checks.py.
If others think this is useful, please let me know.
Modified:
llvm/trunk/test/Transforms/SimplifyCFG/switch_thread.ll
Modified: llvm/trunk/test/Transforms/SimplifyCFG/switch_thread.ll
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/Transforms/SimplifyCFG/switch_thread.ll?rev=263668&r1=263667&r2=263668&view=diff
==============================================================================
--- llvm/trunk/test/Transforms/SimplifyCFG/switch_thread.ll (original)
+++ llvm/trunk/test/Transforms/SimplifyCFG/switch_thread.ll Wed Mar 16 17:34:57 2016
@@ -1,5 +1,4 @@
-; RUN: opt < %s -simplifycfg -S | \
-; RUN: not grep "call void @DEAD"
+; RUN: opt < %s -simplifycfg -S | FileCheck %s
; Test that we can thread a simple known condition through switch statements.
@@ -45,6 +44,21 @@ B: ; preds = %T
C: ; preds = %B, %A, %A2, %T, %T
call void @DEAD( )
ret void
+
+; CHECK-LABEL: @test1(
+; CHECK-NEXT: switch i32 %V, label %A [
+; CHECK-NEXT: i32 4, label %T
+; CHECK-NEXT: i32 17, label %Done
+; CHECK-NEXT: ]
+; CHECK: T: ; preds = %0
+; CHECK-NEXT: call void @foo1()
+; CHECK-NEXT: call void @foo2()
+; CHECK-NEXT: br label %Done
+; CHECK: A: ; preds = %0
+; CHECK-NEXT: call void @foo1()
+; CHECK-NEXT: br label %Done
+; CHECK: Done: ; preds = %T, %A, %0
+; CHECK-NEXT: ret void
}
define void @test2(i32 %V) {
@@ -75,5 +89,25 @@ D: ; preds = %A, %0
ret void
E: ; preds = %A, %0
ret void
+
+; CHECK-LABEL: @test2(
+; CHECK-NEXT: switch i32 %V, label %A [
+; CHECK-NEXT: i32 4, label %T
+; CHECK-NEXT: i32 17, label %D
+; CHECK-NEXT: i32 1234, label %E
+; CHECK-NEXT: ]
+; CHECK: A: ; preds = %0
+; CHECK-NEXT: call void @foo1()
+; CHECK-NEXT: [[COND:%.*]] = icmp eq i32 %V, 42
+; CHECK-NEXT: br i1 [[COND]], label %D, label %E
+; CHECK: T: ; preds = %0
+; CHECK-NEXT: call void @foo1()
+; CHECK-NEXT: call void @foo1()
+; CHECK-NEXT: ret void
+; CHECK: D: ; preds = %A, %0
+; CHECK-NEXT: call void @foo1()
+; CHECK-NEXT: ret void
+; CHECK: E: ; preds = %A, %0
+; CHECK-NEXT: ret void
}
More information about the llvm-commits
mailing list