From: Levy Hsu <[email protected]>
gcc/ChangeLog:
* config/i386/sse.md: Expand VF2H to VF2HB with VBF modes.
---
gcc/config/i386/sse.md | 13 ++++++++-----
1 file changed, 8 insertions(+), 5 deletions(-)
diff --git a/gcc/config/i386/sse.md b/gcc/config/i386/sse.md
index b374783429c..2de592a9c8f 100644
--- a/gcc/config/i386/sse.md
+++ b/gcc/config/i386/sse.md
@@ -447,9 +447,12 @@
(define_mode_iterator VF2_AVX10_2
[(V8DF "TARGET_AVX10_2_512") V4DF V2DF])
-;; All DFmode & HFmode vector float modes
-(define_mode_iterator VF2H
- [(V32HF "TARGET_AVX512FP16 && TARGET_EVEX512")
+;; All DFmode & HFmode & BFmode vector float modes
+(define_mode_iterator VF2HB
+ [(V32BF "TARGET_AVX10_2_512")
+ (V16BF "TARGET_AVX10_2_256")
+ (V8BF "TARGET_AVX10_2_256")
+ (V32HF "TARGET_AVX512FP16 && TARGET_EVEX512")
(V16HF "TARGET_AVX512FP16 && TARGET_AVX512VL")
(V8HF "TARGET_AVX512FP16 && TARGET_AVX512VL")
(V8DF "TARGET_AVX512F && TARGET_EVEX512") (V4DF "TARGET_AVX") V2DF])
@@ -2933,8 +2936,8 @@
(set_attr "mode" "<MODE>")])
(define_expand "sqrt<mode>2"
- [(set (match_operand:VF2H 0 "register_operand")
- (sqrt:VF2H (match_operand:VF2H 1 "vector_operand")))]
+ [(set (match_operand:VF2HB 0 "register_operand")
+ (sqrt:VF2HB (match_operand:VF2HB 1 "vector_operand")))]
"TARGET_SSE2")
(define_expand "sqrt<mode>2"
--
2.31.1