Lines Matching refs:fast

4 ; - InstCombine/fast-basictest.ll
5 ; - PhaseOrdering/fast-basictest.ll
6 ; - PhaseOrdering/fast-reassociate-gvn.ll
7 ; - Reassociate/fast-basictest.ll
18 ; CHECK-NEXT: [[REG116:%.*]] = fadd fast float [[REG109:%.*]], 0.000000e+00
19 ; CHECK-NEXT: [[REG117:%.*]] = fadd fast float [[REG116]], [[REG1111:%.*]]
22 %reg115 = fadd fast float %reg109, -3.000000e+01
23 %reg116 = fadd fast float %reg115, %reg1111
24 %reg117 = fadd fast float %reg116, 3.000000e+01
60 ; If two sums of the same operands in different order are counted with 'fast'
75 ; CHECK-NEXT: [[T1:%.*]] = fadd fast float [[B]], [[A]]
76 ; CHECK-NEXT: [[T2:%.*]] = fadd fast float [[T1]], [[C]]
77 ; CHECK-NEXT: [[T3:%.*]] = fadd fast float [[B]], [[A]]
78 ; CHECK-NEXT: [[T4:%.*]] = fadd fast float [[T3]], [[C]]
86 %t1 = fadd fast float %A, %B
87 %t2 = fadd fast float %t1, %C
88 %t3 = fadd fast float %A, %C
89 %t4 = fadd fast float %t3, %B
102 ; CHECK-NEXT: [[T1:%.*]] = fadd fast float [[B]], [[A]]
103 ; CHECK-NEXT: [[T2:%.*]] = fadd fast float [[T1]], [[C]]
104 ; CHECK-NEXT: [[T3:%.*]] = fadd fast float [[B]], [[A]]
105 ; CHECK-NEXT: [[T4:%.*]] = fadd fast float [[T3]], [[C]]
113 %t1 = fadd fast float %A, %B
114 %t2 = fadd fast float %C, %t1
115 %t3 = fadd fast float %C, %A
116 %t4 = fadd fast float %t3, %B
129 ; CHECK-NEXT: [[T1:%.*]] = fadd fast float [[B]], [[A]]
130 ; CHECK-NEXT: [[T2:%.*]] = fadd fast float [[T1]], [[C]]
131 ; CHECK-NEXT: [[T3:%.*]] = fadd fast float [[B]], [[A]]
132 ; CHECK-NEXT: [[T4:%.*]] = fadd fast float [[T3]], [[C]]
140 %t1 = fadd fast float %B, %A
141 %t2 = fadd fast float %C, %t1
142 %t3 = fadd fast float %C, %A
143 %t4 = fadd fast float %t3, %B
153 ; CHECK-NEXT: [[REASS_ADD1:%.*]] = fadd fast float [[C:%.*]], [[B:%.*]]
154 ; CHECK-NEXT: [[REASS_MUL2:%.*]] = fmul fast float [[A:%.*]], [[A]]
155 ; CHECK-NEXT: [[REASS_MUL:%.*]] = fmul fast float [[REASS_MUL2]], [[REASS_ADD1]]
158 %aa = fmul fast float %A, %A
159 %aab = fmul fast float %aa, %B
160 %ac = fmul fast float %A, %C
161 %aac = fmul fast float %ac, %A
162 %r = fadd fast float %aab, %aac
186 ; CHECK-NEXT: [[B:%.*]] = fmul fast float [[Y:%.*]], [[X:%.*]]
187 ; CHECK-NEXT: [[TMP1:%.*]] = fsub fast float [[Z:%.*]], [[B]]
190 %A = fsub fast float 0.0, %X
191 %B = fmul fast float %A, %Y
192 %C = fadd fast float %B, %Z
198 ; CHECK-NEXT: [[B:%.*]] = fmul fast float [[Y:%.*]], [[X:%.*]]
199 ; CHECK-NEXT: [[TMP1:%.*]] = fsub fast float [[Z:%.*]], [[B]]
202 %A = fneg fast float %X
203 %B = fmul fast float %A, %Y
204 %C = fadd fast float %B, %Z
252 ; CHECK-NEXT: [[FACTOR:%.*]] = fmul fast float [[X:%.*]], 9.400000e+01
255 %Y = fmul fast float %X, 4.700000e+01
256 %Z = fadd fast float %Y, %Y
265 ; CHECK-NEXT: [[FACTOR:%.*]] = fmul fast float [[X:%.*]], 4.000000e+00
268 %Y = fadd fast float %X ,%X
269 %Z = fadd fast float %Y, %X
270 %W = fadd fast float %Z, %X
276 ; CHECK-NEXT: [[FACTOR:%.*]] = fmul fast float [[W:%.*]], 3.810000e+02
279 %X = fmul fast float %W, 127.0
280 %Y = fadd fast float %X ,%X
281 %Z = fadd fast float %Y, %X
287 ; CHECK-NEXT: [[FACTOR:%.*]] = fmul fast float [[X:%.*]], -3.000000e+00
288 ; CHECK-NEXT: [[Z:%.*]] = fadd fast float [[FACTOR]], 6.000000e+00
291 %A = fsub fast float 1.000000e+00, %X
292 %B = fsub fast float 2.000000e+00, %X
293 %C = fsub fast float 3.000000e+00, %X
294 %Y = fadd fast float %A ,%B
295 %Z = fadd fast float %Y, %C
301 ; CHECK-NEXT: [[B:%.*]] = fmul fast float [[X2:%.*]], [[X1:%.*]]
302 ; CHECK-NEXT: [[C:%.*]] = fmul fast float [[X3:%.*]], [[X1]]
303 ; CHECK-NEXT: [[TMP1:%.*]] = fsub fast float [[C]], [[B]]
306 %A = fsub fast float 0.000000e+00, %X1
307 %B = fmul fast float %A, %X2 ; -X1*X2
308 %C = fmul fast float %X1, %X3 ; X1*X3
309 %D = fadd fast float %B, %C ; -X1*X2 + X1*X3 -> X1*(X3-X2)
315 ; CHECK-NEXT: [[B:%.*]] = fmul fast float [[X2:%.*]], [[X1:%.*]]
316 ; CHECK-NEXT: [[C:%.*]] = fmul fast float [[X3:%.*]], [[X1]]
317 ; CHECK-NEXT: [[TMP1:%.*]] = fsub fast float [[C]], [[B]]
320 %A = fneg fast float %X1
321 %B = fmul fast float %A, %X2 ; -X1*X2
322 %C = fmul fast float %X1, %X3 ; X1*X3
323 %D = fadd fast float %B, %C ; -X1*X2 + X1*X3 -> X1*(X3-X2)
364 ; CHECK-NEXT: [[B:%.*]] = fmul fast float [[X1:%.*]], 4.700000e+01
365 ; CHECK-NEXT: [[C:%.*]] = fmul fast float [[X2:%.*]], 4.700000e+01
366 ; CHECK-NEXT: [[TMP1:%.*]] = fsub fast float [[B]], [[C]]
369 %B = fmul fast float %X1, 47. ; X1*47
370 %C = fmul fast float %X2, -47. ; X2*-47
371 %D = fadd fast float %B, %C ; X1*47 + X2*-47 -> 47*(X1-X2)
403 ; CHECK-NEXT: [[T2:%.*]] = fmul fast float [[ARG:%.*]], 1.440000e+02
406 %t1 = fmul fast float 1.200000e+01, %arg
407 %t2 = fmul fast float %t1, 1.200000e+01
431 ; CHECK-NEXT: [[TMP1:%.*]] = fsub fast float 0.000000e+00, [[A:%.*]]
432 ; CHECK-NEXT: [[TMP2:%.*]] = fadd fast float [[B:%.*]], 1.234000e+03
435 %1 = fadd fast float %a, 1234.0
436 %2 = fadd fast float %b, %1
437 %3 = fsub fast float 0.0, %a
438 %4 = fadd fast float %2, %3
445 ; CHECK-NEXT: [[TMP1:%.*]] = fneg fast float [[A:%.*]]
446 ; CHECK-NEXT: [[TMP2:%.*]] = fadd fast float [[B:%.*]], 1.234000e+03
449 %1 = fadd fast float %a, 1234.0
450 %2 = fadd fast float %b, %1
451 %3 = fneg fast float %a
452 %4 = fadd fast float %2, %3
491 ; CHECK-NEXT: [[C:%.*]] = fmul fast float [[A:%.*]], 1.234500e+04
492 ; CHECK-NEXT: [[E:%.*]] = fmul fast float [[C]], [[B:%.*]]
493 ; CHECK-NEXT: [[F:%.*]] = fmul fast float [[E]], [[Z:%.*]]
494 ; CHECK-NEXT: [[TMP1:%.*]] = fadd fast float [[F]], 0.000000e+00
497 %c = fsub fast float 0.000000e+00, %z
498 %d = fmul fast float %a, %b
499 %e = fmul fast float %c, %d
500 %f = fmul fast float %e, 1.234500e+04
501 %g = fsub fast float 0.000000e+00, %f
507 ; CHECK-NEXT: [[E:%.*]] = fmul fast float [[A:%.*]], 1.234500e+04
508 ; CHECK-NEXT: [[F:%.*]] = fmul fast float [[E]], [[B:%.*]]
509 ; CHECK-NEXT: [[G:%.*]] = fmul fast float [[F]], [[Z:%.*]]
512 %c = fneg fast float %z
513 %d = fmul fast float %a, %b
514 %e = fmul fast float %c, %d
515 %f = fmul fast float %e, 1.234500e+04
516 %g = fneg fast float %f
538 ; - fadd fast x, 0
539 ; ... as 'fast' implies 'nsz'
542 ; CHECK-NEXT: [[C:%.*]] = fmul fast float [[A:%.*]], 4.000000e+01
543 ; CHECK-NEXT: [[E:%.*]] = fmul fast float [[C]], [[Z:%.*]]
544 ; CHECK-NEXT: [[TMP1:%.*]] = fadd fast float [[E]], 0.000000e+00
547 %d = fmul fast float %z, 4.000000e+01
548 %c = fsub fast float 0.000000e+00, %d
549 %e = fmul fast float %a, %c
550 %f = fsub fast float 0.000000e+00, %e
556 ; CHECK-NEXT: [[E:%.*]] = fmul fast float [[A:%.*]], 4.000000e+01
557 ; CHECK-NEXT: [[F:%.*]] = fmul fast float [[E]], [[Z:%.*]]
560 %d = fmul fast float %z, 4.000000e+01
561 %c = fneg fast float %d
562 %e = fmul fast float %a, %c
563 %f = fneg fast float %e
568 ; TODO: check if we can remove fadd fast x, 0 as 'fast' implies 'nsz'
571 ; CHECK-NEXT: [[B_NEG:%.*]] = fneg fast float [[B:%.*]]
572 ; CHECK-NEXT: [[Y:%.*]] = fadd fast float [[A:%.*]], 0.000000e+00
573 ; CHECK-NEXT: [[Z:%.*]] = fadd fast float [[Y]], [[B_NEG]]
576 %X = fadd fast float -1.200000e+01, %A
577 %Y = fsub fast float %X, %B
578 %Z = fadd fast float %Y, 1.200000e+01