[PATCH], PowerPC long double transition patches, v2, Patch #2 (add missing conversion insn)

Michael Meissner meissner@linux.ibm.com
Wed Jun 20 14:32:00 GMT 2018


In reworking the ordering of the 128-bit floating point modes (June 18th, 2018
patch), I missed one conversion insn.  This meant the compiler would generate a
conversion to using the IF name.

I have tested this on a little endian power8 system with long double set to
IEEE 128-bit and IBM extended, and it fixes tests that convert between the
128-bit binary floating point types.  Can I install this on the trunk and back
port it to GCC 8.x?

[gcc]
2018-06-20  Michael Meissner  <meissner@linux.ibm.com>

	* config/rs6000/rs6000.md (extendtfif2): Add missing 128-bit
	conversion insn.

-- 
Michael Meissner, IBM
IBM, M/S 2506R, 550 King Street, Littleton, MA 01460-6245, USA
email: meissner@linux.ibm.com, phone: +1 (978) 899-4797
-------------- next part --------------
Index: gcc/config/rs6000/rs6000.md
===================================================================
--- gcc/config/rs6000/rs6000.md	(revision 261602)
+++ gcc/config/rs6000/rs6000.md	(working copy)
@@ -8158,6 +8158,15 @@ (define_expand "extendtfkf2"
   DONE;
 })
 
+(define_expand "extendtfif2"
+  [(set (match_operand:IF 0 "gpc_reg_operand")
+	(float_extend:IF (match_operand:TF 1 "gpc_reg_operand")))]
+  "TARGET_FLOAT128_TYPE"
+{
+  rs6000_expand_float128_convert (operands[0], operands[1], false);
+  DONE;
+})
+
 (define_expand "trunciftf2"
   [(set (match_operand:TF 0 "gpc_reg_operand")
 	(float_truncate:TF (match_operand:IF 1 "gpc_reg_operand")))]


More information about the Gcc-patches mailing list