This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: [PATCH] MIPS32 DSP intrinsics
I'll give Eric (cc'ed) time to comment or object, but this looks
good to
go from my point of view. Thanks for your contribution, and for your
patience throughout.
Couple of comments, but ok otherwise, feel free to commit after
fixing - no need to repost.
+ /* TARGET_MIPS16 and TARGET_DSP cannot be used together. */
+ if (TARGET_MIPS16 && TARGET_DSP)
+ error ("-mips16/-mdsp cannot be used together");
+
"-mips16 and -mdsp cannot be used together" would be better in my
mind. Otherwise it looks like a dejagnu test string and isn't as user
friendly :)
>*************** mips_valid_pointer_mode (enum machine_mo
>*** 7519,7528 ****
> static bool
> mips_vector_mode_supported_p (enum machine_mode mode)
> {
>! if (mode == V2SFmode && TARGET_PAIRED_SINGLE_FLOAT)
>! return true;
>! else
>! return false;
> }
> ^L
> /* If we can access small data directly (using gp-relative
relocation
>--- 7609,7616 ----
> static bool
> mips_vector_mode_supported_p (enum machine_mode mode)
> {
>! return (mode == V2SFmode && TARGET_PAIRED_SINGLE_FLOAT)
>! || (TARGET_DSP && (mode == V2HImode || mode == V4QImode));
> }
Can I get you to leave the original logic in? For example:
if (TARGET_PAIRED_SINGLE_FLOAT && mode == V2SFmode)
return true;
else if (TARGET_DSP && (mode == V2HImode || mode == V4QImode))
return true;
else
return false;
I'm lazy and find this easier to read :)
>+ (UNSPEC_CMPGU_LE_QB 355)
>+ (UNSPEC_PICK 356)
>+ (UNSPEC_PACKRL_PH 357)
>+ (UNSPEC_EXTR_W 358)
>+ (UNSPEC_EXTR_R_W 359)
Can you make sure that the spacing aligns when you check this in please?
Everything else looked good. Thanks for the work.
-eric