mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-08-05 13:26:55 +00:00
Remove NEON vmovn intrinsic, replacing it with vector truncate operations.
Auto-upgrade the old intrinsic and update tests. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112507 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@@ -240,7 +240,7 @@ define <8 x i8> @vmovni16(<8 x i16>* %A) nounwind {
|
||||
;CHECK: vmovni16:
|
||||
;CHECK: vmovn.i16
|
||||
%tmp1 = load <8 x i16>* %A
|
||||
%tmp2 = call <8 x i8> @llvm.arm.neon.vmovn.v8i8(<8 x i16> %tmp1)
|
||||
%tmp2 = trunc <8 x i16> %tmp1 to <8 x i8>
|
||||
ret <8 x i8> %tmp2
|
||||
}
|
||||
|
||||
@@ -248,7 +248,7 @@ define <4 x i16> @vmovni32(<4 x i32>* %A) nounwind {
|
||||
;CHECK: vmovni32:
|
||||
;CHECK: vmovn.i32
|
||||
%tmp1 = load <4 x i32>* %A
|
||||
%tmp2 = call <4 x i16> @llvm.arm.neon.vmovn.v4i16(<4 x i32> %tmp1)
|
||||
%tmp2 = trunc <4 x i32> %tmp1 to <4 x i16>
|
||||
ret <4 x i16> %tmp2
|
||||
}
|
||||
|
||||
@@ -256,14 +256,10 @@ define <2 x i32> @vmovni64(<2 x i64>* %A) nounwind {
|
||||
;CHECK: vmovni64:
|
||||
;CHECK: vmovn.i64
|
||||
%tmp1 = load <2 x i64>* %A
|
||||
%tmp2 = call <2 x i32> @llvm.arm.neon.vmovn.v2i32(<2 x i64> %tmp1)
|
||||
%tmp2 = trunc <2 x i64> %tmp1 to <2 x i32>
|
||||
ret <2 x i32> %tmp2
|
||||
}
|
||||
|
||||
declare <8 x i8> @llvm.arm.neon.vmovn.v8i8(<8 x i16>) nounwind readnone
|
||||
declare <4 x i16> @llvm.arm.neon.vmovn.v4i16(<4 x i32>) nounwind readnone
|
||||
declare <2 x i32> @llvm.arm.neon.vmovn.v2i32(<2 x i64>) nounwind readnone
|
||||
|
||||
define <8 x i8> @vqmovns16(<8 x i16>* %A) nounwind {
|
||||
;CHECK: vqmovns16:
|
||||
;CHECK: vqmovn.s16
|
||||
|
Reference in New Issue
Block a user