20 lines
800 B
LLVM
20 lines
800 B
LLVM
|
; RUN: llc -global-isel -stop-after irtranslator -mtriple aarch64-apple-ios %s -o - | FileCheck %s
|
||
|
|
||
|
; We use to incorrectly use the store size instead of the alloc size when
|
||
|
; creating the stack slot for allocas. This shows on aarch64 only when
|
||
|
; we allocated weirdly sized type. For instance, in that case, we used
|
||
|
; to allocate a slot of size 24-bit (19 rounded up to the next byte),
|
||
|
; whereas we really want to use a full 32-bit slot for this type.
|
||
|
; CHECK-LABEL: foo
|
||
|
; Check that the stack slot is 4-byte wide instead of the previously
|
||
|
; wrongly 3-byte sized slot.
|
||
|
; CHECK: stack:
|
||
|
; CHECK-NEXT: - { id: 0, name: stack_slot, type: default, offset: 0, size: 4, alignment: 4
|
||
|
define void @foo() {
|
||
|
%stack_slot = alloca i19
|
||
|
call void @bar(i19* %stack_slot)
|
||
|
ret void
|
||
|
}
|
||
|
|
||
|
declare void @bar(i19* %a)
|