xref: /llvm-project/llvm/test/CodeGen/M68k/Alloc/dyn_alloca_aligned.ll (revision cd0d11be7a6de335dcfcf2788a97d915f017e25e)
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py
2; RUN: llc < %s -mtriple=m68k -verify-machineinstrs | FileCheck %s
3define i32 @A(i32 %Size) {
4; CHECK-LABEL: A:
5; CHECK:         .cfi_startproc
6; CHECK-NEXT:  ; %bb.0:
7; CHECK-NEXT:    link.w %a6, #-128
8; CHECK-NEXT:    .cfi_def_cfa_offset -8
9; CHECK-NEXT:    .cfi_offset %a6, -8
10; CHECK-NEXT:    .cfi_def_cfa_register %a6
11; CHECK-NEXT:    move.l %sp, %d0
12; CHECK-NEXT:    and.l #-128, %d0
13; CHECK-NEXT:    move.l %d0, %sp
14; CHECK-NEXT:    move.l %sp, %a4
15; CHECK-NEXT:    movem.l %a4, (116,%a4) ; 8-byte Folded Spill
16; CHECK-NEXT:    move.l (8,%a6), %d1
17; CHECK-NEXT:    add.l #7, %d1
18; CHECK-NEXT:    and.l #-8, %d1
19; CHECK-NEXT:    move.l %sp, %d0
20; CHECK-NEXT:    sub.l %d1, %d0
21; CHECK-NEXT:    and.l #-128, %d0
22; CHECK-NEXT:    move.l %d0, %sp
23; CHECK-NEXT:    movem.l (116,%a4), %a4 ; 8-byte Folded Reload
24; CHECK-NEXT:    unlk %a6
25; CHECK-NEXT:    rts
26  %A = alloca i8, i32 %Size, align 128
27  %A_addr = ptrtoint ptr %A to i32
28  ret i32 %A_addr
29}
30