[PATCH 2/2] Add tests for Intel AVX512_FP16 instructions
authorCui,Lili <lili.cui@intel.com>
Mon, 14 Jun 2021 03:15:51 +0000 (11:15 +0800)
committerCui,Lili <lili.cui@intel.com>
Thu, 5 Aug 2021 13:03:41 +0000 (21:03 +0800)
commit17a089ffda6045908a30c86066748d239a5616d0
tree4705b1ee2949223114c38b2b93f770dd8defd9c0
parent0cc7872125efa71879e34403cc644cd19434eae3
[PATCH 2/2] Add tests for Intel AVX512_FP16 instructions

Intel AVX512 FP16 instructions use maps 3, 5 and 6. Maps 5 and 6 use 3 bits
in the EVEX.mmm field (0b101, 0b110). Map 5 is for instructions that were FP32
in map 1 (0Fxx). Map 6 is for instructions that were FP32 in map 2 (0F38xx).
There are some exceptions to this rule. Some things in map 1 (0Fxx) with imm8
operands predated our current conventions; those instructions moved to map 3.
FP32 things in map 3 (0F3Axx) found new opcodes in map3 for FP16 because map3
is very sparsely populated. Most of the FP16 instructions share opcodes and
prefix (EVEX.pp) bits with the related FP32 operations.

Intel AVX512 FP16 instructions has new displacements scaling rules, please refer
to the public software developer manual for detail information.

gas/

2021-08-05  Igor Tsimbalist  <igor.v.tsimbalist@intel.com>
            H.J. Lu  <hongjiu.lu@intel.com>
            Wei Xiao <wei3.xiao@intel.com>
            Lili Cui  <lili.cui@intel.com>

* testsuite/gas/i386/i386.exp: Run FP16 tests.
* testsuite/gas/i386/avx512_fp16-intel.d: New test.
* testsuite/gas/i386/avx512_fp16-inval-bcast.l: Ditto.
* testsuite/gas/i386/avx512_fp16-inval-bcast.s: Ditto.
* testsuite/gas/i386/avx512_fp16.d: Ditto.
* testsuite/gas/i386/avx512_fp16.s: Ditto.
* testsuite/gas/i386/avx512_fp16_pseudo_ops.d: Ditto.
* testsuite/gas/i386/avx512_fp16_pseudo_ops.s: Ditto.
* testsuite/gas/i386/avx512_fp16_vl-intel.d: Ditto.
* testsuite/gas/i386/avx512_fp16_vl.d: Ditto.
* testsuite/gas/i386/avx512_fp16_vl.s: Ditto.
* testsuite/gas/i386/x86-64-avx512_fp16-intel.d: Ditto.
* testsuite/gas/i386/x86-64-avx512_fp16-inval-bcast.l: Ditto.
* testsuite/gas/i386/x86-64-avx512_fp16-inval-bcast.s: Ditto.
* testsuite/gas/i386/x86-64-avx512_fp16.d: Ditto.
* testsuite/gas/i386/x86-64-avx512_fp16.s: Ditto.
* testsuite/gas/i386/x86-64-avx512_fp16_pseudo_ops.d: Ditto.
* testsuite/gas/i386/x86-64-avx512_fp16_pseudo_ops.s: Ditto.
* testsuite/gas/i386/x86-64-avx512_fp16_vl-intel.d: Ditto.
* testsuite/gas/i386/x86-64-avx512_fp16_vl.d: Ditto.
* testsuite/gas/i386/x86-64-avx512_fp16_vl.s: Ditto.
* testsuite/gas/i386/x86-64-avx512_fp16-inval-register.l: Ditto.
* testsuite/gas/i386/x86-64-avx512_fp16-inval-register.s: Ditto.
* testsuite/gas/i386/x86-64-avx512_fp16-bad.d: Ditto.
* testsuite/gas/i386/x86-64-avx512_fp16-bad.s: Ditto.
* testsuite/gas/i386/x86-64-default-suffix-avx.d: Add new testcase.
* testsuite/gas/i386/x86-64-default-suffix.d: Ditto.
* testsuite/gas/i386/x86-64-default-suffix.s: Ditto.
* testsuite/gas/i386/xmmword.l: Ditto.
* testsuite/gas/i386/xmmword.s: Ditto.
30 files changed:
gas/testsuite/gas/i386/avx512_fp16-intel.d [new file with mode: 0644]
gas/testsuite/gas/i386/avx512_fp16-inval-bcast.l [new file with mode: 0644]
gas/testsuite/gas/i386/avx512_fp16-inval-bcast.s [new file with mode: 0644]
gas/testsuite/gas/i386/avx512_fp16.d [new file with mode: 0644]
gas/testsuite/gas/i386/avx512_fp16.s [new file with mode: 0644]
gas/testsuite/gas/i386/avx512_fp16_pseudo_ops.d [new file with mode: 0644]
gas/testsuite/gas/i386/avx512_fp16_pseudo_ops.s [new file with mode: 0644]
gas/testsuite/gas/i386/avx512_fp16_vl-intel.d [new file with mode: 0755]
gas/testsuite/gas/i386/avx512_fp16_vl.d [new file with mode: 0755]
gas/testsuite/gas/i386/avx512_fp16_vl.s [new file with mode: 0644]
gas/testsuite/gas/i386/i386.exp
gas/testsuite/gas/i386/x86-64-avx512_fp16-bad.d [new file with mode: 0644]
gas/testsuite/gas/i386/x86-64-avx512_fp16-bad.s [new file with mode: 0644]
gas/testsuite/gas/i386/x86-64-avx512_fp16-intel.d [new file with mode: 0644]
gas/testsuite/gas/i386/x86-64-avx512_fp16-inval-bcast.l [new file with mode: 0644]
gas/testsuite/gas/i386/x86-64-avx512_fp16-inval-bcast.s [new file with mode: 0644]
gas/testsuite/gas/i386/x86-64-avx512_fp16-inval-register.l [new file with mode: 0644]
gas/testsuite/gas/i386/x86-64-avx512_fp16-inval-register.s [new file with mode: 0644]
gas/testsuite/gas/i386/x86-64-avx512_fp16.d [new file with mode: 0644]
gas/testsuite/gas/i386/x86-64-avx512_fp16.s [new file with mode: 0644]
gas/testsuite/gas/i386/x86-64-avx512_fp16_pseudo_ops.d [new file with mode: 0644]
gas/testsuite/gas/i386/x86-64-avx512_fp16_pseudo_ops.s [new file with mode: 0755]
gas/testsuite/gas/i386/x86-64-avx512_fp16_vl-intel.d [new file with mode: 0755]
gas/testsuite/gas/i386/x86-64-avx512_fp16_vl.d [new file with mode: 0755]
gas/testsuite/gas/i386/x86-64-avx512_fp16_vl.s [new file with mode: 0644]
gas/testsuite/gas/i386/x86-64-default-suffix-avx.d
gas/testsuite/gas/i386/x86-64-default-suffix.d
gas/testsuite/gas/i386/x86-64-default-suffix.s
gas/testsuite/gas/i386/xmmword.l
gas/testsuite/gas/i386/xmmword.s