brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.4 KiB · c5cc108 Raw
50 lines · plain
1; RUN: llc -verify-machineinstrs < %s | FileCheck %s2 3; The purpose of this test is to construct a scenario where an odd number4; of callee-saved GPRs as well as an odd number of callee-saved FPRs are5; used. This caused the frame pointer to be aligned to a multiple of 86; on non-Darwin platforms, rather than a multiple of 16 as usual.7 8target datalayout = "e-m:e-i8:8:32-i16:16:32-i64:64-i128:128-n32:64-S128"9target triple = "aarch64-unknown-linux-gnu"10 11@a = global i64 0, align 412 13 14define i64 @b() uwtable {15entry:16  %call = tail call i64 @d()17  %0 = alloca i8, i64 ptrtoint (ptr @d to i64), align 1618  %1 = ptrtoint ptr %0 to i6419  store i64 %1, ptr @a, align 420  %call1 = call i64 @e()21  %conv = sitofp i64 %call1 to float22  %2 = load i64, ptr @a, align 423  %call2 = call i64 @f(i64 %2)24  %conv3 = fptosi float %conv to i6425  ret i64 %conv326}27 28; CHECK-LABEL: b:29; CHECK:       str     d8, [sp, #-32]!30; CHECK-NEXT:  .cfi_def_cfa_offset 3231; CHECK-NEXT:  stp     x29, x30, [sp, #8]32; CHECK-NEXT:  str     x19, [sp, #24]33; CHECK-NEXT:  add     x29, sp, #834 35; CHECK:       sub     sp, x29, #836; CHECK-NEXT:  .cfi_def_cfa wsp, 3237; CHECK-NEXT:  ldp     x29, x30, [sp, #8]38; CHECK-NEXT:  ldr     x19, [sp, #24]39; CHECK-NEXT:  ldr     d8, [sp], #3240; CHECK-NEXT: .cfi_def_cfa_offset 041; CHECK-NEXT: .cfi_restore w1942; CHECK-NEXT: .cfi_restore w3043; CHECK-NEXT: .cfi_restore w2944; CHECK-NEXT: .cfi_restore b845; CHECK-NEXT:  ret46 47declare i64 @d()48declare i64 @e()49declare i64 @f(i64)50