[gcc(refs/users/meissner/heads/work221-float)] Add converts between 16-bit fp and integers
Michael Meissner
meissner@gcc.gnu.org
Wed Sep 10 02:25:04 GMT 2025
https://gcc.gnu.org/g:fa4d7041ec4848d186ba13af7d3db6d030fff269
commit fa4d7041ec4848d186ba13af7d3db6d030fff269
Author: Michael Meissner <meissner@linux.ibm.com>
Date: Tue Sep 9 22:24:44 2025 -0400
Add converts between 16-bit fp and integers
2025-09-09 Michael Meissner <meissner@linux.ibm.com>
gcc/
* config/rs6000/rs6000.md (movhf_internal): Use 16-bit load/stores
instead of 32-bit.
Diff:
---
gcc/config/rs6000/rs6000.md | 18 +++++++++---------
1 file changed, 9 insertions(+), 9 deletions(-)
diff --git a/gcc/config/rs6000/rs6000.md b/gcc/config/rs6000/rs6000.md
index a81758e62a02..82214945ccdf 100644
--- a/gcc/config/rs6000/rs6000.md
+++ b/gcc/config/rs6000/rs6000.md
@@ -8226,28 +8226,28 @@
(define_insn "*movhf_internal"
[(set (match_operand:HF 0 "nonimmediate_operand"
- "=wa, wa, Z, r, r,
+ "=wa, wa, Z, r, r,
m, r, wa, wa, r")
(match_operand:HF 1 "any_operand"
- "wa, Z, wa, r, m,
- r, wa, r, j, j"))]
+ "wa, Z, wa, r, m,
+ r, wa, r, j, j"))]
"TARGET_IEEE16
&& (gpc_reg_operand (operands[0], HFmode)
|| gpc_reg_operand (operands[1], HFmode))"
"@
xxlor %x0,%x1,%x1
- lxsiwzx %x0,%y1
- stxsiwx %x1,%y0
+ lxsihzx %x0,%y1
+ stxsihx %x1,%y0
mr %0,%1
- lwz%U1%X1 %0,%1
- stw%U0%X0 %1,%0
+ lhz%U1%X1 %0,%1
+ sth%U0%X0 %1,%0
mfvsrwz %0,%x1
mtvsrwz %x0,%1
xxspltib %x0,0
li %0,0"
- [(set_attr "type" "vecsimple, fpload, fpstore, *, load,
- store, mtvsr, mfvsr, vecsimple, *")])
+ [(set_attr "type" "vecsimple, fpload, fpstore, *, load,
+ store, mtvsr, mfvsr, vecsimple, *")])
More information about the Gcc-cvs
mailing list