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