1 ; RUN: llc -mtriple i386-unknown-freebsd10.0 --relocation-model=pic %s -o -
5 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:32:32-n8:16:32-S128"
6 target triple = "i386-unknown-freebsd10.0"
8 @state = internal unnamed_addr global i32 0, align 4
10 ; Function Attrs: nounwind sspreq
11 define void @set_state(i32 %s) #0 {
13 store i32 %s, i32* @state, align 4
17 ; Function Attrs: nounwind sspreq
18 define void @zero_char(i8* nocapture %p) #0 {
20 store i8 0, i8* %p, align 1
21 tail call void @g(i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0) #2
25 declare void @g(i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32) #1
27 ; Function Attrs: nounwind sspreq
28 define void @do_something(i32 %i) #0 {
30 %data = alloca [8 x i8], align 1
31 %0 = load i32, i32* @state, align 4
32 %cmp = icmp eq i32 %0, 0
33 br i1 %cmp, label %if.then, label %if.else
35 if.then: ; preds = %entry
36 tail call fastcc void @send_int(i32 0)
39 if.else: ; preds = %entry
40 tail call fastcc void @send_int(i32 %i)
41 %arrayidx = getelementptr inbounds [8 x i8], [8 x i8]* %data, i32 0, i32 0
42 call void @zero_char(i8* %arrayidx)
45 if.end: ; preds = %if.else, %if.then
49 ; Function Attrs: nounwind sspreq
50 define internal fastcc void @send_int(i32 %p) #0 {
52 tail call void @f(i32 %p) #2
53 tail call void @g(i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0) #2
57 declare void @f(i32) #1
59 attributes #0 = { nounwind sspreq "less-precise-fpmad"="false" "no-frame-pointer-elim"="true" "no-frame-pointer-elim-non-leaf" "no-infs-fp-math"="false" "no-nans-fp-math"="false" "stack-protector-buffer-size"="8" "unsafe-fp-math"="false" "use-soft-float"="false" }
60 attributes #1 = { "less-precise-fpmad"="false" "no-frame-pointer-elim"="true" "no-frame-pointer-elim-non-leaf" "no-infs-fp-math"="false" "no-nans-fp-math"="false" "stack-protector-buffer-size"="8" "unsafe-fp-math"="false" "use-soft-float"="false" }
61 attributes #2 = { nounwind }