Lines Matching refs:f1
31 ; C * f1 + f1 = (C+1) * f1
32 define double @fold3(double %f1) {
33 %t1 = fmul fast double 2.000000e+00, %f1
34 %t2 = fadd fast double %f1, %t1
37 ; CHECK: fmul fast double %f1, 3.000000e+00
41 define float @fold4(float %f1, float %f2) {
42 %sub = fsub float 4.000000e+00, %f1
47 ; CHECK: %1 = fadd fast float %f1, %f2
52 define float @fold5(float %f1, float %f2) {
53 %add = fadd float %f1, 4.000000e+00
57 ; CHECK: fadd fast float %f1, 9.000000e+00
61 define float @fold6(float %f1) {
62 %t1 = fadd fast float %f1, %f1
63 %t2 = fadd fast float %f1, %t1
66 ; CHECK: fmul fast float %f1, 3.000000e+00
70 define float @fold7(float %f1) {
71 %t1 = fmul fast float %f1, 5.000000e+00
72 %t2 = fadd fast float %f1, %f1
76 ; CHECK: fmul fast float %f1, 7.000000e+00
80 define float @fold8(float %f1) {
81 %t1 = fadd fast float %f1, %f1
82 %t2 = fadd fast float %f1, %f1
86 ; CHECK: fmul fast float %f1, 4.000000e+00
90 define float @fold9(float %f1, float %f2) {
91 %t1 = fadd float %f1, %f2
92 %t3 = fsub fast float %f1, %t1
99 ; Let C3 = C1 + C2. (f1 + C1) + (f2 + C2) => (f1 + f2) + C3 instead of
100 ; "(f1 + C3) + f2" or "(f2 + C3) + f1". Placing constant-addend at the
104 define float @fold10(float %f1, float %f2) {
105 %t1 = fadd fast float 2.000000e+00, %f1
115 define float @fail1(float %f1, float %f2) {
116 %conv3 = fadd fast float %f1, -1.000000e+00
124 define double @fail2(double %f1, double %f2) {
125 %t1 = fsub fast double %f1, %f2
126 %t2 = fadd fast double %f1, %f2
186 define float @fmul_distribute1(float %f1) {
187 %t1 = fmul float %f1, 6.0e+3
192 ; CHECK: %1 = fmul fast float %f1, 3.000000e+07
197 define double @fmul_distribute2(double %f1, double %f2) {
198 %t1 = fdiv double %f1, 3.0e+0
205 ; CHECK: %1 = fdiv fast double %f1, 0x7FE8000000000000
209 ; 5.0e-1 * DBL_MIN yields denormal, so "(f1*3.0 + 5.0e-1) * DBL_MIN" cannot
210 ; be simplified into f1 * (3.0*DBL_MIN) + (5.0e-1*DBL_MIN)
211 define double @fmul_distribute3(double %f1) {
212 %t1 = fdiv double %f1, 3.0e+0
222 define float @fmul_distribute4(float %f1) {
223 %t1 = fmul float %f1, 6.0e+3
228 ; CHECK: %1 = fmul fast float %f1, 3.000000e+07
233 define float @fmul2(float %f1) {
234 %t1 = fdiv float 2.0e+3, %f1
238 ; CHECK: fdiv fast float 1.200000e+07, %f1
243 define float @fmul2_disable(float %f1) {
244 %div = fdiv fast float 1.000000e+00, %f1
254 define float @fmul3(float %f1, float %f2) {
255 %t1 = fdiv float %f1, 2.0e+3
259 ; CHECK: fmul fast float %f1, 3.000000e+00
262 define <4 x float> @fmul3_vec(<4 x float> %f1, <4 x float> %f2) {
263 %t1 = fdiv <4 x float> %f1, <float 2.0e+3, float 3.0e+3, float 2.0e+3, float 1.0e+3>
267 ; CHECK: fmul fast <4 x float> %f1, <float 3.000000e+00, float 2.000000e+00, float 1.000000e+00, fl…
271 define <4 x float> @fmul3_vec_constexpr(<4 x float> %f1, <4 x float> %f2) {
273 %t1 = fdiv <4 x float> %f1, <float 2.0e+3, float 3.0e+3, float 2.0e+3, float 1.0e+3>
281 define float @fmul4(float %f1, float %f2) {
282 %t1 = fdiv float %f1, 2.0e+3
292 define float @fmul5(float %f1, float %f2) {
293 %t1 = fdiv float %f1, 3.0e+0
297 ; CHECK: fdiv fast float %f1, 0x47E8000000000000
301 define float @fmul6(float %f1, float %f2) {
302 %mul = fmul float %f1, %f2
303 %mul1 = fmul fast float %mul, %f1
306 ; CHECK: fmul fast float %f1, %f1
310 define float @fmul7(float %f1, float %f2) {
311 %mul = fmul float %f1, %f2
312 %mul1 = fmul fast float %mul, %f1
316 ; CHECK: fmul fast float %mul, %f1
324 define float @fneg1(float %f1, float %f2) {
325 %sub = fsub float -0.000000e+00, %f1
330 ; CHECK: fmul float %f1, %f2
401 define float @fdiv5(float %f1, float %f2, float %f3) {
402 %t1 = fdiv float %f1, %f2
410 define float @fdiv6(float %f1, float %f2, float %f3) {
411 %t1 = fdiv float %f1, %f2