[gcc(refs/users/meissner/heads/work041)] Add VEC_DUPLICATE insn/split.
Michael Meissner
meissner@gcc.gnu.org
Thu Mar 18 18:35:24 GMT 2021
https://gcc.gnu.org/g:a288d945cb495490e3cce800980d1df95159c486
commit a288d945cb495490e3cce800980d1df95159c486
Author: Michael Meissner <meissner@linux.ibm.com>
Date: Thu Mar 18 14:35:02 2021 -0400
Add VEC_DUPLICATE insn/split.
gcc/
2021-03-18 Michael Meissner <meissner@linux.ibm.com>
* config/rs6000/altivec.md (xxspltidp_v2df): Delete special
handling of 0.0. Add comment about the denormal.
Diff:
---
gcc/config/rs6000/altivec.md | 10 +++-------
1 file changed, 3 insertions(+), 7 deletions(-)
diff --git a/gcc/config/rs6000/altivec.md b/gcc/config/rs6000/altivec.md
index e93bb9c787f..cd5b0e037ad 100644
--- a/gcc/config/rs6000/altivec.md
+++ b/gcc/config/rs6000/altivec.md
@@ -859,12 +859,6 @@
rtx op1 = operands[1];
const struct real_value *rv = CONST_DOUBLE_REAL_VALUE (op1);
- if (op1 == CONST0_RTX (SFmode))
- {
- emit_move_insn (op0, CONST0_RTX (V2DFmode));
- DONE;
- }
-
/* If the value is not denormal, convert to vec_duplicate. */
if (xxspltidp_operand (op1, SFmode))
{
@@ -874,7 +868,9 @@
DONE;
}
- /* If the value is denormal, create an insn with the int value. */
+ /* If the value is denormal, create an insn with the int value. There is a
+ warning for this condition when the built-in was expanded in
+ rs6000_expand_unop_builtin. */
long value;
REAL_VALUE_TO_TARGET_SINGLE (*rv, value);
emit_insn (gen_xxspltidp_v2df_denormal (op0, GEN_INT (value)));
More information about the Gcc-cvs
mailing list