If SSE2 is available, x86 should pass first 3 f32/f64 arguments in XMM registers...
[oota-llvm.git] / test / CodeGen / X86 / xorl.ll
1 ; RUN: llvm-as < %s | llc -march=x86 | grep xorl | count 1
2
3 target datalayout = "e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-f32:32:32-f64:32:64-v64:64:64-v128:128:128-a0:0:64-f80:128:128"
4 target triple = "i386-apple-darwin9"
5         %struct.block_symbol = type { [3 x %struct.cgraph_rtl_info], %struct.object_block*, i64 }
6         %struct.rtx_def = type <{ i16, i8, i8, %struct.u }>
7         %struct.u = type { %struct.block_symbol }
8         %struct.cgraph_rtl_info = type { i32 }
9         %struct.object_block = type { %struct.section*, i32, i64, %struct.VEC_rtx_gc*, %struct.VEC_rtx_gc* }
10         %struct.section = type { %struct.unnamed_section }
11         %struct.VEC_rtx_base = type { i32, i32, [1 x %struct.rtx_def*] }
12         %struct.VEC_rtx_gc = type { %struct.VEC_rtx_base }
13         %struct.tree_common = type <{ %struct.tree_node*, %struct.tree_node*, %union.tree_ann_d*, i8, i8, i8, i8, i8, [3 x i8] }>
14         %struct.tree_complex = type { %struct.tree_common, %struct.tree_node*, %struct.tree_node* }
15         %struct.tree_node = type { %struct.tree_complex, [116 x i8] }
16         %struct.unnamed_section = type { %struct.cgraph_rtl_info, void (i8*)*, i8*, %struct.section* }
17         %union.tree_ann_d = type opaque
18
19 define %struct.rtx_def* @expand_call() nounwind  {
20 entry:
21         br i1 false, label %bb216, label %bb171
22 bb171:          ; preds = %entry
23         ret %struct.rtx_def* null
24 bb216:          ; preds = %entry
25         br i1 false, label %bb336, label %bb222
26 bb222:          ; preds = %bb216
27         ret %struct.rtx_def* null
28 bb336:          ; preds = %bb216
29         br i1 false, label %bb429, label %bb417
30 bb417:          ; preds = %bb336
31         ret %struct.rtx_def* null
32 bb429:          ; preds = %bb336
33         br i1 false, label %bb713, label %bb493
34 bb493:          ; preds = %bb429
35         ret %struct.rtx_def* null
36 bb713:          ; preds = %bb429
37         br i1 false, label %bb810, label %bb797
38 bb797:          ; preds = %bb713
39         ret %struct.rtx_def* null
40 bb810:          ; preds = %bb713
41         br i1 false, label %bb822, label %bb815
42 bb815:          ; preds = %bb810
43         ret %struct.rtx_def* null
44 bb822:          ; preds = %bb810
45         br label %bb1652.preheader
46 bb919:          ; preds = %bb1652.preheader
47         ret %struct.rtx_def* null
48 bb1657:         ; preds = %bb1652.preheader
49         br i1 false, label %bb1666, label %bb1652.preheader
50 bb1652.preheader:               ; preds = %bb1657, %bb822
51         br i1 false, label %bb1657, label %bb919
52 bb1666:         ; preds = %bb1657
53         br i1 false, label %bb1815.preheader, label %bb1870
54 bb1815.preheader:               ; preds = %bb1666
55         br i1 false, label %bb1693, label %bb1828
56 bb1693:         ; preds = %bb1815.preheader
57         br i1 false, label %bb1718, label %bb1703
58 bb1703:         ; preds = %bb1693
59         ret %struct.rtx_def* null
60 bb1718:         ; preds = %bb1693
61         br i1 false, label %bb1741, label %bb1828
62 bb1741:         ; preds = %bb1718
63         switch i8 0, label %bb1775 [
64                  i8 54, label %bb1798
65                  i8 58, label %bb1798
66                  i8 55, label %bb1798
67         ]
68 bb1775:         ; preds = %bb1741
69         ret %struct.rtx_def* null
70 bb1798:         ; preds = %bb1741, %bb1741, %bb1741
71         %tmp1811 = add i32 0, 0         ; <i32> [#uses=1]
72         br label %bb1828
73 bb1828:         ; preds = %bb1798, %bb1718, %bb1815.preheader
74         %copy_to_evaluate_size.1.lcssa = phi i32 [ 0, %bb1815.preheader ], [ %tmp1811, %bb1798 ], [ 0, %bb1718 ]                ; <i32> [#uses=1]
75         %tmp1830 = shl i32 %copy_to_evaluate_size.1.lcssa, 1            ; <i32> [#uses=1]
76         %tmp18301831 = sext i32 %tmp1830 to i64         ; <i64> [#uses=1]
77         %tmp1835 = icmp slt i64 %tmp18301831, 0         ; <i1> [#uses=1]
78         %tmp1835.not = xor i1 %tmp1835, true            ; <i1> [#uses=1]
79         %bothcond6193 = and i1 %tmp1835.not, false              ; <i1> [#uses=1]
80         br i1 %bothcond6193, label %bb1845, label %bb1870
81 bb1845:         ; preds = %bb1828
82         ret %struct.rtx_def* null
83 bb1870:         ; preds = %bb1828, %bb1666
84         ret %struct.rtx_def* null
85 }