llvm.org GIT mirror llvm / 3e43049
Merging r319130: ------------------------------------------------------------------------ r319130 | matze | 2017-11-27 17:17:52 -0800 (Mon, 27 Nov 2017) | 7 lines ARM: Fix PR32578 https://llvm.org/PR32578 I simplified and converted the reproducer into a lit test. Patch by Vedant Kumar! ------------------------------------------------------------------------ git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_50@319181 91177308-0d34-0410-b5e6-96231b3b80d8 Tom Stellard 1 year, 8 months ago
2 changed file(s) with 28 addition(s) and 1 deletion(s). Raw diff Collapse all Expand all
478478 if (DPRCSSize > 0) {
479479 // Since vpush register list cannot have gaps, there may be multiple vpush
480480 // instructions in the prologue.
481 while (MBBI->getOpcode() == ARM::VSTMDDB_UPD) {
481 while (MBBI != MBB.end() && MBBI->getOpcode() == ARM::VSTMDDB_UPD) {
482482 DefCFAOffsetCandidates.addInst(MBBI, sizeOfSPAdjustment(*MBBI));
483483 LastPush = MBBI++;
484484 }
0 ; RUN: llc -o - %s | FileCheck %s
1 target triple = "armv7"
2
3 ; CHECK-LABEL: func:
4 ; CHECK: push {r11, lr}
5 ; CHECK: vpush {d8}
6 ; CEHCK: b .LBB0_2
7 define arm_aapcscc double @func() {
8 br label %tailrecurse
9
10 tailrecurse:
11 %v0 = load i16, i16* undef, align 8
12 %cond36.i = icmp eq i16 %v0, 3
13 br i1 %cond36.i, label %sw.bb.i, label %sw.epilog.i
14
15 sw.bb.i:
16 %v1 = load double, double* undef, align 8
17 %call21.i = tail call arm_aapcscc double @func()
18 %mul.i = fmul double %v1, %call21.i
19 ret double %mul.i
20
21 sw.epilog.i:
22 tail call arm_aapcscc void @_ZNK10shared_ptrdeEv()
23 br label %tailrecurse
24 }
25
26 declare arm_aapcscc void @_ZNK10shared_ptrdeEv() local_unnamed_addr