correct suffix matching to search for s/l/t suffixes on
[oota-llvm.git] / test / Transforms / SimplifyCFG / switch-simplify-crash.ll
index 096f2aeb813eadc74b71f2d4cc22da4dc8630c7b..bbc0bd78da7c86c43d66aa771422d29efeedf1c0 100644 (file)
-; RUN: llvm-upgrade < %s | llvm-as | opt -simplifycfg -disable-output
+; RUN: opt < %s -simplifycfg -disable-output
 
-
-void %NewExtractNames() {
+define void @NewExtractNames() {
 entry:
-       br bool false, label %endif.0, label %then.0
-
+       br i1 false, label %endif.0, label %then.0
 then.0:                ; preds = %entry
-       br bool false, label %shortcirc_next.i, label %shortcirc_done.i
-
+       br i1 false, label %shortcirc_next.i, label %shortcirc_done.i
 shortcirc_next.i:              ; preds = %then.0
        br label %shortcirc_done.i
-
 shortcirc_done.i:              ; preds = %shortcirc_next.i, %then.0
-       br bool false, label %then.0.i, label %else.0.i
-
+       br i1 false, label %then.0.i, label %else.0.i
 then.0.i:              ; preds = %shortcirc_done.i
        br label %NewBase.exit
-
 else.0.i:              ; preds = %shortcirc_done.i
-       br bool false, label %endif.0.i, label %else.1.i
-
+       br i1 false, label %endif.0.i, label %else.1.i
 else.1.i:              ; preds = %else.0.i
-       br bool false, label %endif.0.i, label %else.2.i
-
+       br i1 false, label %endif.0.i, label %else.2.i
 else.2.i:              ; preds = %else.1.i
        br label %NewBase.exit
-
 endif.0.i:             ; preds = %else.1.i, %else.0.i
        br label %NewBase.exit
-
 NewBase.exit:          ; preds = %endif.0.i, %else.2.i, %then.0.i
        br label %endif.0
-
 endif.0:               ; preds = %NewBase.exit, %entry
-       %tmp.32.mask = and uint 0, 31           ; <uint> [#uses=1]
-       switch uint %tmp.32.mask, label %label.9 [
-                uint 16, label %loopentry.2
-                uint 15, label %loopentry.2
-                uint 14, label %loopentry.2
-                uint 13, label %loopentry.2
-                uint 10, label %loopentry.2
-                uint 20, label %loopentry.1
-                uint 19, label %loopentry.1
-                uint 2, label %loopentry.0
-                uint 0, label %switchexit
+       %tmp.32.mask = and i32 0, 31            ; <i32> [#uses=1]
+       switch i32 %tmp.32.mask, label %label.9 [
+                i32 16, label %loopentry.2
+                i32 15, label %loopentry.2
+                i32 14, label %loopentry.2
+                i32 13, label %loopentry.2
+                i32 10, label %loopentry.2
+                i32 20, label %loopentry.1
+                i32 19, label %loopentry.1
+                i32 2, label %loopentry.0
+                i32 0, label %switchexit
        ]
-
 loopentry.0:           ; preds = %endif.1, %endif.0
-       br bool false, label %no_exit.0, label %switchexit
-
+       br i1 false, label %no_exit.0, label %switchexit
 no_exit.0:             ; preds = %loopentry.0
-       br bool false, label %then.1, label %else.1
-
+       br i1 false, label %then.1, label %else.1
 then.1:                ; preds = %no_exit.0
        br label %endif.1
-
 else.1:                ; preds = %no_exit.0
-       br bool false, label %shortcirc_next.0, label %shortcirc_done.0
-
+       br i1 false, label %shortcirc_next.0, label %shortcirc_done.0
 shortcirc_next.0:              ; preds = %else.1
        br label %shortcirc_done.0
-
 shortcirc_done.0:              ; preds = %shortcirc_next.0, %else.1
-       br bool false, label %then.2, label %endif.2
-
+       br i1 false, label %then.2, label %endif.2
 then.2:                ; preds = %shortcirc_done.0
        br label %endif.2
-
 endif.2:               ; preds = %then.2, %shortcirc_done.0
        br label %endif.1
-
 endif.1:               ; preds = %endif.2, %then.1
        br label %loopentry.0
-
 loopentry.1:           ; preds = %endif.3, %endif.0, %endif.0
-       br bool false, label %no_exit.1, label %switchexit
-
+       br i1 false, label %no_exit.1, label %switchexit
 no_exit.1:             ; preds = %loopentry.1
-       br bool false, label %then.3, label %else.2
-
+       br i1 false, label %then.3, label %else.2
 then.3:                ; preds = %no_exit.1
        br label %endif.3
-
 else.2:                ; preds = %no_exit.1
-       br bool false, label %shortcirc_next.1, label %shortcirc_done.1
-
+       br i1 false, label %shortcirc_next.1, label %shortcirc_done.1
 shortcirc_next.1:              ; preds = %else.2
        br label %shortcirc_done.1
-
 shortcirc_done.1:              ; preds = %shortcirc_next.1, %else.2
-       br bool false, label %then.4, label %endif.4
-
+       br i1 false, label %then.4, label %endif.4
 then.4:                ; preds = %shortcirc_done.1
        br label %endif.4
-
 endif.4:               ; preds = %then.4, %shortcirc_done.1
        br label %endif.3
-
 endif.3:               ; preds = %endif.4, %then.3
        br label %loopentry.1
-
 loopentry.2:           ; preds = %endif.5, %endif.0, %endif.0, %endif.0, %endif.0, %endif.0
-       %i.3 = phi int [ 0, %endif.5 ], [ 0, %endif.0 ], [ 0, %endif.0 ], [ 0, %endif.0 ], [ 0, %endif.0 ], [ 0, %endif.0 ]             ; <int> [#uses=1]
-       %tmp.158 = setlt int %i.3, 0            ; <bool> [#uses=1]
-       br bool %tmp.158, label %no_exit.2, label %switchexit
-
+       %i.3 = phi i32 [ 0, %endif.5 ], [ 0, %endif.0 ], [ 0, %endif.0 ], [ 0, %endif.0 ], [ 0, %endif.0 ], [ 0, %endif.0 ]             ; <i32> [#uses=1]
+       %tmp.158 = icmp slt i32 %i.3, 0         ; <i1> [#uses=1]
+       br i1 %tmp.158, label %no_exit.2, label %switchexit
 no_exit.2:             ; preds = %loopentry.2
-       br bool false, label %shortcirc_next.2, label %shortcirc_done.2
-
+       br i1 false, label %shortcirc_next.2, label %shortcirc_done.2
 shortcirc_next.2:              ; preds = %no_exit.2
        br label %shortcirc_done.2
-
 shortcirc_done.2:              ; preds = %shortcirc_next.2, %no_exit.2
-       br bool false, label %then.5, label %endif.5
-
+       br i1 false, label %then.5, label %endif.5
 then.5:                ; preds = %shortcirc_done.2
        br label %endif.5
-
 endif.5:               ; preds = %then.5, %shortcirc_done.2
        br label %loopentry.2
-
 label.9:               ; preds = %endif.0
-       br bool false, label %then.6, label %endif.6
-
+       br i1 false, label %then.6, label %endif.6
 then.6:                ; preds = %label.9
        br label %endif.6
-
 endif.6:               ; preds = %then.6, %label.9
-       store int 0, int* null
+       store i32 0, i32* null
        br label %switchexit
-
 switchexit:            ; preds = %endif.6, %loopentry.2, %loopentry.1, %loopentry.0, %endif.0
-       br bool false, label %endif.7, label %then.7
-
+       br i1 false, label %endif.7, label %then.7
 then.7:                ; preds = %switchexit
-       br bool false, label %shortcirc_next.3, label %shortcirc_done.3
-
+       br i1 false, label %shortcirc_next.3, label %shortcirc_done.3
 shortcirc_next.3:              ; preds = %then.7
        br label %shortcirc_done.3
-
 shortcirc_done.3:              ; preds = %shortcirc_next.3, %then.7
-       br bool false, label %then.8, label %endif.8
-
+       br i1 false, label %then.8, label %endif.8
 then.8:                ; preds = %shortcirc_done.3
        br label %endif.8
-
 endif.8:               ; preds = %then.8, %shortcirc_done.3
        br label %endif.7
-
 endif.7:               ; preds = %endif.8, %switchexit
        ret void
 }