rs6000: Add back some w* constraints (PR91886)
authorSegher Boessenkool <segher@kernel.crashing.org>
Wed, 18 Mar 2020 21:58:45 +0000 (21:58 +0000)
committerSegher Boessenkool <segher@kernel.crashing.org>
Wed, 18 Mar 2020 23:17:28 +0000 (23:17 +0000)
In May and June last year I deleted many of our (vector) constraints.
We can now just use "wa" for those, together with some other
conditions, which can be per alternative using the "enabled" attribute
(which in turn primarily uses the "isa" attribute).

But, it turns out that Clang implements some of those constraints as
well, and at least musl uses some of them.  It is easy for us to add
those contraints back (as undocumented aliases to "wa", which always
did mean the same thing for valid inline assembler code), so do that.

gcc/
* config/rs6000/constraints.md (wd, wf, wi, ws, ww): New undocumented
aliases for "wa".

gcc/ChangeLog
gcc/config/rs6000/constraints.md

index 3a2e491113e72408bfc98ef05ea3b8a6cb402b31..66202f0253f5ea44b14836ff9e7c8e7e25a3672a 100644 (file)
@@ -1,3 +1,8 @@
+2020-03-18  Segher Boessenkool  <segher@kernel.crashing.org>
+
+       * config/rs6000/constraints.md (wd, wf, wi, ws, ww): New undocumented
+       aliases for "wa".
+
 2020-03-12  Richard Sandiford  <richard.sandiford@arm.com>
 
        PR rtl-optimization/90275
index 4074a11da2338c79672e6126deb167fe60c01e10..c600535e3eaf622f80880ba9e3e4fb6c101ab914 100644 (file)
   FPR (@code{vs0}@dots{}@code{vs31} are @code{f0}@dots{}@code{f31}) or a VR
   (@code{vs32}@dots{}@code{vs63} are @code{v0}@dots{}@code{v31}).")
 
+(define_register_constraint "wd" "rs6000_constraints[RS6000_CONSTRAINT_wa]"
+  "@internal A compatibility alias for @code{wa}.")
+(define_register_constraint "wf" "rs6000_constraints[RS6000_CONSTRAINT_wa]"
+  "@internal A compatibility alias for @code{wa}.")
+(define_register_constraint "wi" "rs6000_constraints[RS6000_CONSTRAINT_wa]"
+  "@internal A compatibility alias for @code{wa}.")
+(define_register_constraint "ws" "rs6000_constraints[RS6000_CONSTRAINT_wa]"
+  "@internal A compatibility alias for @code{wa}.")
+(define_register_constraint "ww" "rs6000_constraints[RS6000_CONSTRAINT_wa]"
+  "@internal A compatibility alias for @code{wa}.")
+
 (define_register_constraint "h" "SPECIAL_REGS"
   "@internal A special register (@code{vrsave}, @code{ctr}, or @code{lr}).")