In some rare cases, the register allocator can spill registers but end up not utilizi...
[llvm/msp430.git] / test / CodeGen / X86 / 2006-11-17-IllegalMove.ll
blobf0067c7e489ce1447955df7235cd4a8ec239c044
1 ; RUN: llvm-as < %s | llc -march=x86-64 > %t
2 ; RUN: grep movb %t | count 2
3 ; RUN: grep {movzb\[wl\]} %t
6 define void @handle_vector_size_attribute() {
7 entry:
8         %tmp69 = load i32* null         ; <i32> [#uses=1]
9         switch i32 %tmp69, label %bb84 [
10                  i32 2, label %bb77
11                  i32 1, label %bb77
12         ]
14 bb77:           ; preds = %entry, %entry
15         %tmp99 = udiv i64 0, 0          ; <i64> [#uses=1]
16         %tmp = load i8* null            ; <i8> [#uses=1]
17         %tmp114 = icmp eq i64 0, 0              ; <i1> [#uses=1]
18         br i1 %tmp114, label %cond_true115, label %cond_next136
20 bb84:           ; preds = %entry
21         ret void
23 cond_true115:           ; preds = %bb77
24         %tmp118 = load i8* null         ; <i8> [#uses=1]
25         br i1 false, label %cond_next129, label %cond_true120
27 cond_true120:           ; preds = %cond_true115
28         %tmp127 = udiv i8 %tmp, %tmp118         ; <i8> [#uses=1]
29         %tmp127.upgrd.1 = zext i8 %tmp127 to i64                ; <i64> [#uses=1]
30         br label %cond_next129
32 cond_next129:           ; preds = %cond_true120, %cond_true115
33         %iftmp.30.0 = phi i64 [ %tmp127.upgrd.1, %cond_true120 ], [ 0, %cond_true115 ]          ; <i64> [#uses=1]
34         %tmp132 = icmp eq i64 %iftmp.30.0, %tmp99               ; <i1> [#uses=1]
35         br i1 %tmp132, label %cond_false148, label %cond_next136
37 cond_next136:           ; preds = %cond_next129, %bb77
38         ret void
40 cond_false148:          ; preds = %cond_next129
41         ret void