brintos

brintos / llvm-project-archived public Read only

0
0
Text · 3.1 KiB · f07e40b Raw
118 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py2; RUN: llc < %s -mtriple=x86_64-unknown -mattr=+push2pop2 | FileCheck %s --check-prefix=CHECK3 4; This test is used to check no push2/pop2 emitted if stack alignment is set to5; the value less than 16 bytes required by push2/pop2 instruction. Here it's set6; to 8 bytes.7 8define void @csr1() nounwind {9; CHECK-LABEL: csr1:10; CHECK:       # %bb.0: # %entry11; CHECK-NEXT:    pushq %rbp12; CHECK-NEXT:    #APP13; CHECK-NEXT:    #NO_APP14; CHECK-NEXT:    popq %rbp15; CHECK-NEXT:    retq16entry:17  tail call void asm sideeffect "", "~{rbp},~{dirflag},~{fpsr},~{flags}"()18  ret void19}20 21define void @csr2() nounwind {22; CHECK-LABEL: csr2:23; CHECK:       # %bb.0: # %entry24; CHECK-NEXT:    pushq %rbp25; CHECK-NEXT:    pushq %r1526; CHECK-NEXT:    #APP27; CHECK-NEXT:    #NO_APP28; CHECK-NEXT:    popq %r1529; CHECK-NEXT:    popq %rbp30; CHECK-NEXT:    retq31entry:32  tail call void asm sideeffect "", "~{rbp},~{r15},~{dirflag},~{fpsr},~{flags}"()33  ret void34}35 36define void @csr3() nounwind {37; CHECK-LABEL: csr3:38; CHECK:       # %bb.0: # %entry39; CHECK-NEXT:    pushq %rbp40; CHECK-NEXT:    pushq %r1541; CHECK-NEXT:    pushq %r1442; CHECK-NEXT:    #APP43; CHECK-NEXT:    #NO_APP44; CHECK-NEXT:    popq %r1445; CHECK-NEXT:    popq %r1546; CHECK-NEXT:    popq %rbp47; CHECK-NEXT:    retq48entry:49  tail call void asm sideeffect "", "~{rbp},~{r15},~{r14},~{dirflag},~{fpsr},~{flags}"()50  ret void51}52 53define void @csr4() nounwind {54; CHECK-LABEL: csr4:55; CHECK:       # %bb.0: # %entry56; CHECK-NEXT:    pushq %rbp57; CHECK-NEXT:    pushq %r1558; CHECK-NEXT:    pushq %r1459; CHECK-NEXT:    pushq %r1360; CHECK-NEXT:    #APP61; CHECK-NEXT:    #NO_APP62; CHECK-NEXT:    popq %r1363; CHECK-NEXT:    popq %r1464; CHECK-NEXT:    popq %r1565; CHECK-NEXT:    popq %rbp66; CHECK-NEXT:    retq67entry:68  tail call void asm sideeffect "", "~{rbp},~{r15},~{r14},~{r13},~{dirflag},~{fpsr},~{flags}"()69  ret void70}71 72define void @csr5() nounwind {73; CHECK-LABEL: csr5:74; CHECK:       # %bb.0: # %entry75; CHECK-NEXT:    pushq %rbp76; CHECK-NEXT:    pushq %r1577; CHECK-NEXT:    pushq %r1478; CHECK-NEXT:    pushq %r1379; CHECK-NEXT:    pushq %r1280; CHECK-NEXT:    #APP81; CHECK-NEXT:    #NO_APP82; CHECK-NEXT:    popq %r1283; CHECK-NEXT:    popq %r1384; CHECK-NEXT:    popq %r1485; CHECK-NEXT:    popq %r1586; CHECK-NEXT:    popq %rbp87; CHECK-NEXT:    retq88entry:89  tail call void asm sideeffect "", "~{rbp},~{r15},~{r14},~{r13},~{r12},~{dirflag},~{fpsr},~{flags}"()90  ret void91}92 93define void @csr6() nounwind {94; CHECK-LABEL: csr6:95; CHECK:       # %bb.0: # %entry96; CHECK-NEXT:    pushq %rbp97; CHECK-NEXT:    pushq %r1598; CHECK-NEXT:    pushq %r1499; CHECK-NEXT:    pushq %r13100; CHECK-NEXT:    pushq %r12101; CHECK-NEXT:    pushq %rbx102; CHECK-NEXT:    #APP103; CHECK-NEXT:    #NO_APP104; CHECK-NEXT:    popq %rbx105; CHECK-NEXT:    popq %r12106; CHECK-NEXT:    popq %r13107; CHECK-NEXT:    popq %r14108; CHECK-NEXT:    popq %r15109; CHECK-NEXT:    popq %rbp110; CHECK-NEXT:    retq111entry:112  tail call void asm sideeffect "", "~{rbp},~{r15},~{r14},~{r13},~{r12},~{rbx},~{dirflag},~{fpsr},~{flags}"()113  ret void114}115 116!llvm.module.flags = !{!0}117!0 = !{i32 1, !"override-stack-alignment", i32 8}118