view tests/mini/intrinsics.d @ 632:df196c8dea26

Updated to latest LLVM trunk, function notes have been removed and merged with parameter attributes, which have been renamed to just attributes. Nothing seems to have broke!
author Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
date Wed, 01 Oct 2008 23:17:14 +0200
parents cc40db549aea
children 6aaa3d3c1183
line wrap: on
line source

import llvmdc.intrinsics;

extern(C) int printf(char*,...);
extern(C) int scanf(char*,...);

void main()
{
    float f;
    printf("Enter float: ");
    //scanf("%f", &f);
    f = 1.22345;
    float sf = llvm_sqrt_f32(f);
    printf("sqrt(%f) = %f\n", f, sf);

    double d;
    printf("Enter double: ");
    //scanf("%lf", &d);
    d = 2.2311167895435245;
    double sd = llvm_sqrt_f64(d);
    printf("sqrt(%lf) = %lf\n", d, sd);

    real r;
    printf("Enter real: ");
    //scanf("%lf", &d);
    r = 3.2311167891231231234754764576;
    version(X86)
    {
        real sr = llvm_sqrt_f80(r);
        printf("sqrt(%llf) = %llf\n", r, sr);
    }
    else
    {
        real sr = llvm_sqrt_f64(r);
        printf("sqrt(%f) = %lf\n", r, sr);
    }
}