brintos

brintos / llvm-project-archived public Read only

0
0
Text · 4.1 KiB · bda5e57 Raw
123 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py UTC_ARGS: --version 22; RUN: llc < %s | FileCheck %s3 4; Test case to demonstrate a bug where calls to OUTLINED_FUNCTION_1 are5; inserted at a point where LR is live.6 7target datalayout = "e-m:e-i8:8:32-i16:16:32-i64:64-i128:128-n32:64-S128"8target triple = "aarch64"9 10define hidden void @_ZTv0_n24_N2C6D1Ev(ptr %this) minsize sspreq "target-features"="+harden-sls-retbr" {11; CHECK-LABEL: _ZTv0_n24_N2C6D1Ev:12; CHECK:       // %bb.0: // %entry13; CHECK-NEXT:    sub sp, sp, #3214; CHECK-NEXT:    str x30, [sp, #16] // 8-byte Spill15; CHECK-NEXT:    .cfi_def_cfa_offset 3216; CHECK-NEXT:    .cfi_offset w30, -1617; CHECK-NEXT:    bl OUTLINED_FUNCTION_018; CHECK-NEXT:    b.ne .LBB0_219; CHECK-NEXT:  // %bb.1: // %entry20; CHECK-NEXT:    ldr x30, [sp, #16] // 8-byte Reload21; CHECK-NEXT:    add x0, x0, x822; CHECK-NEXT:    add sp, sp, #3223; CHECK-NEXT:    b _ZN2C6D1Ev24; CHECK-NEXT:    dsb sy25; CHECK-NEXT:    isb26; CHECK-NEXT:  .LBB0_2: // %entry27; CHECK-NEXT:    bl __stack_chk_fail28entry:29  %0 = load ptr, ptr %this, align 830  %1 = getelementptr inbounds i8, ptr %0, i64 -2431  %2 = load i64, ptr %1, align 832  %3 = getelementptr inbounds i8, ptr %this, i64 %233  tail call void @_ZN2C6D1Ev(ptr %3)34  ret void35}36 37;38define hidden void @_ZTv0_n24_N2C6D0Ev(ptr %this) minsize sspreq "target-features"="+harden-sls-retbr" {39; CHECK-LABEL: _ZTv0_n24_N2C6D0Ev:40; CHECK:       // %bb.0: // %entry41; CHECK-NEXT:    sub sp, sp, #3242; CHECK-NEXT:    str x30, [sp, #16] // 8-byte Spill43; CHECK-NEXT:    .cfi_def_cfa_offset 3244; CHECK-NEXT:    .cfi_offset w30, -1645; CHECK-NEXT:    bl OUTLINED_FUNCTION_046; CHECK-NEXT:    b.ne .LBB1_247; CHECK-NEXT:  // %bb.1: // %entry48; CHECK-NEXT:    ldr x30, [sp, #16] // 8-byte Reload49; CHECK-NEXT:    add x0, x0, x850; CHECK-NEXT:    add sp, sp, #3251; CHECK-NEXT:    b _ZN2C6D0Ev52; CHECK-NEXT:    dsb sy53; CHECK-NEXT:    isb54; CHECK-NEXT:  .LBB1_2: // %entry55; CHECK-NEXT:    bl __stack_chk_fail56entry:57  %0 = load ptr, ptr %this, align 858  %1 = getelementptr inbounds i8, ptr %0, i64 -2459  %2 = load i64, ptr %1, align 860  %3 = getelementptr inbounds i8, ptr %this, i64 %261  tail call void @_ZN2C6D0Ev(ptr %3)62  ret void63}64 65define hidden void @_ZTv0_n24_N3C10D1Ev(ptr %this) minsize sspreq "target-features"="+harden-sls-retbr" {66; CHECK-LABEL: _ZTv0_n24_N3C10D1Ev:67; CHECK:       // %bb.0: // %entry68; CHECK-NEXT:    sub sp, sp, #3269; CHECK-NEXT:    str x30, [sp, #16] // 8-byte Spill70; CHECK-NEXT:    .cfi_def_cfa_offset 3271; CHECK-NEXT:    .cfi_offset w30, -1672; CHECK-NEXT:    bl OUTLINED_FUNCTION_073; CHECK-NEXT:    b.ne .LBB2_274; CHECK-NEXT:  // %bb.1: // %entry75; CHECK-NEXT:    ldr x30, [sp, #16] // 8-byte Reload76; CHECK-NEXT:    add x0, x0, x877; CHECK-NEXT:    add sp, sp, #3278; CHECK-NEXT:    b _ZN3C10D1Ev79; CHECK-NEXT:    dsb sy80; CHECK-NEXT:    isb81; CHECK-NEXT:  .LBB2_2: // %entry82; CHECK-NEXT:    bl __stack_chk_fail83entry:84  %0 = load ptr, ptr %this, align 885  %1 = getelementptr inbounds i8, ptr %0, i64 -2486  %2 = load i64, ptr %1, align 887  %3 = getelementptr inbounds i8, ptr %this, i64 %288  tail call void @_ZN3C10D1Ev(ptr %3)89  ret void90}91 92define hidden void @_ZTv0_n24_N3C10D0Ev(ptr %this) minsize sspreq "target-features"="+harden-sls-retbr" {93; CHECK-LABEL: _ZTv0_n24_N3C10D0Ev:94; CHECK:       // %bb.0: // %entry95; CHECK-NEXT:    sub sp, sp, #3296; CHECK-NEXT:    str x30, [sp, #16] // 8-byte Spill97; CHECK-NEXT:    .cfi_def_cfa_offset 3298; CHECK-NEXT:    .cfi_offset w30, -1699; CHECK-NEXT:    bl OUTLINED_FUNCTION_0100; CHECK-NEXT:    b.ne .LBB3_2101; CHECK-NEXT:  // %bb.1: // %entry102; CHECK-NEXT:    ldr x30, [sp, #16] // 8-byte Reload103; CHECK-NEXT:    add x0, x0, x8104; CHECK-NEXT:    add sp, sp, #32105; CHECK-NEXT:    b _ZN3C10D0Ev106; CHECK-NEXT:    dsb sy107; CHECK-NEXT:    isb108; CHECK-NEXT:  .LBB3_2: // %entry109; CHECK-NEXT:    bl __stack_chk_fail110entry:111  %0 = load ptr, ptr %this, align 8112  %1 = getelementptr inbounds i8, ptr %0, i64 -24113  %2 = load i64, ptr %1, align 8114  %3 = getelementptr inbounds i8, ptr %this, i64 %2115  tail call void @_ZN3C10D0Ev(ptr %3)116  ret void117}118 119declare void @_ZN2C6D1Ev(ptr %this)120declare void @_ZN3C10D1Ev(ptr %this)121declare void @_ZN2C6D0Ev(ptr %this)122declare void @_ZN3C10D0Ev(ptr %this)123