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