Patchwork [MIPS,committed] Clean up vect.exp results

login
register
mail settings
Submitter Richard Sandiford
Date Jan. 24, 2012, 7:46 p.m.
Message ID <87pqe86g03.fsf@firetop.home>
Download mbox | patch
Permalink /patch/137626/
State New
Headers show

Comments

Richard Sandiford - Jan. 24, 2012, 7:46 p.m.
...for -mpaired-single at least.  Although the patch shows the intention
of making this specific to -mpaired-single, we don't distinguish between
integer and float capabilities, so the condition effectively triggers
for Loongson integer vectors too.

The patch is still correct for floats on Loongson, and the Loongson
results are messy even without this patch, so I'm afraid I'm going
to punt on them for now and concentrate on getting the standard ISA
results clean.  The lack of feedback to Richard's autovectorisation
patches makes me wonder how much interest there is in Loongson these
days anyway.

Tested on mipsisa64-elf and mips64-linux-gnu.  Applied.

Richard


gcc/testsuite/
	* lib/target-supports.exp (proc check_effective_target_vect_perm)
	(check_effective_target_vect_extract_even_odd)
	(check_effective_target_vect_interleave): Return true for MIPS
	paired-single.

Patch

Index: gcc/testsuite/lib/target-supports.exp
===================================================================
--- gcc/testsuite/lib/target-supports.exp	2012-01-24 19:20:28.000000000 +0000
+++ gcc/testsuite/lib/target-supports.exp	2012-01-24 19:40:13.000000000 +0000
@@ -2759,7 +2759,9 @@  proc check_effective_target_vect_perm {
 	     || [istarget powerpc*-*-*]
              || [istarget spu-*-*]
 	     || [istarget i?86-*-*]
-	     || [istarget x86_64-*-*] } {
+	     || [istarget x86_64-*-*]
+	     || ([istarget mips*-*-*]
+		 && [check_effective_target_mpaired_single]) } {
             set et_vect_perm_saved 1
         }
     }
@@ -3484,8 +3486,10 @@  proc check_effective_target_vect_extract
              || [istarget i?86-*-*]
              || [istarget x86_64-*-*]
              || [istarget ia64-*-*]
-             || [istarget spu-*-*] } {
-           set et_vect_extract_even_odd_saved 1
+             || [istarget spu-*-*]
+	     || ([istarget mips*-*-*]
+		 && [check_effective_target_mpaired_single]) } {
+	    set et_vect_extract_even_odd_saved 1
         }
     }
 
@@ -3507,7 +3511,9 @@  proc check_effective_target_vect_interle
              || [istarget i?86-*-*]
              || [istarget x86_64-*-*]
              || [istarget ia64-*-*]
-             || [istarget spu-*-*] } {
+             || [istarget spu-*-*]
+	     || ([istarget mips*-*-*]
+		 && [check_effective_target_mpaired_single]) } {
            set et_vect_interleave_saved 1
         }
     }