Skip to content

B19 Coverage Issues #87

@sww0000

Description

@sww0000

@coreyqh There are a few bugs I found with the B19.svh:

  1. Issues w/ cross
        B19_F128__norm_x_subnorm:    cross FP_compare_ops, F128_operand_a_sign, F128_operand_b_sign, F128_a_norm, F128_b_subnorm,
                                          /* a.EXP > b.EXP*/       F128_frac_compare,   F128_result_fmt;

        B19_F128__subnorm_x_norm:    cross FP_compare_ops, F128_operand_a_sign, F128_operand_b_sign, F128_a_norm, F128_b_subnorm,
                                          /* a.EXP < b.EXP*/       F128_frac_compare,   F128_result_fmt;

        B19_F128__subnorm_x_subnorm: cross FP_compare_ops, F128_operand_a_sign, F128_operand_b_sign, F128_a_norm, F128_b_subnorm,
                                          F128_exp_compare,         F128_frac_compare,   F128_result_fmt;
  • subnorm x norm is crossing a_norm and b_subnorm
  • same w/ subnorm x subnorm
  1. GTE, LTE errors with subnormal x zero / zero x subnorm for F128
        B19_F128__subnorm_x_zero:       cross FP_compare_ops, F128_operand_a_sign, F128_operand_b_sign, F128_a_subnorm, F128_b_zero,
                                          /* a.EXP < b.EXP*/       F128_frac_LT,        F128_result_fmt;

        B19_F128__zero_x_subnorm:       cross FP_compare_ops, F128_operand_a_sign, F128_operand_b_sign, F128_a_zero, F128_b_subnorm,
                                          /* a.EXP > b.EXP*/       F128_frac_GT,       F128_result_fmt;
  • for subnorm x zero: since sub_norm exp < zero_exp, then sub_norm_fraction can only be GTE to zero_fraction, but we have F128_frac_LT.
  • inverse of above for zero x subnorm.

Changing the two above gets the coverage to ~82% (I have done the changes to B19.svh locally, let me know if I could just commit what I have currently or it would be better for you to make the adjustments @coreyqh)

@coreyqh A few more issues that I am looking into:

  1. For some reason, with any subnormal x (zero / normal), the bin <*,neg,*,*,*,eq,*> is consistently missed. Unsure if it is a coverage problem or a testgen problem.
  2. Please look over coverage scenarios for subnormal x subnormal, with the following bins missed:
#             bin <*,*,*,*,*,lt,gt,*>                         0          1         20    ZERO                 
#             bin <*,*,*,*,*,gt,eq,*>                         0          1         20    ZERO                 
#             bin <*,*,*,*,*,lt,eq,*>                         0          1         20    ZERO                 
#             bin <*,*,*,*,*,gt,lt,*>                         0          1         20    ZERO                 
#             bin <*,pos,neg,*,*,*,eq,*>                      0          1         15    ZERO                 
#             bin <*,neg,pos,*,*,*,eq,*>                      0          1         15    ZERO  

I believe the first 4 bins are impossible conditions for subnorm x subnorm, and the last two could be a testgen error or coverage.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions