; NOTE: Assertions have been autogenerated by utils/update_test_checks.py ; RUN: opt -S -instcombine -verify < %s | FileCheck %s define @alloca( %z) { ; CHECK-LABEL: @alloca( ; CHECK-NEXT: ret [[Z:%.*]] ; %a = alloca store %z, * %a %load = load , * %a ret %load } define void @alloca_dead_store( %z) { ; CHECK-LABEL: @alloca_dead_store( ; CHECK-NEXT: ret void ; %a = alloca store %z, * %a ret void } declare void @use(...) define void @alloca_zero_byte_move_first_inst() { ; CHECK-LABEL: @alloca_zero_byte_move_first_inst( ; CHECK-NEXT: [[B:%.*]] = alloca {}, align 8 ; CHECK-NEXT: [[A:%.*]] = alloca , align 16 ; CHECK-NEXT: call void (...) @use(* nonnull [[A]]) ; CHECK-NEXT: call void (...) @use({}* nonnull [[B]]) ; CHECK-NEXT: ret void ; %a = alloca call void (...) @use( * %a ) %b = alloca { } call void (...) @use( { }* %b ) ret void }