add test to show suboptimal load merging behavior
[oota-llvm.git] / test / CodeGen / X86 / code_placement_eh.ll
1 ; RUN: llc < %s
2
3 ; CodePlacementOpt shouldn't try to modify this loop because
4 ; it involves EH edges.
5
6 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-n8:16:32"
7 target triple = "i386-apple-darwin10.0"
8
9 define void @foo() personality i32 (...)* @__gxx_personality_v0 {
10 invcont5:
11   br label %bb15
12
13 .noexc3:                                          ; preds = %bb15
14   br i1 undef, label %bb18.i5.i, label %bb15
15
16 .noexc6.i.i:                                      ; preds = %bb18.i5.i
17   %tmp2021 = invoke float @cosf(float 0.000000e+00) readonly
18           to label %bb18.i5.i unwind label %lpad.i.i ; <float> [#uses=0]
19
20 bb18.i5.i:                                        ; preds = %.noexc6.i.i, %bb51.i
21   %tmp2019 = invoke float @sinf(float 0.000000e+00) readonly
22           to label %.noexc6.i.i unwind label %lpad.i.i ; <float> [#uses=0]
23
24 lpad.i.i:                                         ; preds = %bb18.i5.i, %.noexc6.i.i
25   %lpadval.i.i = landingpad { i8*, i32 }
26           catch i8* null
27   unreachable
28
29 lpad59.i:                                         ; preds = %bb15
30   %lpadval60.i.i = landingpad { i8*, i32 }
31           catch i8* null
32   unreachable
33
34 bb15:                                             ; preds = %.noexc3, %invcont5
35   invoke fastcc void @_ZN28btHashedOverlappingPairCacheC2Ev()
36           to label %.noexc3 unwind label %lpad59.i
37 }
38
39 declare i32 @__gxx_personality_v0(...)
40
41 declare float @sinf(float) readonly
42
43 declare float @cosf(float) readonly
44
45 declare fastcc void @_ZN28btHashedOverlappingPairCacheC2Ev() align 2