xref: /llvm-project/llvm/test/Transforms/IROutliner/illegal-allocas.ll (revision 9dd9575c55c74810675d5de40f56b37dd38fe3c3)
1; NOTE: Assertions have been autogenerated by utils/update_test_checks.py
2; RUN: opt -S -passes=verify,iroutliner  -ir-outlining-no-cost < %s | FileCheck %s
3
4; Show that we do not extract allocas, as outlining allocas may cause
5; inconsistencies with the CodeExtractor's algorithm.
6
7define void @function1() {
8; CHECK-LABEL: @function1(
9; CHECK-NEXT:  entry:
10; CHECK-NEXT:    [[A:%.*]] = alloca i32, align 4
11; CHECK-NEXT:    [[B:%.*]] = alloca i32, align 4
12; CHECK-NEXT:    [[C:%.*]] = alloca i32, align 4
13; CHECK-NEXT:    ret void
14;
15entry:
16  %a = alloca i32, align 4
17  %b = alloca i32, align 4
18  %c = alloca i32, align 4
19
20  ret void
21}
22
23define void @function2() {
24; CHECK-LABEL: @function2(
25; CHECK-NEXT:  entry:
26; CHECK-NEXT:    [[A:%.*]] = alloca i32, align 4
27; CHECK-NEXT:    [[B:%.*]] = alloca i32, align 4
28; CHECK-NEXT:    [[C:%.*]] = alloca i32, align 4
29; CHECK-NEXT:    ret void
30;
31entry:
32  %a = alloca i32, align 4
33  %b = alloca i32, align 4
34  %c = alloca i32, align 4
35  ret void
36}
37