As Dan pointed out, movzbl, movsbl, and friends are nicer than their alias
[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() {
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   %eh_ptr.i.i = call i8* @llvm.eh.exception()     ; <i8*> [#uses=1]
26   unreachable
27
28 lpad59.i:                                         ; preds = %bb15
29   %eh_ptr60.i = call i8* @llvm.eh.exception()     ; <i8*> [#uses=1]
30   unreachable
31
32 bb15:                                             ; preds = %.noexc3, %invcont5
33   invoke fastcc void @_ZN28btHashedOverlappingPairCacheC2Ev()
34           to label %.noexc3 unwind label %lpad59.i
35 }
36
37 declare i8* @llvm.eh.exception() nounwind readonly
38
39 declare i32 @llvm.eh.selector(i8*, i8*, ...) nounwind
40
41 declare float @sinf(float) readonly
42
43 declare float @cosf(float) readonly
44
45 declare fastcc void @_ZN28btHashedOverlappingPairCacheC2Ev() align 2