Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

PULP SIMD 8-bit and 16-bit Instructions + GNU Tests Version 1.0.0 #51

Merged

Conversation

NandniJamnadas
Copy link
Contributor

@NandniJamnadas NandniJamnadas commented Oct 14, 2022

  • 220 instructions implemented
  • 440 instruction tests implemented + 2 MARCH tests in the GNU assembler

@NandniJamnadas
Copy link
Contributor Author

NandniJamnadas commented Oct 14, 2022

GNU Assembler Results:

| Category             | Baseline | Curr. Week |       Delta |
| :------------------- | -------: | ---------: | ----------: |
| Expected passes      |      785 |       1227 |        +442 |
| Unexpected failures  |        - |          - |         N/A |
| Unexpected successes |        - |          - |         N/A |
| Expected failures    |       23 |         23 |         N/A |
| Unresolved testcases |        - |          - |         N/A |
| Unsupported tests    |        9 |          9 |         N/A |

@NandniJamnadas NandniJamnadas force-pushed the simd-instructions-patch branch 2 times, most recently from 234177e to b1b1ef7 Compare October 15, 2022 08:09
@NandniJamnadas NandniJamnadas changed the title SIMD 8-bit and 16-bit Instructions + GNU Tests SIMD 8-bit and 16-bit Instructions + GNU Tests Version 1.0.0 Oct 15, 2022
@NandniJamnadas NandniJamnadas changed the title SIMD 8-bit and 16-bit Instructions + GNU Tests Version 1.0.0 PULP SIMD 8-bit and 16-bit Instructions + GNU Tests Version 1.0.0 Oct 15, 2022
     extension in assembler

    	   The SIMD instructions perform operations on multiple sub-word
    	   elements at the same time. This is done by segmenting the
    	   data path into smaller parts when 8 or 16-bit operations
    	   should be performed.

    	   The custom SIMD extensions are only supported if PULP_XPULP == 1.

            bfd/
                * elfxx-riscv.c: (riscv_multi_subset_supports): Added
                  INSN_CLASS_XCOREVSIMD.
                * elfxx-riscv.c: (riscv_multi_subset_supports_ext): Likewise.

            gas/config/
            	* tc-riscv.c: (validate_riscv_insn): Added operand code 'b5'
            	for SIMD Imm6 operand.
            	* tc-riscv.c: (riscv_ip): Added signed Imm6 range.

            include/opcode/
            	* riscv-opc.h: Added SIMD Match and Mask Macros.
            	* riscv.h: Added EXTRACT_CV_SIMD_IMM6 and
            	  ENCODE_CV_SIMD_IMM6.
            	* riscv.h: (riscv_insn_class): Added
            	  INSN_CLASS_COREV_SIMD.

            opcodes/
            	* riscv-dis.c: (print_insn_args): Disassemble info
            	  with EXTRACT_CV_SIMD_IMM6.
            	* riscv-opc.c: Added SIMD Instructions.

