mirror of
https://github.com/xomboverlord/ldc.git
synced 2026-01-19 22:33:13 +01:00
Removed the -fp80 option and made real be 80bit floats on X86, this is what the D spec really says it should be and fixes a bunch of issues. Changed the handling of parameter attributes to a bit more generalized approach. Added sext/zext attributes for byte/short/ubyte/ushort parameters, fixes #60 . Parameter attribs now properly set for intrinsic calls if necessary. Made the tango.math.Math patch less intrusive. Fixed/added some mini tests.
37 lines
785 B
D
37 lines
785 B
D
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);
|
|
}
|
|
}
|