mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-08-05 13:26:55 +00:00
Set alignment operand for NEON VLD instructions.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114696 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@@ -13,8 +13,9 @@
|
||||
|
||||
define <8 x i8> @vld3i8(i8* %A) nounwind {
|
||||
;CHECK: vld3i8:
|
||||
;CHECK: vld3.8
|
||||
%tmp1 = call %struct.__neon_int8x8x3_t @llvm.arm.neon.vld3.v8i8(i8* %A, i32 1)
|
||||
;Check the alignment value. Max for this instruction is 64 bits:
|
||||
;CHECK: vld3.8 {d0, d1, d2}, [r0, :64]
|
||||
%tmp1 = call %struct.__neon_int8x8x3_t @llvm.arm.neon.vld3.v8i8(i8* %A, i32 32)
|
||||
%tmp2 = extractvalue %struct.__neon_int8x8x3_t %tmp1, 0
|
||||
%tmp3 = extractvalue %struct.__neon_int8x8x3_t %tmp1, 2
|
||||
%tmp4 = add <8 x i8> %tmp2, %tmp3
|
||||
@@ -56,9 +57,10 @@ define <2 x float> @vld3f(float* %A) nounwind {
|
||||
|
||||
define <1 x i64> @vld3i64(i64* %A) nounwind {
|
||||
;CHECK: vld3i64:
|
||||
;CHECK: vld1.64
|
||||
;Check the alignment value. Max for this instruction is 64 bits:
|
||||
;CHECK: vld1.64 {d0, d1, d2}, [r0, :64]
|
||||
%tmp0 = bitcast i64* %A to i8*
|
||||
%tmp1 = call %struct.__neon_int64x1x3_t @llvm.arm.neon.vld3.v1i64(i8* %tmp0, i32 1)
|
||||
%tmp1 = call %struct.__neon_int64x1x3_t @llvm.arm.neon.vld3.v1i64(i8* %tmp0, i32 16)
|
||||
%tmp2 = extractvalue %struct.__neon_int64x1x3_t %tmp1, 0
|
||||
%tmp3 = extractvalue %struct.__neon_int64x1x3_t %tmp1, 2
|
||||
%tmp4 = add <1 x i64> %tmp2, %tmp3
|
||||
@@ -67,9 +69,10 @@ define <1 x i64> @vld3i64(i64* %A) nounwind {
|
||||
|
||||
define <16 x i8> @vld3Qi8(i8* %A) nounwind {
|
||||
;CHECK: vld3Qi8:
|
||||
;CHECK: vld3.8
|
||||
;CHECK: vld3.8
|
||||
%tmp1 = call %struct.__neon_int8x16x3_t @llvm.arm.neon.vld3.v16i8(i8* %A, i32 1)
|
||||
;Check the alignment value. Max for this instruction is 64 bits:
|
||||
;CHECK: vld3.8 {d0, d2, d4}, [r0, :64]!
|
||||
;CHECK: vld3.8 {d1, d3, d5}, [r0, :64]
|
||||
%tmp1 = call %struct.__neon_int8x16x3_t @llvm.arm.neon.vld3.v16i8(i8* %A, i32 32)
|
||||
%tmp2 = extractvalue %struct.__neon_int8x16x3_t %tmp1, 0
|
||||
%tmp3 = extractvalue %struct.__neon_int8x16x3_t %tmp1, 2
|
||||
%tmp4 = add <16 x i8> %tmp2, %tmp3
|
||||
|
Reference in New Issue
Block a user