blob: f65b116128288dde1f1c408b052d1571dac9cbbd [file] [log] [blame]
Tim Northoverdf723342014-05-07 10:47:04 +00001; RUN: llc -mtriple=arm64-none-linux-gnu -mattr=-neon < %s
Tim Northover40e9efd2013-08-01 09:20:35 +00002
3; The DAG combiner decided to use a vector load/store for this struct copy
4; previously. This probably shouldn't happen without NEON, but the most
5; important thing is that it compiles.
6
7define void @store_combine() nounwind {
8 %src = alloca { double, double }, align 8
9 %dst = alloca { double, double }, align 8
10
11 %src.realp = getelementptr inbounds { double, double }* %src, i32 0, i32 0
12 %src.real = load double* %src.realp
13 %src.imagp = getelementptr inbounds { double, double }* %src, i32 0, i32 1
14 %src.imag = load double* %src.imagp
15
16 %dst.realp = getelementptr inbounds { double, double }* %dst, i32 0, i32 0
17 %dst.imagp = getelementptr inbounds { double, double }* %dst, i32 0, i32 1
18 store double %src.real, double* %dst.realp
19 store double %src.imag, double* %dst.imagp
20 ret void
21}