On Thu, Mar 14, 2019 at 9:22 AM H.J. Lu <hjl.to...@gmail.com> wrote:

> > > We can't use the %X5 since %X5 is used on operands.
> >
> > So, please introduce some other modifier ("X" was not to be taken
> > literally, but *some* letter). Why are you overloading 'P'?
>
> Here is the updated patch with the 'M' modifier.
>
>
> gcc/
>
> PR target/89523
> * config/i386/i386.c (ix86_print_operand): Handle 'M' to add
> addr32 prefix to VSIB address for X32.
> * config/i386/sse.md (*avx512pf_gatherpf<mode>sf_mask): Prepend
> "%M2" to opcode.
> (*avx512pf_gatherpf<mode>df_mask): Likewise.
> (*avx512pf_scatterpf<mode>sf_mask): Likewise.
> (*avx512pf_scatterpf<mode>df_mask): Likewise.
> (*avx2_gathersi<mode>): Prepend "%M3" to opcode.
> (*avx2_gathersi<mode>_2): Prepend "%M2" to opcode.
> (*avx2_gatherdi<mode>): Prepend "%M3" to opcode.
> (*avx2_gatherdi<mode>_2): Prepend "%M2" to opcode.
> (*avx2_gatherdi<mode>_3): Prepend "%M3" to opcode.
> (*avx2_gatherdi<mode>_4): Prepend "%M2" to opcode.`
> (*avx512f_gathersi<mode>): Prepend "%M4" to opcode.
> (*avx512f_gathersi<mode>_2): Prepend "%M3" to opcode.
> (*avx512f_gatherdi<mode>): Prepend "%M4" to opcode.
> (*avx512f_gatherdi<mode>_2): Prepend "%M3" to opcode.
> (*avx512f_scattersi<mode>): Prepend "%M0" to opcode.
> (*avx512f_scatterdi<mode>): Likewise.
>
> gcc/testsuite/
>
> PR target/89523
> * gcc.target/i386/pr89523-1a.c: New test.
> * gcc.target/i386/pr89523-1b.c: Likewise.
> * gcc.target/i386/pr89523-2.c: Likewise.
> * gcc.target/i386/pr89523-3.c: Likewise.
> * gcc.target/i386/pr89523-4.c: Likewise.
> * gcc.target/i386/pr89523-5.c: Likewise.
> * gcc.target/i386/pr89523-6.c: Likewise.
> * gcc.target/i386/pr89523-7.c: Likewise.
> * gcc.target/i386/pr89523-8.c: Likewise.
> * gcc.target/i386/pr89523-9.c: Likewise.

The patch looks safe and relatively non-intrusive, so OK for gcc-9 and
backports.

Thanks,
Uros.

Reply via email to