[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