; RUN: llc < %s -mtriple=thumbv7s-apple-ios3.0.0 -mcpu=generic | FileCheck %s ; PR15525 ; CHECK-LABEL: test1: ; CHECK: ldr.w [[REG:r[0-9]+]], [sp] ; CHECK-NEXT: vmov {{d[0-9]+}}, r1, r2 ; CHECK-NEXT: vmov {{d[0-9]+}}, r3, [[REG]] ; CHECK-NEXT: vst1.8 {{{d[0-9]+}}, {{d[0-9]+}}}, [r0] ; CHECK-NEXT: bx lr define void @test1(i8* %arg, [4 x i64] %vec.coerce) { bb: %tmp = extractvalue [4 x i64] %vec.coerce, 0 %tmp2 = bitcast i64 %tmp to <8 x i8> %tmp3 = shufflevector <8 x i8> %tmp2, <8 x i8> undef, <16 x i32> %tmp4 = extractvalue [4 x i64] %vec.coerce, 1 %tmp5 = bitcast i64 %tmp4 to <8 x i8> %tmp6 = shufflevector <8 x i8> %tmp5, <8 x i8> undef, <16 x i32> %tmp7 = shufflevector <16 x i8> %tmp6, <16 x i8> %tmp3, <16 x i32> tail call void @llvm.arm.neon.vst1.v16i8(i8* %arg, <16 x i8> %tmp7, i32 2) ret void } declare void @llvm.arm.neon.vst1.v16i8(i8*, <16 x i8>, i32)