1; This test ensures that alloca instructions in the entry block for an inlined
2; function are moved to the top of the function they are inlined into.
3;
4; RUN: opt -S -inline < %s | FileCheck %s
5
6define i32 @func(i32 %i) {
7        %X = alloca i32         ; <i32*> [#uses=1]
8        store i32 %i, i32* %X
9        ret i32 %i
10}
11
12declare void @bar()
13
14define i32 @main(i32 %argc) {
15Entry:
16; CHECK: Entry
17; CHECK-NEXT: alloca
18        call void @bar( )
19        %X = call i32 @func( i32 7 )            ; <i32> [#uses=1]
20        %Y = add i32 %X, %argc          ; <i32> [#uses=1]
21        ret i32 %Y
22}
23
24