On 4/28/21 3:48 AM, Ilya Leoshkevich wrote: > Bootstrapped and regtested on s390x-redhat-linux. Tested with valgrind > too (PR 100278 is now fixed). Ok for master? > > v1: https://gcc.gnu.org/pipermail/gcc-patches/2021-April/568771.html > v1 -> v2: Use the UNSPEC pattern, which is less efficient, but is more > on the "obviously correct" side than gen_raw_SUBREG(). > > > > gen_fprx2_to_tf() and gen_tf_to_fprx2() cannot handle hard registers, > since the subregs they create do not pass validation. Change > s390_md_asm_adjust() to manually copy between hard VRs and FPRs instead > of using these two functions. > > gcc/ChangeLog: > > PR target/100217 > * config/s390/s390.c (s390_hard_fp_reg_p): New function. > (s390_md_asm_adjust): Handle hard registers. > > gcc/testsuite/ChangeLog: > > PR target/100217 > * gcc.target/s390/vector/long-double-asm-in-out-hard-fp-reg.c: New test. > * gcc.target/s390/vector/long-double-asm-inout-hard-fp-reg.c: New test.
Ok. Thanks! Andreas