Bump version to 19.1.0-rc3
[llvm-project.git] / llvm / test / CodeGen / Thumb2 / thumb2-execute-only-prologue.ll
blob0d3e7882f1b8cc2a245d5d5e1e29c48d93644b4c
1 ; RUN: llc < %s -mtriple=thumbv8m.base-arm-none-eabi | FileCheck %s
3 define void @fn() {
4 entry:
5 ; CHECK-LABEL: fn:
6 ; CHECK:       @ %bb.0: @ %entry
7 ; CHECK-NEXT:    .save {r4, r5, r6, lr}
8 ; CHECK-NEXT:    push {r4, r5, r6, lr}
9 ; CHECK-NEXT:    ldr r6, .LCPI0_0
10 ; CHECK-NEXT:    .pad #1600
11 ; CHECK-NEXT:    add sp, r6
12 ; CHECK: .LCPI0_0:
13 ; CHECK-NEXT:    .long 4294965696
14   %a = alloca [400 x i32], align 4
15   call void @bar(ptr %a)
16   ret void
19 define void @execute_only_fn() #0 {
20 entry:
21 ; CHECK-LABEL: execute_only_fn:
22 ; CHECK:       @ %bb.0: @ %entry
23 ; CHECK-NEXT:    .save {r4, r5, r6, lr}
24 ; CHECK-NEXT:    push {r4, r5, r6, lr}
25 ; CHECK-NEXT:    movw    r6, #63936
26 ; CHECK-NEXT:    movt    r6, #65535
27 ; CHECK-NEXT:    .pad #1600
28 ; CHECK-NEXT:    add sp, r6
29   %a = alloca [400 x i32], align 4
30   call void @bar(ptr %a)
31   ret void
34 declare dso_local void @bar(ptr)
36 attributes #0 = { noinline optnone "target-features"="+armv8-m.base,+execute-only,+thumb-mode" }