brintos

brintos / llvm-project-archived public Read only

0
0
Text · 5.8 KiB · fbd01ca Raw
165 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py UTC_ARGS: --version 52; RUN: llc  -O0 -mtriple=thumbv7s-apple-darwin < %s  | FileCheck %s3target datalayout = "e-m:o-p:32:32-Fi8-f64:32:64-v64:32:64-v128:32:128-a:0:32-n32-S32"4 5; Function Attrs: mustprogress noinline optnone ssp6define ptr @foo() #0 personality ptr @__gxx_personality_sj0 {7; CHECK-LABEL: foo:8; CHECK:       Lfunc_begin0:9; CHECK-NEXT:  @ %bb.0:10; CHECK-NEXT:    push {r4, r5, r6, r7, lr}11; CHECK-NEXT:    add r7, sp, #1212; CHECK-NEXT:    push.w {r8, r10, r11}13; CHECK-NEXT:    sub.w r4, sp, #6414; CHECK-NEXT:    bfc r4, #0, #415; CHECK-NEXT:    mov sp, r416; CHECK-NEXT:    vst1.64 {d8, d9, d10, d11}, [r4:128]!17; CHECK-NEXT:    vst1.64 {d12, d13, d14, d15}, [r4:128]18; CHECK-NEXT:    sub sp, #9619; CHECK-NEXT:    movw r0, :lower16:(L___stack_chk_guard$non_lazy_ptr-(LPC0_2+4))20; CHECK-NEXT:    movt r0, :upper16:(L___stack_chk_guard$non_lazy_ptr-(LPC0_2+4))21; CHECK-NEXT:  LPC0_2:22; CHECK-NEXT:    add r0, pc23; CHECK-NEXT:    ldr r0, [r0]24; CHECK-NEXT:    ldr r0, [r0]25; CHECK-NEXT:    movw r0, :lower16:(L___stack_chk_guard$non_lazy_ptr-(LPC0_3+4))26; CHECK-NEXT:    movt r0, :upper16:(L___stack_chk_guard$non_lazy_ptr-(LPC0_3+4))27; CHECK-NEXT:  LPC0_3:28; CHECK-NEXT:    add r0, pc29; CHECK-NEXT:    ldr r0, [r0]30; CHECK-NEXT:    ldr r0, [r0]31; CHECK-NEXT:    str r0, [sp, #92]32; CHECK-NEXT:    movw r0, :lower16:(L___gxx_personality_sj0$non_lazy_ptr-(LPC0_4+4))33; CHECK-NEXT:    movt r0, :upper16:(L___gxx_personality_sj0$non_lazy_ptr-(LPC0_4+4))34; CHECK-NEXT:  LPC0_4:35; CHECK-NEXT:    add r0, pc36; CHECK-NEXT:    ldr r0, [r0]37; CHECK-NEXT:    str r0, [sp, #36]38; CHECK-NEXT:    ldr r0, LCPI0_039; CHECK-NEXT:  LPC0_0:40; CHECK-NEXT:    add r0, pc41; CHECK-NEXT:    str r0, [sp, #40]42; CHECK-NEXT:    str r7, [sp, #44]43; CHECK-NEXT:    mov r0, sp44; CHECK-NEXT:    str r0, [sp, #52]45; CHECK-NEXT:    ldr r0, LCPI0_146; CHECK-NEXT:    orr r0, r0, #147; CHECK-NEXT:  LPC0_1:48; CHECK-NEXT:    add r0, pc49; CHECK-NEXT:    str r0, [sp, #48]50; CHECK-NEXT:    add r0, sp, #1251; CHECK-NEXT:    bl __Unwind_SjLj_Register52; CHECK-NEXT:    movs r0, #153; CHECK-NEXT:    str r0, [sp, #16]54; CHECK-NEXT:    movw r0, :lower16:(L___stack_chk_guard$non_lazy_ptr-(LPC0_5+4))55; CHECK-NEXT:    movt r0, :upper16:(L___stack_chk_guard$non_lazy_ptr-(LPC0_5+4))56; CHECK-NEXT:  LPC0_5:57; CHECK-NEXT:    add r0, pc58; CHECK-NEXT:    ldr r0, [r0]59; CHECK-NEXT:    ldr r0, [r0]60; CHECK-NEXT:    ldr r1, [sp, #92]61; CHECK-NEXT:    cmp r0, r162; CHECK-NEXT:    bne LBB0_763; CHECK-NEXT:  @ %bb.1: @ %SP_return64; CHECK-NEXT:  Ltmp0:65; CHECK-NEXT:    movs r1, #066; CHECK-NEXT:    mov r0, r167; CHECK-NEXT:    bl _foo268; CHECK-NEXT:  Ltmp1:69; CHECK-NEXT:    b LBB0_270; CHECK-NEXT:  LBB0_2:71; CHECK-NEXT:    movs r0, #272; CHECK-NEXT:    str r0, [sp, #16]73; CHECK-NEXT:    movw r0, :lower16:(L___stack_chk_guard$non_lazy_ptr-(LPC0_6+4))74; CHECK-NEXT:    movt r0, :upper16:(L___stack_chk_guard$non_lazy_ptr-(LPC0_6+4))75; CHECK-NEXT:  LPC0_6:76; CHECK-NEXT:    add r0, pc77; CHECK-NEXT:    ldr r0, [r0]78; CHECK-NEXT:    ldr r0, [r0]79; CHECK-NEXT:    ldr r1, [sp, #92]80; CHECK-NEXT:    cmp r0, r181; CHECK-NEXT:    bne LBB0_782; CHECK-NEXT:  @ %bb.3: @ %SP_return283; CHECK-NEXT:  Ltmp2:84; CHECK-NEXT:    movs r2, #085; CHECK-NEXT:    mov r0, r286; CHECK-NEXT:    mov r1, r287; CHECK-NEXT:    bl _foo388; CHECK-NEXT:  Ltmp3:89; CHECK-NEXT:    b LBB0_690; CHECK-NEXT:  LBB0_4:91; CHECK-NEXT:  Ltmp4:92; CHECK-NEXT:    ldr r0, [sp, #20]93; CHECK-NEXT:    ldr r0, [sp, #24]94; CHECK-NEXT:    add r0, sp, #1295; CHECK-NEXT:    bl __Unwind_SjLj_Unregister96; CHECK-NEXT:    movw r0, :lower16:(L___stack_chk_guard$non_lazy_ptr-(LPC0_7+4))97; CHECK-NEXT:    movt r0, :upper16:(L___stack_chk_guard$non_lazy_ptr-(LPC0_7+4))98; CHECK-NEXT:  LPC0_7:99; CHECK-NEXT:    add r0, pc100; CHECK-NEXT:    ldr r0, [r0]101; CHECK-NEXT:    ldr r0, [r0]102; CHECK-NEXT:    ldr r1, [sp, #92]103; CHECK-NEXT:    cmp r0, r1104; CHECK-NEXT:    bne LBB0_7105; CHECK-NEXT:  @ %bb.5: @ %SP_return3106; CHECK-NEXT:    movs r0, #0107; CHECK-NEXT:    add r4, sp, #96108; CHECK-NEXT:    vld1.64 {d8, d9, d10, d11}, [r4:128]!109; CHECK-NEXT:    vld1.64 {d12, d13, d14, d15}, [r4:128]110; CHECK-NEXT:    sub.w r4, r7, #24111; CHECK-NEXT:    mov sp, r4112; CHECK-NEXT:    pop.w {r8, r10, r11}113; CHECK-NEXT:    pop {r4, r5, r6, r7, pc}114; CHECK-NEXT:  LBB0_6:115; CHECK-NEXT:    trap116; CHECK-NEXT:  LBB0_7: @ %CallStackCheckFailBlk117; CHECK-NEXT:    bl ___stack_chk_fail118; CHECK-NEXT:  LBB0_8:119; CHECK-NEXT:    ldr r0, [sp, #16]120; CHECK-NEXT:    str r0, [sp, #8] @ 4-byte Spill121; CHECK-NEXT:    cmp r0, #2122; CHECK-NEXT:    bhi LBB0_12123; CHECK-NEXT:  @ %bb.9:124; CHECK-NEXT:    ldr r1, [sp, #8] @ 4-byte Reload125; CHECK-NEXT:  LCPI0_2:126; CHECK-NEXT:    tbb [pc, r1]127; CHECK-NEXT:  @ %bb.10:128; CHECK-NEXT:  LJTI0_0:129; CHECK-NEXT:    .data_region jt8130; CHECK-NEXT:    .byte (LBB0_11-(LCPI0_2+4))/2131; CHECK-NEXT:    .byte (LBB0_11-(LCPI0_2+4))/2132; CHECK-NEXT:    .end_data_region133; CHECK-NEXT:    .p2align 1134; CHECK-NEXT:  LBB0_11:135; CHECK-NEXT:    b LBB0_4136; CHECK-NEXT:  LBB0_12:137; CHECK-NEXT:    trap138; CHECK-NEXT:    .p2align 2139; CHECK-NEXT:  @ %bb.13:140  %1 = alloca [14 x i8], align 16141  %2 = invoke i32 @"foo2"(ptr null, ptr null) #1142          to label %3 unwind label %4143 1443:                                                ; preds = %0145  invoke void @"foo3"(ptr null, ptr null, ptr null) #2146          to label %6 unwind label %4147 1484:                                                ; preds = %3, %0149  %5 = landingpad { ptr, i32 }150          cleanup151  ret ptr null152 1536:                                                ; preds = %3154  unreachable155}156 157declare i32 @__gxx_personality_sj0(...)158declare i32 @foo2(ptr,ptr)159declare void @foo3(ptr,ptr,ptr)160; uselistorder directives161uselistorder ptr null, { 2, 3, 4, 5, 0, 6, 7, 1, 8, 9 }162 163attributes #0 = { mustprogress ssp "frame-pointer"="all" "no-builtin-calloc" "no-builtin-stpcpy" "no-trapping-math"="true" "stack-protector-buffer-size"="8" }164attributes #2 = { noreturn }165