x86: Correctly optimize EVEX to 128-bit VEX/EVEX
authorH.J. Lu <hjl.tools@gmail.com>
Sat, 16 Mar 2019 23:25:08 +0000 (07:25 +0800)
committerH.J. Lu <hjl.tools@gmail.com>
Sat, 16 Mar 2019 23:25:22 +0000 (07:25 +0800)
commitdd22218cf26fa5d8beade7266de391a28e63527b
tree0f466caac1966f1a9b7af5675aba2440e428a7a0
parentab42892fb7d265e72a85e918d4f5c6dfeee3fcd8
x86: Correctly optimize EVEX to 128-bit VEX/EVEX

We can optimize 512-bit EVEX to 128-bit EVEX encoding for upper 16
vector registers only when AVX512VL is enabled.  We can't optimize
EVEX to 128-bit VEX encoding when AVX isn't enabled.

PR gas/24352
* config/tc-i386.c (optimize_encoding): Encode 512-bit EVEX
with 128-bit VEX encoding only when AVX is enabled and with
128-bit EVEX encoding only when AVX512VL is enabled.
* testsuite/gas/i386/i386.exp: Run PR gas/24352 tests.
* testsuite/gas/i386/optimize-6.s: New file.
* testsuite/gas/i386/optimize-6a.d: Likewise.
* testsuite/gas/i386/optimize-6b.d: Likewise.
* testsuite/gas/i386/optimize-6c.d: Likewise.
* testsuite/gas/i386/x86-64-optimize-7.s: Likewise.
* testsuite/gas/i386/x86-64-optimize-7a.d: Likewise.
* testsuite/gas/i386/x86-64-optimize-7b.d: Likewise.
* testsuite/gas/i386/x86-64-optimize-7c.d: Likewise.
* testsuite/gas/i386/x86-64-optimize-2.d: Updated.
12 files changed:
gas/ChangeLog
gas/config/tc-i386.c
gas/testsuite/gas/i386/i386.exp
gas/testsuite/gas/i386/optimize-6.s [new file with mode: 0644]
gas/testsuite/gas/i386/optimize-6a.d [new file with mode: 0644]
gas/testsuite/gas/i386/optimize-6b.d [new file with mode: 0644]
gas/testsuite/gas/i386/optimize-6c.d [new file with mode: 0644]
gas/testsuite/gas/i386/x86-64-optimize-2.d
gas/testsuite/gas/i386/x86-64-optimize-7.s [new file with mode: 0644]
gas/testsuite/gas/i386/x86-64-optimize-7a.d [new file with mode: 0644]
gas/testsuite/gas/i386/x86-64-optimize-7b.d [new file with mode: 0644]
gas/testsuite/gas/i386/x86-64-optimize-7c.d [new file with mode: 0644]
This page took 0.059823 seconds and 4 git commands to generate.