Lines Matching +full:4 +full:d

7 define <4 x double> @mull_add(<4 x double> %a, <4 x double> %b, <4 x double> %c) {
10 ; CHECK-NEXT: fcmla v4.2d, v0.2d, v2.2d, #0
11 ; CHECK-NEXT: fcmla v5.2d, v1.2d, v3.2d, #0
12 ; CHECK-NEXT: fcmla v4.2d, v0.2d, v2.2d, #90
13 ; CHECK-NEXT: fcmla v5.2d, v1.2d, v3.2d, #90
18 %strided.vec = shufflevector <4 x double> %a, <4 x double> poison, <2 x i32> <i32 0, i32 2>
19 %strided.vec28 = shufflevector <4 x double> %a, <4 x double> poison, <2 x i32> <i32 1, i32 3>
20 %strided.vec30 = shufflevector <4 x double> %b, <4 x double> poison, <2 x i32> <i32 0, i32 2>
21 %strided.vec31 = shufflevector <4 x double> %b, <4 x double> poison, <2 x i32> <i32 1, i32 3>
26 %strided.vec33 = shufflevector <4 x double> %c, <4 x double> poison, <2 x i32> <i32 0, i32 2>
27 %strided.vec34 = shufflevector <4 x double> %c, <4 x double> poison, <2 x i32> <i32 1, i32 3>
28 %4 = fadd fast <2 x double> %strided.vec33, %3
30 %6 = fsub fast <2 x double> %4, %5
32 …%interleaved.vec = shufflevector <2 x double> %6, <2 x double> %7, <4 x i32> <i32 0, i32 2, i32 1,…
33 ret <4 x double> %interleaved.vec
36 ; a * b + c * d
37 define <4 x double> @mul_add_mull(<4 x double> %a, <4 x double> %b, <4 x double> %c, <4 x double> %
40 ; CHECK-NEXT: movi v16.2d, #0000000000000000
41 ; CHECK-NEXT: movi v17.2d, #0000000000000000
42 ; CHECK-NEXT: fcmla v17.2d, v6.2d, v4.2d, #0
43 ; CHECK-NEXT: fcmla v16.2d, v7.2d, v5.2d, #0
44 ; CHECK-NEXT: fcmla v17.2d, v0.2d, v2.2d, #0
45 ; CHECK-NEXT: fcmla v16.2d, v1.2d, v3.2d, #0
46 ; CHECK-NEXT: fcmla v17.2d, v6.2d, v4.2d, #90
47 ; CHECK-NEXT: fcmla v16.2d, v7.2d, v5.2d, #90
48 ; CHECK-NEXT: fcmla v17.2d, v0.2d, v2.2d, #90
49 ; CHECK-NEXT: fcmla v16.2d, v1.2d, v3.2d, #90
54 %strided.vec = shufflevector <4 x double> %a, <4 x double> poison, <2 x i32> <i32 0, i32 2>
55 %strided.vec51 = shufflevector <4 x double> %a, <4 x double> poison, <2 x i32> <i32 1, i32 3>
56 %strided.vec53 = shufflevector <4 x double> %b, <4 x double> poison, <2 x i32> <i32 0, i32 2>
57 %strided.vec54 = shufflevector <4 x double> %b, <4 x double> poison, <2 x i32> <i32 1, i32 3>
62 %strided.vec56 = shufflevector <4 x double> %c, <4 x double> poison, <2 x i32> <i32 0, i32 2>
63 %strided.vec57 = shufflevector <4 x double> %c, <4 x double> poison, <2 x i32> <i32 1, i32 3>
64 %strided.vec59 = shufflevector <4 x double> %d, <4 x double> poison, <2 x i32> <i32 0, i32 2>
65 %strided.vec60 = shufflevector <4 x double> %d, <4 x double> poison, <2 x i32> <i32 1, i32 3>
66 %4 = fmul fast <2 x double> %strided.vec60, %strided.vec56
75 %13 = fadd fast <2 x double> %12, %4
76 …%interleaved.vec = shufflevector <2 x double> %10, <2 x double> %13, <4 x i32> <i32 0, i32 2, i32 …
77 ret <4 x double> %interleaved.vec
80 ; a * b - c * d
81 define <4 x double> @mul_sub_mull(<4 x double> %a, <4 x double> %b, <4 x double> %c, <4 x double> %
84 ; CHECK-NEXT: movi v16.2d, #0000000000000000
85 ; CHECK-NEXT: movi v17.2d, #0000000000000000
86 ; CHECK-NEXT: fcmla v17.2d, v6.2d, v4.2d, #270
87 ; CHECK-NEXT: fcmla v16.2d, v7.2d, v5.2d, #270
88 ; CHECK-NEXT: fcmla v17.2d, v0.2d, v2.2d, #0
89 ; CHECK-NEXT: fcmla v16.2d, v1.2d, v3.2d, #0
90 ; CHECK-NEXT: fcmla v17.2d, v6.2d, v4.2d, #180
91 ; CHECK-NEXT: fcmla v16.2d, v7.2d, v5.2d, #180
92 ; CHECK-NEXT: fcmla v17.2d, v0.2d, v2.2d, #90
93 ; CHECK-NEXT: fcmla v16.2d, v1.2d, v3.2d, #90
98 %strided.vec = shufflevector <4 x double> %a, <4 x double> poison, <2 x i32> <i32 0, i32 2>
99 %strided.vec53 = shufflevector <4 x double> %a, <4 x double> poison, <2 x i32> <i32 1, i32 3>
100 %strided.vec55 = shufflevector <4 x double> %b, <4 x double> poison, <2 x i32> <i32 0, i32 2>
101 %strided.vec56 = shufflevector <4 x double> %b, <4 x double> poison, <2 x i32> <i32 1, i32 3>
106 %strided.vec58 = shufflevector <4 x double> %c, <4 x double> poison, <2 x i32> <i32 0, i32 2>
107 %strided.vec59 = shufflevector <4 x double> %c, <4 x double> poison, <2 x i32> <i32 1, i32 3>
108 %strided.vec61 = shufflevector <4 x double> %d, <4 x double> poison, <2 x i32> <i32 0, i32 2>
109 %strided.vec62 = shufflevector <4 x double> %d, <4 x double> poison, <2 x i32> <i32 1, i32 3>
110 %4 = fmul fast <2 x double> %strided.vec62, %strided.vec59
113 %7 = fadd fast <2 x double> %4, %2
120 …%interleaved.vec = shufflevector <2 x double> %8, <2 x double> %13, <4 x i32> <i32 0, i32 2, i32 1…
121 ret <4 x double> %interleaved.vec
124 ; a * b + conj(c) * d
125 define <4 x double> @mul_conj_mull(<4 x double> %a, <4 x double> %b, <4 x double> %c, <4 x double> …
128 ; CHECK-NEXT: movi v16.2d, #0000000000000000
129 ; CHECK-NEXT: movi v17.2d, #0000000000000000
130 ; CHECK-NEXT: fcmla v17.2d, v0.2d, v2.2d, #0
131 ; CHECK-NEXT: fcmla v16.2d, v1.2d, v3.2d, #0
132 ; CHECK-NEXT: fcmla v17.2d, v0.2d, v2.2d, #90
133 ; CHECK-NEXT: fcmla v16.2d, v1.2d, v3.2d, #90
134 ; CHECK-NEXT: fcmla v17.2d, v4.2d, v6.2d, #0
135 ; CHECK-NEXT: fcmla v16.2d, v5.2d, v7.2d, #0
136 ; CHECK-NEXT: fcmla v17.2d, v4.2d, v6.2d, #270
137 ; CHECK-NEXT: fcmla v16.2d, v5.2d, v7.2d, #270
142 %strided.vec = shufflevector <4 x double> %a, <4 x double> poison, <2 x i32> <i32 0, i32 2>
143 %strided.vec59 = shufflevector <4 x double> %a, <4 x double> poison, <2 x i32> <i32 1, i32 3>
144 %strided.vec61 = shufflevector <4 x double> %b, <4 x double> poison, <2 x i32> <i32 0, i32 2>
145 %strided.vec62 = shufflevector <4 x double> %b, <4 x double> poison, <2 x i32> <i32 1, i32 3>
149 %strided.vec64 = shufflevector <4 x double> %c, <4 x double> poison, <2 x i32> <i32 0, i32 2>
150 %strided.vec65 = shufflevector <4 x double> %c, <4 x double> poison, <2 x i32> <i32 1, i32 3>
151 %strided.vec67 = shufflevector <4 x double> %d, <4 x double> poison, <2 x i32> <i32 0, i32 2>
152 %strided.vec68 = shufflevector <4 x double> %d, <4 x double> poison, <2 x i32> <i32 1, i32 3>
154 %4 = fmul fast <2 x double> %strided.vec67, %strided.vec64
158 %8 = fadd fast <2 x double> %7, %4
164 …%interleaved.vec = shufflevector <2 x double> %9, <2 x double> %13, <4 x i32> <i32 0, i32 2, i32 1…
165 ret <4 x double> %interleaved.vec
168 ; a + b + 1i * c * d
169 define <4 x double> @mul_add_rot_mull(<4 x double> %a, <4 x double> %b, <4 x double> %c, <4 x doubl…
172 ; CHECK-NEXT: zip2 v16.2d, v2.2d, v3.2d
173 ; CHECK-NEXT: zip2 v17.2d, v0.2d, v1.2d
174 ; CHECK-NEXT: zip1 v2.2d, v2.2d, v3.2d
175 ; CHECK-NEXT: zip2 v18.2d, v4.2d, v5.2d
176 ; CHECK-NEXT: zip1 v19.2d, v6.2d, v7.2d
177 ; CHECK-NEXT: zip1 v0.2d, v0.2d, v1.2d
178 ; CHECK-NEXT: zip1 v1.2d, v4.2d, v5.2d
179 ; CHECK-NEXT: zip2 v5.2d, v6.2d, v7.2d
180 ; CHECK-NEXT: fmul v3.2d, v16.2d, v17.2d
181 ; CHECK-NEXT: fmul v4.2d, v2.2d, v17.2d
182 ; CHECK-NEXT: fmla v3.2d, v18.2d, v19.2d
183 ; CHECK-NEXT: fmla v4.2d, v0.2d, v16.2d
184 ; CHECK-NEXT: fmla v3.2d, v1.2d, v5.2d
185 ; CHECK-NEXT: fmla v4.2d, v1.2d, v19.2d
186 ; CHECK-NEXT: fneg v3.2d, v3.2d
187 ; CHECK-NEXT: fmls v4.2d, v18.2d, v5.2d
188 ; CHECK-NEXT: fmla v3.2d, v0.2d, v2.2d
189 ; CHECK-NEXT: zip1 v0.2d, v3.2d, v4.2d
190 ; CHECK-NEXT: zip2 v1.2d, v3.2d, v4.2d
193 %strided.vec = shufflevector <4 x double> %a, <4 x double> poison, <2 x i32> <i32 0, i32 2>
194 %strided.vec79 = shufflevector <4 x double> %a, <4 x double> poison, <2 x i32> <i32 1, i32 3>
195 %strided.vec81 = shufflevector <4 x double> %b, <4 x double> poison, <2 x i32> <i32 0, i32 2>
196 %strided.vec82 = shufflevector <4 x double> %b, <4 x double> poison, <2 x i32> <i32 1, i32 3>
201 %strided.vec84 = shufflevector <4 x double> %c, <4 x double> poison, <2 x i32> <i32 0, i32 2>
202 %strided.vec85 = shufflevector <4 x double> %c, <4 x double> poison, <2 x i32> <i32 1, i32 3>
203 %strided.vec87 = shufflevector <4 x double> %d, <4 x double> poison, <2 x i32> <i32 0, i32 2>
204 %strided.vec88 = shufflevector <4 x double> %d, <4 x double> poison, <2 x i32> <i32 1, i32 3>
205 %4 = fmul fast <2 x double> %strided.vec87, %strided.vec84
212 %11 = fadd fast <2 x double> %10, %4
215 …%interleaved.vec = shufflevector <2 x double> %9, <2 x double> %13, <4 x i32> <i32 0, i32 2, i32 1…
216 ret <4 x double> %interleaved.vec