ExceptionsZicboU/S and ExceptionsF#811
Conversation
…sZalrs 94%), and Zc reduced to only I, Zicsr and Zca
…sion for all priv tests and fix coverage for ExceptionS
| wildcard bins fmadd = {32'b?????_??_?????_?????_111_?????_1000011}; | ||
| wildcard bins fsqrt = {32'b01011_??_00000_?????_111_?????_1010011}; | ||
| wildcard bins fround = {32'b01000_??_00100_?????_111_?????_1010011}; | ||
| `ifdef F_SUPPORTED |
There was a problem hiding this comment.
Why would ExceptionsF ever be run without F supported? Drop all of the ifdef F_SUPPORTED in both the coverpoints and the test.
| wildcard bins fmadd = {32'b?????_??_?????_?????_111_?????_1000011}; | ||
| wildcard bins fsqrt = {32'b01011_??_00000_?????_111_?????_1010011}; | ||
| `ifdef D_SUPPORTED | ||
| wildcard bins fcvt_f_f = {32'b01000_??_?????_?????_111_?????_1010011}; |
There was a problem hiding this comment.
This is an interesting one. It should probably be tested if D or Zfhmin is supported, not just D.
| // building blocks for the main coverpoints | ||
| cbo_inval: coverpoint ins.current.insn { | ||
| wildcard bins cbo_inval = {32'b000000000000_?????_010_00000_0001111}; | ||
| `ifdef ZICBOM_SUPPORTED |
There was a problem hiding this comment.
Doesn’t this ifdef need to go around the entire coverpoint, not just the bins? I think right now this will create a coverpoint with bins for all possible combinations of a 32 bit instruction when Zicbom is not supported.
This applies to several coverpoints in this file.
| } | ||
| menvcfg_cbcfe: coverpoint ins.current.csr[12'h30A][6] { | ||
| } | ||
| menvcfg_cbze: coverpoint ins.current.csr[12'h30A][7] { |
There was a problem hiding this comment.
All of these envcfg coverpoints need ifdefs too.
There was a problem hiding this comment.
This is making me question if it makes sense to keep this all as one covergroup. Maybe we should split this into ExceptionsZicbomS and ExceptionsZicbozS (and the same for U). @davidharrishmc, any thoughts?
There was a problem hiding this comment.
I'd prefer not to keep splitting if possible. We are up to about 250 test suites already.
| /////////////////////////////////////////// | ||
|
|
||
| ##### START_TEST_CONFIG ##### | ||
| # REQUIRED_EXTENSIONS: [I, Zicsr, Sm] |
There was a problem hiding this comment.
Shouldn’t this require F?
| # CONFIG_DEPENDENT: true | ||
| ##### END_TEST_CONFIG ##### | ||
|
|
||
| //Zfa D, F, _zfa |
There was a problem hiding this comment.
Delete this comment.
| ///////////////////////////////// | ||
|
|
||
| // Function that executes select floating point instructions in the F extension. | ||
| // Also test selected Zfa instructions, which will trap if Zfa is not supported. |
There was a problem hiding this comment.
Comment needs to be updated now that there are ifdefs.
| // Initialize floating point registers used | ||
| li t0, 1 | ||
| fcvt.s.w f0, t0 | ||
| #ifdef F_SUPPORTED |
There was a problem hiding this comment.
F should always be supported if this test is run.
ExceptionsF -> 90% coverage
ExceptionsZicboU and S -> 100% coverage.
Working on fixing coverage for ExceptionsF.