53 lines · plain
1# RUN: llc -mtriple=aarch64-none-linux-gnu -run-pass=prologepilog %s -o - | FileCheck %s2--- |3 define void @hasBasepointer() #0 { ret void }4 define void @hasBasepointer_sme_streaming() #1 { ret void }5 6 attributes #0 = { "target-features"="+sve" }7 attributes #1 = { "target-features"="+sme" "aarch64_pstate_sm_enabled" }8...9---10# This test verifies that the basepointer is available in presence of SVE stack objects.11name: hasBasepointer12# CHECK-LABEL: name: hasBasepointer13# CHECK: bb.0:14# CHECK: $sp = frame-setup SUBXri $sp, 16, 015# CHECK-NEXT: $sp = frame-setup ADDVL_XXI $sp, -116# CHECK-NEXT: $x19 = ADDXri $sp, 0, 017# CHECK: STRXui $x0, $x19, 018tracksRegLiveness: true19frameInfo:20 isFrameAddressTaken: true21stack:22 - { id: 0, type: variable-sized, alignment: 1 }23 - { id: 1, name: '', size: 16, alignment: 8 }24 - { id: 2, stack-id: scalable-vector, size: 16, alignment: 16 }25body: |26 bb.0:27 liveins: $x028 STRXui $x0, %stack.1, 029 RET_ReallyLR30...31---32# Likewise with only SME with a streaming function.33name: hasBasepointer_sme_streaming34# CHECK-LABEL: name: hasBasepointer_sme_streaming35# CHECK: bb.0:36# CHECK: $sp = frame-setup SUBXri $sp, 16, 037# CHECK-NEXT: $sp = frame-setup ADDVL_XXI $sp, -138# CHECK-NEXT: $x19 = ADDXri $sp, 0, 039# CHECK: STRXui $x0, $x19, 040tracksRegLiveness: true41frameInfo:42 isFrameAddressTaken: true43stack:44 - { id: 0, type: variable-sized, alignment: 1 }45 - { id: 1, name: '', size: 16, alignment: 8 }46 - { id: 2, stack-id: scalable-vector, size: 16, alignment: 16 }47body: |48 bb.0:49 liveins: $x050 STRXui $x0, %stack.1, 051 RET_ReallyLR52...53