Skip to content

AVX512FP16: Add earlyclobber constraints for complex insns

Complex insns does not allow same input register and output register. Add '&' constraint to patterns to prevent this.

gcc/ChangeLog:

* config/i386/sse.md:
(fma_<complexopname>_<mode><sdc_maskz_name><round_name>): Add
'&' to output constraint.
(<avx512>_<complexopname>_<mode>_mask<round_name>): Ditto.
(<avx512>_<complexopname>_<mode>_<maskc_name><round_name>): Ditto.
(avx512fp16_fma_<complexopname>sh_v8hf<mask_scalarcz_name><round_scalarcz_name>:
Ditto.
(avx512fp16_<complexopname>sh_v8hf_mask<round_name>): Ditto.
(avx512fp16_<complexopname>sh_v8hf<mask_scalarc_name><round_scalarcz_name>):
Ditto.

gcc/testsuite/ChangeLog:

* gcc.target/i386/avx512fp16-complex-constraints.c: New test.

Merge request reports