1
; RUN: llc < %s -march=arm -mattr=+neon | FileCheck %s
3
define <8 x i8> @vcnt8(<8 x i8>* %A) nounwind {
6
%tmp1 = load <8 x i8>* %A
7
%tmp2 = call <8 x i8> @llvm.arm.neon.vcnt.v8i8(<8 x i8> %tmp1)
11
define <16 x i8> @vcntQ8(<16 x i8>* %A) nounwind {
14
%tmp1 = load <16 x i8>* %A
15
%tmp2 = call <16 x i8> @llvm.arm.neon.vcnt.v16i8(<16 x i8> %tmp1)
19
declare <8 x i8> @llvm.arm.neon.vcnt.v8i8(<8 x i8>) nounwind readnone
20
declare <16 x i8> @llvm.arm.neon.vcnt.v16i8(<16 x i8>) nounwind readnone
22
define <8 x i8> @vclz8(<8 x i8>* %A) nounwind {
25
%tmp1 = load <8 x i8>* %A
26
%tmp2 = call <8 x i8> @llvm.arm.neon.vclz.v8i8(<8 x i8> %tmp1)
30
define <4 x i16> @vclz16(<4 x i16>* %A) nounwind {
33
%tmp1 = load <4 x i16>* %A
34
%tmp2 = call <4 x i16> @llvm.arm.neon.vclz.v4i16(<4 x i16> %tmp1)
38
define <2 x i32> @vclz32(<2 x i32>* %A) nounwind {
41
%tmp1 = load <2 x i32>* %A
42
%tmp2 = call <2 x i32> @llvm.arm.neon.vclz.v2i32(<2 x i32> %tmp1)
46
define <16 x i8> @vclzQ8(<16 x i8>* %A) nounwind {
49
%tmp1 = load <16 x i8>* %A
50
%tmp2 = call <16 x i8> @llvm.arm.neon.vclz.v16i8(<16 x i8> %tmp1)
54
define <8 x i16> @vclzQ16(<8 x i16>* %A) nounwind {
57
%tmp1 = load <8 x i16>* %A
58
%tmp2 = call <8 x i16> @llvm.arm.neon.vclz.v8i16(<8 x i16> %tmp1)
62
define <4 x i32> @vclzQ32(<4 x i32>* %A) nounwind {
65
%tmp1 = load <4 x i32>* %A
66
%tmp2 = call <4 x i32> @llvm.arm.neon.vclz.v4i32(<4 x i32> %tmp1)
70
declare <8 x i8> @llvm.arm.neon.vclz.v8i8(<8 x i8>) nounwind readnone
71
declare <4 x i16> @llvm.arm.neon.vclz.v4i16(<4 x i16>) nounwind readnone
72
declare <2 x i32> @llvm.arm.neon.vclz.v2i32(<2 x i32>) nounwind readnone
74
declare <16 x i8> @llvm.arm.neon.vclz.v16i8(<16 x i8>) nounwind readnone
75
declare <8 x i16> @llvm.arm.neon.vclz.v8i16(<8 x i16>) nounwind readnone
76
declare <4 x i32> @llvm.arm.neon.vclz.v4i32(<4 x i32>) nounwind readnone
78
define <8 x i8> @vclss8(<8 x i8>* %A) nounwind {
81
%tmp1 = load <8 x i8>* %A
82
%tmp2 = call <8 x i8> @llvm.arm.neon.vcls.v8i8(<8 x i8> %tmp1)
86
define <4 x i16> @vclss16(<4 x i16>* %A) nounwind {
89
%tmp1 = load <4 x i16>* %A
90
%tmp2 = call <4 x i16> @llvm.arm.neon.vcls.v4i16(<4 x i16> %tmp1)
94
define <2 x i32> @vclss32(<2 x i32>* %A) nounwind {
97
%tmp1 = load <2 x i32>* %A
98
%tmp2 = call <2 x i32> @llvm.arm.neon.vcls.v2i32(<2 x i32> %tmp1)
102
define <16 x i8> @vclsQs8(<16 x i8>* %A) nounwind {
105
%tmp1 = load <16 x i8>* %A
106
%tmp2 = call <16 x i8> @llvm.arm.neon.vcls.v16i8(<16 x i8> %tmp1)
110
define <8 x i16> @vclsQs16(<8 x i16>* %A) nounwind {
113
%tmp1 = load <8 x i16>* %A
114
%tmp2 = call <8 x i16> @llvm.arm.neon.vcls.v8i16(<8 x i16> %tmp1)
118
define <4 x i32> @vclsQs32(<4 x i32>* %A) nounwind {
121
%tmp1 = load <4 x i32>* %A
122
%tmp2 = call <4 x i32> @llvm.arm.neon.vcls.v4i32(<4 x i32> %tmp1)
126
declare <8 x i8> @llvm.arm.neon.vcls.v8i8(<8 x i8>) nounwind readnone
127
declare <4 x i16> @llvm.arm.neon.vcls.v4i16(<4 x i16>) nounwind readnone
128
declare <2 x i32> @llvm.arm.neon.vcls.v2i32(<2 x i32>) nounwind readnone
130
declare <16 x i8> @llvm.arm.neon.vcls.v16i8(<16 x i8>) nounwind readnone
131
declare <8 x i16> @llvm.arm.neon.vcls.v8i16(<8 x i16>) nounwind readnone
132
declare <4 x i32> @llvm.arm.neon.vcls.v4i32(<4 x i32>) nounwind readnone