[RISCV] Add shrinkwrap test cases showing gaps in current impl
[llvm-project.git] / llvm / test / CodeGen / X86 / stack-protector-vreg-to-vreg-copy.ll
blob63390e46daadefecc4cc2d2ab58847f427578857
1 ; RUN: llc -mtriple i386-unknown-freebsd10.0 --relocation-model=pic %s -o -
3 ; PR16979
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 {
12 entry:
13   store i32 %s, ptr @state, align 4
14   ret void
17 ; Function Attrs: nounwind sspreq
18 define void @zero_char(ptr nocapture %p) #0 {
19 entry:
20   store i8 0, ptr %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
22   ret void
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 {
29 entry:
30   %data = alloca [8 x i8], align 1
31   %0 = load i32, ptr @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)
37   br label %if.end
39 if.else:                                          ; preds = %entry
40   tail call fastcc void @send_int(i32 %i)
41   call void @zero_char(ptr %data)
42   br label %if.end
44 if.end:                                           ; preds = %if.else, %if.then
45   ret void
48 ; Function Attrs: nounwind sspreq
49 define internal fastcc void @send_int(i32 %p) #0 {
50 entry:
51   tail call void @f(i32 %p) #2
52   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
53   ret void
56 declare void @f(i32) #1
58 attributes #0 = { nounwind sspreq "less-precise-fpmad"="false" "frame-pointer"="all" "no-infs-fp-math"="false" "no-nans-fp-math"="false" "stack-protector-buffer-size"="8" "unsafe-fp-math"="false" "use-soft-float"="false" }
59 attributes #1 = { "less-precise-fpmad"="false" "frame-pointer"="all" "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 #2 = { nounwind }