mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-07-25 13:24:46 +00:00
For ARM, fix assertuib failures for some ld/st 3/4 instruction with wirteback.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@199369 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@@ -61,6 +61,18 @@ define void @vst3i64(i64* %A, <1 x i64>* %B) nounwind {
|
||||
ret void
|
||||
}
|
||||
|
||||
define void @vst3i64_update(i64** %ptr, <1 x i64>* %B) nounwind {
|
||||
;CHECK-LABEL: vst3i64_update
|
||||
;CHECK: vst1.64 {d{{.*}}, d{{.*}}, d{{.*}}}, [r{{.*}}]!
|
||||
%A = load i64** %ptr
|
||||
%tmp0 = bitcast i64* %A to i8*
|
||||
%tmp1 = load <1 x i64>* %B
|
||||
call void @llvm.arm.neon.vst3.v1i64(i8* %tmp0, <1 x i64> %tmp1, <1 x i64> %tmp1, <1 x i64> %tmp1, i32 1)
|
||||
%tmp2 = getelementptr i64* %A, i32 3
|
||||
store i64* %tmp2, i64** %ptr
|
||||
ret void
|
||||
}
|
||||
|
||||
define void @vst3Qi8(i8* %A, <16 x i8>* %B) nounwind {
|
||||
;CHECK-LABEL: vst3Qi8:
|
||||
;Check the alignment value. Max for this instruction is 64 bits:
|
||||
|
Reference in New Issue
Block a user