Lines Matching +full:2 +full:d

6 declare <2 x float> @llvm.sqrt.v2f32(<2 x float>) #0
10 declare <2 x double> @llvm.sqrt.v2f64(<2 x double>) #0
59 define <2 x float> @f2sqrt(<2 x float> %a) #0 {
62 ; FAULT-NEXT: fsqrt v0.2s, v0.2s
67 ; CHECK-NEXT: frsqrte v1.2s, v0.2s
68 ; CHECK-NEXT: fmul v2.2s, v1.2s, v1.2s
69 ; CHECK-NEXT: frsqrts v2.2s, v0.2s, v2.2s
70 ; CHECK-NEXT: fmul v1.2s, v1.2s, v2.2s
71 ; CHECK-NEXT: fmul v2.2s, v1.2s, v1.2s
72 ; CHECK-NEXT: fmul v1.2s, v0.2s, v1.2s
73 ; CHECK-NEXT: frsqrts v2.2s, v0.2s, v2.2s
74 ; CHECK-NEXT: fmul v1.2s, v1.2s, v2.2s
75 ; CHECK-NEXT: fcmeq v2.2s, v0.2s, #0.0
78 %1 = tail call fast <2 x float> @llvm.sqrt.v2f32(<2 x float> %a)
79 ret <2 x float> %1
191 define <2 x double> @d2sqrt(<2 x double> %a) #0 {
194 ; FAULT-NEXT: fsqrt v0.2d, v0.2d
199 ; CHECK-NEXT: frsqrte v1.2d, v0.2d
200 ; CHECK-NEXT: fmul v2.2d, v1.2d, v1.2d
201 ; CHECK-NEXT: frsqrts v2.2d, v0.2d, v2.2d
202 ; CHECK-NEXT: fmul v1.2d, v1.2d, v2.2d
203 ; CHECK-NEXT: fmul v2.2d, v1.2d, v1.2d
204 ; CHECK-NEXT: frsqrts v2.2d, v0.2d, v2.2d
205 ; CHECK-NEXT: fmul v1.2d, v1.2d, v2.2d
206 ; CHECK-NEXT: fmul v2.2d, v1.2d, v1.2d
207 ; CHECK-NEXT: fmul v1.2d, v0.2d, v1.2d
208 ; CHECK-NEXT: frsqrts v2.2d, v0.2d, v2.2d
209 ; CHECK-NEXT: fmul v1.2d, v1.2d, v2.2d
210 ; CHECK-NEXT: fcmeq v2.2d, v0.2d, #0.0
213 %1 = tail call fast <2 x double> @llvm.sqrt.v2f64(<2 x double> %a)
214 ret <2 x double> %1
220 ; FAULT-NEXT: fsqrt v0.2d, v0.2d
221 ; FAULT-NEXT: fsqrt v1.2d, v1.2d
226 ; CHECK-NEXT: frsqrte v2.2d, v0.2d
227 ; CHECK-NEXT: frsqrte v3.2d, v1.2d
228 ; CHECK-NEXT: fmul v4.2d, v2.2d, v2.2d
229 ; CHECK-NEXT: frsqrts v4.2d, v0.2d, v4.2d
230 ; CHECK-NEXT: fmul v5.2d, v3.2d, v3.2d
231 ; CHECK-NEXT: frsqrts v5.2d, v1.2d, v5.2d
232 ; CHECK-NEXT: fmul v2.2d, v2.2d, v4.2d
233 ; CHECK-NEXT: fmul v4.2d, v2.2d, v2.2d
234 ; CHECK-NEXT: frsqrts v4.2d, v0.2d, v4.2d
235 ; CHECK-NEXT: fmul v3.2d, v3.2d, v5.2d
236 ; CHECK-NEXT: fmul v5.2d, v3.2d, v3.2d
237 ; CHECK-NEXT: frsqrts v5.2d, v1.2d, v5.2d
238 ; CHECK-NEXT: fmul v2.2d, v2.2d, v4.2d
239 ; CHECK-NEXT: fmul v4.2d, v2.2d, v2.2d
240 ; CHECK-NEXT: fmul v2.2d, v0.2d, v2.2d
241 ; CHECK-NEXT: frsqrts v4.2d, v0.2d, v4.2d
242 ; CHECK-NEXT: fmul v3.2d, v3.2d, v5.2d
243 ; CHECK-NEXT: fmul v5.2d, v3.2d, v3.2d
244 ; CHECK-NEXT: fmul v3.2d, v1.2d, v3.2d
245 ; CHECK-NEXT: frsqrts v5.2d, v1.2d, v5.2d
246 ; CHECK-NEXT: fmul v2.2d, v2.2d, v4.2d
247 ; CHECK-NEXT: fcmeq v4.2d, v0.2d, #0.0
249 ; CHECK-NEXT: fmul v3.2d, v3.2d, v5.2d
250 ; CHECK-NEXT: fcmeq v5.2d, v1.2d, #0.0
276 %2 = fdiv fast float 1.000000e+00, %1
277 ret float %2
280 define <2 x float> @f2rsqrt(<2 x float> %a) #0 {
283 ; FAULT-NEXT: fsqrt v0.2s, v0.2s
284 ; FAULT-NEXT: fmov v1.2s, #1.00000000
285 ; FAULT-NEXT: fdiv v0.2s, v1.2s, v0.2s
290 ; CHECK-NEXT: frsqrte v1.2s, v0.2s
291 ; CHECK-NEXT: fmul v2.2s, v1.2s, v1.2s
292 ; CHECK-NEXT: frsqrts v2.2s, v0.2s, v2.2s
293 ; CHECK-NEXT: fmul v1.2s, v1.2s, v2.2s
294 ; CHECK-NEXT: fmul v2.2s, v1.2s, v1.2s
295 ; CHECK-NEXT: frsqrts v0.2s, v0.2s, v2.2s
296 ; CHECK-NEXT: fmul v0.2s, v1.2s, v0.2s
298 %1 = tail call fast <2 x float> @llvm.sqrt.v2f32(<2 x float> %a)
299 %2 = fdiv fast <2 x float> <float 1.000000e+00, float 1.000000e+00>, %1
300 ret <2 x float> %2
322 …%2 = fdiv fast <4 x float> <float 1.000000e+00, float 1.000000e+00, float 1.000000e+00, float 1.00…
323 ret <4 x float> %2
354 …%2 = fdiv fast <8 x float> <float 1.000000e+00, float 1.000000e+00, float 1.000000e+00, float 1.00…
355 ret <8 x float> %2
380 %2 = fdiv fast double 1.000000e+00, %1
381 ret double %2
384 define <2 x double> @d2rsqrt(<2 x double> %a) #0 {
387 ; FAULT-NEXT: fsqrt v0.2d, v0.2d
388 ; FAULT-NEXT: fmov v1.2d, #1.00000000
389 ; FAULT-NEXT: fdiv v0.2d, v1.2d, v0.2d
394 ; CHECK-NEXT: frsqrte v1.2d, v0.2d
395 ; CHECK-NEXT: fmul v2.2d, v1.2d, v1.2d
396 ; CHECK-NEXT: frsqrts v2.2d, v0.2d, v2.2d
397 ; CHECK-NEXT: fmul v1.2d, v1.2d, v2.2d
398 ; CHECK-NEXT: fmul v2.2d, v1.2d, v1.2d
399 ; CHECK-NEXT: frsqrts v2.2d, v0.2d, v2.2d
400 ; CHECK-NEXT: fmul v1.2d, v1.2d, v2.2d
401 ; CHECK-NEXT: fmul v2.2d, v1.2d, v1.2d
402 ; CHECK-NEXT: frsqrts v0.2d, v0.2d, v2.2d
403 ; CHECK-NEXT: fmul v0.2d, v1.2d, v0.2d
405 %1 = tail call fast <2 x double> @llvm.sqrt.v2f64(<2 x double> %a)
406 %2 = fdiv fast <2 x double> <double 1.000000e+00, double 1.000000e+00>, %1
407 ret <2 x double> %2
413 ; FAULT-NEXT: fsqrt v0.2d, v0.2d
414 ; FAULT-NEXT: fmov v2.2d, #1.00000000
415 ; FAULT-NEXT: fsqrt v1.2d, v1.2d
416 ; FAULT-NEXT: fdiv v0.2d, v2.2d, v0.2d
417 ; FAULT-NEXT: fdiv v1.2d, v2.2d, v1.2d
422 ; CHECK-NEXT: frsqrte v2.2d, v0.2d
423 ; CHECK-NEXT: frsqrte v3.2d, v1.2d
424 ; CHECK-NEXT: fmul v4.2d, v2.2d, v2.2d
425 ; CHECK-NEXT: frsqrts v4.2d, v0.2d, v4.2d
426 ; CHECK-NEXT: fmul v5.2d, v3.2d, v3.2d
427 ; CHECK-NEXT: frsqrts v5.2d, v1.2d, v5.2d
428 ; CHECK-NEXT: fmul v2.2d, v2.2d, v4.2d
429 ; CHECK-NEXT: fmul v4.2d, v2.2d, v2.2d
430 ; CHECK-NEXT: frsqrts v4.2d, v0.2d, v4.2d
431 ; CHECK-NEXT: fmul v3.2d, v3.2d, v5.2d
432 ; CHECK-NEXT: fmul v5.2d, v3.2d, v3.2d
433 ; CHECK-NEXT: frsqrts v5.2d, v1.2d, v5.2d
434 ; CHECK-NEXT: fmul v2.2d, v2.2d, v4.2d
435 ; CHECK-NEXT: fmul v4.2d, v2.2d, v2.2d
436 ; CHECK-NEXT: frsqrts v0.2d, v0.2d, v4.2d
437 ; CHECK-NEXT: fmul v3.2d, v3.2d, v5.2d
438 ; CHECK-NEXT: fmul v4.2d, v3.2d, v3.2d
439 ; CHECK-NEXT: frsqrts v1.2d, v1.2d, v4.2d
440 ; CHECK-NEXT: fmul v0.2d, v2.2d, v0.2d
441 ; CHECK-NEXT: fmul v1.2d, v3.2d, v1.2d
444 …%2 = fdiv fast <4 x double> <double 1.000000e+00, double 1.000000e+00, double 1.000000e+00, double…
445 ret <4 x double> %2
473 define <2 x double> @sqrt_fdiv_common_operand_vec(<2 x double> %x) nounwind {
476 ; FAULT-NEXT: fsqrt v0.2d, v0.2d
481 ; CHECK-NEXT: frsqrte v1.2d, v0.2d
482 ; CHECK-NEXT: fmul v2.2d, v1.2d, v1.2d
483 ; CHECK-NEXT: frsqrts v2.2d, v0.2d, v2.2d
484 ; CHECK-NEXT: fmul v1.2d, v1.2d, v2.2d
485 ; CHECK-NEXT: fmul v2.2d, v1.2d, v1.2d
486 ; CHECK-NEXT: frsqrts v2.2d, v0.2d, v2.2d
487 ; CHECK-NEXT: fmul v1.2d, v1.2d, v2.2d
488 ; CHECK-NEXT: fmul v2.2d, v1.2d, v1.2d
489 ; CHECK-NEXT: frsqrts v2.2d, v0.2d, v2.2d
490 ; CHECK-NEXT: fmul v1.2d, v1.2d, v2.2d
491 ; CHECK-NEXT: fmul v0.2d, v0.2d, v1.2d
493 %sqrt = call <2 x double> @llvm.sqrt.v2f64(<2 x double> %x)
494 %r = fdiv arcp nsz reassoc <2 x double> %x, %sqrt
495 ret <2 x double> %r