Signed-off-by: NandniJamnadas <nandni.jamnadas@embecosm.com>
     individual instruction tests, register boundary tests,
     immediate boundary tests, march tests for rv32i, rv32i_xcorevsimd and
     rv32i_xcorev.

    	* gas/testsuite/gas/riscv/cv-simd-march-fail.d: Likewise
	* gas/testsuite/gas/riscv/cv-simd-march-fail.l: Likewise
	* gas/testsuite/gas/riscv/cv-simd-march-fail.s: Likewise
	* gas/testsuite/gas/riscv/cv-simd-march-xcorev.d: Likewise
	* gas/testsuite/gas/riscv/cv-simd-march-xcorev.s: Likewise
	* gas/testsuite/gas/riscv/cv-simd-march-xcorevsimd.d: Likewise
	* gas/testsuite/gas/riscv/cv-simd-march-xcorevsimd.s: Likewise
        * gas/testsuite/gas/riscv/cv-add-h-pass.d: Likewise
        * gas/testsuite/gas/riscv/cv-add-h-pass.s: Likewise
        * gas/testsuite/gas/riscv/cv-add-h-fail.d: Likewise
        * gas/testsuite/gas/riscv/cv-add-h-fail.s: Likewise
        * gas/testsuite/gas/riscv/cv-add-h-fail.l: Likewise
        * gas/testsuite/gas/riscv/cv-add-b-pass.d: Likewise
        * gas/testsuite/gas/riscv/cv-add-b-pass.s: Likewise
        * gas/testsuite/gas/riscv/cv-add-b-fail.d: Likewise
        * gas/testsuite/gas/riscv/cv-add-b-fail.s: Likewise
        * gas/testsuite/gas/riscv/cv-add-b-fail.l: Likewise
        * gas/testsuite/gas/riscv/cv-add-sc-h-pass.d: Likewise
        * gas/testsuite/gas/riscv/cv-add-sc-h-pass.s: Likewise
        * gas/testsuite/gas/riscv/cv-add-sc-h-fail.d: Likewise
        * gas/testsuite/gas/riscv/cv-add-sc-h-fail.s: Likewise
        * gas/testsuite/gas/riscv/cv-add-sc-h-fail.l: Likewise
        * gas/testsuite/gas/riscv/cv-add-sc-b-pass.d: Likewise
        * gas/testsuite/gas/riscv/cv-add-sc-b-pass.s: Likewise
        * gas/testsuite/gas/riscv/cv-add-sc-b-fail.d: Likewise
        * gas/testsuite/gas/riscv/cv-add-sc-b-fail.s: Likewise
        * gas/testsuite/gas/riscv/cv-add-sc-b-fail.l: Likewise
        * gas/testsuite/gas/riscv/cv-add-sci-h-pass.d: Likewise
        * gas/testsuite/gas/riscv/cv-add-sci-h-pass.s: Likewise
        * gas/testsuite/gas/riscv/cv-add-sci-h-fail.d: Likewise
        * gas/testsuite/gas/riscv/cv-add-sci-h-fail.s: Likewise
        * gas/testsuite/gas/riscv/cv-add-sci-h-fail.l: Likewise
        * gas/testsuite/gas/riscv/cv-add-sci-b-pass.d: Likewise
        * gas/testsuite/gas/riscv/cv-add-sci-b-pass.s: Likewise
        * gas/testsuite/gas/riscv/cv-add-sci-b-fail.d: Likewise
        * gas/testsuite/gas/riscv/cv-add-sci-b-fail.s: Likewise
        * gas/testsuite/gas/riscv/cv-add-sci-b-fail.l: Likewise
        * gas/testsuite/gas/riscv/cv-sub-h-pass.d: Likewise
        * gas/testsuite/gas/riscv/cv-sub-h-pass.s: Likewise
        * gas/testsuite/gas/riscv/cv-sub-h-fail.d: Likewise
        * gas/testsuite/gas/riscv/cv-sub-h-fail.s: Likewise
        * gas/testsuite/gas/riscv/cv-sub-h-fail.l: Likewise
        * gas/testsuite/gas/riscv/cv-sub-b-pass.d: Likewise
        * gas/testsuite/gas/riscv/cv-sub-b-pass.s: Likewise
        * gas/testsuite/gas/riscv/cv-sub-b-fail.d: Likewise
        * gas/testsuite/gas/riscv/cv-sub-b-fail.s: Likewise
        * gas/testsuite/gas/riscv/cv-sub-b-fail.l: Likewise
        * gas/testsuite/gas/riscv/cv-sub-sc-h-pass.d: Likewise
        * gas/testsuite/gas/riscv/cv-sub-sc-h-pass.s: Likewise
        * gas/testsuite/gas/riscv/cv-sub-sc-h-fail.d: Likewise
        * gas/testsuite/gas/riscv/cv-sub-sc-h-fail.s: Likewise
        * gas/testsuite/gas/riscv/cv-sub-sc-h-fail.l: Likewise
        * gas/testsuite/gas/riscv/cv-sub-sc-b-pass.d: Likewise
        * gas/testsuite/gas/riscv/cv-sub-sc-b-pass.s: Likewise
        * gas/testsuite/gas/riscv/cv-sub-sc-b-fail.d: Likewise
        * gas/testsuite/gas/riscv/cv-sub-sc-b-fail.s: Likewise
        * gas/testsuite/gas/riscv/cv-sub-sc-b-fail.l: Likewise
        * gas/testsuite/gas/riscv/cv-sub-sci-h-pass.d: Likewise
        * gas/testsuite/gas/riscv/cv-sub-sci-h-pass.s: Likewise
        * gas/testsuite/gas/riscv/cv-sub-sci-h-fail.d: Likewise
        * gas/testsuite/gas/riscv/cv-sub-sci-h-fail.s: Likewise
        * gas/testsuite/gas/riscv/cv-sub-sci-h-fail.l: Likewise
        * gas/testsuite/gas/riscv/cv-sub-sci-b-pass.d: Likewise
        * gas/testsuite/gas/riscv/cv-sub-sci-b-pass.s: Likewise
        * gas/testsuite/gas/riscv/cv-sub-sci-b-fail.d: Likewise
        * gas/testsuite/gas/riscv/cv-sub-sci-b-fail.s: Likewise
        * gas/testsuite/gas/riscv/cv-sub-sci-b-fail.l: Likewise
        * gas/testsuite/gas/riscv/cv-avg-h-pass.d: Likewise
        * gas/testsuite/gas/riscv/cv-avg-h-pass.s: Likewise
        * gas/testsuite/gas/riscv/cv-avg-h-fail.d: Likewise
        * gas/testsuite/gas/riscv/cv-avg-h-fail.s: Likewise
        * gas/testsuite/gas/riscv/cv-avg-h-fail.l: Likewise
        * gas/testsuite/gas/riscv/cv-avg-b-pass.d: Likewise
        * gas/testsuite/gas/riscv/cv-avg-b-pass.s: Likewise
        * gas/testsuite/gas/riscv/cv-avg-b-fail.d: Likewise
        * gas/testsuite/gas/riscv/cv-avg-b-fail.s: Likewise
        * gas/testsuite/gas/riscv/cv-avg-b-fail.l: Likewise
        * gas/testsuite/gas/riscv/cv-avg-sc-h-pass.d: Likewise
        * gas/testsuite/gas/riscv/cv-avg-sc-h-pass.s: Likewise
        * gas/testsuite/gas/riscv/cv-avg-sc-h-fail.d: Likewise
        * gas/testsuite/gas/riscv/cv-avg-sc-h-fail.s: Likewise
        * gas/testsuite/gas/riscv/cv-avg-sc-h-fail.l: Likewise
        * gas/testsuite/gas/riscv/cv-avg-sc-b-pass.d: Likewise
        * gas/testsuite/gas/riscv/cv-avg-sc-b-pass.s: Likewise
        * gas/testsuite/gas/riscv/cv-avg-sc-b-fail.d: Likewise
        * gas/testsuite/gas/riscv/cv-avg-sc-b-fail.s: Likewise
        * gas/testsuite/gas/riscv/cv-avg-sc-b-fail.l: Likewise
        * gas/testsuite/gas/riscv/cv-avg-sci-h-pass.d: Likewise
        * gas/testsuite/gas/riscv/cv-avg-sci-h-pass.s: Likewise
        * gas/testsuite/gas/riscv/cv-avg-sci-h-fail.d: Likewise
        * gas/testsuite/gas/riscv/cv-avg-sci-h-fail.s: Likewise
        * gas/testsuite/gas/riscv/cv-avg-sci-h-fail.l: Likewise
        * gas/testsuite/gas/riscv/cv-avg-sci-b-pass.d: Likewise
        * gas/testsuite/gas/riscv/cv-avg-sci-b-pass.s: Likewise
        * gas/testsuite/gas/riscv/cv-avg-sci-b-fail.d: Likewise
        * gas/testsuite/gas/riscv/cv-avg-sci-b-fail.s: Likewise
        * gas/testsuite/gas/riscv/cv-avg-sci-b-fail.l: Likewise
        * gas/testsuite/gas/riscv/cv-avgu-h-pass.d: Likewise
        * gas/testsuite/gas/riscv/cv-avgu-h-pass.s: Likewise
        * gas/testsuite/gas/riscv/cv-avgu-h-fail.d: Likewise
        * gas/testsuite/gas/riscv/cv-avgu-h-fail.s: Likewise
        * gas/testsuite/gas/riscv/cv-avgu-h-fail.l: Likewise
        * gas/testsuite/gas/riscv/cv-avgu-b-pass.d: Likewise
        * gas/testsuite/gas/riscv/cv-avgu-b-pass.s: Likewise
        * gas/testsuite/gas/riscv/cv-avgu-b-fail.d: Likewise
        * gas/testsuite/gas/riscv/cv-avgu-b-fail.s: Likewise
        * gas/testsuite/gas/riscv/cv-avgu-b-fail.l: Likewise
        * gas/testsuite/gas/riscv/cv-avgu-sc-h-pass.d: Likewise
        * gas/testsuite/gas/riscv/cv-avgu-sc-h-pass.s: Likewise
        * gas/testsuite/gas/riscv/cv-avgu-sc-h-fail.d: Likewise
        * gas/testsuite/gas/riscv/cv-avgu-sc-h-fail.s: Likewise
        * gas/testsuite/gas/riscv/cv-avgu-sc-h-fail.l: Likewise
        * gas/testsuite/gas/riscv/cv-avgu-sc-b-pass.d: Likewise
        * gas/testsuite/gas/riscv/cv-avgu-sc-b-pass.s: Likewise
        * gas/testsuite/gas/riscv/cv-avgu-sc-b-fail.d: Likewise
        * gas/testsuite/gas/riscv/cv-avgu-sc-b-fail.s: Likewise
        * gas/testsuite/gas/riscv/cv-avgu-sc-b-fail.l: Likewise
        * gas/testsuite/gas/riscv/cv-avgu-sci-h-pass.d: Likewise
        * gas/testsuite/gas/riscv/cv-avgu-sci-h-pass.s: Likewise
        * gas/testsuite/gas/riscv/cv-avgu-sci-h-fail.d: Likewise
        * gas/testsuite/gas/riscv/cv-avgu-sci-h-fail.s: Likewise
        * gas/testsuite/gas/riscv/cv-avgu-sci-h-fail.l: Likewise
        * gas/testsuite/gas/riscv/cv-avgu-sci-b-pass.d: Likewise
        * gas/testsuite/gas/riscv/cv-avgu-sci-b-pass.s: Likewise
        * gas/testsuite/gas/riscv/cv-avgu-sci-b-fail.d: Likewise
        * gas/testsuite/gas/riscv/cv-avgu-sci-b-fail.s: Likewise
        * gas/testsuite/gas/riscv/cv-avgu-sci-b-fail.l: Likewise
        * gas/testsuite/gas/riscv/cv-min-h-pass.d: Likewise
        * gas/testsuite/gas/riscv/cv-min-h-pass.s: Likewise
        * gas/testsuite/gas/riscv/cv-min-h-fail.d: Likewise
        * gas/testsuite/gas/riscv/cv-min-h-fail.s: Likewise
        * gas/testsuite/gas/riscv/cv-min-h-fail.l: Likewise
        * gas/testsuite/gas/riscv/cv-min-b-pass.d: Likewise
        * gas/testsuite/gas/riscv/cv-min-b-pass.s: Likewise
        * gas/testsuite/gas/riscv/cv-min-b-fail.d: Likewise
        * gas/testsuite/gas/riscv/cv-min-b-fail.s: Likewise
        * gas/testsuite/gas/riscv/cv-min-b-fail.l: Likewise
        * gas/testsuite/gas/riscv/cv-min-sc-h-pass.d: Likewise
        * gas/testsuite/gas/riscv/cv-min-sc-h-pass.s: Likewise
        * gas/testsuite/gas/riscv/cv-min-sc-h-fail.d: Likewise
        * gas/testsuite/gas/riscv/cv-min-sc-h-fail.s: Likewise
        * gas/testsuite/gas/riscv/cv-min-sc-h-fail.l: Likewise
        * gas/testsuite/gas/riscv/cv-min-sc-b-pass.d: Likewise
        * gas/testsuite/gas/riscv/cv-min-sc-b-pass.s: Likewise
        * gas/testsuite/gas/riscv/cv-min-sc-b-fail.d: Likewise
        * gas/testsuite/gas/riscv/cv-min-sc-b-fail.s: Likewise
        * gas/testsuite/gas/riscv/cv-min-sc-b-fail.l: Likewise
        * gas/testsuite/gas/riscv/cv-min-sci-h-pass.d: Likewise
        * gas/testsuite/gas/riscv/cv-min-sci-h-pass.s: Likewise
        * gas/testsuite/gas/riscv/cv-min-sci-h-fail.d: Likewise
        * gas/testsuite/gas/riscv/cv-min-sci-h-fail.s: Likewise
        * gas/testsuite/gas/riscv/cv-min-sci-h-fail.l: Likewise
        * gas/testsuite/gas/riscv/cv-min-sci-b-pass.d: Likewise
        * gas/testsuite/gas/riscv/cv-min-sci-b-pass.s: Likewise
        * gas/testsuite/gas/riscv/cv-min-sci-b-fail.d: Likewise
        * gas/testsuite/gas/riscv/cv-min-sci-b-fail.s: Likewise
        * gas/testsuite/gas/riscv/cv-min-sci-b-fail.l: Likewise
        * gas/testsuite/gas/riscv/cv-minu-h-pass.d: Likewise
        * gas/testsuite/gas/riscv/cv-minu-h-pass.s: Likewise
        * gas/testsuite/gas/riscv/cv-minu-h-fail.d: Likewise
        * gas/testsuite/gas/riscv/cv-minu-h-fail.s: Likewise
        * gas/testsuite/gas/riscv/cv-minu-h-fail.l: Likewise
        * gas/testsuite/gas/riscv/cv-minu-b-pass.d: Likewise
        * gas/testsuite/gas/riscv/cv-minu-b-pass.s: Likewise
        * gas/testsuite/gas/riscv/cv-minu-b-fail.d: Likewise
        * gas/testsuite/gas/riscv/cv-minu-b-fail.s: Likewise
        * gas/testsuite/gas/riscv/cv-minu-b-fail.l: Likewise
        * gas/testsuite/gas/riscv/cv-minu-sc-h-pass.d: Likewise
        * gas/testsuite/gas/riscv/cv-minu-sc-h-pass.s: Likewise
        * gas/testsuite/gas/riscv/cv-minu-sc-h-fail.d: Likewise
        * gas/testsuite/gas/riscv/cv-minu-sc-h-fail.s: Likewise
        * gas/testsuite/gas/riscv/cv-minu-sc-h-fail.l: Likewise
        * gas/testsuite/gas/riscv/cv-minu-sc-b-pass.d: Likewise
        * gas/testsuite/gas/riscv/cv-minu-sc-b-pass.s: Likewise
        * gas/testsuite/gas/riscv/cv-minu-sc-b-fail.d: Likewise
        * gas/testsuite/gas/riscv/cv-minu-sc-b-fail.s: Likewise
        * gas/testsuite/gas/riscv/cv-minu-sc-b-fail.l: Likewise
        * gas/testsuite/gas/riscv/cv-minu-sci-h-pass.d: Likewise
        * gas/testsuite/gas/riscv/cv-minu-sci-h-pass.s: Likewise
        * gas/testsuite/gas/riscv/cv-minu-sci-h-fail.d: Likewise
        * gas/testsuite/gas/riscv/cv-minu-sci-h-fail.s: Likewise
        * gas/testsuite/gas/riscv/cv-minu-sci-h-fail.l: Likewise
        * gas/testsuite/gas/riscv/cv-minu-sci-b-pass.d: Likewise
        * gas/testsuite/gas/riscv/cv-minu-sci-b-pass.s: Likewise
        * gas/testsuite/gas/riscv/cv-minu-sci-b-fail.d: Likewise
        * gas/testsuite/gas/riscv/cv-minu-sci-b-fail.s: Likewise
        * gas/testsuite/gas/riscv/cv-minu-sci-b-fail.l: Likewise
        * gas/testsuite/gas/riscv/cv-max-h-pass.d: Likewise
        * gas/testsuite/gas/riscv/cv-max-h-pass.s: Likewise
        * gas/testsuite/gas/riscv/cv-max-h-fail.d: Likewise
        * gas/testsuite/gas/riscv/cv-max-h-fail.s: Likewise
        * gas/testsuite/gas/riscv/cv-max-h-fail.l: Likewise
        * gas/testsuite/gas/riscv/cv-max-b-pass.d: Likewise
        * gas/testsuite/gas/riscv/cv-max-b-pass.s: Likewise
        * gas/testsuite/gas/riscv/cv-max-b-fail.d: Likewise
        * gas/testsuite/gas/riscv/cv-max-b-fail.s: Likewise
        * gas/testsuite/gas/riscv/cv-max-b-fail.l: Likewise
        * gas/testsuite/gas/riscv/cv-max-sc-h-pass.d: Likewise
        * gas/testsuite/gas/riscv/cv-max-sc-h-pass.s: Likewise
        * gas/testsuite/gas/riscv/cv-max-sc-h-fail.d: Likewise
        * gas/testsuite/gas/riscv/cv-max-sc-h-fail.s: Likewise
        * gas/testsuite/gas/riscv/cv-max-sc-h-fail.l: Likewise
        * gas/testsuite/gas/riscv/cv-max-sc-b-pass.d: Likewise
        * gas/testsuite/gas/riscv/cv-max-sc-b-pass.s: Likewise
        * gas/testsuite/gas/riscv/cv-max-sc-b-fail.d: Likewise
        * gas/testsuite/gas/riscv/cv-max-sc-b-fail.s: Likewise
        * gas/testsuite/gas/riscv/cv-max-sc-b-fail.l: Likewise
        * gas/testsuite/gas/riscv/cv-max-sci-h-pass.d: Likewise
        * gas/testsuite/gas/riscv/cv-max-sci-h-pass.s: Likewise
        * gas/testsuite/gas/riscv/cv-max-sci-h-fail.d: Likewise
        * gas/testsuite/gas/riscv/cv-max-sci-h-fail.s: Likewise
        * gas/testsuite/gas/riscv/cv-max-sci-h-fail.l: Likewise
        * gas/testsuite/gas/riscv/cv-max-sci-b-pass.d: Likewise
        * gas/testsuite/gas/riscv/cv-max-sci-b-pass.s: Likewise
        * gas/testsuite/gas/riscv/cv-max-sci-b-fail.d: Likewise
        * gas/testsuite/gas/riscv/cv-max-sci-b-fail.s: Likewise
        * gas/testsuite/gas/riscv/cv-max-sci-b-fail.l: Likewise
        * gas/testsuite/gas/riscv/cv-maxu-h-pass.d: Likewise
        * gas/testsuite/gas/riscv/cv-maxu-h-pass.s: Likewise
        * gas/testsuite/gas/riscv/cv-maxu-h-fail.d: Likewise
        * gas/testsuite/gas/riscv/cv-maxu-h-fail.s: Likewise
        * gas/testsuite/gas/riscv/cv-maxu-h-fail.l: Likewise
        * gas/testsuite/gas/riscv/cv-maxu-b-pass.d: Likewise
        * gas/testsuite/gas/riscv/cv-maxu-b-pass.s: Likewise
        * gas/testsuite/gas/riscv/cv-maxu-b-fail.d: Likewise
        * gas/testsuite/gas/riscv/cv-maxu-b-fail.s: Likewise
        * gas/testsuite/gas/riscv/cv-maxu-b-fail.l: Likewise
        * gas/testsuite/gas/riscv/cv-maxu-sc-h-pass.d: Likewise
        * gas/testsuite/gas/riscv/cv-maxu-sc-h-pass.s: Likewise
        * gas/testsuite/gas/riscv/cv-maxu-sc-h-fail.d: Likewise
        * gas/testsuite/gas/riscv/cv-maxu-sc-h-fail.s: Likewise
        * gas/testsuite/gas/riscv/cv-maxu-sc-h-fail.l: Likewise
        * gas/testsuite/gas/riscv/cv-maxu-sc-b-pass.d: Likewise
        * gas/testsuite/gas/riscv/cv-maxu-sc-b-pass.s: Likewise
        * gas/testsuite/gas/riscv/cv-maxu-sc-b-fail.d: Likewise
        * gas/testsuite/gas/riscv/cv-maxu-sc-b-fail.s: Likewise
        * gas/testsuite/gas/riscv/cv-maxu-sc-b-fail.l: Likewise
        * gas/testsuite/gas/riscv/cv-maxu-sci-h-pass.d: Likewise
        * gas/testsuite/gas/riscv/cv-maxu-sci-h-pass.s: Likewise
        * gas/testsuite/gas/riscv/cv-maxu-sci-h-fail.d: Likewise
        * gas/testsuite/gas/riscv/cv-maxu-sci-h-fail.s: Likewise
        * gas/testsuite/gas/riscv/cv-maxu-sci-h-fail.l: Likewise
        * gas/testsuite/gas/riscv/cv-maxu-sci-b-pass.d: Likewise
        * gas/testsuite/gas/riscv/cv-maxu-sci-b-pass.s: Likewise
        * gas/testsuite/gas/riscv/cv-maxu-sci-b-fail.d: Likewise
        * gas/testsuite/gas/riscv/cv-maxu-sci-b-fail.s: Likewise
        * gas/testsuite/gas/riscv/cv-maxu-sci-b-fail.l: Likewise
        * gas/testsuite/gas/riscv/cv-srl-h-pass.d: Likewise
        * gas/testsuite/gas/riscv/cv-srl-h-pass.s: Likewise
        * gas/testsuite/gas/riscv/cv-srl-h-fail.d: Likewise
        * gas/testsuite/gas/riscv/cv-srl-h-fail.s: Likewise
        * gas/testsuite/gas/riscv/cv-srl-h-fail.l: Likewise
        * gas/testsuite/gas/riscv/cv-srl-b-pass.d: Likewise
        * gas/testsuite/gas/riscv/cv-srl-b-pass.s: Likewise
        * gas/testsuite/gas/riscv/cv-srl-b-fail.d: Likewise
        * gas/testsuite/gas/riscv/cv-srl-b-fail.s: Likewise
        * gas/testsuite/gas/riscv/cv-srl-b-fail.l: Likewise
        * gas/testsuite/gas/riscv/cv-srl-sc-h-pass.d: Likewise
        * gas/testsuite/gas/riscv/cv-srl-sc-h-pass.s: Likewise
        * gas/testsuite/gas/riscv/cv-srl-sc-h-fail.d: Likewise
        * gas/testsuite/gas/riscv/cv-srl-sc-h-fail.s: Likewise
        * gas/testsuite/gas/riscv/cv-srl-sc-h-fail.l: Likewise
        * gas/testsuite/gas/riscv/cv-srl-sc-b-pass.d: Likewise
        * gas/testsuite/gas/riscv/cv-srl-sc-b-pass.s: Likewise
        * gas/testsuite/gas/riscv/cv-srl-sc-b-fail.d: Likewise
        * gas/testsuite/gas/riscv/cv-srl-sc-b-fail.s: Likewise
        * gas/testsuite/gas/riscv/cv-srl-sc-b-fail.l: Likewise
        * gas/testsuite/gas/riscv/cv-srl-sci-h-pass.d: Likewise
        * gas/testsuite/gas/riscv/cv-srl-sci-h-pass.s: Likewise
        * gas/testsuite/gas/riscv/cv-srl-sci-h-fail.d: Likewise
        * gas/testsuite/gas/riscv/cv-srl-sci-h-fail.s: Likewise
        * gas/testsuite/gas/riscv/cv-srl-sci-h-fail.l: Likewise
        * gas/testsuite/gas/riscv/cv-srl-sci-b-pass.d: Likewise
        * gas/testsuite/gas/riscv/cv-srl-sci-b-pass.s: Likewise
        * gas/testsuite/gas/riscv/cv-srl-sci-b-fail.d: Likewise
        * gas/testsuite/gas/riscv/cv-srl-sci-b-fail.s: Likewise
        * gas/testsuite/gas/riscv/cv-srl-sci-b-fail.l: Likewise
        * gas/testsuite/gas/riscv/cv-sra-h-pass.d: Likewise
        * gas/testsuite/gas/riscv/cv-sra-h-pass.s: Likewise
        * gas/testsuite/gas/riscv/cv-sra-h-fail.d: Likewise
        * gas/testsuite/gas/riscv/cv-sra-h-fail.s: Likewise
        * gas/testsuite/gas/riscv/cv-sra-h-fail.l: Likewise
        * gas/testsuite/gas/riscv/cv-sra-b-pass.d: Likewise
        * gas/testsuite/gas/riscv/cv-sra-b-pass.s: Likewise
        * gas/testsuite/gas/riscv/cv-sra-b-fail.d: Likewise
        * gas/testsuite/gas/riscv/cv-sra-b-fail.s: Likewise
        * gas/testsuite/gas/riscv/cv-sra-b-fail.l: Likewise
        * gas/testsuite/gas/riscv/cv-sra-sc-h-pass.d: Likewise
        * gas/testsuite/gas/riscv/cv-sra-sc-h-pass.s: Likewise
        * gas/testsuite/gas/riscv/cv-sra-sc-h-fail.d: Likewise
        * gas/testsuite/gas/riscv/cv-sra-sc-h-fail.s: Likewise
        * gas/testsuite/gas/riscv/cv-sra-sc-h-fail.l: Likewise
        * gas/testsuite/gas/riscv/cv-sra-sc-b-pass.d: Likewise
        * gas/testsuite/gas/riscv/cv-sra-sc-b-pass.s: Likewise
        * gas/testsuite/gas/riscv/cv-sra-sc-b-fail.d: Likewise
        * gas/testsuite/gas/riscv/cv-sra-sc-b-fail.s: Likewise
        * gas/testsuite/gas/riscv/cv-sra-sc-b-fail.l: Likewise
        * gas/testsuite/gas/riscv/cv-sra-sci-h-pass.d: Likewise
        * gas/testsuite/gas/riscv/cv-sra-sci-h-pass.s: Likewise
        * gas/testsuite/gas/riscv/cv-sra-sci-h-fail.d: Likewise
        * gas/testsuite/gas/riscv/cv-sra-sci-h-fail.s: Likewise
        * gas/testsuite/gas/riscv/cv-sra-sci-h-fail.l: Likewise
        * gas/testsuite/gas/riscv/cv-sra-sci-b-pass.d: Likewise
        * gas/testsuite/gas/riscv/cv-sra-sci-b-pass.s: Likewise
        * gas/testsuite/gas/riscv/cv-sra-sci-b-fail.d: Likewise
        * gas/testsuite/gas/riscv/cv-sra-sci-b-fail.s: Likewise
        * gas/testsuite/gas/riscv/cv-sra-sci-b-fail.l: Likewise
        * gas/testsuite/gas/riscv/cv-sll-h-pass.d: Likewise
        * gas/testsuite/gas/riscv/cv-sll-h-pass.s: Likewise
        * gas/testsuite/gas/riscv/cv-sll-h-fail.d: Likewise
        * gas/testsuite/gas/riscv/cv-sll-h-fail.s: Likewise
        * gas/testsuite/gas/riscv/cv-sll-h-fail.l: Likewise
        * gas/testsuite/gas/riscv/cv-sll-b-pass.d: Likewise
        * gas/testsuite/gas/riscv/cv-sll-b-pass.s: Likewise
        * gas/testsuite/gas/riscv/cv-sll-b-fail.d: Likewise
        * gas/testsuite/gas/riscv/cv-sll-b-fail.s: Likewise
        * gas/testsuite/gas/riscv/cv-sll-b-fail.l: Likewise
        * gas/testsuite/gas/riscv/cv-sll-sc-h-pass.d: Likewise
        * gas/testsuite/gas/riscv/cv-sll-sc-h-pass.s: Likewise
        * gas/testsuite/gas/riscv/cv-sll-sc-h-fail.d: Likewise
        * gas/testsuite/gas/riscv/cv-sll-sc-h-fail.s: Likewise
        * gas/testsuite/gas/riscv/cv-sll-sc-h-fail.l: Likewise
        * gas/testsuite/gas/riscv/cv-sll-sc-b-pass.d: Likewise
        * gas/testsuite/gas/riscv/cv-sll-sc-b-pass.s: Likewise
        * gas/testsuite/gas/riscv/cv-sll-sc-b-fail.d: Likewise
        * gas/testsuite/gas/riscv/cv-sll-sc-b-fail.s: Likewise
        * gas/testsuite/gas/riscv/cv-sll-sc-b-fail.l: Likewise
        * gas/testsuite/gas/riscv/cv-sll-sci-h-pass.d: Likewise
        * gas/testsuite/gas/riscv/cv-sll-sci-h-pass.s: Likewise
        * gas/testsuite/gas/riscv/cv-sll-sci-h-fail.d: Likewise
        * gas/testsuite/gas/riscv/cv-sll-sci-h-fail.s: Likewise
        * gas/testsuite/gas/riscv/cv-sll-sci-h-fail.l: Likewise
        * gas/testsuite/gas/riscv/cv-sll-sci-b-pass.d: Likewise
        * gas/testsuite/gas/riscv/cv-sll-sci-b-pass.s: Likewise
        * gas/testsuite/gas/riscv/cv-sll-sci-b-fail.d: Likewise
        * gas/testsuite/gas/riscv/cv-sll-sci-b-fail.s: Likewise
        * gas/testsuite/gas/riscv/cv-sll-sci-b-fail.l: Likewise
        * gas/testsuite/gas/riscv/cv-or-h-pass.d: Likewise
        * gas/testsuite/gas/riscv/cv-or-h-pass.s: Likewise
        * gas/testsuite/gas/riscv/cv-or-h-fail.d: Likewise
        * gas/testsuite/gas/riscv/cv-or-h-fail.s: Likewise
        * gas/testsuite/gas/riscv/cv-or-h-fail.l: Likewise
        * gas/testsuite/gas/riscv/cv-or-b-pass.d: Likewise
        * gas/testsuite/gas/riscv/cv-or-b-pass.s: Likewise
        * gas/testsuite/gas/riscv/cv-or-b-fail.d: Likewise
        * gas/testsuite/gas/riscv/cv-or-b-fail.s: Likewise
        * gas/testsuite/gas/riscv/cv-or-b-fail.l: Likewise
        * gas/testsuite/gas/riscv/cv-or-sc-h-pass.d: Likewise
        * gas/testsuite/gas/riscv/cv-or-sc-h-pass.s: Likewise
        * gas/testsuite/gas/riscv/cv-or-sc-h-fail.d: Likewise
        * gas/testsuite/gas/riscv/cv-or-sc-h-fail.s: Likewise
        * gas/testsuite/gas/riscv/cv-or-sc-h-fail.l: Likewise
        * gas/testsuite/gas/riscv/cv-or-sc-b-pass.d: Likewise
        * gas/testsuite/gas/riscv/cv-or-sc-b-pass.s: Likewise
        * gas/testsuite/gas/riscv/cv-or-sc-b-fail.d: Likewise
        * gas/testsuite/gas/riscv/cv-or-sc-b-fail.s: Likewise
        * gas/testsuite/gas/riscv/cv-or-sc-b-fail.l: Likewise
        * gas/testsuite/gas/riscv/cv-or-sci-h-pass.d: Likewise
        * gas/testsuite/gas/riscv/cv-or-sci-h-pass.s: Likewise
        * gas/testsuite/gas/riscv/cv-or-sci-h-fail.d: Likewise
        * gas/testsuite/gas/riscv/cv-or-sci-h-fail.s: Likewise
        * gas/testsuite/gas/riscv/cv-or-sci-h-fail.l: Likewise
        * gas/testsuite/gas/riscv/cv-or-sci-b-pass.d: Likewise
        * gas/testsuite/gas/riscv/cv-or-sci-b-pass.s: Likewise
        * gas/testsuite/gas/riscv/cv-or-sci-b-fail.d: Likewise
        * gas/testsuite/gas/riscv/cv-or-sci-b-fail.s: Likewise
        * gas/testsuite/gas/riscv/cv-or-sci-b-fail.l: Likewise
        * gas/testsuite/gas/riscv/cv-xor-h-pass.d: Likewise
        * gas/testsuite/gas/riscv/cv-xor-h-pass.s: Likewise
        * gas/testsuite/gas/riscv/cv-xor-h-fail.d: Likewise
        * gas/testsuite/gas/riscv/cv-xor-h-fail.s: Likewise
        * gas/testsuite/gas/riscv/cv-xor-h-fail.l: Likewise
        * gas/testsuite/gas/riscv/cv-xor-b-pass.d: Likewise
        * gas/testsuite/gas/riscv/cv-xor-b-pass.s: Likewise
        * gas/testsuite/gas/riscv/cv-xor-b-fail.d: Likewise
        * gas/testsuite/gas/riscv/cv-xor-b-fail.s: Likewise
        * gas/testsuite/gas/riscv/cv-xor-b-fail.l: Likewise
        * gas/testsuite/gas/riscv/cv-xor-sc-h-pass.d: Likewise
        * gas/testsuite/gas/riscv/cv-xor-sc-h-pass.s: Likewise
        * gas/testsuite/gas/riscv/cv-xor-sc-h-fail.d: Likewise
        * gas/testsuite/gas/riscv/cv-xor-sc-h-fail.s: Likewise
        * gas/testsuite/gas/riscv/cv-xor-sc-h-fail.l: Likewise
        * gas/testsuite/gas/riscv/cv-xor-sc-b-pass.d: Likewise
        * gas/testsuite/gas/riscv/cv-xor-sc-b-pass.s: Likewise
        * gas/testsuite/gas/riscv/cv-xor-sc-b-fail.d: Likewise
        * gas/testsuite/gas/riscv/cv-xor-sc-b-fail.s: Likewise
        * gas/testsuite/gas/riscv/cv-xor-sc-b-fail.l: Likewise
        * gas/testsuite/gas/riscv/cv-xor-sci-h-pass.d: Likewise
        * gas/testsuite/gas/riscv/cv-xor-sci-h-pass.s: Likewise
        * gas/testsuite/gas/riscv/cv-xor-sci-h-fail.d: Likewise
        * gas/testsuite/gas/riscv/cv-xor-sci-h-fail.s: Likewise
        * gas/testsuite/gas/riscv/cv-xor-sci-h-fail.l: Likewise
        * gas/testsuite/gas/riscv/cv-xor-sci-b-pass.d: Likewise
        * gas/testsuite/gas/riscv/cv-xor-sci-b-pass.s: Likewise
        * gas/testsuite/gas/riscv/cv-xor-sci-b-fail.d: Likewise
        * gas/testsuite/gas/riscv/cv-xor-sci-b-fail.s: Likewise
        * gas/testsuite/gas/riscv/cv-xor-sci-b-fail.l: Likewise
        * gas/testsuite/gas/riscv/cv-and-h-pass.d: Likewise
        * gas/testsuite/gas/riscv/cv-and-h-pass.s: Likewise
        * gas/testsuite/gas/riscv/cv-and-h-fail.d: Likewise
        * gas/testsuite/gas/riscv/cv-and-h-fail.s: Likewise
        * gas/testsuite/gas/riscv/cv-and-h-fail.l: Likewise
        * gas/testsuite/gas/riscv/cv-and-b-pass.d: Likewise
        * gas/testsuite/gas/riscv/cv-and-b-pass.s: Likewise
        * gas/testsuite/gas/riscv/cv-and-b-fail.d: Likewise
        * gas/testsuite/gas/riscv/cv-and-b-fail.s: Likewise
        * gas/testsuite/gas/riscv/cv-and-b-fail.l: Likewise
        * gas/testsuite/gas/riscv/cv-and-sc-h-pass.d: Likewise
        * gas/testsuite/gas/riscv/cv-and-sc-h-pass.s: Likewise
        * gas/testsuite/gas/riscv/cv-and-sc-h-fail.d: Likewise
        * gas/testsuite/gas/riscv/cv-and-sc-h-fail.s: Likewise
        * gas/testsuite/gas/riscv/cv-and-sc-h-fail.l: Likewise
        * gas/testsuite/gas/riscv/cv-and-sc-b-pass.d: Likewise
        * gas/testsuite/gas/riscv/cv-and-sc-b-pass.s: Likewise
        * gas/testsuite/gas/riscv/cv-and-sc-b-fail.d: Likewise
        * gas/testsuite/gas/riscv/cv-and-sc-b-fail.s: Likewise
        * gas/testsuite/gas/riscv/cv-and-sc-b-fail.l: Likewise
        * gas/testsuite/gas/riscv/cv-and-sci-h-pass.d: Likewise
        * gas/testsuite/gas/riscv/cv-and-sci-h-pass.s: Likewise
        * gas/testsuite/gas/riscv/cv-and-sci-h-fail.d: Likewise
        * gas/testsuite/gas/riscv/cv-and-sci-h-fail.s: Likewise
        * gas/testsuite/gas/riscv/cv-and-sci-h-fail.l: Likewise
        * gas/testsuite/gas/riscv/cv-and-sci-b-pass.d: Likewise
        * gas/testsuite/gas/riscv/cv-and-sci-b-pass.s: Likewise
        * gas/testsuite/gas/riscv/cv-and-sci-b-fail.d: Likewise
        * gas/testsuite/gas/riscv/cv-and-sci-b-fail.s: Likewise
        * gas/testsuite/gas/riscv/cv-and-sci-b-fail.l: Likewise
        * gas/testsuite/gas/riscv/cv-abs-h-pass.d: Likewise
        * gas/testsuite/gas/riscv/cv-abs-h-pass.s: Likewise
        * gas/testsuite/gas/riscv/cv-abs-h-fail.d: Likewise
        * gas/testsuite/gas/riscv/cv-abs-h-fail.s: Likewise
        * gas/testsuite/gas/riscv/cv-abs-h-fail.l: Likewise
        * gas/testsuite/gas/riscv/cv-abs-b-pass.d: Likewise
        * gas/testsuite/gas/riscv/cv-abs-b-pass.s: Likewise
        * gas/testsuite/gas/riscv/cv-abs-b-fail.d: Likewise
        * gas/testsuite/gas/riscv/cv-abs-b-fail.s: Likewise
        * gas/testsuite/gas/riscv/cv-abs-b-fail.l: Likewise
        * gas/testsuite/gas/riscv/cv-dotup-h-pass.d: Likewise
        * gas/testsuite/gas/riscv/cv-dotup-h-pass.s: Likewise
        * gas/testsuite/gas/riscv/cv-dotup-h-fail.d: Likewise
        * gas/testsuite/gas/riscv/cv-dotup-h-fail.s: Likewise
        * gas/testsuite/gas/riscv/cv-dotup-h-fail.l: Likewise
        * gas/testsuite/gas/riscv/cv-dotup-b-pass.d: Likewise
        * gas/testsuite/gas/riscv/cv-dotup-b-pass.s: Likewise
        * gas/testsuite/gas/riscv/cv-dotup-b-fail.d: Likewise
        * gas/testsuite/gas/riscv/cv-dotup-b-fail.s: Likewise
        * gas/testsuite/gas/riscv/cv-dotup-b-fail.l: Likewise
        * gas/testsuite/gas/riscv/cv-dotup-sc-h-pass.d: Likewise
        * gas/testsuite/gas/riscv/cv-dotup-sc-h-pass.s: Likewise
        * gas/testsuite/gas/riscv/cv-dotup-sc-h-fail.d: Likewise
        * gas/testsuite/gas/riscv/cv-dotup-sc-h-fail.s: Likewise
        * gas/testsuite/gas/riscv/cv-dotup-sc-h-fail.l: Likewise
        * gas/testsuite/gas/riscv/cv-dotup-sc-b-pass.d: Likewise
        * gas/testsuite/gas/riscv/cv-dotup-sc-b-pass.s: Likewise
        * gas/testsuite/gas/riscv/cv-dotup-sc-b-fail.d: Likewise
        * gas/testsuite/gas/riscv/cv-dotup-sc-b-fail.s: Likewise
        * gas/testsuite/gas/riscv/cv-dotup-sc-b-fail.l: Likewise
        * gas/testsuite/gas/riscv/cv-dotup-sci-h-pass.d: Likewise
        * gas/testsuite/gas/riscv/cv-dotup-sci-h-pass.s: Likewise
        * gas/testsuite/gas/riscv/cv-dotup-sci-h-fail.d: Likewise
        * gas/testsuite/gas/riscv/cv-dotup-sci-h-fail.s: Likewise
        * gas/testsuite/gas/riscv/cv-dotup-sci-h-fail.l: Likewise
        * gas/testsuite/gas/riscv/cv-dotup-sci-b-pass.d: Likewise
        * gas/testsuite/gas/riscv/cv-dotup-sci-b-pass.s: Likewise
        * gas/testsuite/gas/riscv/cv-dotup-sci-b-fail.d: Likewise
        * gas/testsuite/gas/riscv/cv-dotup-sci-b-fail.s: Likewise
        * gas/testsuite/gas/riscv/cv-dotup-sci-b-fail.l: Likewise
        * gas/testsuite/gas/riscv/cv-dotusp-h-pass.d: Likewise
        * gas/testsuite/gas/riscv/cv-dotusp-h-pass.s: Likewise
        * gas/testsuite/gas/riscv/cv-dotusp-h-fail.d: Likewise
        * gas/testsuite/gas/riscv/cv-dotusp-h-fail.s: Likewise
        * gas/testsuite/gas/riscv/cv-dotusp-h-fail.l: Likewise
        * gas/testsuite/gas/riscv/cv-dotusp-b-pass.d: Likewise
        * gas/testsuite/gas/riscv/cv-dotusp-b-pass.s: Likewise
        * gas/testsuite/gas/riscv/cv-dotusp-b-fail.d: Likewise
        * gas/testsuite/gas/riscv/cv-dotusp-b-fail.s: Likewise
        * gas/testsuite/gas/riscv/cv-dotusp-b-fail.l: Likewise
        * gas/testsuite/gas/riscv/cv-dotusp-sc-h-pass.d: Likewise
        * gas/testsuite/gas/riscv/cv-dotusp-sc-h-pass.s: Likewise
        * gas/testsuite/gas/riscv/cv-dotusp-sc-h-fail.d: Likewise
        * gas/testsuite/gas/riscv/cv-dotusp-sc-h-fail.s: Likewise
        * gas/testsuite/gas/riscv/cv-dotusp-sc-h-fail.l: Likewise
        * gas/testsuite/gas/riscv/cv-dotusp-sc-b-pass.d: Likewise
        * gas/testsuite/gas/riscv/cv-dotusp-sc-b-pass.s: Likewise
        * gas/testsuite/gas/riscv/cv-dotusp-sc-b-fail.d: Likewise
        * gas/testsuite/gas/riscv/cv-dotusp-sc-b-fail.s: Likewise
        * gas/testsuite/gas/riscv/cv-dotusp-sc-b-fail.l: Likewise
        * gas/testsuite/gas/riscv/cv-dotusp-sci-h-pass.d: Likewise
        * gas/testsuite/gas/riscv/cv-dotusp-sci-h-pass.s: Likewise
        * gas/testsuite/gas/riscv/cv-dotusp-sci-h-fail.d: Likewise
        * gas/testsuite/gas/riscv/cv-dotusp-sci-h-fail.s: Likewise
        * gas/testsuite/gas/riscv/cv-dotusp-sci-h-fail.l: Likewise
        * gas/testsuite/gas/riscv/cv-dotusp-sci-b-pass.d: Likewise
        * gas/testsuite/gas/riscv/cv-dotusp-sci-b-pass.s: Likewise
        * gas/testsuite/gas/riscv/cv-dotusp-sci-b-fail.d: Likewise
        * gas/testsuite/gas/riscv/cv-dotusp-sci-b-fail.s: Likewise
        * gas/testsuite/gas/riscv/cv-dotusp-sci-b-fail.l: Likewise
        * gas/testsuite/gas/riscv/cv-dotsp-h-pass.d: Likewise
        * gas/testsuite/gas/riscv/cv-dotsp-h-pass.s: Likewise
        * gas/testsuite/gas/riscv/cv-dotsp-h-fail.d: Likewise
        * gas/testsuite/gas/riscv/cv-dotsp-h-fail.s: Likewise
        * gas/testsuite/gas/riscv/cv-dotsp-h-fail.l: Likewise
        * gas/testsuite/gas/riscv/cv-dotsp-b-pass.d: Likewise
        * gas/testsuite/gas/riscv/cv-dotsp-b-pass.s: Likewise
        * gas/testsuite/gas/riscv/cv-dotsp-b-fail.d: Likewise
        * gas/testsuite/gas/riscv/cv-dotsp-b-fail.s: Likewise
        * gas/testsuite/gas/riscv/cv-dotsp-b-fail.l: Likewise
        * gas/testsuite/gas/riscv/cv-dotsp-sc-h-pass.d: Likewise
        * gas/testsuite/gas/riscv/cv-dotsp-sc-h-pass.s: Likewise
        * gas/testsuite/gas/riscv/cv-dotsp-sc-h-fail.d: Likewise
        * gas/testsuite/gas/riscv/cv-dotsp-sc-h-fail.s: Likewise
        * gas/testsuite/gas/riscv/cv-dotsp-sc-h-fail.l: Likewise
        * gas/testsuite/gas/riscv/cv-dotsp-sc-b-pass.d: Likewise
        * gas/testsuite/gas/riscv/cv-dotsp-sc-b-pass.s: Likewise
        * gas/testsuite/gas/riscv/cv-dotsp-sc-b-fail.d: Likewise
        * gas/testsuite/gas/riscv/cv-dotsp-sc-b-fail.s: Likewise
        * gas/testsuite/gas/riscv/cv-dotsp-sc-b-fail.l: Likewise
        * gas/testsuite/gas/riscv/cv-dotsp-sci-h-pass.d: Likewise
        * gas/testsuite/gas/riscv/cv-dotsp-sci-h-pass.s: Likewise
        * gas/testsuite/gas/riscv/cv-dotsp-sci-h-fail.d: Likewise
        * gas/testsuite/gas/riscv/cv-dotsp-sci-h-fail.s: Likewise
        * gas/testsuite/gas/riscv/cv-dotsp-sci-h-fail.l: Likewise
        * gas/testsuite/gas/riscv/cv-dotsp-sci-b-pass.d: Likewise
        * gas/testsuite/gas/riscv/cv-dotsp-sci-b-pass.s: Likewise
        * gas/testsuite/gas/riscv/cv-dotsp-sci-b-fail.d: Likewise
        * gas/testsuite/gas/riscv/cv-dotsp-sci-b-fail.s: Likewise
        * gas/testsuite/gas/riscv/cv-dotsp-sci-b-fail.l: Likewise
        * gas/testsuite/gas/riscv/cv-sdotup-h-pass.d: Likewise
        * gas/testsuite/gas/riscv/cv-sdotup-h-pass.s: Likewise
        * gas/testsuite/gas/riscv/cv-sdotup-h-fail.d: Likewise
        * gas/testsuite/gas/riscv/cv-sdotup-h-fail.s: Likewise
        * gas/testsuite/gas/riscv/cv-sdotup-h-fail.l: Likewise
        * gas/testsuite/gas/riscv/cv-sdotup-b-pass.d: Likewise
        * gas/testsuite/gas/riscv/cv-sdotup-b-pass.s: Likewise
        * gas/testsuite/gas/riscv/cv-sdotup-b-fail.d: Likewise
        * gas/testsuite/gas/riscv/cv-sdotup-b-fail.s: Likewise
        * gas/testsuite/gas/riscv/cv-sdotup-b-fail.l: Likewise
        * gas/testsuite/gas/riscv/cv-sdotup-sc-h-pass.d: Likewise
        * gas/testsuite/gas/riscv/cv-sdotup-sc-h-pass.s: Likewise
        * gas/testsuite/gas/riscv/cv-sdotup-sc-h-fail.d: Likewise
        * gas/testsuite/gas/riscv/cv-sdotup-sc-h-fail.s: Likewise
        * gas/testsuite/gas/riscv/cv-sdotup-sc-h-fail.l: Likewise
        * gas/testsuite/gas/riscv/cv-sdotup-sc-b-pass.d: Likewise
        * gas/testsuite/gas/riscv/cv-sdotup-sc-b-pass.s: Likewise
        * gas/testsuite/gas/riscv/cv-sdotup-sc-b-fail.d: Likewise
        * gas/testsuite/gas/riscv/cv-sdotup-sc-b-fail.s: Likewise
        * gas/testsuite/gas/riscv/cv-sdotup-sc-b-fail.l: Likewise
        * gas/testsuite/gas/riscv/cv-sdotup-sci-h-pass.d: Likewise
        * gas/testsuite/gas/riscv/cv-sdotup-sci-h-pass.s: Likewise
        * gas/testsuite/gas/riscv/cv-sdotup-sci-h-fail.d: Likewise
        * gas/testsuite/gas/riscv/cv-sdotup-sci-h-fail.s: Likewise
        * gas/testsuite/gas/riscv/cv-sdotup-sci-h-fail.l: Likewise
        * gas/testsuite/gas/riscv/cv-sdotup-sci-b-pass.d: Likewise
        * gas/testsuite/gas/riscv/cv-sdotup-sci-b-pass.s: Likewise
        * gas/testsuite/gas/riscv/cv-sdotup-sci-b-fail.d: Likewise
        * gas/testsuite/gas/riscv/cv-sdotup-sci-b-fail.s: Likewise
        * gas/testsuite/gas/riscv/cv-sdotup-sci-b-fail.l: Likewise
        * gas/testsuite/gas/riscv/cv-sdotusp-h-pass.d: Likewise
        * gas/testsuite/gas/riscv/cv-sdotusp-h-pass.s: Likewise
        * gas/testsuite/gas/riscv/cv-sdotusp-h-fail.d: Likewise
        * gas/testsuite/gas/riscv/cv-sdotusp-h-fail.s: Likewise
        * gas/testsuite/gas/riscv/cv-sdotusp-h-fail.l: Likewise
        * gas/testsuite/gas/riscv/cv-sdotusp-b-pass.d: Likewise
        * gas/testsuite/gas/riscv/cv-sdotusp-b-pass.s: Likewise
        * gas/testsuite/gas/riscv/cv-sdotusp-b-fail.d: Likewise
        * gas/testsuite/gas/riscv/cv-sdotusp-b-fail.s: Likewise
        * gas/testsuite/gas/riscv/cv-sdotusp-b-fail.l: Likewise
        * gas/testsuite/gas/riscv/cv-sdotusp-sc-h-pass.d: Likewise
        * gas/testsuite/gas/riscv/cv-sdotusp-sc-h-pass.s: Likewise
        * gas/testsuite/gas/riscv/cv-sdotusp-sc-h-fail.d: Likewise
        * gas/testsuite/gas/riscv/cv-sdotusp-sc-h-fail.s: Likewise
        * gas/testsuite/gas/riscv/cv-sdotusp-sc-h-fail.l: Likewise
        * gas/testsuite/gas/riscv/cv-sdotusp-sc-b-pass.d: Likewise
        * gas/testsuite/gas/riscv/cv-sdotusp-sc-b-pass.s: Likewise
        * gas/testsuite/gas/riscv/cv-sdotusp-sc-b-fail.d: Likewise
        * gas/testsuite/gas/riscv/cv-sdotusp-sc-b-fail.s: Likewise
        * gas/testsuite/gas/riscv/cv-sdotusp-sc-b-fail.l: Likewise
        * gas/testsuite/gas/riscv/cv-sdotusp-sci-h-pass.d: Likewise
        * gas/testsuite/gas/riscv/cv-sdotusp-sci-h-pass.s: Likewise
        * gas/testsuite/gas/riscv/cv-sdotusp-sci-h-fail.d: Likewise
        * gas/testsuite/gas/riscv/cv-sdotusp-sci-h-fail.s: Likewise
        * gas/testsuite/gas/riscv/cv-sdotusp-sci-h-fail.l: Likewise
        * gas/testsuite/gas/riscv/cv-sdotusp-sci-b-pass.d: Likewise
        * gas/testsuite/gas/riscv/cv-sdotusp-sci-b-pass.s: Likewise
        * gas/testsuite/gas/riscv/cv-sdotusp-sci-b-fail.d: Likewise
        * gas/testsuite/gas/riscv/cv-sdotusp-sci-b-fail.s: Likewise
        * gas/testsuite/gas/riscv/cv-sdotusp-sci-b-fail.l: Likewise
        * gas/testsuite/gas/riscv/cv-sdotsp-h-pass.d: Likewise
        * gas/testsuite/gas/riscv/cv-sdotsp-h-pass.s: Likewise
        * gas/testsuite/gas/riscv/cv-sdotsp-h-fail.d: Likewise
        * gas/testsuite/gas/riscv/cv-sdotsp-h-fail.s: Likewise
        * gas/testsuite/gas/riscv/cv-sdotsp-h-fail.l: Likewise
        * gas/testsuite/gas/riscv/cv-sdotsp-b-pass.d: Likewise
        * gas/testsuite/gas/riscv/cv-sdotsp-b-pass.s: Likewise
        * gas/testsuite/gas/riscv/cv-sdotsp-b-fail.d: Likewise
        * gas/testsuite/gas/riscv/cv-sdotsp-b-fail.s: Likewise
        * gas/testsuite/gas/riscv/cv-sdotsp-b-fail.l: Likewise
        * gas/testsuite/gas/riscv/cv-sdotsp-sc-h-pass.d: Likewise
        * gas/testsuite/gas/riscv/cv-sdotsp-sc-h-pass.s: Likewise
        * gas/testsuite/gas/riscv/cv-sdotsp-sc-h-fail.d: Likewise
        * gas/testsuite/gas/riscv/cv-sdotsp-sc-h-fail.s: Likewise
        * gas/testsuite/gas/riscv/cv-sdotsp-sc-h-fail.l: Likewise
        * gas/testsuite/gas/riscv/cv-sdotsp-sc-b-pass.d: Likewise
        * gas/testsuite/gas/riscv/cv-sdotsp-sc-b-pass.s: Likewise
        * gas/testsuite/gas/riscv/cv-sdotsp-sc-b-fail.d: Likewise
        * gas/testsuite/gas/riscv/cv-sdotsp-sc-b-fail.s: Likewise
        * gas/testsuite/gas/riscv/cv-sdotsp-sc-b-fail.l: Likewise
        * gas/testsuite/gas/riscv/cv-sdotsp-sci-h-pass.d: Likewise
        * gas/testsuite/gas/riscv/cv-sdotsp-sci-h-pass.s: Likewise
        * gas/testsuite/gas/riscv/cv-sdotsp-sci-h-fail.d: Likewise
        * gas/testsuite/gas/riscv/cv-sdotsp-sci-h-fail.s: Likewise
        * gas/testsuite/gas/riscv/cv-sdotsp-sci-h-fail.l: Likewise
        * gas/testsuite/gas/riscv/cv-sdotsp-sci-b-pass.d: Likewise
        * gas/testsuite/gas/riscv/cv-sdotsp-sci-b-pass.s: Likewise
        * gas/testsuite/gas/riscv/cv-sdotsp-sci-b-fail.d: Likewise
        * gas/testsuite/gas/riscv/cv-sdotsp-sci-b-fail.s: Likewise
        * gas/testsuite/gas/riscv/cv-sdotsp-sci-b-fail.l: Likewise
        * gas/testsuite/gas/riscv/cv-extract-h-pass.d: Likewise
        * gas/testsuite/gas/riscv/cv-extract-h-pass.s: Likewise
        * gas/testsuite/gas/riscv/cv-extract-h-fail.d: Likewise
        * gas/testsuite/gas/riscv/cv-extract-h-fail.s: Likewise
        * gas/testsuite/gas/riscv/cv-extract-h-fail.l: Likewise
        * gas/testsuite/gas/riscv/cv-extract-b-pass.d: Likewise
        * gas/testsuite/gas/riscv/cv-extract-b-pass.s: Likewise
        * gas/testsuite/gas/riscv/cv-extract-b-fail.d: Likewise
        * gas/testsuite/gas/riscv/cv-extract-b-fail.s: Likewise
        * gas/testsuite/gas/riscv/cv-extract-b-fail.l: Likewise
        * gas/testsuite/gas/riscv/cv-extractu-h-pass.d: Likewise
        * gas/testsuite/gas/riscv/cv-extractu-h-pass.s: Likewise
        * gas/testsuite/gas/riscv/cv-extractu-h-fail.d: Likewise
        * gas/testsuite/gas/riscv/cv-extractu-h-fail.s: Likewise
        * gas/testsuite/gas/riscv/cv-extractu-h-fail.l: Likewise
        * gas/testsuite/gas/riscv/cv-extractu-b-pass.d: Likewise
        * gas/testsuite/gas/riscv/cv-extractu-b-pass.s: Likewise
        * gas/testsuite/gas/riscv/cv-extractu-b-fail.d: Likewise
        * gas/testsuite/gas/riscv/cv-extractu-b-fail.s: Likewise
        * gas/testsuite/gas/riscv/cv-extractu-b-fail.l: Likewise
        * gas/testsuite/gas/riscv/cv-insert-h-pass.d: Likewise
        * gas/testsuite/gas/riscv/cv-insert-h-pass.s: Likewise
        * gas/testsuite/gas/riscv/cv-insert-h-fail.d: Likewise
        * gas/testsuite/gas/riscv/cv-insert-h-fail.s: Likewise
        * gas/testsuite/gas/riscv/cv-insert-h-fail.l: Likewise
        * gas/testsuite/gas/riscv/cv-insert-b-pass.d: Likewise
        * gas/testsuite/gas/riscv/cv-insert-b-pass.s: Likewise
        * gas/testsuite/gas/riscv/cv-insert-b-fail.d: Likewise
        * gas/testsuite/gas/riscv/cv-insert-b-fail.s: Likewise
        * gas/testsuite/gas/riscv/cv-insert-b-fail.l: Likewise
        * gas/testsuite/gas/riscv/cv-shuffle-h-pass.d: Likewise
        * gas/testsuite/gas/riscv/cv-shuffle-h-pass.s: Likewise
        * gas/testsuite/gas/riscv/cv-shuffle-h-fail.d: Likewise
        * gas/testsuite/gas/riscv/cv-shuffle-h-fail.s: Likewise
        * gas/testsuite/gas/riscv/cv-shuffle-h-fail.l: Likewise
        * gas/testsuite/gas/riscv/cv-shuffle-b-pass.d: Likewise
        * gas/testsuite/gas/riscv/cv-shuffle-b-pass.s: Likewise
        * gas/testsuite/gas/riscv/cv-shuffle-b-fail.d: Likewise
        * gas/testsuite/gas/riscv/cv-shuffle-b-fail.s: Likewise
        * gas/testsuite/gas/riscv/cv-shuffle-b-fail.l: Likewise
        * gas/testsuite/gas/riscv/cv-shuffle-sci-h-pass.d: Likewise
        * gas/testsuite/gas/riscv/cv-shuffle-sci-h-pass.s: Likewise
        * gas/testsuite/gas/riscv/cv-shuffle-sci-h-fail.d: Likewise
        * gas/testsuite/gas/riscv/cv-shuffle-sci-h-fail.s: Likewise
        * gas/testsuite/gas/riscv/cv-shuffle-sci-h-fail.l: Likewise
        * gas/testsuite/gas/riscv/cv-shufflei0-sci-b-pass.d: Likewise
        * gas/testsuite/gas/riscv/cv-shufflei0-sci-b-pass.s: Likewise
        * gas/testsuite/gas/riscv/cv-shufflei0-sci-b-fail.d: Likewise
        * gas/testsuite/gas/riscv/cv-shufflei0-sci-b-fail.s: Likewise
        * gas/testsuite/gas/riscv/cv-shufflei0-sci-b-fail.l: Likewise
        * gas/testsuite/gas/riscv/cv-shufflei1-sci-b-pass.d: Likewise
        * gas/testsuite/gas/riscv/cv-shufflei1-sci-b-pass.s: Likewise
        * gas/testsuite/gas/riscv/cv-shufflei1-sci-b-fail.d: Likewise
        * gas/testsuite/gas/riscv/cv-shufflei1-sci-b-fail.s: Likewise
        * gas/testsuite/gas/riscv/cv-shufflei1-sci-b-fail.l: Likewise
        * gas/testsuite/gas/riscv/cv-shufflei2-sci-b-pass.d: Likewise
        * gas/testsuite/gas/riscv/cv-shufflei2-sci-b-pass.s: Likewise
        * gas/testsuite/gas/riscv/cv-shufflei2-sci-b-fail.d: Likewise
        * gas/testsuite/gas/riscv/cv-shufflei2-sci-b-fail.s: Likewise
        * gas/testsuite/gas/riscv/cv-shufflei2-sci-b-fail.l: Likewise
        * gas/testsuite/gas/riscv/cv-shufflei3-sci-b-pass.d: Likewise
        * gas/testsuite/gas/riscv/cv-shufflei3-sci-b-pass.s: Likewise
        * gas/testsuite/gas/riscv/cv-shufflei3-sci-b-fail.d: Likewise
        * gas/testsuite/gas/riscv/cv-shufflei3-sci-b-fail.s: Likewise
        * gas/testsuite/gas/riscv/cv-shufflei3-sci-b-fail.l: Likewise
        * gas/testsuite/gas/riscv/cv-shuffle2-h-pass.d: Likewise
        * gas/testsuite/gas/riscv/cv-shuffle2-h-pass.s: Likewise
        * gas/testsuite/gas/riscv/cv-shuffle2-h-fail.d: Likewise
        * gas/testsuite/gas/riscv/cv-shuffle2-h-fail.s: Likewise
        * gas/testsuite/gas/riscv/cv-shuffle2-h-fail.l: Likewise
        * gas/testsuite/gas/riscv/cv-shuffle2-b-pass.d: Likewise
        * gas/testsuite/gas/riscv/cv-shuffle2-b-pass.s: Likewise
        * gas/testsuite/gas/riscv/cv-shuffle2-b-fail.d: Likewise
        * gas/testsuite/gas/riscv/cv-shuffle2-b-fail.s: Likewise
        * gas/testsuite/gas/riscv/cv-shuffle2-b-fail.l: Likewise
        * gas/testsuite/gas/riscv/cv-pack-pass.d: Likewise
        * gas/testsuite/gas/riscv/cv-pack-pass.s: Likewise
        * gas/testsuite/gas/riscv/cv-pack-fail.d: Likewise
        * gas/testsuite/gas/riscv/cv-pack-fail.s: Likewise
        * gas/testsuite/gas/riscv/cv-pack-fail.l: Likewise
        * gas/testsuite/gas/riscv/cv-pack-h-pass.d: Likewise
        * gas/testsuite/gas/riscv/cv-pack-h-pass.s: Likewise
        * gas/testsuite/gas/riscv/cv-pack-h-fail.d: Likewise
        * gas/testsuite/gas/riscv/cv-pack-h-fail.s: Likewise
        * gas/testsuite/gas/riscv/cv-pack-h-fail.l: Likewise
        * gas/testsuite/gas/riscv/cv-packhi-b-pass.d: Likewise
        * gas/testsuite/gas/riscv/cv-packhi-b-pass.s: Likewise
        * gas/testsuite/gas/riscv/cv-packhi-b-fail.d: Likewise
        * gas/testsuite/gas/riscv/cv-packhi-b-fail.s: Likewise
        * gas/testsuite/gas/riscv/cv-packhi-b-fail.l: Likewise
        * gas/testsuite/gas/riscv/cv-packlo-b-pass.d: Likewise
        * gas/testsuite/gas/riscv/cv-packlo-b-pass.s: Likewise
        * gas/testsuite/gas/riscv/cv-packlo-b-fail.d: Likewise
        * gas/testsuite/gas/riscv/cv-packlo-b-fail.s: Likewise
        * gas/testsuite/gas/riscv/cv-packlo-b-fail.l: Likewise
        * gas/testsuite/gas/riscv/cv-cmpeq-h-pass.d: Likewise
        * gas/testsuite/gas/riscv/cv-cmpeq-h-pass.s: Likewise
        * gas/testsuite/gas/riscv/cv-cmpeq-h-fail.d: Likewise
        * gas/testsuite/gas/riscv/cv-cmpeq-h-fail.s: Likewise
        * gas/testsuite/gas/riscv/cv-cmpeq-h-fail.l: Likewise
        * gas/testsuite/gas/riscv/cv-cmpeq-b-pass.d: Likewise
        * gas/testsuite/gas/riscv/cv-cmpeq-b-pass.s: Likewise
        * gas/testsuite/gas/riscv/cv-cmpeq-b-fail.d: Likewise
        * gas/testsuite/gas/riscv/cv-cmpeq-b-fail.s: Likewise
        * gas/testsuite/gas/riscv/cv-cmpeq-b-fail.l: Likewise
        * gas/testsuite/gas/riscv/cv-cmpeq-sc-h-pass.d: Likewise
        * gas/testsuite/gas/riscv/cv-cmpeq-sc-h-pass.s: Likewise
        * gas/testsuite/gas/riscv/cv-cmpeq-sc-h-fail.d: Likewise
        * gas/testsuite/gas/riscv/cv-cmpeq-sc-h-fail.s: Likewise
        * gas/testsuite/gas/riscv/cv-cmpeq-sc-h-fail.l: Likewise
        * gas/testsuite/gas/riscv/cv-cmpeq-sc-b-pass.d: Likewise
        * gas/testsuite/gas/riscv/cv-cmpeq-sc-b-pass.s: Likewise
        * gas/testsuite/gas/riscv/cv-cmpeq-sc-b-fail.d: Likewise
        * gas/testsuite/gas/riscv/cv-cmpeq-sc-b-fail.s: Likewise
        * gas/testsuite/gas/riscv/cv-cmpeq-sc-b-fail.l: Likewise
        * gas/testsuite/gas/riscv/cv-cmpeq-sci-h-pass.d: Likewise
        * gas/testsuite/gas/riscv/cv-cmpeq-sci-h-pass.s: Likewise
        * gas/testsuite/gas/riscv/cv-cmpeq-sci-h-fail.d: Likewise
        * gas/testsuite/gas/riscv/cv-cmpeq-sci-h-fail.s: Likewise
        * gas/testsuite/gas/riscv/cv-cmpeq-sci-h-fail.l: Likewise
        * gas/testsuite/gas/riscv/cv-cmpeq-sci-b-pass.d: Likewise
        * gas/testsuite/gas/riscv/cv-cmpeq-sci-b-pass.s: Likewise
        * gas/testsuite/gas/riscv/cv-cmpeq-sci-b-fail.d: Likewise
        * gas/testsuite/gas/riscv/cv-cmpeq-sci-b-fail.s: Likewise
        * gas/testsuite/gas/riscv/cv-cmpeq-sci-b-fail.l: Likewise
        * gas/testsuite/gas/riscv/cv-cmpne-h-pass.d: Likewise
        * gas/testsuite/gas/riscv/cv-cmpne-h-pass.s: Likewise
        * gas/testsuite/gas/riscv/cv-cmpne-h-fail.d: Likewise
        * gas/testsuite/gas/riscv/cv-cmpne-h-fail.s: Likewise
        * gas/testsuite/gas/riscv/cv-cmpne-h-fail.l: Likewise
        * gas/testsuite/gas/riscv/cv-cmpne-b-pass.d: Likewise
        * gas/testsuite/gas/riscv/cv-cmpne-b-pass.s: Likewise
        * gas/testsuite/gas/riscv/cv-cmpne-b-fail.d: Likewise
        * gas/testsuite/gas/riscv/cv-cmpne-b-fail.s: Likewise
        * gas/testsuite/gas/riscv/cv-cmpne-b-fail.l: Likewise
        * gas/testsuite/gas/riscv/cv-cmpne-sc-h-pass.d: Likewise
        * gas/testsuite/gas/riscv/cv-cmpne-sc-h-pass.s: Likewise
        * gas/testsuite/gas/riscv/cv-cmpne-sc-h-fail.d: Likewise
        * gas/testsuite/gas/riscv/cv-cmpne-sc-h-fail.s: Likewise
        * gas/testsuite/gas/riscv/cv-cmpne-sc-h-fail.l: Likewise
        * gas/testsuite/gas/riscv/cv-cmpne-sc-b-pass.d: Likewise
        * gas/testsuite/gas/riscv/cv-cmpne-sc-b-pass.s: Likewise
        * gas/testsuite/gas/riscv/cv-cmpne-sc-b-fail.d: Likewise
        * gas/testsuite/gas/riscv/cv-cmpne-sc-b-fail.s: Likewise
        * gas/testsuite/gas/riscv/cv-cmpne-sc-b-fail.l: Likewise
        * gas/testsuite/gas/riscv/cv-cmpne-sci-h-pass.d: Likewise
        * gas/testsuite/gas/riscv/cv-cmpne-sci-h-pass.s: Likewise
        * gas/testsuite/gas/riscv/cv-cmpne-sci-h-fail.d: Likewise
        * gas/testsuite/gas/riscv/cv-cmpne-sci-h-fail.s: Likewise
        * gas/testsuite/gas/riscv/cv-cmpne-sci-h-fail.l: Likewise
        * gas/testsuite/gas/riscv/cv-cmpne-sci-b-pass.d: Likewise
        * gas/testsuite/gas/riscv/cv-cmpne-sci-b-pass.s: Likewise
        * gas/testsuite/gas/riscv/cv-cmpne-sci-b-fail.d: Likewise
        * gas/testsuite/gas/riscv/cv-cmpne-sci-b-fail.s: Likewise
        * gas/testsuite/gas/riscv/cv-cmpne-sci-b-fail.l: Likewise
        * gas/testsuite/gas/riscv/cv-cmpgt-h-pass.d: Likewise
        * gas/testsuite/gas/riscv/cv-cmpgt-h-pass.s: Likewise
        * gas/testsuite/gas/riscv/cv-cmpgt-h-fail.d: Likewise
        * gas/testsuite/gas/riscv/cv-cmpgt-h-fail.s: Likewise
        * gas/testsuite/gas/riscv/cv-cmpgt-h-fail.l: Likewise
        * gas/testsuite/gas/riscv/cv-cmpgt-b-pass.d: Likewise
        * gas/testsuite/gas/riscv/cv-cmpgt-b-pass.s: Likewise
        * gas/testsuite/gas/riscv/cv-cmpgt-b-fail.d: Likewise
        * gas/testsuite/gas/riscv/cv-cmpgt-b-fail.s: Likewise
        * gas/testsuite/gas/riscv/cv-cmpgt-b-fail.l: Likewise
        * gas/testsuite/gas/riscv/cv-cmpgt-sc-h-pass.d: Likewise
        * gas/testsuite/gas/riscv/cv-cmpgt-sc-h-pass.s: Likewise
        * gas/testsuite/gas/riscv/cv-cmpgt-sc-h-fail.d: Likewise
        * gas/testsuite/gas/riscv/cv-cmpgt-sc-h-fail.s: Likewise
        * gas/testsuite/gas/riscv/cv-cmpgt-sc-h-fail.l: Likewise
        * gas/testsuite/gas/riscv/cv-cmpgt-sc-b-pass.d: Likewise
        * gas/testsuite/gas/riscv/cv-cmpgt-sc-b-pass.s: Likewise
        * gas/testsuite/gas/riscv/cv-cmpgt-sc-b-fail.d: Likewise
        * gas/testsuite/gas/riscv/cv-cmpgt-sc-b-fail.s: Likewise
        * gas/testsuite/gas/riscv/cv-cmpgt-sc-b-fail.l: Likewise
        * gas/testsuite/gas/riscv/cv-cmpgt-sci-h-pass.d: Likewise
        * gas/testsuite/gas/riscv/cv-cmpgt-sci-h-pass.s: Likewise
        * gas/testsuite/gas/riscv/cv-cmpgt-sci-h-fail.d: Likewise
        * gas/testsuite/gas/riscv/cv-cmpgt-sci-h-fail.s: Likewise
        * gas/testsuite/gas/riscv/cv-cmpgt-sci-h-fail.l: Likewise
        * gas/testsuite/gas/riscv/cv-cmpgt-sci-b-pass.d: Likewise
        * gas/testsuite/gas/riscv/cv-cmpgt-sci-b-pass.s: Likewise
        * gas/testsuite/gas/riscv/cv-cmpgt-sci-b-fail.d: Likewise
        * gas/testsuite/gas/riscv/cv-cmpgt-sci-b-fail.s: Likewise
        * gas/testsuite/gas/riscv/cv-cmpgt-sci-b-fail.l: Likewise
        * gas/testsuite/gas/riscv/cv-cmpge-h-pass.d: Likewise
        * gas/testsuite/gas/riscv/cv-cmpge-h-pass.s: Likewise
        * gas/testsuite/gas/riscv/cv-cmpge-h-fail.d: Likewise
        * gas/testsuite/gas/riscv/cv-cmpge-h-fail.s: Likewise
        * gas/testsuite/gas/riscv/cv-cmpge-h-fail.l: Likewise
        * gas/testsuite/gas/riscv/cv-cmpge-b-pass.d: Likewise
        * gas/testsuite/gas/riscv/cv-cmpge-b-pass.s: Likewise
        * gas/testsuite/gas/riscv/cv-cmpge-b-fail.d: Likewise
        * gas/testsuite/gas/riscv/cv-cmpge-b-fail.s: Likewise
        * gas/testsuite/gas/riscv/cv-cmpge-b-fail.l: Likewise
        * gas/testsuite/gas/riscv/cv-cmpge-sc-h-pass.d: Likewise
        * gas/testsuite/gas/riscv/cv-cmpge-sc-h-pass.s: Likewise
        * gas/testsuite/gas/riscv/cv-cmpge-sc-h-fail.d: Likewise
        * gas/testsuite/gas/riscv/cv-cmpge-sc-h-fail.s: Likewise
        * gas/testsuite/gas/riscv/cv-cmpge-sc-h-fail.l: Likewise
        * gas/testsuite/gas/riscv/cv-cmpge-sc-b-pass.d: Likewise
        * gas/testsuite/gas/riscv/cv-cmpge-sc-b-pass.s: Likewise
        * gas/testsuite/gas/riscv/cv-cmpge-sc-b-fail.d: Likewise
        * gas/testsuite/gas/riscv/cv-cmpge-sc-b-fail.s: Likewise
        * gas/testsuite/gas/riscv/cv-cmpge-sc-b-fail.l: Likewise
        * gas/testsuite/gas/riscv/cv-cmpge-sci-h-pass.d: Likewise
        * gas/testsuite/gas/riscv/cv-cmpge-sci-h-pass.s: Likewise
        * gas/testsuite/gas/riscv/cv-cmpge-sci-h-fail.d: Likewise
        * gas/testsuite/gas/riscv/cv-cmpge-sci-h-fail.s: Likewise
        * gas/testsuite/gas/riscv/cv-cmpge-sci-h-fail.l: Likewise
        * gas/testsuite/gas/riscv/cv-cmpge-sci-b-pass.d: Likewise
        * gas/testsuite/gas/riscv/cv-cmpge-sci-b-pass.s: Likewise
        * gas/testsuite/gas/riscv/cv-cmpge-sci-b-fail.d: Likewise
        * gas/testsuite/gas/riscv/cv-cmpge-sci-b-fail.s: Likewise
        * gas/testsuite/gas/riscv/cv-cmpge-sci-b-fail.l: Likewise
        * gas/testsuite/gas/riscv/cv-cmplt-h-pass.d: Likewise
        * gas/testsuite/gas/riscv/cv-cmplt-h-pass.s: Likewise
        * gas/testsuite/gas/riscv/cv-cmplt-h-fail.d: Likewise
        * gas/testsuite/gas/riscv/cv-cmplt-h-fail.s: Likewise
        * gas/testsuite/gas/riscv/cv-cmplt-h-fail.l: Likewise
        * gas/testsuite/gas/riscv/cv-cmplt-b-pass.d: Likewise
        * gas/testsuite/gas/riscv/cv-cmplt-b-pass.s: Likewise
        * gas/testsuite/gas/riscv/cv-cmplt-b-fail.d: Likewise
        * gas/testsuite/gas/riscv/cv-cmplt-b-fail.s: Likewise
        * gas/testsuite/gas/riscv/cv-cmplt-b-fail.l: Likewise
        * gas/testsuite/gas/riscv/cv-cmplt-sc-h-pass.d: Likewise
        * gas/testsuite/gas/riscv/cv-cmplt-sc-h-pass.s: Likewise
        * gas/testsuite/gas/riscv/cv-cmplt-sc-h-fail.d: Likewise
        * gas/testsuite/gas/riscv/cv-cmplt-sc-h-fail.s: Likewise
        * gas/testsuite/gas/riscv/cv-cmplt-sc-h-fail.l: Likewise
        * gas/testsuite/gas/riscv/cv-cmplt-sc-b-pass.d: Likewise
        * gas/testsuite/gas/riscv/cv-cmplt-sc-b-pass.s: Likewise
        * gas/testsuite/gas/riscv/cv-cmplt-sc-b-fail.d: Likewise
        * gas/testsuite/gas/riscv/cv-cmplt-sc-b-fail.s: Likewise
        * gas/testsuite/gas/riscv/cv-cmplt-sc-b-fail.l: Likewise
        * gas/testsuite/gas/riscv/cv-cmplt-sci-h-pass.d: Likewise
        * gas/testsuite/gas/riscv/cv-cmplt-sci-h-pass.s: Likewise
        * gas/testsuite/gas/riscv/cv-cmplt-sci-h-fail.d: Likewise
        * gas/testsuite/gas/riscv/cv-cmplt-sci-h-fail.s: Likewise
        * gas/testsuite/gas/riscv/cv-cmplt-sci-h-fail.l: Likewise
        * gas/testsuite/gas/riscv/cv-cmplt-sci-b-pass.d: Likewise
        * gas/testsuite/gas/riscv/cv-cmplt-sci-b-pass.s: Likewise
        * gas/testsuite/gas/riscv/cv-cmplt-sci-b-fail.d: Likewise
        * gas/testsuite/gas/riscv/cv-cmplt-sci-b-fail.s: Likewise
        * gas/testsuite/gas/riscv/cv-cmplt-sci-b-fail.l: Likewise
        * gas/testsuite/gas/riscv/cv-cmple-h-pass.d: Likewise
        * gas/testsuite/gas/riscv/cv-cmple-h-pass.s: Likewise
        * gas/testsuite/gas/riscv/cv-cmple-h-fail.d: Likewise
        * gas/testsuite/gas/riscv/cv-cmple-h-fail.s: Likewise
        * gas/testsuite/gas/riscv/cv-cmple-h-fail.l: Likewise
        * gas/testsuite/gas/riscv/cv-cmple-b-pass.d: Likewise
        * gas/testsuite/gas/riscv/cv-cmple-b-pass.s: Likewise
        * gas/testsuite/gas/riscv/cv-cmple-b-fail.d: Likewise
        * gas/testsuite/gas/riscv/cv-cmple-b-fail.s: Likewise
        * gas/testsuite/gas/riscv/cv-cmple-b-fail.l: Likewise
        * gas/testsuite/gas/riscv/cv-cmple-sc-h-pass.d: Likewise
        * gas/testsuite/gas/riscv/cv-cmple-sc-h-pass.s: Likewise
        * gas/testsuite/gas/riscv/cv-cmple-sc-h-fail.d: Likewise
        * gas/testsuite/gas/riscv/cv-cmple-sc-h-fail.s: Likewise
        * gas/testsuite/gas/riscv/cv-cmple-sc-h-fail.l: Likewise
        * gas/testsuite/gas/riscv/cv-cmple-sc-b-pass.d: Likewise
        * gas/testsuite/gas/riscv/cv-cmple-sc-b-pass.s: Likewise
        * gas/testsuite/gas/riscv/cv-cmple-sc-b-fail.d: Likewise
        * gas/testsuite/gas/riscv/cv-cmple-sc-b-fail.s: Likewise
        * gas/testsuite/gas/riscv/cv-cmple-sc-b-fail.l: Likewise
        * gas/testsuite/gas/riscv/cv-cmple-sci-h-pass.d: Likewise
        * gas/testsuite/gas/riscv/cv-cmple-sci-h-pass.s: Likewise
        * gas/testsuite/gas/riscv/cv-cmple-sci-h-fail.d: Likewise
        * gas/testsuite/gas/riscv/cv-cmple-sci-h-fail.s: Likewise
        * gas/testsuite/gas/riscv/cv-cmple-sci-h-fail.l: Likewise
        * gas/testsuite/gas/riscv/cv-cmple-sci-b-pass.d: Likewise
        * gas/testsuite/gas/riscv/cv-cmple-sci-b-pass.s: Likewise
        * gas/testsuite/gas/riscv/cv-cmple-sci-b-fail.d: Likewise
        * gas/testsuite/gas/riscv/cv-cmple-sci-b-fail.s: Likewise
        * gas/testsuite/gas/riscv/cv-cmple-sci-b-fail.l: Likewise
        * gas/testsuite/gas/riscv/cv-cmpgtu-h-pass.d: Likewise
        * gas/testsuite/gas/riscv/cv-cmpgtu-h-pass.s: Likewise
        * gas/testsuite/gas/riscv/cv-cmpgtu-h-fail.d: Likewise
        * gas/testsuite/gas/riscv/cv-cmpgtu-h-fail.s: Likewise
        * gas/testsuite/gas/riscv/cv-cmpgtu-h-fail.l: Likewise
        * gas/testsuite/gas/riscv/cv-cmpgtu-b-pass.d: Likewise
        * gas/testsuite/gas/riscv/cv-cmpgtu-b-pass.s: Likewise
        * gas/testsuite/gas/riscv/cv-cmpgtu-b-fail.d: Likewise
        * gas/testsuite/gas/riscv/cv-cmpgtu-b-fail.s: Likewise
        * gas/testsuite/gas/riscv/cv-cmpgtu-b-fail.l: Likewise
        * gas/testsuite/gas/riscv/cv-cmpgtu-sc-h-pass.d: Likewise
        * gas/testsuite/gas/riscv/cv-cmpgtu-sc-h-pass.s: Likewise
        * gas/testsuite/gas/riscv/cv-cmpgtu-sc-h-fail.d: Likewise
        * gas/testsuite/gas/riscv/cv-cmpgtu-sc-h-fail.s: Likewise
        * gas/testsuite/gas/riscv/cv-cmpgtu-sc-h-fail.l: Likewise
        * gas/testsuite/gas/riscv/cv-cmpgtu-sc-b-pass.d: Likewise
        * gas/testsuite/gas/riscv/cv-cmpgtu-sc-b-pass.s: Likewise
        * gas/testsuite/gas/riscv/cv-cmpgtu-sc-b-fail.d: Likewise
        * gas/testsuite/gas/riscv/cv-cmpgtu-sc-b-fail.s: Likewise
        * gas/testsuite/gas/riscv/cv-cmpgtu-sc-b-fail.l: Likewise
        * gas/testsuite/gas/riscv/cv-cmpgtu-sci-h-pass.d: Likewise
        * gas/testsuite/gas/riscv/cv-cmpgtu-sci-h-pass.s: Likewise
        * gas/testsuite/gas/riscv/cv-cmpgtu-sci-h-fail.d: Likewise
        * gas/testsuite/gas/riscv/cv-cmpgtu-sci-h-fail.s: Likewise
        * gas/testsuite/gas/riscv/cv-cmpgtu-sci-h-fail.l: Likewise
        * gas/testsuite/gas/riscv/cv-cmpgtu-sci-b-pass.d: Likewise
        * gas/testsuite/gas/riscv/cv-cmpgtu-sci-b-pass.s: Likewise
        * gas/testsuite/gas/riscv/cv-cmpgtu-sci-b-fail.d: Likewise
        * gas/testsuite/gas/riscv/cv-cmpgtu-sci-b-fail.s: Likewise
        * gas/testsuite/gas/riscv/cv-cmpgtu-sci-b-fail.l: Likewise
        * gas/testsuite/gas/riscv/cv-cmpgeu-h-pass.d: Likewise
        * gas/testsuite/gas/riscv/cv-cmpgeu-h-pass.s: Likewise
        * gas/testsuite/gas/riscv/cv-cmpgeu-h-fail.d: Likewise
        * gas/testsuite/gas/riscv/cv-cmpgeu-h-fail.s: Likewise
        * gas/testsuite/gas/riscv/cv-cmpgeu-h-fail.l: Likewise
        * gas/testsuite/gas/riscv/cv-cmpgeu-b-pass.d: Likewise
        * gas/testsuite/gas/riscv/cv-cmpgeu-b-pass.s: Likewise
        * gas/testsuite/gas/riscv/cv-cmpgeu-b-fail.d: Likewise
        * gas/testsuite/gas/riscv/cv-cmpgeu-b-fail.s: Likewise
        * gas/testsuite/gas/riscv/cv-cmpgeu-b-fail.l: Likewise
        * gas/testsuite/gas/riscv/cv-cmpgeu-sc-h-pass.d: Likewise
        * gas/testsuite/gas/riscv/cv-cmpgeu-sc-h-pass.s: Likewise
        * gas/testsuite/gas/riscv/cv-cmpgeu-sc-h-fail.d: Likewise
        * gas/testsuite/gas/riscv/cv-cmpgeu-sc-h-fail.s: Likewise
        * gas/testsuite/gas/riscv/cv-cmpgeu-sc-h-fail.l: Likewise
        * gas/testsuite/gas/riscv/cv-cmpgeu-sc-b-pass.d: Likewise
        * gas/testsuite/gas/riscv/cv-cmpgeu-sc-b-pass.s: Likewise
        * gas/testsuite/gas/riscv/cv-cmpgeu-sc-b-fail.d: Likewise
        * gas/testsuite/gas/riscv/cv-cmpgeu-sc-b-fail.s: Likewise
        * gas/testsuite/gas/riscv/cv-cmpgeu-sc-b-fail.l: Likewise
        * gas/testsuite/gas/riscv/cv-cmpgeu-sci-h-pass.d: Likewise
        * gas/testsuite/gas/riscv/cv-cmpgeu-sci-h-pass.s: Likewise
        * gas/testsuite/gas/riscv/cv-cmpgeu-sci-h-fail.d: Likewise
        * gas/testsuite/gas/riscv/cv-cmpgeu-sci-h-fail.s: Likewise
        * gas/testsuite/gas/riscv/cv-cmpgeu-sci-h-fail.l: Likewise
        * gas/testsuite/gas/riscv/cv-cmpgeu-sci-b-pass.d: Likewise
        * gas/testsuite/gas/riscv/cv-cmpgeu-sci-b-pass.s: Likewise
        * gas/testsuite/gas/riscv/cv-cmpgeu-sci-b-fail.d: Likewise
        * gas/testsuite/gas/riscv/cv-cmpgeu-sci-b-fail.s: Likewise
        * gas/testsuite/gas/riscv/cv-cmpgeu-sci-b-fail.l: Likewise
        * gas/testsuite/gas/riscv/cv-cmpltu-h-pass.d: Likewise
        * gas/testsuite/gas/riscv/cv-cmpltu-h-pass.s: Likewise
        * gas/testsuite/gas/riscv/cv-cmpltu-h-fail.d: Likewise
        * gas/testsuite/gas/riscv/cv-cmpltu-h-fail.s: Likewise
        * gas/testsuite/gas/riscv/cv-cmpltu-h-fail.l: Likewise
        * gas/testsuite/gas/riscv/cv-cmpltu-b-pass.d: Likewise
        * gas/testsuite/gas/riscv/cv-cmpltu-b-pass.s: Likewise
        * gas/testsuite/gas/riscv/cv-cmpltu-b-fail.d: Likewise
        * gas/testsuite/gas/riscv/cv-cmpltu-b-fail.s: Likewise
        * gas/testsuite/gas/riscv/cv-cmpltu-b-fail.l: Likewise
        * gas/testsuite/gas/riscv/cv-cmpltu-sc-h-pass.d: Likewise
        * gas/testsuite/gas/riscv/cv-cmpltu-sc-h-pass.s: Likewise
        * gas/testsuite/gas/riscv/cv-cmpltu-sc-h-fail.d: Likewise
        * gas/testsuite/gas/riscv/cv-cmpltu-sc-h-fail.s: Likewise
        * gas/testsuite/gas/riscv/cv-cmpltu-sc-h-fail.l: Likewise
        * gas/testsuite/gas/riscv/cv-cmpltu-sc-b-pass.d: Likewise
        * gas/testsuite/gas/riscv/cv-cmpltu-sc-b-pass.s: Likewise
        * gas/testsuite/gas/riscv/cv-cmpltu-sc-b-fail.d: Likewise
        * gas/testsuite/gas/riscv/cv-cmpltu-sc-b-fail.s: Likewise
        * gas/testsuite/gas/riscv/cv-cmpltu-sc-b-fail.l: Likewise
        * gas/testsuite/gas/riscv/cv-cmpltu-sci-h-pass.d: Likewise
        * gas/testsuite/gas/riscv/cv-cmpltu-sci-h-pass.s: Likewise
        * gas/testsuite/gas/riscv/cv-cmpltu-sci-h-fail.d: Likewise
        * gas/testsuite/gas/riscv/cv-cmpltu-sci-h-fail.s: Likewise
        * gas/testsuite/gas/riscv/cv-cmpltu-sci-h-fail.l: Likewise
        * gas/testsuite/gas/riscv/cv-cmpltu-sci-b-pass.d: Likewise
        * gas/testsuite/gas/riscv/cv-cmpltu-sci-b-pass.s: Likewise
        * gas/testsuite/gas/riscv/cv-cmpltu-sci-b-fail.d: Likewise
        * gas/testsuite/gas/riscv/cv-cmpltu-sci-b-fail.s: Likewise
        * gas/testsuite/gas/riscv/cv-cmpltu-sci-b-fail.l: Likewise
        * gas/testsuite/gas/riscv/cv-cmpleu-h-pass.d: Likewise
        * gas/testsuite/gas/riscv/cv-cmpleu-h-pass.s: Likewise
        * gas/testsuite/gas/riscv/cv-cmpleu-h-fail.d: Likewise
        * gas/testsuite/gas/riscv/cv-cmpleu-h-fail.s: Likewise
        * gas/testsuite/gas/riscv/cv-cmpleu-h-fail.l: Likewise
        * gas/testsuite/gas/riscv/cv-cmpleu-b-pass.d: Likewise
        * gas/testsuite/gas/riscv/cv-cmpleu-b-pass.s: Likewise
        * gas/testsuite/gas/riscv/cv-cmpleu-b-fail.d: Likewise
        * gas/testsuite/gas/riscv/cv-cmpleu-b-fail.s: Likewise
        * gas/testsuite/gas/riscv/cv-cmpleu-b-fail.l: Likewise
        * gas/testsuite/gas/riscv/cv-cmpleu-sc-h-pass.d: Likewise
        * gas/testsuite/gas/riscv/cv-cmpleu-sc-h-pass.s: Likewise
        * gas/testsuite/gas/riscv/cv-cmpleu-sc-h-fail.d: Likewise
        * gas/testsuite/gas/riscv/cv-cmpleu-sc-h-fail.s: Likewise
        * gas/testsuite/gas/riscv/cv-cmpleu-sc-h-fail.l: Likewise
        * gas/testsuite/gas/riscv/cv-cmpleu-sc-b-pass.d: Likewise
        * gas/testsuite/gas/riscv/cv-cmpleu-sc-b-pass.s: Likewise
        * gas/testsuite/gas/riscv/cv-cmpleu-sc-b-fail.d: Likewise
        * gas/testsuite/gas/riscv/cv-cmpleu-sc-b-fail.s: Likewise
        * gas/testsuite/gas/riscv/cv-cmpleu-sc-b-fail.l: Likewise
        * gas/testsuite/gas/riscv/cv-cmpleu-sci-h-pass.d: Likewise
        * gas/testsuite/gas/riscv/cv-cmpleu-sci-h-pass.s: Likewise
        * gas/testsuite/gas/riscv/cv-cmpleu-sci-h-fail.d: Likewise
        * gas/testsuite/gas/riscv/cv-cmpleu-sci-h-fail.s: Likewise
        * gas/testsuite/gas/riscv/cv-cmpleu-sci-h-fail.l: Likewise
        * gas/testsuite/gas/riscv/cv-cmpleu-sci-b-pass.d: Likewise
        * gas/testsuite/gas/riscv/cv-cmpleu-sci-b-pass.s: Likewise
        * gas/testsuite/gas/riscv/cv-cmpleu-sci-b-fail.d: Likewise
        * gas/testsuite/gas/riscv/cv-cmpleu-sci-b-fail.s: Likewise
        * gas/testsuite/gas/riscv/cv-cmpleu-sci-b-fail.l: Likewise
        * gas/testsuite/gas/riscv/cv-cplxmul-r-pass.d: Likewise
        * gas/testsuite/gas/riscv/cv-cplxmul-r-pass.s: Likewise
        * gas/testsuite/gas/riscv/cv-cplxmul-r-fail.d: Likewise
        * gas/testsuite/gas/riscv/cv-cplxmul-r-fail.s: Likewise
        * gas/testsuite/gas/riscv/cv-cplxmul-r-fail.l: Likewise
        * gas/testsuite/gas/riscv/cv-cplxmul-i-pass.d: Likewise
        * gas/testsuite/gas/riscv/cv-cplxmul-i-pass.s: Likewise
        * gas/testsuite/gas/riscv/cv-cplxmul-i-fail.d: Likewise
        * gas/testsuite/gas/riscv/cv-cplxmul-i-fail.s: Likewise
        * gas/testsuite/gas/riscv/cv-cplxmul-i-fail.l: Likewise
        * gas/testsuite/gas/riscv/cv-cplxmul-r-div2-pass.d: Likewise
        * g…
    	* gas/doc/c-riscv.texi: Updated c-riscv.texi document to
    	include CORE-V SIMD extension

