[gcc(refs/users/meissner/heads/work221-float)] Revert changes

Michael Meissner meissner@gcc.gnu.org
Fri Sep 12 21:18:05 GMT 2025


https://gcc.gnu.org/g:cb00b3bb514ff8060a057d9e9af83810b85e8e5f

commit cb00b3bb514ff8060a057d9e9af83810b85e8e5f
Author: Michael Meissner <meissner@linux.ibm.com>
Date:   Fri Sep 12 17:18:01 2025 -0400

    Revert changes

Diff:
---
 gcc/ChangeLog.float         | 24 ++----------------------
 gcc/config/rs6000/rs6000.md |  7 +++++--
 gcc/config/rs6000/vsx.md    | 19 ++++++++-----------
 3 files changed, 15 insertions(+), 35 deletions(-)

diff --git a/gcc/ChangeLog.float b/gcc/ChangeLog.float
index 745176d8d44f..30508d34d7d9 100644
--- a/gcc/ChangeLog.float
+++ b/gcc/ChangeLog.float
@@ -1,25 +1,5 @@
-==================== Branch work221-float, patch #316 ====================
-
-Add xxpermdi for bfloat16 converts.
-
-2025-09-12  Michael Meissner  <meissner@linux.ibm.com>
-
-gcc/
-
-	* config/rs6000/vsx.md (vsx_xvcvdpsp_<mode>): As a hack, add xxpermdi
-
-==================== Branch work221-float, patch #315 ====================
-
-Use xvcvdpsp instead of xscvdpspn.
-
-2025-09-12  Michael Meissner  <meissner@linux.ibm.com>
-
-gcc/
-
-	* config/rs6000/rs6000.md (trunc<mode>bf2): Use xvcvdpsp instead of
-	xscvdpspn.
-	* config/rs6000/vsx.md (vsx_xvcvdpsp_<mode>): New insn.
-	(vsx_xscvdpspn_sf): Delete.
+==================== Branch work221-float, patch #316 was reverted ====================
+==================== Branch work221-float, patch #315 was reverted ====================
 
 ==================== Branch work221-float, patch #314 ====================
 
diff --git a/gcc/config/rs6000/rs6000.md b/gcc/config/rs6000/rs6000.md
index 7862ad526f90..4fa59ab54824 100644
--- a/gcc/config/rs6000/rs6000.md
+++ b/gcc/config/rs6000/rs6000.md
@@ -5920,7 +5920,7 @@
 
 ;; Convert SFmode/DFmode to BFmode.
 ;; 2 instructions are generated:
-;;	XVCVDPSPN	-- convert SFmode/DFmode scalar to V4SFmode
+;;	XSCVDPSPN	-- convert SFmode/DFmode scalar to V4SFmode
 ;;	XVCVSPBF16	-- convert V4SFmode to even V8BFmode
 
 (define_insn_and_split "trunc<mode>bf2"
@@ -5940,7 +5940,10 @@
   if (GET_CODE (op2) == SCRATCH)
     op2 = gen_reg_rtx (V4SFmode);
 
-  emit_insn (gen_vsx_xvcvdpsp_<mode> (op2, op1));
+  emit_insn (GET_MODE (op1) == SFmode
+	     ? gen_vsx_xscvdpspn_sf (op2, op1)
+	     : gen_vsx_xscvdpspn (op2, op1));
+
   emit_insn (gen_vsx_xvcvspbf16_bf (op0, op2));
   DONE;
 }
diff --git a/gcc/config/rs6000/vsx.md b/gcc/config/rs6000/vsx.md
index 344f65ea6a77..111457b8fe2e 100644
--- a/gcc/config/rs6000/vsx.md
+++ b/gcc/config/rs6000/vsx.md
@@ -2436,17 +2436,6 @@
   "xvcvdpsp %x0,%x1"
   [(set_attr "type" "vecdouble")])
 
-;; Needed for converting SF/DFmode to BFmode
-(define_insn "vsx_xvcvdpsp_<mode>"
-  [(set (match_operand:V4SF 0 "vsx_register_operand" "=wa")
-	(unspec:V4SF [(match_operand:SFDF 1 "vsx_register_operand" "wa")
-		      (const_int 0)]
-		     UNSPEC_VSX_CVSPDP))]
-  "VECTOR_UNIT_VSX_P (V2DFmode)"
-  "xxpermdi %x0,%x1,%x1,0\;xvcvdpsp %x0,%x0"
-  [(set_attr "type" "fp")
-   (set_attr "length" "8")])
-
 ;; xscvspdp, represent the scalar SF type as V4SF
 (define_insn "vsx_xscvspdp"
   [(set (match_operand:DF 0 "vsx_register_operand" "=wa")
@@ -2522,6 +2511,14 @@
   "xscvdpspn %x0,%x1"
   [(set_attr "type" "fp")])
 
+(define_insn "vsx_xscvdpspn_sf"
+  [(set (match_operand:V4SF 0 "vsx_register_operand" "=wa")
+	(unspec:V4SF [(match_operand:SF 1 "vsx_register_operand" "wa")]
+		     UNSPEC_VSX_CVDPSPN))]
+  "TARGET_XSCVDPSPN"
+  "xscvdpspn %x0,%x1"
+  [(set_attr "type" "fp")])
+
 (define_insn "vsx_xscvspdpn"
   [(set (match_operand:DF 0 "vsx_register_operand" "=wa")
 	(unspec:DF [(match_operand:V4SF 1 "vsx_register_operand" "wa")]


More information about the Gcc-cvs mailing list