-
- Downloads
[APX EGPR] Handle legacy insns that only support GPR16 (3/5)
Disable EGPR usage for below legacy insns in opcode map2/3 that have vex but no evex counterpart. insn list: 1. phminposuw/vphminposuw 2. ptest/vptest 3. roundps/vroundps, roundpd/vroundpd, roundss/vroundss, roundsd/vroundsd 4. pcmpestri/vpcmpestri, pcmpestrm/vpcmpestrm 5. pcmpistri/vpcmpistri, pcmpistrm/vpcmpistrm 6. aesimc/vaesimc, aeskeygenassist/vaeskeygenassist gcc/ChangeLog: * config/i386/i386-protos.h (x86_evex_reg_mentioned_p): New prototype. * config/i386/i386.cc (x86_evex_reg_mentioned_p): New function. * config/i386/i386.md (sse4_1_round<mode>2): Set attr gpr32 0 and constraint jm to all non-evex alternatives, adjust alternative outputs if evex reg is mentioned. * config/i386/sse.md (<sse4_1>_ptest<mode>): Set attr gpr32 0 and constraint jm/ja to all non-evex alternatives. (ptesttf2): Likewise. (<sse4_1>_round<ssemodesuffix><avxsizesuffix): Likewise. (sse4_1_round<ssescalarmodesuffix>): Likewise. (sse4_2_pcmpestri): Likewise. (sse4_2_pcmpestrm): Likewise. (sse4_2_pcmpestr_cconly): Likewise. (sse4_2_pcmpistr): Likewise. (sse4_2_pcmpistri): Likewise. (sse4_2_pcmpistrm): Likewise. (sse4_2_pcmpistr_cconly): Likewise. (aesimc): Likewise. (aeskeygenassist): Likewise. gcc/testsuite/ChangeLog: * gcc.target/i386/apx-legacy-insn-check-norex2.c: Add intrinsic tests. Co-authored-by:Hongyu Wang <hongyu.wang@intel.com> Co-authored-by:
Hongtao Liu <hongtao.liu@intel.com>
Showing
- gcc/config/i386/i386-protos.h 1 addition, 0 deletionsgcc/config/i386/i386-protos.h
- gcc/config/i386/i386.cc 13 additions, 0 deletionsgcc/config/i386/i386.cc
- gcc/config/i386/i386.md 2 additions, 1 deletiongcc/config/i386/i386.md
- gcc/config/i386/sse.md 66 additions, 27 deletionsgcc/config/i386/sse.md
- gcc/testsuite/gcc.target/i386/apx-legacy-insn-check-norex2.c 50 additions, 5 deletionsgcc/testsuite/gcc.target/i386/apx-legacy-insn-check-norex2.c
Loading
Please register or sign in to comment