Signed-off-by: NandniJamnadas <nandni.jamnadas@embecosm.com>
@jeremybennett jeremybennett force-pushed the simd-instructions-patch branch from b1b1ef7 to 4a5753b Compare October 20, 2022 17:09
Copy link
Collaborator

@jeremybennett jeremybennett left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I have inspected the key files, all look good, and the tools build. I have not inspected all the individual tests of instructions, but a sample look good.

This patch is ready to be merged.

@jeremybennett jeremybennett merged commit 66bcecf into openhwgroup:development Oct 20, 2022
@jeremybennett jeremybennett deleted the simd-instructions-patch branch October 20, 2022 20:35
MaryBennett pushed a commit that referenced this pull request Oct 5, 2023
…s_debug_type}

With gdb build with -fsanitize=thread and test-case gdb.base/index-cache.exp
and target board debug-types, I run into:
...
(gdb) file build/gdb/testsuite/outputs/gdb.base/index-cache/index-cache
Reading symbols from build/gdb/testsuite/outputs/gdb.base/index-cache/index-cache...
==================
WARNING: ThreadSanitizer: data race (pid=9654)
  Write of size 1 at 0x7b200000420d by main thread:
    #0 dwarf2_per_cu_data::get_header() const gdb/dwarf2/read.c:21513 (gdb+0x8d1eee)
    #1 dwarf2_per_cu_data::addr_size() const gdb/dwarf2/read.c:21524 (gdb+0x8d1f4e)
    #2 dwarf2_cu::addr_type() const gdb/dwarf2/cu.c:112 (gdb+0x806327)
    #3 set_die_type gdb/dwarf2/read.c:21932 (gdb+0x8d3870)
    #4 read_base_type gdb/dwarf2/read.c:15448 (gdb+0x8bcacb)
    #5 read_type_die_1 gdb/dwarf2/read.c:19832 (gdb+0x8cc0a5)
    #6 read_type_die gdb/dwarf2/read.c:19767 (gdb+0x8cbe6d)
    #7 lookup_die_type gdb/dwarf2/read.c:19739 (gdb+0x8cbdc7)
    #8 die_type gdb/dwarf2/read.c:19593 (gdb+0x8cb68a)
    #9 read_subroutine_type gdb/dwarf2/read.c:14648 (gdb+0x8b998e)
    #10 read_type_die_1 gdb/dwarf2/read.c:19792 (gdb+0x8cbf2f)
    #11 read_type_die gdb/dwarf2/read.c:19767 (gdb+0x8cbe6d)
    #12 read_func_scope gdb/dwarf2/read.c:10154 (gdb+0x8a4f36)
    #13 process_die gdb/dwarf2/read.c:6667 (gdb+0x898daa)
    #14 read_file_scope gdb/dwarf2/read.c:7682 (gdb+0x89bad8)
    #15 process_die gdb/dwarf2/read.c:6654 (gdb+0x898ced)
    #16 process_full_comp_unit gdb/dwarf2/read.c:6418 (gdb+0x8981de)
    #17 process_queue gdb/dwarf2/read.c:5690 (gdb+0x894433)
    #18 dw2_do_instantiate_symtab gdb/dwarf2/read.c:1770 (gdb+0x88623a)
    #19 dw2_instantiate_symtab gdb/dwarf2/read.c:1792 (gdb+0x886300)
    #20 dw2_expand_symtabs_matching_one(dwarf2_per_cu_data*, dwarf2_per_objfile*, gdb::function_view<bool (char const*, bool)>, gdb::function_view<bool (compunit_symtab*)>) gdb/dwarf2/read.c:3042 (gdb+0x88b1f1)
    #21 cooked_index_functions::expand_symtabs_matching(objfile*, gdb::function_view<bool (char const*, bool)>, lookup_name_info const*, gdb::function_view<bool (char const*)>, gdb::function_view<bool (compunit_symtab*)>, enum_flags<block_search_flag_values>, domain_enum, search_domain) gdb/dwarf2/read.c:16917 (gdb+0x8c228e)
    #22 objfile::lookup_symbol(block_enum, char const*, domain_enum) gdb/symfile-debug.c:288 (gdb+0xf39055)
    #23 lookup_symbol_via_quick_fns gdb/symtab.c:2385 (gdb+0xf66ab7)
    #24 lookup_symbol_in_objfile gdb/symtab.c:2516 (gdb+0xf6711b)
    #25 operator() gdb/symtab.c:2562 (gdb+0xf67272)
    #26 operator() gdb/../gdbsupport/function-view.h:305 (gdb+0xf776b1)
    #27 _FUN gdb/../gdbsupport/function-view.h:299 (gdb+0xf77708)
    #28 gdb::function_view<bool (objfile*)>::operator()(objfile*) const gdb/../gdbsupport/function-view.h:289 (gdb+0xc3fc97)
    #29 svr4_iterate_over_objfiles_in_search_order gdb/solib-svr4.c:3455 (gdb+0xecae47)
    #30 gdbarch_iterate_over_objfiles_in_search_order(gdbarch*, gdb::function_view<bool (objfile*)>, objfile*) gdb/gdbarch.c:5041 (gdb+0x537cad)
    #31 lookup_global_or_static_symbol gdb/symtab.c:2559 (gdb+0xf674fb)
    #32 lookup_global_symbol(char const*, block const*, domain_enum) gdb/symtab.c:2615 (gdb+0xf67780)
    #33 language_defn::lookup_symbol_nonlocal(char const*, block const*, domain_enum) const gdb/symtab.c:2447 (gdb+0xf66d6e)
    #34 lookup_symbol_aux gdb/symtab.c:2123 (gdb+0xf65cb3)
    #35 lookup_symbol_in_language(char const*, block const*, domain_enum, language, field_of_this_result*) gdb/symtab.c:1931 (gdb+0xf64dab)
    #36 set_initial_language() gdb/symfile.c:1708 (gdb+0xf43074)
    #37 symbol_file_add_main_1 gdb/symfile.c:1212 (gdb+0xf41608)
    #38 symbol_file_command(char const*, int) gdb/symfile.c:1681 (gdb+0xf42faf)
    #39 file_command gdb/exec.c:554 (gdb+0x94ff29)
    #40 do_simple_func gdb/cli/cli-decode.c:95 (gdb+0x6d9528)
    #41 cmd_func(cmd_list_element*, char const*, int) gdb/cli/cli-decode.c:2735 (gdb+0x6e0f69)
    #42 execute_command(char const*, int) gdb/top.c:575 (gdb+0xff379c)
    #43 command_handler(char const*) gdb/event-top.c:552 (gdb+0x94b5bc)
    #44 command_line_handler(std::unique_ptr<char, gdb::xfree_deleter<char> >&&) gdb/event-top.c:788 (gdb+0x94bc79)
    #45 tui_command_line_handler gdb/tui/tui-interp.c:104 (gdb+0x1034efc)
    #46 gdb_rl_callback_handler gdb/event-top.c:259 (gdb+0x94ab61)
    #47 rl_callback_read_char readline/readline/callback.c:290 (gdb+0x11be4ef)
    #48 gdb_rl_callback_read_char_wrapper_noexcept gdb/event-top.c:195 (gdb+0x94a960)
    #49 gdb_rl_callback_read_char_wrapper gdb/event-top.c:234 (gdb+0x94aa21)
    #50 stdin_event_handler gdb/ui.c:155 (gdb+0x10751a0)
    #51 handle_file_event gdbsupport/event-loop.cc:573 (gdb+0x1d95bac)
    #52 gdb_wait_for_event gdbsupport/event-loop.cc:694 (gdb+0x1d962e4)
    #53 gdb_do_one_event(int) gdbsupport/event-loop.cc:264 (gdb+0x1d946d0)
    #54 start_event_loop gdb/main.c:412 (gdb+0xb5ab52)
    #55 captured_command_loop gdb/main.c:476 (gdb+0xb5ad41)
    #56 captured_main gdb/main.c:1320 (gdb+0xb5cec1)
    #57 gdb_main(captured_main_args*) gdb/main.c:1339 (gdb+0xb5cf70)
    #58 main gdb/gdb.c:32 (gdb+0x416776)

  Previous read of size 1 at 0x7b200000420d by thread T11:
    #0 write_gdbindex gdb/dwarf2/index-write.c:1229 (gdb+0x831630)
    #1 write_dwarf_index(dwarf2_per_bfd*, char const*, char const*, char const*, dw_index_kind) gdb/dwarf2/index-write.c:1484 (gdb+0x832897)
    #2 index_cache::store(dwarf2_per_bfd*, index_cache_store_context const&) gdb/dwarf2/index-cache.c:173 (gdb+0x82db8d)
    #3 cooked_index::maybe_write_index(dwarf2_per_bfd*, index_cache_store_context const&) gdb/dwarf2/cooked-index.c:645 (gdb+0x7f1d49)
    #4 operator() gdb/dwarf2/cooked-index.c:474 (gdb+0x7f0f31)
    #5 _M_invoke /usr/include/c++/7/bits/std_function.h:316 (gdb+0x7f2a13)
    #6 std::function<void ()>::operator()() const /usr/include/c++/7/bits/std_function.h:706 (gdb+0x700952)
    #7 void std::__invoke_impl<void, std::function<void ()>&>(std::__invoke_other, std::function<void ()>&) /usr/include/c++/7/bits/invoke.h:60 (gdb+0x7381a0)
    #8 std::__invoke_result<std::function<void ()>&>::type std::__invoke<std::function<void ()>&>(std::function<void ()>&) /usr/include/c++/7/bits/invoke.h:95 (gdb+0x737e91)
    #9 std::__future_base::_Task_state<std::function<void ()>, std::allocator<int>, void ()>::_M_run()::{lambda()#1}::operator()() const /usr/include/c++/7/future:1421 (gdb+0x737b59)
    #10 std::__future_base::_Task_setter<std::unique_ptr<std::__future_base::_Result<void>, std::__future_base::_Result_base::_Deleter>, std::__future_base::_Task_state<std::function<void ()>, std::allocator<int>, void ()>::_M_run()::{lambda()#1}, void>::operator()() const /usr/include/c++/7/future:1362 (gdb+0x738660)
    #11 std::_Function_handler<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> (), std::__future_base::_Task_setter<std::unique_ptr<std::__future_base::_Result<void>, std::__future_base::_Result_base::_Deleter>, std::__future_base::_Task_state<std::function<void ()>, std::allocator<int>, void ()>::_M_run()::{lambda()#1}, void> >::_M_invoke(std::_Any_data const&) /usr/include/c++/7/bits/std_function.h:302 (gdb+0x73825c)
    #12 std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>::operator()() const /usr/include/c++/7/bits/std_function.h:706 (gdb+0x733623)
    #13 std::__future_base::_State_baseV2::_M_do_set(std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>*, bool*) /usr/include/c++/7/future:561 (gdb+0x732bdf)
    #14 void std::__invoke_impl<void, void (std::__future_base::_State_baseV2::*)(std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>*, bool*), std::__future_base::_State_baseV2*, std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>*, bool*>(std::__invoke_memfun_deref, void (std::__future_base::_State_baseV2::*&&)(std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>*, bool*), std::__future_base::_State_baseV2*&&, std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>*&&, bool*&&) /usr/include/c++/7/bits/invoke.h:73 (gdb+0x734c4f)
    #15 std::__invoke_result<void (std::__future_base::_State_baseV2::*)(std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>*, bool*), std::__future_base::_State_baseV2*, std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>*, bool*>::type std::__invoke<void (std::__future_base::_State_baseV2::*)(std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>*, bool*), std::__future_base::_State_baseV2*, std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>*, bool*>(void (std::__future_base::_State_baseV2::*&&)(std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>*, bool*), std::__future_base::_State_baseV2*&&, std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>*&&, bool*&&) /usr/include/c++/7/bits/invoke.h:95 (gdb+0x733bc5)
    #16 std::call_once<void (std::__future_base::_State_baseV2::*)(std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>*, bool*), std::__future_base::_State_baseV2*, std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>*, bool*>(std::once_flag&, void (std::__future_base::_State_baseV2::*&&)(std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>*, bool*), std::__future_base::_State_baseV2*&&, std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>*&&, bool*&&)::{lambda()#1}::operator()() const /usr/include/c++/7/mutex:672 (gdb+0x73300d)
    #17 std::call_once<void (std::__future_base::_State_baseV2::*)(std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>*, bool*), std::__future_base::_State_baseV2*, std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>*, bool*>(std::once_flag&, void (std::__future_base::_State_baseV2::*&&)(std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>*, bool*), std::__future_base::_State_baseV2*&&, std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>*&&, bool*&&)::{lambda()#2}::operator()() const /usr/include/c++/7/mutex:677 (gdb+0x7330b2)
    #18 std::call_once<void (std::__future_base::_State_baseV2::*)(std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>*, bool*), std::__future_base::_State_baseV2*, std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>*, bool*>(std::once_flag&, void (std::__future_base::_State_baseV2::*&&)(std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>*, bool*), std::__future_base::_State_baseV2*&&, std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>*&&, bool*&&)::{lambda()#2}::_FUN() /usr/include/c++/7/mutex:677 (gdb+0x7330f2)
    #19 pthread_once <null> (libtsan.so.0+0x4457c)
    #20 __gthread_once /usr/include/c++/7/x86_64-suse-linux/bits/gthr-default.h:699 (gdb+0x72f5dd)
    #21 void std::call_once<void (std::__future_base::_State_baseV2::*)(std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>*, bool*), std::__future_base::_State_baseV2*, std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>*, bool*>(std::once_flag&, void (std::__future_base::_State_baseV2::*&&)(std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>*, bool*), std::__future_base::_State_baseV2*&&, std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>*&&, bool*&&) /usr/include/c++/7/mutex:684 (gdb+0x733224)
    #22 std::__future_base::_State_baseV2::_M_set_result(std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>, bool) /usr/include/c++/7/future:401 (gdb+0x732852)
    #23 std::__future_base::_Task_state<std::function<void ()>, std::allocator<int>, void ()>::_M_run() /usr/include/c++/7/future:1423 (gdb+0x737bef)
    #24 std::packaged_task<void ()>::operator()() /usr/include/c++/7/future:1556 (gdb+0x1dad25a)
    #25 gdb::thread_pool::thread_function() gdbsupport/thread-pool.cc:242 (gdb+0x1dacb7c)
    #26 void std::__invoke_impl<void, void (gdb::thread_pool::*)(), gdb::thread_pool*>(std::__invoke_memfun_deref, void (gdb::thread_pool::*&&)(), gdb::thread_pool*&&) /usr/include/c++/7/bits/invoke.h:73 (gdb+0x1dadc2b)
    #27 std::__invoke_result<void (gdb::thread_pool::*)(), gdb::thread_pool*>::type std::__invoke<void (gdb::thread_pool::*)(), gdb::thread_pool*>(void (gdb::thread_pool::*&&)(), gdb::thread_pool*&&) /usr/include/c++/7/bits/invoke.h:95 (gdb+0x1dad05c)
    #28 decltype (__invoke((_S_declval<0ul>)(), (_S_declval<1ul>)())) std::thread::_Invoker<std::tuple<void (gdb::thread_pool::*)(), gdb::thread_pool*> >::_M_invoke<0ul, 1ul>(std::_Index_tuple<0ul, 1ul>) /usr/include/c++/7/thread:234 (gdb+0x1db038e)
    #29 std::thread::_Invoker<std::tuple<void (gdb::thread_pool::*)(), gdb::thread_pool*> >::operator()() /usr/include/c++/7/thread:243 (gdb+0x1db0319)
    #30 std::thread::_State_impl<std::thread::_Invoker<std::tuple<void (gdb::thread_pool::*)(), gdb::thread_pool*> > >::_M_run() /usr/include/c++/7/thread:186 (gdb+0x1db02ce)
    #31 <null> <null> (libstdc++.so.6+0xdcac2)
  ...
SUMMARY: ThreadSanitizer: data race gdb/dwarf2/read.c:21513 in dwarf2_per_cu_data::get_header() const
...

The race happens when issuing the "file $exec" command.

The race is between:
- a worker thread writing the index cache, and in the process reading
   dwarf2_per_cu_data::is_debug_type, and
- the main thread writing to dwarf2_per_cu_data::m_header_read_in.

The two bitfields dwarf2_per_cu_data::m_header_read_in and
dwarf2_per_cu_data::is_debug_type share the same bitfield container.

Fix this by making dwarf2_per_cu_data::m_header_read_in a packed<bool, 1>.

Tested on x86_64-linux.

Approved-By: Tom Tromey <tom@tromey.com>

PR symtab/30392
Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=30392
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants