|  | ; RUN: llc < %s | 
|  |  | 
|  | define double @fneg(double %X) { | 
|  | %Y = fsub double -0.000000e+00, %X               ; <double> [#uses=1] | 
|  | ret double %Y | 
|  | } | 
|  |  | 
|  | define float @fnegf(float %X) { | 
|  | %Y = fsub float -0.000000e+00, %X                ; <float> [#uses=1] | 
|  | ret float %Y | 
|  | } | 
|  |  | 
|  | define double @real_fneg(double %X) { | 
|  | %Y = fneg double %X               ; <double> [#uses=1] | 
|  | ret double %Y | 
|  | } | 
|  |  | 
|  | define double @real_fneg_constant() { | 
|  | %Y = fneg double -2.0             ; <double> [#uses=1] | 
|  | ret double %Y | 
|  | } | 
|  |  | 
|  | define float @real_fnegf(float %X) { | 
|  | %Y = fneg float %X                ; <float> [#uses=1] | 
|  | ret float %Y | 
|  | } | 
|  |  | 
|  | declare double @fabs(double) | 
|  |  | 
|  | declare float @fabsf(float) | 
|  |  | 
|  | define double @fabstest(double %X) { | 
|  | %Y = call double @fabs( double %X )             ; <double> [#uses=1] | 
|  | ret double %Y | 
|  | } | 
|  |  | 
|  | define float @fabsftest(float %X) { | 
|  | %Y = call float @fabsf( float %X )              ; <float> [#uses=1] | 
|  | ret float %Y | 
|  | } | 
|  |  |