1; RUN: llc -mtriple=aarch64 -mattr=+sve < %s | FileCheck %s --check-prefix=CHECKCG 2; RUN: llc -mtriple=aarch64 -mattr=+sve -stop-after=finalize-isel < %s | FileCheck %s --check-prefix=CHECKISEL 3 4; CHECKCG-LABEL: foo: 5; CHECKCG: addvl sp, sp, #-1 6 7; CHECKISEL-LABEL: name: foo 8; CHECKISEL: stack: 9; CHECKISEL: id: 0, name: ptr, type: default, offset: 0, size: 16, alignment: 16, 10; CHECKISEL-NEXT: stack-id: scalable-vector 11define i32 @foo(<vscale x 16 x i8> %val) { 12 %ptr = alloca <vscale x 16 x i8> 13 %res = call i32 @bar(ptr %ptr) 14 ret i32 %res 15} 16 17declare i32 @bar(ptr %ptr); 18 19; CHECKCG-LABEL: foo2: 20; CHECKCG: addvl sp, sp, #-2 21 22; CHECKISEL-LABEL: name: foo2 23; CHECKISEL: stack: 24; CHECKISEL: id: 0, name: ptr, type: default, offset: 0, size: 32, alignment: 16, 25; CHECKISEL-NEXT: stack-id: scalable-vector 26 27define i32 @foo2(<vscale x 32 x i8> %val) { 28 %ptr = alloca <vscale x 32 x i8>, align 16 29 %res = call i32 @bar2(ptr %ptr) 30 ret i32 %res 31} 32declare i32 @bar2(ptr %ptr); 33