Compiler projects using llvm
; 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
}