https://gcc.gnu.org/bugzilla/show_bug.cgi?id=127957

--- Comment #2 from Uroš Bizjak <ubizjak at gmail dot com> ---
diff --git a/gcc/config/i386/i386.md b/gcc/config/i386/i386.md
index 81e6b59eaae..f9a03f8d76d 100644
--- a/gcc/config/i386/i386.md
+++ b/gcc/config/i386/i386.md
@@ -5598,7 +5598,9 @@ (define_expand "extendhfdf2"
   [(set (match_operand:DF 0 "register_operand")
        (float_extend:DF
          (match_operand:HF 1 "nonimmediate_operand")))]
-  "TARGET_AVX512FP16 || TARGET_F16C || TARGET_AVX512VL"
+  "TARGET_AVX512FP16
+    || ((TARGET_F16C || TARGET_AVX512VL)
+       && (TARGET_80387 || (TARGET_SSE2 && TARGET_SSE_MATH)))"
 {
   if (!TARGET_AVX512FP16)
     {

Reply via email to