Lines Matching full:8
6 define <8 x i16> @combine_vec_udiv_uniform(<8 x i16> %x) {
10 ; SDAG-NEXT: dup v1.8h, w8
11 ; SDAG-NEXT: umull2 v2.4s, v0.8h, v1.8h
13 ; SDAG-NEXT: uzp2 v1.8h, v1.8h, v2.8h
14 ; SDAG-NEXT: sub v0.8h, v0.8h, v1.8h
15 ; SDAG-NEXT: usra v1.8h, v0.8h, #1
16 ; SDAG-NEXT: ushr v0.8h, v1.8h, #4
23 ; GISEL-NEXT: umull2 v2.4s, v0.8h, v1.8h
25 ; GISEL-NEXT: uzp2 v1.8h, v1.8h, v2.8h
26 ; GISEL-NEXT: sub v0.8h, v0.8h, v1.8h
27 ; GISEL-NEXT: usra v1.8h, v0.8h, #1
28 ; GISEL-NEXT: ushr v0.8h, v1.8h, #4
30 %1 = udiv <8 x i16> %x, <i16 23, i16 23, i16 23, i16 23, i16 23, i16 23, i16 23, i16 23>
31 ret <8 x i16> %1
34 define <8 x i16> @combine_vec_udiv_nonuniform(<8 x i16> %x) {
42 ; SDAG-NEXT: ushl v1.8h, v0.8h, v1.8h
43 ; SDAG-NEXT: umull2 v3.4s, v1.8h, v2.8h
47 ; SDAG-NEXT: uzp2 v1.8h, v1.8h, v3.8h
48 ; SDAG-NEXT: sub v0.8h, v0.8h, v1.8h
49 ; SDAG-NEXT: umull2 v3.4s, v0.8h, v2.8h
51 ; SDAG-NEXT: uzp2 v0.8h, v0.8h, v3.8h
52 ; SDAG-NEXT: add v0.8h, v0.8h, v1.8h
54 ; SDAG-NEXT: ushl v0.8h, v0.8h, v1.8h
64 ; GISEL-NEXT: neg v1.8h, v1.8h
65 ; GISEL-NEXT: ushl v1.8h, v0.8h, v1.8h
66 ; GISEL-NEXT: umull2 v3.4s, v1.8h, v2.8h
70 ; GISEL-NEXT: uzp2 v1.8h, v1.8h, v3.8h
71 ; GISEL-NEXT: sub v0.8h, v0.8h, v1.8h
72 ; GISEL-NEXT: umull2 v3.4s, v0.8h, v2.8h
75 ; GISEL-NEXT: uzp2 v0.8h, v0.8h, v3.8h
76 ; GISEL-NEXT: add v0.8h, v0.8h, v1.8h
77 ; GISEL-NEXT: neg v1.8h, v2.8h
78 ; GISEL-NEXT: ushl v0.8h, v0.8h, v1.8h
80 %1 = udiv <8 x i16> %x, <i16 23, i16 34, i16 -23, i16 56, i16 128, i16 -1, i16 -256, i16 -32768>
81 ret <8 x i16> %1
84 define <8 x i16> @combine_vec_udiv_nonuniform2(<8 x i16> %x) {
90 ; SDAG-NEXT: ushl v0.8h, v0.8h, v1.8h
93 ; SDAG-NEXT: umull2 v2.4s, v0.8h, v1.8h
96 ; SDAG-NEXT: uzp2 v0.8h, v0.8h, v2.8h
97 ; SDAG-NEXT: ushl v0.8h, v0.8h, v1.8h
105 ; GISEL-NEXT: neg v1.8h, v1.8h
106 ; GISEL-NEXT: ushl v0.8h, v0.8h, v1.8h
109 ; GISEL-NEXT: umull2 v2.4s, v0.8h, v1.8h
112 ; GISEL-NEXT: neg v1.8h, v1.8h
113 ; GISEL-NEXT: uzp2 v0.8h, v0.8h, v2.8h
114 ; GISEL-NEXT: ushl v0.8h, v0.8h, v1.8h
116 %1 = udiv <8 x i16> %x, <i16 -34, i16 35, i16 36, i16 -37, i16 38, i16 -39, i16 40, i16 -41>
117 ret <8 x i16> %1
120 define <8 x i16> @combine_vec_udiv_nonuniform3(<8 x i16> %x) {
126 ; SDAG-NEXT: umull2 v2.4s, v0.8h, v1.8h
128 ; SDAG-NEXT: uzp2 v1.8h, v1.8h, v2.8h
129 ; SDAG-NEXT: sub v0.8h, v0.8h, v1.8h
130 ; SDAG-NEXT: usra v1.8h, v0.8h, #1
132 ; SDAG-NEXT: ushl v0.8h, v1.8h, v0.8h
140 ; GISEL-NEXT: umull2 v2.4s, v0.8h, v1.8h
142 ; GISEL-NEXT: uzp2 v1.8h, v1.8h, v2.8h
144 ; GISEL-NEXT: sub v0.8h, v0.8h, v1.8h
145 ; GISEL-NEXT: usra v1.8h, v0.8h, #1
146 ; GISEL-NEXT: neg v0.8h, v2.8h
147 ; GISEL-NEXT: ushl v0.8h, v1.8h, v0.8h
149 %1 = udiv <8 x i16> %x, <i16 7, i16 23, i16 25, i16 27, i16 31, i16 47, i16 63, i16 127>
150 ret <8 x i16> %1
160 ; SDAG-NEXT: umull2 v2.8h, v0.16b, v1.16b
161 ; SDAG-NEXT: umull v1.8h, v0.8b, v1.8b
178 ; GISEL-NEXT: umull2 v2.8h, v0.16b, v1.16b
179 ; GISEL-NEXT: umull v1.8h, v0.8b, v1.8b
191 define <8 x i16> @pr38477(<8 x i16> %a0) {
200 ; SDAG-NEXT: umull2 v2.4s, v0.8h, v1.8h
202 ; SDAG-NEXT: uzp2 v1.8h, v1.8h, v2.8h
203 ; SDAG-NEXT: sub v2.8h, v0.8h, v1.8h
204 ; SDAG-NEXT: umull2 v4.4s, v2.8h, v3.8h
208 ; SDAG-NEXT: uzp2 v2.8h, v2.8h, v4.8h
209 ; SDAG-NEXT: add v1.8h, v2.8h, v1.8h
212 ; SDAG-NEXT: ushl v1.8h, v1.8h, v2.8h
225 ; GISEL-NEXT: umull2 v2.4s, v0.8h, v1.8h
227 ; GISEL-NEXT: uzp2 v1.8h, v1.8h, v2.8h
228 ; GISEL-NEXT: sub v2.8h, v0.8h, v1.8h
229 ; GISEL-NEXT: umull2 v4.4s, v2.8h, v3.8h
233 ; GISEL-NEXT: ushll v3.8h, v3.8b, #0
234 ; GISEL-NEXT: uzp2 v2.8h, v2.8h, v4.8h
236 ; GISEL-NEXT: shl v3.8h, v3.8h, #15
237 ; GISEL-NEXT: add v1.8h, v2.8h, v1.8h
238 ; GISEL-NEXT: neg v2.8h, v4.8h
239 ; GISEL-NEXT: ushl v1.8h, v1.8h, v2.8h
240 ; GISEL-NEXT: sshr v2.8h, v3.8h, #15
243 %1 = udiv <8 x i16> %a0, <i16 1, i16 119, i16 73, i16 -111, i16 -3, i16 118, i16 32, i16 31>
244 ret <8 x i16> %1