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.