1 ; RUN: opt -sroa -S < %s | FileCheck %s 2 3 target datalayout = "e-p:64:32-i64:32-v32:32-n32-S64" 4 5 ; Function Attrs: nounwind 6 declare void @llvm.lifetime.start(i64, i8* nocapture) #0 7 8 ; Function Attrs: nounwind 9 declare void @llvm.lifetime.end(i64, i8* nocapture) #0 10 11 ; CHECK: @wombat 12 ; CHECK-NOT: alloca 13 ; CHECK: ret void 14 define void @wombat(<4 x float> %arg1) { 15 bb: 16 %tmp = alloca <4 x float>, align 16 17 %tmp8 = bitcast <4 x float>* %tmp to i8* 18 call void @llvm.lifetime.start(i64 16, i8* %tmp8) 19 store <4 x float> %arg1, <4 x float>* %tmp, align 16 20 %tmp17 = bitcast <4 x float>* %tmp to <3 x float>* 21 %tmp18 = load <3 x float>, <3 x float>* %tmp17 22 %tmp20 = bitcast <4 x float>* %tmp to i8* 23 call void @llvm.lifetime.end(i64 16, i8* %tmp20) 24 call void @wombat3(<3 x float> %tmp18) 25 ret void 26 } 27 28 ; Function Attrs: nounwind 29 declare void @wombat3(<3 x float>) #0 30 31 attributes #0 = { nounwind } 32