22 lines · plain
1; RUN: llc -mtriple=aarch64-none-linux-gnu -mattr=-neon < %s2 3; The DAG combiner decided to use a vector load/store for this struct copy4; previously. This probably shouldn't happen without NEON, but the most5; important thing is that it compiles.6 7define void @store_combine() nounwind {8 %src = alloca { double, double }, align 89 %dst = alloca { double, double }, align 810 11 %src.realp = getelementptr inbounds { double, double }, ptr %src, i32 0, i32 012 %src.real = load double, ptr %src.realp13 %src.imagp = getelementptr inbounds { double, double }, ptr %src, i32 0, i32 114 %src.imag = load double, ptr %src.imagp15 16 %dst.realp = getelementptr inbounds { double, double }, ptr %dst, i32 0, i32 017 %dst.imagp = getelementptr inbounds { double, double }, ptr %dst, i32 0, i32 118 store double %src.real, ptr %dst.realp19 store double %src.imag, ptr %dst.imagp20 ret void21}22