llvm/llvm/test/CodeGen/AArch64/dag-combine-lifetime-end-store-typesize.ll

; RUN: llc -mtriple=aarch64-- -mattr=+sve < %s

; This regression test is defending against using the wrong interface for TypeSize.
; This issue appeared in DAGCombiner::visitLIFETIME_END when visiting a LIFETIME_END
; node linked to a scalable store.

declare void @llvm.lifetime.start.p0(i64, ptr nocapture)
declare void @llvm.lifetime.end.p0(i64, ptr nocapture)

define void @foo(ptr nocapture dereferenceable(16) %ptr) {
entry:
  %tmp = alloca <vscale x 4 x i32>, align 8
  %tmp_ptr = bitcast ptr %tmp to ptr
  call void @llvm.lifetime.start.p0(i64 32, ptr %tmp_ptr)
  store <vscale x 4 x i32> undef, ptr %ptr
  call void @llvm.lifetime.end.p0(i64 32, ptr %tmp_ptr)
  ret void
}