Lines Matching refs:fabs
6 declare float @llvm.fabs.f32(float)
7 declare <2 x float> @llvm.fabs.v2f32(<2 x float>)
8 declare double @llvm.fabs.f64(double)
9 declare fp128 @llvm.fabs.f128(fp128)
12 declare double @fabs(double)
21 ; CHECK-NEXT: [[FABSF:%.*]] = tail call float @llvm.fabs.f32(float [[X:%.*]])
30 ; CHECK-NEXT: [[FABS:%.*]] = tail call double @llvm.fabs.f64(double [[X:%.*]])
33 %fabs = tail call double @fabs(double %x)
34 ret double %fabs
39 ; CHECK-NEXT: [[FABSL:%.*]] = tail call fp128 @llvm.fabs.f128(fp128 [[X:%.*]])
49 ; CHECK-NEXT: [[FABSF:%.*]] = tail call nnan float @llvm.fabs.f32(float [[X:%.*]])
59 ; The fabs cannot be eliminated because %x may be a NaN
64 ; CHECK-NEXT: [[FABSF:%.*]] = tail call float @llvm.fabs.f32(float [[MUL]])
68 %fabsf = tail call float @llvm.fabs.f32(float %mul)
75 ; CHECK-NEXT: [[FABS:%.*]] = tail call double @llvm.fabs.f64(double [[MUL]])
79 %fabs = tail call double @llvm.fabs.f64(double %mul)
80 ret double %fabs
86 ; CHECK-NEXT: [[FABSL:%.*]] = tail call fp128 @llvm.fabs.f128(fp128 [[MUL]])
90 %fabsl = tail call fp128 @llvm.fabs.f128(fp128 %mul)
100 %fabsf = call float @llvm.fabs.f32(float %mul)
109 ; CHECK-NEXT: [[TRUNC:%.*]] = call float @llvm.fabs.f32(float [[TMP1]])
114 %fabs = call double @fabs(double %sq)
115 %trunc = fptrunc double %fabs to float
122 ; CHECK-NEXT: [[TMP1:%.*]] = call float @llvm.fabs.f32(float [[SQ]])
127 %fabs = call double @fabs(double %ext)
128 %trunc = fptrunc double %fabs to float
140 %fabs = call float @llvm.fabs.f32(float %select)
141 ret float %fabs
152 %fabs = call float @llvm.fabs.f32(float %select)
153 ret float %fabs
164 %fabs = call float @llvm.fabs.f32(float %select)
165 ret float %fabs
174 %fabs = call float @llvm.fabs.f32(float %select)
175 ret float %fabs
182 ; CHECK-NEXT: [[FABS:%.*]] = call float @llvm.fabs.f32(float [[SELECT]])
187 %fabs = call float @llvm.fabs.f32(float %select)
188 ret float %fabs
191 ; The fabs cannot be eliminated because %x may be a NaN
196 ; CHECK-NEXT: [[FABSF:%.*]] = call float @llvm.fabs.f32(float [[FMA]])
200 %fabsf = call float @llvm.fabs.f32(float %fma)
204 ; The fabs cannot be eliminated because %x may be a NaN
212 %fabsf = call float @llvm.fabs.f32(float %fma)
219 ; CHECK-NEXT: [[FABSF:%.*]] = call float @llvm.fabs.f32(float [[FMULADD]])
223 %fabsf = call float @llvm.fabs.f32(float %fmuladd)
233 %fabsf = call float @llvm.fabs.f32(float %fmuladd)
242 ; CHECK-NEXT: [[FABS:%.*]] = call double @llvm.fabs.f64(double [[FPEXT]])
247 %fabs = call double @llvm.fabs.f64(double %fpext)
249 ret double %fabs
252 ; X <= 0.0 ? (0.0 - X) : X --> fabs(X)
256 ; CHECK-NEXT: [[TMP1:%.*]] = call double @llvm.fabs.f64(double [[X:%.*]])
261 %fabs = select i1 %lezero, double %negx, double %x
262 ret double %fabs
267 ; CHECK-NEXT: [[TMP1:%.*]] = call double @llvm.fabs.f64(double [[X:%.*]])
272 %fabs = select i1 %lezero, double %negx, double %x
273 ret double %fabs
278 ; CHECK-NEXT: [[TMP1:%.*]] = call nnan double @llvm.fabs.f64(double [[X:%.*]])
283 %fabs = select nnan i1 %lezero, double %negx, double %x
284 ret double %fabs
291 ; CHECK-NEXT: [[TMP1:%.*]] = call double @llvm.fabs.f64(double [[X:%.*]])
296 %fabs = select i1 %lezero, double %negx, double %x
297 ret double %fabs
311 %fabs = select i1 %lezero, double %negx, double %x
312 ret double %fabs
315 ; X <= -0.0 ? (0.0 - X) : X --> fabs(X)
319 ; CHECK-NEXT: [[TMP1:%.*]] = call <2 x float> @llvm.fabs.v2f32(<2 x float> [[X:%.*]])
324 %fabs = select <2 x i1> %lezero, <2 x float> %negx, <2 x float> %x
325 ret <2 x float> %fabs
330 ; CHECK-NEXT: [[TMP1:%.*]] = call nnan <2 x float> @llvm.fabs.v2f32(<2 x float> [[X:%.*]])
335 %fabs = select nnan <2 x i1> %lezero, <2 x float> %negx, <2 x float> %x
336 ret <2 x float> %fabs
339 ; X > 0.0 ? X : (0.0 - X) --> fabs(X)
343 ; CHECK-NEXT: [[TMP1:%.*]] = call fp128 @llvm.fabs.f128(fp128 [[X:%.*]])
348 %fabs = select i1 %gtzero, fp128 %x, fp128 %negx
349 ret fp128 %fabs
354 ; CHECK-NEXT: [[TMP1:%.*]] = call nsz float @llvm.fabs.f32(float [[A:%.*]])
365 ; CHECK-NEXT: [[TMP1:%.*]] = call fp128 @llvm.fabs.f128(fp128 [[X:%.*]])
370 %fabs = select i1 %gtzero, fp128 %x, fp128 %negx
371 ret fp128 %fabs
376 ; CHECK-NEXT: [[TMP1:%.*]] = call nnan fp128 @llvm.fabs.f128(fp128 [[X:%.*]])
381 %fabs = select nnan i1 %gtzero, fp128 %x, fp128 %negx
382 ret fp128 %fabs
385 ; X > -0.0 ? X : (0.0 - X) --> fabs(X)
389 ; CHECK-NEXT: [[TMP1:%.*]] = call half @llvm.fabs.f16(half [[X:%.*]])
394 %fabs = select i1 %gtzero, half %x, half %negx
395 ret half %fabs
400 ; CHECK-NEXT: [[TMP1:%.*]] = call nnan half @llvm.fabs.f16(half [[X:%.*]])
405 %fabs = select nnan i1 %gtzero, half %x, half %negx
406 ret half %fabs
413 ; CHECK-NEXT: [[TMP1:%.*]] = call half @llvm.fabs.f16(half [[X:%.*]])
418 %fabs = select i1 %gtzero, half %x, half %negx
419 ret half %fabs
433 %fabs = select i1 %gtzero, half %x, half %negx
434 ret half %fabs
437 ; X < 0.0 ? -X : X --> fabs(X)
441 ; CHECK-NEXT: [[TMP1:%.*]] = call nsz double @llvm.fabs.f64(double [[X:%.*]])
446 %fabs = select nsz i1 %ltzero, double %negx, double %x
447 ret double %fabs
459 %fabs = select i1 %ltzero, double %negx, double %x
460 ret double %fabs
465 ; CHECK-NEXT: [[TMP1:%.*]] = call nnan nsz double @llvm.fabs.f64(double [[X:%.*]])
470 %fabs = select nnan nsz i1 %ltzero, double %negx, double %x
471 ret double %fabs
485 %fabs = select i1 %ltzero, double %negx, double %x
486 ret double %fabs
498 %fabs = select i1 %ltzero, double %negx, double %x
499 ret double %fabs
513 %fabs = select i1 %ltzero, double %negx, double %x
514 ret double %fabs
517 ; X < -0.0 ? -X : X --> fabs(X)
528 %fabs = select i1 %ltzero, float %negx, float %x
529 ret float %fabs
534 ; CHECK-NEXT: [[TMP1:%.*]] = call nnan ninf nsz float @llvm.fabs.f32(float [[X:%.*]])
539 %fabs = select nnan ninf nsz i1 %ltzero, float %negx, float %x
540 ret float %fabs
554 %fabs = select i1 %ltzero, float %negx, float %x
555 ret float %fabs
567 %fabs = select i1 %ltzero, float %negx, float %x
568 ret float %fabs
582 %fabs = select i1 %ltzero, float %negx, float %x
583 ret float %fabs
586 ; X <= 0.0 ? -X : X --> fabs(X)
597 %fabs = select i1 %lezero, double %negx, double %x
598 ret double %fabs
603 ; CHECK-NEXT: [[TMP1:%.*]] = call fast double @llvm.fabs.f64(double [[X:%.*]])
608 %fabs = select fast i1 %lezero, double %negx, double %x
609 ret double %fabs
623 %fabs = select i1 %lezero, double %negx, double %x
624 ret double %fabs
636 %fabs = select i1 %lezero, double %negx, double %x
637 ret double %fabs
651 %fabs = select i1 %lezero, double %negx, double %x
652 ret double %fabs
655 ; X <= -0.0 ? -X : X --> fabs(X)
666 %fabs = select i1 %lezero, float %negx, float %x
667 ret float %fabs
672 ; CHECK-NEXT: [[TMP1:%.*]] = call nnan nsz float @llvm.fabs.f32(float [[X:%.*]])
677 %fabs = select nnan nsz i1 %lezero, float %negx, float %x
678 ret float %fabs
692 %fabs = select i1 %lezero, float %negx, float %x
693 ret float %fabs
705 %fabs = select i1 %lezero, float %negx, float %x
706 ret float %fabs
720 %fabs = select i1 %lezero, float %negx, float %x
721 ret float %fabs
724 ; X > 0.0 ? X : (0.0 - X) --> fabs(X)
728 ; CHECK-NEXT: [[TMP1:%.*]] = call nsz <2 x float> @llvm.fabs.v2f32(<2 x float> [[X:%.*]])
733 %fabs = select nsz <2 x i1> %gtzero, <2 x float> %x, <2 x float> %negx
734 ret <2 x float> %fabs
746 %fabs = select <2 x i1> %gtzero, <2 x float> %x, <2 x float> %negx
747 ret <2 x float> %fabs
761 %fabs = select <2 x i1> %gtzero, <2 x float> %x, <2 x float> %negx
762 ret <2 x float> %fabs
774 %fabs = select <2 x i1> %gtzero, <2 x float> %x, <2 x float> %negx
775 ret <2 x float> %fabs
789 %fabs = select <2 x i1> %gtzero, <2 x float> %x, <2 x float> %negx
790 ret <2 x float> %fabs
793 ; X > -0.0 ? X : (0.0 - X) --> fabs(X)
804 %fabs = select i1 %gtzero, half %x, half %negx
805 ret half %fabs
819 %fabs = select i1 %gtzero, half %x, half %negx
820 ret half %fabs
823 ; X > 0.0 ? X : (0.0 - X) --> fabs(X)
834 %fabs = select <2 x i1> %gezero, <2 x double> %x, <2 x double> %negx
835 ret <2 x double> %fabs
849 %fabs = select <2 x i1> %gezero, <2 x double> %x, <2 x double> %negx
850 ret <2 x double> %fabs
862 %fabs = select <2 x i1> %gezero, <2 x double> %x, <2 x double> %negx
863 ret <2 x double> %fabs
877 %fabs = select <2 x i1> %gezero, <2 x double> %x, <2 x double> %negx
878 ret <2 x double> %fabs
881 ; X > -0.0 ? X : (0.0 - X) --> fabs(X)
892 %fabs = select i1 %gezero, half %x, half %negx
893 ret half %fabs
907 %fabs = select i1 %gezero, half %x, half %negx
908 ret half %fabs
920 %fabs = select i1 %gezero, half %x, half %negx
921 ret half %fabs
935 %fabs = select i1 %gezero, half %x, half %negx
936 ret half %fabs
941 ; CHECK-NEXT: [[FABS:%.*]] = call float @llvm.fabs.f32(float [[X:%.*]])
946 %fabs = call float @llvm.fabs.f32(float %s)
947 ret float %fabs
954 ; CHECK-NEXT: [[FABS:%.*]] = call fast float @llvm.fabs.f32(float [[X]])
960 %fabs = call fast float @llvm.fabs.f32(float %s)
961 ret float %fabs
969 ; CHECK-NEXT: [[FABS:%.*]] = call nnan nsz float @llvm.fabs.f32(float [[X]])
975 %fabs = call nnan nsz float @llvm.fabs.f32(float %s)
976 ret float %fabs
981 ; CHECK-NEXT: [[FABS:%.*]] = call <2 x float> @llvm.fabs.v2f32(<2 x float> [[X:%.*]])
986 %fabs = call <2 x float> @llvm.fabs.v2f32(<2 x float> %s)
987 ret <2 x float> %fabs