Re: [PATCH rs6000] Fix for commit 249311

2017-06-19 Thread Segher Boessenkool
On Fri, Jun 16, 2017 at 09:08:50PM -0700, Carl Love wrote:
> Commit r249311 had an error.  During the patch review the define expand
> for VFC_inst was changed to VF_sxddp.  I compiled and tested the source
> after making the change and it seemed fine.  However, I missed a couple
> of changes.  It seems that since I didn't remove all the binaries before
> recompiling the build tree still had the old definition in it.

Either we have some missing dependencies then, or (more likely) something
in your workflow didn't set modification dates correctly.

> I also
> found I had to move the VF_sxddp definition back to the file where it is
> used.  Need to make sure I do a clean build just to be sure before
> committing things.
> 
> I found the issue after pulling down a fresh tree and compiling when the
> build failed.  I have already applied the following change to the tree
> as I didn't want to leave a broken tree all weekend.

Thanks!

> Please let me know
> if there are any changes to this fix-up patch that you would like to see
> made and I will take care of it. 
> 
> Sorry about breaking things.

Heh, it happens :-)


Segher


[PATCH rs6000] Fix for commit 249311

2017-06-16 Thread Carl Love
GCC maintainers:

Commit r249311 had an error.  During the patch review the define expand
for VFC_inst was changed to VF_sxddp.  I compiled and tested the source
after making the change and it seemed fine.  However, I missed a couple
of changes.  It seems that since I didn't remove all the binaries before
recompiling the build tree still had the old definition in it. I also
found I had to move the VF_sxddp definition back to the file where it is
used.  Need to make sure I do a clean build just to be sure before
committing things.

I found the issue after pulling down a fresh tree and compiling when the
build failed.  I have already applied the following change to the tree
as I didn't want to leave a broken tree all weekend. Please let me know
if there are any changes to this fix-up patch that you would like to see
made and I will take care of it. 

Sorry about breaking things.

  Carl Love


gcc/ChangeLog:

2017-06-16  Carl Love  

* config/rs6000/altivec.md (define_mode_attr VF_sxddp): Move to vsx.md.
* config/rs6000/vsx.md (define_mode_attr VF_sxddp
define_expand "floate",
define_expand "floato"): Add VF_sxddp definition, replace
undefined VFC_inst with VF_sxddp definition


Index: gcc/config/rs6000/vsx.md
===
--- gcc/config/rs6000/vsx.md(revision 249336)
+++ gcc/config/rs6000/vsx.md(revision 249337)
@@ -21,6 +21,9 @@
 ;; Iterator for comparison types
 (define_code_iterator CMP_TEST [eq lt gt unordered])
 
+;; Mode attribute for vector floate and floato conversions
+(define_mode_attr VF_sxddp [(V2DI "sxd") (V2DF "dp")])
+
 ;; Iterator for both scalar and vector floating point types supported by VSX
 (define_mode_iterator VSX_B [DF V4SF V2DF])
 
@@ -2056,7 +2059,7 @@
 rtx_tmp, rtx_tmp, rtx_val));
 }
   else
-emit_insn (gen_vsx_xvcvsp (operands[0], operands[1]));
+emit_insn (gen_vsx_xvcvsp (operands[0], operands[1]));
 
   DONE;
 })
@@ -2095,7 +2098,7 @@
   "VECTOR_UNIT_VSX_P (V4SFmode)"
 {
   if (VECTOR_ELT_ORDER_BIG)
-emit_insn (gen_vsx_xvcvsp (operands[0], operands[1]));
+emit_insn (gen_vsx_xvcvsp (operands[0], operands[1]));
   else
 {
   /* Shift left one word to put odd word correct location */
@@ -2103,7 +2106,7 @@
   rtx rtx_val = GEN_INT (4);
 
   rtx_tmp = gen_reg_rtx (V4SFmode);
-  emit_insn (gen_vsx_xvcvsp (rtx_tmp, operands[1]));
+  emit_insn (gen_vsx_xvcvsp (rtx_tmp, operands[1]));
   emit_insn (gen_altivec_vsldoi_v4sf (operands[0],
 rtx_tmp, rtx_tmp, rtx_val));
 }
Index: gcc/config/rs6000/altivec.md
===
--- gcc/config/rs6000/altivec.md(revision 249336)
+++ gcc/config/rs6000/altivec.md(revision 249337)
@@ -207,9 +207,6 @@
 ;; versus floating point
 (define_mode_attr VS_sxwsp [(V4SI "sxw") (V4SF "sp")])
 
-;; Mode attribute for vector floate and floato conversions
-(define_mode_attr VF_sxddp [(V2DI "sxd") (V2DF "dp")])
-
 ;; Specific iterator for parity which does not have a byte/half-word form, but
 ;; does have a quad word form
 (define_mode_iterator VParity [V4SI