1*9880d681SAndroid Build Coastguard Worker; RUN: llc < %s -march=arm64
2*9880d681SAndroid Build Coastguard Worker; Make sure we are not crashing on this test.
3*9880d681SAndroid Build Coastguard Worker
4*9880d681SAndroid Build Coastguard Workertarget datalayout = "e-m:e-i64:64-i128:128-n32:64-S128"
5*9880d681SAndroid Build Coastguard Workertarget triple = "aarch64-unknown-linux-gnu"
6*9880d681SAndroid Build Coastguard Worker
7*9880d681SAndroid Build Coastguard Workerdeclare void @extern(i8*)
8*9880d681SAndroid Build Coastguard Worker
9*9880d681SAndroid Build Coastguard Worker; Function Attrs: argmemonly nounwind
10*9880d681SAndroid Build Coastguard Workerdeclare void @llvm.memset.p0i8.i64(i8* nocapture, i8, i64, i32, i1) #0
11*9880d681SAndroid Build Coastguard Worker
12*9880d681SAndroid Build Coastguard Worker; Function Attrs: nounwind
13*9880d681SAndroid Build Coastguard Workerdefine void @func(float* noalias %arg, i32* noalias %arg1, i8* noalias %arg2, i8* noalias %arg3) #1 {
14*9880d681SAndroid Build Coastguard Workerbb:
15*9880d681SAndroid Build Coastguard Worker  %tmp = getelementptr inbounds i8, i8* %arg2, i64 88
16*9880d681SAndroid Build Coastguard Worker  tail call void @llvm.memset.p0i8.i64(i8* noalias %arg2, i8 0, i64 40, i32 8, i1 false)
17*9880d681SAndroid Build Coastguard Worker  store i8 0, i8* %arg3
18*9880d681SAndroid Build Coastguard Worker  store i8 2, i8* %arg2
19*9880d681SAndroid Build Coastguard Worker  store float 0.000000e+00, float* %arg
20*9880d681SAndroid Build Coastguard Worker  %tmp4 = bitcast i8* %tmp to <4 x float>*
21*9880d681SAndroid Build Coastguard Worker  store volatile <4 x float> zeroinitializer, <4 x float>* %tmp4
22*9880d681SAndroid Build Coastguard Worker  store i32 5, i32* %arg1
23*9880d681SAndroid Build Coastguard Worker  tail call void @extern(i8* %tmp)
24*9880d681SAndroid Build Coastguard Worker  ret void
25*9880d681SAndroid Build Coastguard Worker}
26*9880d681SAndroid Build Coastguard Worker
27*9880d681SAndroid Build Coastguard Worker; Function Attrs: nounwind
28*9880d681SAndroid Build Coastguard Workerdefine void @func2(float* noalias %arg, i32* noalias %arg1, i8* noalias %arg2, i8* noalias %arg3) #1 {
29*9880d681SAndroid Build Coastguard Workerbb:
30*9880d681SAndroid Build Coastguard Worker  %tmp = getelementptr inbounds i8, i8* %arg2, i64 88
31*9880d681SAndroid Build Coastguard Worker  tail call void @llvm.memset.p0i8.i64(i8* noalias %arg2, i8 0, i64 40, i32 8, i1 false)
32*9880d681SAndroid Build Coastguard Worker  store i8 0, i8* %arg3
33*9880d681SAndroid Build Coastguard Worker  store i8 2, i8* %arg2
34*9880d681SAndroid Build Coastguard Worker  store float 0.000000e+00, float* %arg
35*9880d681SAndroid Build Coastguard Worker  %tmp4 = bitcast i8* %tmp to <4 x float>*
36*9880d681SAndroid Build Coastguard Worker  store <4 x float> zeroinitializer, <4 x float>* %tmp4
37*9880d681SAndroid Build Coastguard Worker  store i32 5, i32* %arg1
38*9880d681SAndroid Build Coastguard Worker  tail call void @extern(i8* %tmp)
39*9880d681SAndroid Build Coastguard Worker  ret void
40*9880d681SAndroid Build Coastguard Worker}
41*9880d681SAndroid Build Coastguard Worker
42*9880d681SAndroid Build Coastguard Workerattributes #0 = { argmemonly nounwind }
43*9880d681SAndroid Build Coastguard Workerattributes #1 = { nounwind "target-cpu"="cortex-a53" }
44