1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
|
; RUN: llvm-as < %s | llc -mcpu=i686 | grep jmp | wc -l | grep 1
; check that branch folding understands FP_REG_KILL is not a branch
; the remaining jmp can be removed if we take advantage of knowing
; abort does not return
; ModuleID = 'g.bc'
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"
target triple = "i686-pc-linux-gnu"
%struct.FRAME.c34003a = type { float, float }
@report_E = global i8 0 ; <i8*> [#uses=0]
define void @main() {
entry:
%FRAME.31 = alloca %struct.FRAME.c34003a, align 8 ; <%struct.FRAME.c34003a*> [#uses=4]
%tmp20 = call i32 @report__ident_int( i32 -50 ) ; <i32> [#uses=1]
%tmp2021 = sitofp i32 %tmp20 to float ; <float> [#uses=5]
%tmp23 = fcmp ult float %tmp2021, 0xC7EFFFFFE0000000 ; <i1> [#uses=1]
%tmp26 = fcmp ugt float %tmp2021, 0x47EFFFFFE0000000 ; <i1> [#uses=1]
%bothcond = or i1 %tmp23, %tmp26 ; <i1> [#uses=1]
br i1 %bothcond, label %bb, label %bb30
bb: ; preds = %entry
unwind
bb30: ; preds = %entry
%tmp35 = call i32 @report__ident_int( i32 50 ) ; <i32> [#uses=1]
%tmp3536 = sitofp i32 %tmp35 to float ; <float> [#uses=4]
%tmp38 = fcmp ult float %tmp3536, 0xC7EFFFFFE0000000 ; <i1> [#uses=1]
%tmp44 = fcmp ugt float %tmp3536, 0x47EFFFFFE0000000 ; <i1> [#uses=1]
%bothcond226 = or i1 %tmp38, %tmp44 ; <i1> [#uses=1]
br i1 %bothcond226, label %bb47, label %bb49
bb47: ; preds = %bb30
unwind
bb49: ; preds = %bb30
%tmp60 = fcmp ult float %tmp3536, %tmp2021 ; <i1> [#uses=1]
%tmp60.not = xor i1 %tmp60, true ; <i1> [#uses=1]
%tmp65 = fcmp olt float %tmp2021, 0xC7EFFFFFE0000000 ; <i1> [#uses=1]
%bothcond227 = and i1 %tmp65, %tmp60.not ; <i1> [#uses=1]
br i1 %bothcond227, label %cond_true68, label %cond_next70
cond_true68: ; preds = %bb49
unwind
cond_next70: ; preds = %bb49
%tmp71 = call i32 @report__ident_int( i32 -30 ) ; <i32> [#uses=1]
%tmp7172 = sitofp i32 %tmp71 to float ; <float> [#uses=3]
%tmp74 = fcmp ult float %tmp7172, 0xC7EFFFFFE0000000 ; <i1> [#uses=1]
%tmp80 = fcmp ugt float %tmp7172, 0x47EFFFFFE0000000 ; <i1> [#uses=1]
%bothcond228 = or i1 %tmp74, %tmp80 ; <i1> [#uses=1]
br i1 %bothcond228, label %bb83, label %bb85
bb83: ; preds = %cond_next70
unwind
bb85: ; preds = %cond_next70
%tmp90 = getelementptr %struct.FRAME.c34003a* %FRAME.31, i32 0, i32 1 ; <float*> [#uses=3]
store float %tmp7172, float* %tmp90
%tmp92 = call i32 @report__ident_int( i32 30 ) ; <i32> [#uses=1]
%tmp9293 = sitofp i32 %tmp92 to float ; <float> [#uses=7]
%tmp95 = fcmp ult float %tmp9293, 0xC7EFFFFFE0000000 ; <i1> [#uses=1]
%tmp101 = fcmp ugt float %tmp9293, 0x47EFFFFFE0000000 ; <i1> [#uses=1]
%bothcond229 = or i1 %tmp95, %tmp101 ; <i1> [#uses=1]
br i1 %bothcond229, label %bb104, label %bb106
bb104: ; preds = %bb85
unwind
bb106: ; preds = %bb85
%tmp111 = getelementptr %struct.FRAME.c34003a* %FRAME.31, i32 0, i32 0 ; <float*> [#uses=2]
store float %tmp9293, float* %tmp111
%tmp123 = load float* %tmp90 ; <float> [#uses=4]
%tmp125 = fcmp ult float %tmp9293, %tmp123 ; <i1> [#uses=1]
br i1 %tmp125, label %cond_next147, label %cond_true128
cond_true128: ; preds = %bb106
%tmp133 = fcmp olt float %tmp123, %tmp2021 ; <i1> [#uses=1]
%tmp142 = fcmp ogt float %tmp9293, %tmp3536 ; <i1> [#uses=1]
%bothcond230 = or i1 %tmp133, %tmp142 ; <i1> [#uses=1]
br i1 %bothcond230, label %bb145, label %cond_next147
bb145: ; preds = %cond_true128
unwind
cond_next147: ; preds = %cond_true128, %bb106
%tmp157 = fcmp ugt float %tmp123, -3.000000e+01 ; <i1> [#uses=1]
%tmp165 = fcmp ult float %tmp9293, -3.000000e+01 ; <i1> [#uses=1]
%bothcond231 = or i1 %tmp157, %tmp165 ; <i1> [#uses=1]
br i1 %bothcond231, label %bb168, label %bb169
bb168: ; preds = %cond_next147
unwind
bb169: ; preds = %cond_next147
%tmp176 = fcmp ugt float %tmp123, 3.000000e+01 ; <i1> [#uses=1]
%tmp184 = fcmp ult float %tmp9293, 3.000000e+01 ; <i1> [#uses=1]
%bothcond232 = or i1 %tmp176, %tmp184 ; <i1> [#uses=1]
br i1 %bothcond232, label %bb187, label %bb188
bb187: ; preds = %bb169
unwind
bb188: ; preds = %bb169
%tmp192 = call fastcc float @c34003a__ident.154( %struct.FRAME.c34003a* %FRAME.31, float 3.000000e+01 ) ; <float> [#uses=2]
%tmp194 = load float* %tmp90 ; <float> [#uses=1]
%tmp196 = fcmp ugt float %tmp194, 0.000000e+00 ; <i1> [#uses=1]
br i1 %tmp196, label %bb207, label %cond_next200
cond_next200: ; preds = %bb188
%tmp202 = load float* %tmp111 ; <float> [#uses=1]
%tmp204 = fcmp ult float %tmp202, 0.000000e+00 ; <i1> [#uses=1]
br i1 %tmp204, label %bb207, label %bb208
bb207: ; preds = %cond_next200, %bb188
unwind
bb208: ; preds = %cond_next200
%tmp212 = call fastcc float @c34003a__ident.154( %struct.FRAME.c34003a* %FRAME.31, float 0.000000e+00 ) ; <float> [#uses=1]
%tmp214 = fcmp oge float %tmp212, %tmp192 ; <i1> [#uses=1]
%tmp217 = fcmp oge float %tmp192, 1.000000e+02 ; <i1> [#uses=1]
%tmp221 = or i1 %tmp214, %tmp217 ; <i1> [#uses=1]
br i1 %tmp221, label %cond_true224, label %UnifiedReturnBlock
cond_true224: ; preds = %bb208
call void @abort( ) noreturn
ret void
UnifiedReturnBlock: ; preds = %bb208
ret void
}
declare fastcc float @c34003a__ident.154(%struct.FRAME.c34003a* %CHAIN.32, float %x)
declare i32 @report__ident_int(i32 %x)
declare void @abort() noreturn
|