xref: /llvm-project/llvm/test/CodeGen/Xtensa/dynamic-alloc.ll (revision 78f5d9cdbad2ad6c9857e0ceed99c7c3a40d16d2)
1; RUN: llc -mtriple=xtensa -disable-block-placement -verify-machineinstrs < %s \
2; RUN:   | FileCheck %s
3
4define ptr @test_simple_alloca(i32 %numelts) {
5; CHECK-LABEL: test_simple_alloca
6; CHECK:       addi  a8, a1, -16
7; CHECK:       or  a1, a8, a8
8; CHECK:       s32i  a15, a1, 0
9; CHECK:       or a15, a1, a1
10; CHECK:       addi  a8, a2, 3
11; CHECK-NEXT:  movi  a9, -4
12; CHECK-NEXT:  and  a8, a8, a9
13; CHECK-NEXT:  addi  a8, a8, 31
14; CHECK-NEXT:  movi  a9, -32
15; CHECK-NEXT:  and  a8, a8, a9
16; CHECK-NEXT:  sub  a1, a1, a8
17; CHECK-NEXT:  or  a2, a1, a1
18; CHECK-NEXT:  or  a1, a15, a15
19; CHECK-NEXT:  l32i  a15, a1, 0
20; CHECK-NEXT:  addi  a8, a1, 16
21; CHECK-NEXT:  or  a1, a8, a8
22; CHECK-NEXT:  ret
23
24  %addr = alloca i8, i32 %numelts
25  ret ptr %addr
26}
27