Exemplo n.º 1
0
uint64_t helper_fsqrt_d(CPURISCVState *env, uint64_t frs1, uint64_t rm)
{
    softfloat_roundingMode = RISCV_RM;
    frs1 = f64_sqrt(frs1);
    set_fp_exceptions;
    return frs1;
}
Exemplo n.º 2
0
int f64_test(void)
{
    f64 a,b,c;

    a = f64_from_double(A);
    b = f64_from_double(B);
    c = f64_from_double(C);

    printf("************ F64\n\n");

    printf("*** ADD\n\n");
    printf("Result is        ");
    f64_print(f64_add(a,b));
    printf("\nResult should be %f\n\n", A+B);
    printf("Result is        ");
    f64_print(f64_add(b,c));
    printf("\nResult should be %f\n\n", B+C);
    printf("Result is        ");
    f64_print(f64_add(c,a));
    printf("\nResult should be %f\n\n", C+A);

    printf("*** SUB\n\n");
    printf("Result is        ");
    f64_print(f64_sub(a,b));
    printf("\nResult should be %f\n\n", A-B);
    printf("Result is        ");
    f64_print(f64_sub(b,c));
    printf("\nResult should be %f\n\n", B-C);
    printf("Result is        ");
    f64_print(f64_sub(c,a));
    printf("\nResult should be %f\n\n", C-A);

    printf("*** INV\n\n");
    printf("Result is        ");
    f64_print(f64_inv(a));
    printf("\nResult should be %f\n\n", 1.0/A);
    printf("Result is        ");
    f64_print(f64_inv(b));
    printf("\nResult should be %f\n\n", 1.0/B);
    printf("Result is        ");
    f64_print(f64_inv(c));
    printf("\nResult should be %f\n\n", 1.0/C);

    printf("*** MUL\n\n");
    printf("Result is        ");
    f64_print(f64_mul(a,b));
    printf("\nResult should be %f\n\n", A*B);
    printf("Result is        ");
    f64_print(f64_mul(b,c));
    printf("\nResult should be %f\n\n", B*C);
    printf("Result is        ");
    f64_print(f64_mul(c,a));
    printf("\nResult should be %f\n\n", C*A);

    printf("*** DIV\n\n");
    printf("Result is        ");
    f64_print(f64_div(a,b));
    printf("\nResult should be %f\n\n", A/B);
    printf("Result is        ");
    f64_print(f64_div(b,c));
    printf("\nResult should be %f\n\n", B/C);
    printf("Result is        ");
    f64_print(f64_div(c,a));
    printf("\nResult should be %f\n\n", C/A);

    printf("*** SQRT\n\n");
    printf("Result is        ");
    f64_print(f64_sqrt(a));
    f64_sqrt(a);
    printf("\nResult should be %f\n\n", sqrt(A));
    printf("Result is        ");
    f64_print(f64_sqrt(b));
    printf("\nResult should be %f\n\n", sqrt(B));
    printf("Result is        ");
    f64_print(f64_sqrt(c));
    printf("\nResult should be %f\n\n", sqrt(C));


    return 0;
}