Mercurial > hg > CbC > CbC_llvm
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] |