summaryrefslogtreecommitdiffstats
path: root/llvm/test/CodeGen/ARM/arm-interleaved-accesses.ll
diff options
context:
space:
mode:
Diffstat (limited to 'llvm/test/CodeGen/ARM/arm-interleaved-accesses.ll')
-rw-r--r--llvm/test/CodeGen/ARM/arm-interleaved-accesses.ll12
1 files changed, 12 insertions, 0 deletions
diff --git a/llvm/test/CodeGen/ARM/arm-interleaved-accesses.ll b/llvm/test/CodeGen/ARM/arm-interleaved-accesses.ll
index 002e71f6d9b..6f3d537176c 100644
--- a/llvm/test/CodeGen/ARM/arm-interleaved-accesses.ll
+++ b/llvm/test/CodeGen/ARM/arm-interleaved-accesses.ll
@@ -304,3 +304,15 @@ define void @store_illegal_factor2(<3 x float>* %p, <3 x float> %v) nounwind {
store <3 x float> %tmp1, <3 x float>* %p, align 16
ret void
}
+
+; NEON-LABEL: load_factor2_with_extract_user:
+; NEON: vld2.32 {d16, d17, d18, d19}, [r0:64]
+; NEON: vmov.32 r0, d16[1]
+; NONEON-LABEL: load_factor2_with_extract_user:
+; NONEON-NOT: vld2
+define i32 @load_factor2_with_extract_user(<8 x i32>* %a) {
+ %1 = load <8 x i32>, <8 x i32>* %a, align 8
+ %2 = shufflevector <8 x i32> %1, <8 x i32> undef, <4 x i32> <i32 0, i32 2, i32 4, i32 6>
+ %3 = extractelement <8 x i32> %1, i32 2
+ ret i32 %3
+}
OpenPOWER on IntegriCloud