Fix a DAG combine bug visitBRCOND() is transforming br(xor(x, y)) to br(x != y).
[oota-llvm.git] / test / CodeGen / X86 / 2013-01-09-DAGCombineBug.ll
1 ; RUN: llc -mtriple=x86_64-apple-macosx10.5.0 < %s
2
3 ; rdar://12968664
4
5 define void @t() nounwind uwtable ssp {
6   br label %4
7
8 ; <label>:1                                       ; preds = %4, %2
9   ret void
10
11 ; <label>:2                                       ; preds = %6, %5, %3, %2
12   switch i32 undef, label %2 [
13     i32 1090573978, label %1
14     i32 1090573938, label %3
15     i32 1090573957, label %5
16   ]
17
18 ; <label>:3                                       ; preds = %4, %2
19   br i1 undef, label %2, label %4
20
21 ; <label>:4                                       ; preds = %6, %5, %3, %0
22   switch i32 undef, label %11 [
23     i32 1090573938, label %3
24     i32 1090573957, label %5
25     i32 1090573978, label %1
26     i32 165205179, label %6
27   ]
28
29 ; <label>:5                                       ; preds = %4, %2
30   br i1 undef, label %2, label %4
31
32 ; <label>:6                                       ; preds = %4
33   %7 = icmp eq i32 undef, 590901838
34   %8 = or i1 false, %7
35   %9 = or i1 true, %8
36   %10 = xor i1 %8, %9
37   br i1 %10, label %4, label %2
38
39 ; <label>:11                                      ; preds = %11, %4
40   br label %11
41 }