comparison test/CodeGen/ARM/vld4.ll @ 77:54457678186b LLVM3.6

LLVM 3.6
author Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
date Mon, 08 Sep 2014 22:06:00 +0900
parents 95c75e76d11b
children afa8332a0e37
comparison
equal deleted inserted replaced
34:e874dbf0ad9d 77:54457678186b
1 ; RUN: llc < %s -march=arm -mattr=+neon | FileCheck %s 1 ; RUN: llc -mtriple=arm-eabi -mattr=+neon %s -o - | FileCheck %s
2 2
3 %struct.__neon_int8x8x4_t = type { <8 x i8>, <8 x i8>, <8 x i8>, <8 x i8> } 3 %struct.__neon_int8x8x4_t = type { <8 x i8>, <8 x i8>, <8 x i8>, <8 x i8> }
4 %struct.__neon_int16x4x4_t = type { <4 x i16>, <4 x i16>, <4 x i16>, <4 x i16> } 4 %struct.__neon_int16x4x4_t = type { <4 x i16>, <4 x i16>, <4 x i16>, <4 x i16> }
5 %struct.__neon_int32x2x4_t = type { <2 x i32>, <2 x i32>, <2 x i32>, <2 x i32> } 5 %struct.__neon_int32x2x4_t = type { <2 x i32>, <2 x i32>, <2 x i32>, <2 x i32> }
6 %struct.__neon_float32x2x4_t = type { <2 x float>, <2 x float>, <2 x float>, <2 x float> } 6 %struct.__neon_float32x2x4_t = type { <2 x float>, <2 x float>, <2 x float>, <2 x float> }
81 %tmp3 = extractvalue %struct.__neon_int64x1x4_t %tmp1, 2 81 %tmp3 = extractvalue %struct.__neon_int64x1x4_t %tmp1, 2
82 %tmp4 = add <1 x i64> %tmp2, %tmp3 82 %tmp4 = add <1 x i64> %tmp2, %tmp3
83 ret <1 x i64> %tmp4 83 ret <1 x i64> %tmp4
84 } 84 }
85 85
86 define <1 x i64> @vld4i64_update(i64** %ptr, i64* %A) nounwind {
87 ;CHECK-LABEL: vld4i64_update:
88 ;CHECK: vld1.64 {d16, d17, d18, d19}, [r1:256]!
89 %tmp0 = bitcast i64* %A to i8*
90 %tmp1 = call %struct.__neon_int64x1x4_t @llvm.arm.neon.vld4.v1i64(i8* %tmp0, i32 64)
91 %tmp5 = getelementptr i64* %A, i32 4
92 store i64* %tmp5, i64** %ptr
93 %tmp2 = extractvalue %struct.__neon_int64x1x4_t %tmp1, 0
94 %tmp3 = extractvalue %struct.__neon_int64x1x4_t %tmp1, 2
95 %tmp4 = add <1 x i64> %tmp2, %tmp3
96 ret <1 x i64> %tmp4
97 }
98
86 define <16 x i8> @vld4Qi8(i8* %A) nounwind { 99 define <16 x i8> @vld4Qi8(i8* %A) nounwind {
87 ;CHECK-LABEL: vld4Qi8: 100 ;CHECK-LABEL: vld4Qi8:
88 ;Check the alignment value. Max for this instruction is 256 bits: 101 ;Check the alignment value. Max for this instruction is 256 bits:
89 ;CHECK: vld4.8 {d16, d18, d20, d22}, [r0:256]! 102 ;CHECK: vld4.8 {d16, d18, d20, d22}, [r0:256]!
90 ;CHECK: vld4.8 {d17, d19, d21, d23}, [r0:256] 103 ;CHECK: vld4.8 {d17, d19, d21, d23}, [r0:256]