Hi,

Adding support for extv<mode> and extzv<mode> on aarch64 as described in 
PR86901. I also changed extract_bit_field_using_extv to use 
gen_lowpart_if_possible instead of gen_lowpart directly. Using gen_lowpart 
directly will fail with an ICE in building libgcc when the compiler fails to 
successfully do so whereas gen_lowpart_if_possible will bail out of matching 
this pattern gracefully.

I'm looking through past mails and https://gcc.gnu.org/contribute.html which 
details testing bootstrap. I'm building a cross-compiler (x64_aarch64) and the 
instructions don't address that scenario. The GCC cross-build is green and 
there's no regressions on the C/C++ tests (The go/fortran etc. look like they 
need additional infrastructure built on my side to work). Is there a workflow 
for cross-builds or should I aim to get an aarch64 native machine for full 
validation?


ChangeLog:
2020-02-03  Di Mo  <mod...@microsoft.com>

gcc/
        * config/aarch64/aarch64.md: Add define_expand for extv<mode> and 
extzv<mode>.
        * expmed.c (extract_bit_field_using_extv): Change gen_lowpart to 
gen_lowpart_if_possible to avoid compiler assert building libgcc.
testsuite/
        * gcc.target/aarch64/pr86901.c: Add new test.


Best,
Modi

Attachment: pr86901.patch
Description: pr86901.patch

Reply via email to