aboutsummaryrefslogtreecommitdiffstats
path: root/test/CodeGen/ARM/vldlane.ll
diff options
context:
space:
mode:
authorBob Wilson <bob.wilson@apple.com>2010-12-10 22:13:32 +0000
committerBob Wilson <bob.wilson@apple.com>2010-12-10 22:13:32 +0000
commit746fa17d59000be7f642a0b6c5223f29c5e10f00 (patch)
treefef5da3ed0fedfbcad65753310eedcdac263401e /test/CodeGen/ARM/vldlane.ll
parent20d5515aa503ef0cfe1fa8545c18c3b4d3f4473b (diff)
downloadexternal_llvm-746fa17d59000be7f642a0b6c5223f29c5e10f00.zip
external_llvm-746fa17d59000be7f642a0b6c5223f29c5e10f00.tar.gz
external_llvm-746fa17d59000be7f642a0b6c5223f29c5e10f00.tar.bz2
Add float patterns for Neon vld1-lane/dup and vst1-lane operations.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@121583 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'test/CodeGen/ARM/vldlane.ll')
-rw-r--r--test/CodeGen/ARM/vldlane.ll18
1 files changed, 18 insertions, 0 deletions
diff --git a/test/CodeGen/ARM/vldlane.ll b/test/CodeGen/ARM/vldlane.ll
index 09b68a6..fe2a0dc 100644
--- a/test/CodeGen/ARM/vldlane.ll
+++ b/test/CodeGen/ARM/vldlane.ll
@@ -30,6 +30,15 @@ define <2 x i32> @vld1lanei32(i32* %A, <2 x i32>* %B) nounwind {
ret <2 x i32> %tmp3
}
+define <2 x float> @vld1lanef(float* %A, <2 x float>* %B) nounwind {
+;CHECK: vld1lanef:
+;CHECK: vld1.32 {d16[1]}, [r0]
+ %tmp1 = load <2 x float>* %B
+ %tmp2 = load float* %A, align 4
+ %tmp3 = insertelement <2 x float> %tmp1, float %tmp2, i32 1
+ ret <2 x float> %tmp3
+}
+
define <16 x i8> @vld1laneQi8(i8* %A, <16 x i8>* %B) nounwind {
;CHECK: vld1laneQi8:
;CHECK: vld1.8 {d17[1]}, [r0]
@@ -57,6 +66,15 @@ define <4 x i32> @vld1laneQi32(i32* %A, <4 x i32>* %B) nounwind {
ret <4 x i32> %tmp3
}
+define <4 x float> @vld1laneQf(float* %A, <4 x float>* %B) nounwind {
+;CHECK: vld1laneQf:
+;CHECK: vld1.32 {d16[0]}, [r0]
+ %tmp1 = load <4 x float>* %B
+ %tmp2 = load float* %A
+ %tmp3 = insertelement <4 x float> %tmp1, float %tmp2, i32 0
+ ret <4 x float> %tmp3
+}
+
%struct.__neon_int8x8x2_t = type { <8 x i8>, <8 x i8> }
%struct.__neon_int16x4x2_t = type { <4 x i16>, <4 x i16> }
%struct.__neon_int32x2x2_t = type { <2 x i32>, <2 x i32> }