Lines Matching refs:fsub
8 ; CHECK-NEXT: [[T1:%.*]] = fsub float [[X:%.*]], [[Y:%.*]]
12 %t1 = fsub float %x, %y
13 %t2 = fsub float -0.0, %t1
19 ; CHECK-NEXT: [[T1:%.*]] = fsub float [[X:%.*]], [[Y:%.*]]
23 %t1 = fsub float %x, %y
33 ; CHECK-NEXT: [[T2:%.*]] = fsub nsz float [[Y:%.*]], [[X:%.*]]
36 %t1 = fsub float %x, %y
37 %t2 = fsub nsz float -0.0, %t1
43 ; CHECK-NEXT: [[T2:%.*]] = fsub nsz float [[Y:%.*]], [[X:%.*]]
46 %t1 = fsub float %x, %y
53 ; easier to analyze and generally cheaper than generic fsub.
60 ; CHECK-NEXT: [[T1:%.*]] = fsub float [[X:%.*]], [[Y:%.*]]
65 %t1 = fsub float %x, %y
66 %t2 = fsub nsz float -0.0, %t1
73 ; CHECK-NEXT: [[T1:%.*]] = fsub float [[X:%.*]], [[Y:%.*]]
78 %t1 = fsub float %x, %y
88 ; CHECK-NEXT: [[TMP1:%.*]] = fsub nsz float [[Y:%.*]], [[X:%.*]]
92 %t1 = fsub float %x, %y
93 %t2 = fsub nsz float %z, %t1
106 %r = fsub nsz reassoc float %y, %add
110 ; Same as above: if 'Z' is not -0.0, swap fsub operands and convert to fadd.
114 ; CHECK-NEXT: [[TMP1:%.*]] = fsub float [[Y:%.*]], [[X:%.*]]
118 %t1 = fsub float %x, %y
119 %t2 = fsub float 42.0, %t1
128 ; CHECK-NEXT: [[T2:%.*]] = fsub double [[X]], [[T1]]
132 %t2 = fsub double %x, %t1
143 %r = fsub float %x, 42.0
152 %r = fsub <2 x float> %x, <float 42.0, float -42.0>
161 %r = fsub <2 x float> %x, <float undef, float -42.0>
172 %negy = fsub float -0.0, %y
173 %r = fsub float %x, %negy
183 %r = fsub float %x, %negy
192 %negy = fsub <2 x float> <float -0.0, float -0.0>, %y
193 %r = fsub <2 x float> %x, %negy
203 %r = fsub <2 x float> %x, %negy
212 %negy = fsub <2 x float> <float -0.0, float undef>, %y
213 %r = fsub <2 x float> %x, %negy
225 %t1 = fsub float -0.0, %a
227 %t3 = fsub double %b, %t2
239 %t3 = fsub double %b, %t2
251 %t1 = fsub <2 x double> <double -0.0, double -0.0>, %a
253 %t3 = fsub <2 x float> %b, %t2
265 %t3 = fsub <2 x float> %b, %t2
277 %t1 = fsub float -0.0, %a
279 %t3 = fsub fast double %b, %t2
291 %t3 = fsub fast double %b, %t2
301 ; CHECK-NEXT: [[T3:%.*]] = fsub float [[B:%.*]], [[T2]]
305 %t1 = fsub half -0.0, %a
307 %t3 = fsub float %b, %t2
316 ; CHECK-NEXT: [[T3:%.*]] = fsub float [[B:%.*]], [[T2]]
322 %t3 = fsub float %b, %t2
329 ; the last fsub.
339 %t1 = fsub double -0.0, %a
341 %t3 = fsub float %b, %t2
356 %t3 = fsub float %b, %t2
367 ; CHECK-NEXT: [[T3:%.*]] = fsub float [[B:%.*]], [[T2]]
371 %t1 = fsub double -0.0, %a
373 %t3 = fsub float %b, %t2
382 ; CHECK-NEXT: [[T3:%.*]] = fsub float [[B:%.*]], [[T2]]
388 %t3 = fsub float %b, %t2
400 ; CHECK-NEXT: [[SUB:%.*]] = fsub float [[CONV:%.*]], bitcast (i32 ptrtoint (i16* @b to i32) to f…
403 %sub = fsub float %conv, bitcast (i32 ptrtoint (i16* @b to i32) to float)
413 %neg = fsub double -0.000000e+00, %x
415 %r = fsub double %z, %div
425 %neg = fsub <2 x double> <double -0.0, double -0.0>, %x
427 %r = fsub <2 x double> %z, %div
437 %neg = fsub double -0.000000e+00, %x
439 %r = fsub double %z, %mul
449 %neg = fsub double -0.000000e+00, %x
451 %r = fsub double %z, %mul
460 ; CHECK-NEXT: [[R:%.*]] = fsub float [[Z:%.*]], [[DIV]]
463 %neg = fsub float -0.000000e+00, %x
466 %r = fsub float %z, %div
475 ; CHECK-NEXT: [[R:%.*]] = fsub float [[Z:%.*]], [[DIV]]
478 %neg = fsub float -0.000000e+00, %x
481 %r = fsub float %z, %div
492 ; CHECK-NEXT: [[R:%.*]] = fsub <2 x float> [[Z:%.*]], [[MUL]]
495 %neg = fsub <2 x float> <float -0.0, float -0.0>, %x
498 %r = fsub <2 x float> %z, %mul
507 ; CHECK-NEXT: [[R:%.*]] = fsub float [[Z:%.*]], [[MUL]]
510 %neg = fsub float -0.000000e+00, %x
513 %r = fsub float %z, %mul
525 %neg = fsub float -0.000000e+00, %x
528 %r = fsub float %z, %div
540 %neg = fsub float -0.000000e+00, %x
543 %r = fsub float %z, %div
555 %neg = fsub <2 x float> <float -0.0, float -0.0>, %x
558 %r = fsub <2 x float> %z, %mul
570 %neg = fsub float -0.000000e+00, %x
573 %r = fsub float %z, %mul
583 ; CHECK-NEXT: [[R:%.*]] = fsub float [[Z:%.*]], [[DIV]]
586 %neg = fsub float -0.000000e+00, %x
590 %r = fsub float %z, %div
600 ; CHECK-NEXT: [[R:%.*]] = fsub float [[Z:%.*]], [[DIV]]
603 %neg = fsub float -0.000000e+00, %x
607 %r = fsub float %z, %div
617 ; CHECK-NEXT: [[R:%.*]] = fsub <2 x float> [[Z:%.*]], [[MUL]]
620 %neg = fsub <2 x float> <float -0.0, float -0.0>, %x
624 %r = fsub <2 x float> %z, %mul
634 ; CHECK-NEXT: [[R:%.*]] = fsub float [[Z:%.*]], [[MUL]]
637 %neg = fsub float -0.000000e+00, %x
641 %r = fsub float %z, %mul
649 ; CHECK-NEXT: [[XY:%.*]] = fsub float [[X:%.*]], [[Y:%.*]]
650 ; CHECK-NEXT: [[XYZ:%.*]] = fsub float [[XY]], [[Z:%.*]]
653 %xy = fsub float %x, %y
654 %xyz = fsub float %xy, %z
662 ; CHECK-NEXT: [[XY:%.*]] = fsub float [[X:%.*]], [[Y:%.*]]
663 ; CHECK-NEXT: [[XYZ:%.*]] = fsub nsz float [[XY]], [[Z:%.*]]
666 %xy = fsub float %x, %y
667 %xyz = fsub nsz float %xy, %z
675 ; CHECK-NEXT: [[XY:%.*]] = fsub float [[X:%.*]], [[Y:%.*]]
676 ; CHECK-NEXT: [[XYZ:%.*]] = fsub reassoc float [[XY]], [[Z:%.*]]
679 %xy = fsub float %x, %y
680 %xyz = fsub reassoc float %xy, %z
687 ; CHECK-NEXT: [[XYZ:%.*]] = fsub reassoc nsz float [[X:%.*]], [[TMP1]]
690 %xy = fsub float %x, %y
691 %xyz = fsub nsz reassoc float %xy, %z
698 ; CHECK-NEXT: [[XYZ:%.*]] = fsub fast <2 x double> [[X:%.*]], [[TMP1]]
701 %xy = fsub fast <2 x double> %x, %y
702 %xyz = fsub fast reassoc <2 x double> %xy, %z
710 ; CHECK-NEXT: [[XY:%.*]] = fsub float [[X:%.*]], [[Y:%.*]]
712 ; CHECK-NEXT: [[XYZ:%.*]] = fsub reassoc nsz float [[XY]], [[Z:%.*]]
715 %xy = fsub float %x, %y
717 %xyz = fsub nsz reassoc float %xy, %z
724 ; CHECK-NEXT: [[SUB:%.*]] = fsub float [[NEGX]], [[Y:%.*]]
728 %sub = fsub float %negx, %y
739 %sub = fsub nsz float %negx, %y
749 %negx = fsub float -0.0, %x
750 %sub = fsub fast float %negx, %y
758 ; CHECK-NEXT: [[SUB:%.*]] = fsub fast float [[NEGX]], [[Y:%.*]]
761 %negx = fsub float -0.0, %x
763 %sub = fsub fast float %negx, %y
773 %negx = fsub <2 x float> <float -0.0, float -0.0>, %x
774 %sub = fsub nsz <2 x float> %negx, %y
780 ; CHECK-NEXT: [[SUB:%.*]] = fsub nsz float -4.200000e+01, [[X:%.*]]
784 %sub = fsub nsz float %negx, 42.0
794 ; CHECK-NEXT: [[S2:%.*]] = fsub reassoc nsz float [[TMP1]], [[TMP2]]
797 %s1 = fsub reassoc nsz float %w, %x
799 %s2 = fsub reassoc nsz float %a, %z
810 ; CHECK-NEXT: [[S2:%.*]] = fsub fast <2 x float> [[TMP1]], [[TMP2]]
814 %s1 = fsub <2 x float> %w, %x
816 %s2 = fsub fast <2 x float> %a, %z
827 ; CHECK-NEXT: [[S3:%.*]] = fsub reassoc nsz float [[TMP2]], [[TMP3]]
830 %s1 = fsub reassoc nsz float %v, %w
831 %s2 = fsub reassoc nsz float %x, %y
833 %s3 = fsub reassoc nsz float %a, %z
841 ; CHECK-NEXT: [[S1:%.*]] = fsub fast float [[W:%.*]], [[X:%.*]]
843 ; CHECK-NEXT: [[S2:%.*]] = fsub nsz float [[A]], [[Z:%.*]]
846 %s1 = fsub fast float %w, %x
848 %s2 = fsub nsz float %a, %z
856 ; CHECK-NEXT: [[S1:%.*]] = fsub fast float [[W:%.*]], [[X:%.*]]
859 ; CHECK-NEXT: [[S2:%.*]] = fsub fast float [[A]], [[Z:%.*]]
862 %s1 = fsub fast float %w, %x
865 %s2 = fsub fast float %a, %z
873 ; CHECK-NEXT: [[S1:%.*]] = fsub fast float [[W:%.*]], [[X:%.*]]
876 ; CHECK-NEXT: [[S2:%.*]] = fsub fast float [[A]], [[Z:%.*]]
879 %s1 = fsub fast float %w, %x
882 %s2 = fsub fast float %a, %z