Home | History | Annotate | Download | only in AArch64
      1 ; This test should cause the TargetMaterializeAlloca to be invoked
      2 ; RUN: llc -O0 -fast-isel-abort=1 -verify-machineinstrs -mtriple=arm64-apple-darwin -disable-fp-elim < %s | FileCheck %s
      3 
      4 %struct.S1Ty = type { i64 }
      5 %struct.S2Ty = type { %struct.S1Ty, %struct.S1Ty }
      6 
      7 define void @takeS1(%struct.S1Ty* %V) nounwind {
      8 entry:
      9   %V.addr = alloca %struct.S1Ty*, align 8
     10   store %struct.S1Ty* %V, %struct.S1Ty** %V.addr, align 8
     11   ret void
     12 }
     13 
     14 define void @main() nounwind {
     15 entry:
     16 ; CHECK: main
     17 ; CHECK: add x29, sp, #16
     18 ; CHECK: mov [[REG:x[0-9]+]], sp
     19 ; CHECK-NEXT: add x0, [[REG]], #8
     20   %E = alloca %struct.S2Ty, align 4
     21   %B = getelementptr inbounds %struct.S2Ty, %struct.S2Ty* %E, i32 0, i32 1
     22   call void @takeS1(%struct.S1Ty* %B)
     23   ret void
     24 }
     25