| OLD | NEW |
| 1 # Copyright (C) 2002-2003, 2005, 2007-2012 Free Software Foundation, | 1 # Copyright (C) 2002-2003, 2005, 2007-2012 Free Software Foundation, |
| 2 # Inc. | 2 # Inc. |
| 3 # | 3 # |
| 4 # This program is free software; you can redistribute it and/or modify | 4 # This program is free software; you can redistribute it and/or modify |
| 5 # it under the terms of the GNU General Public License as published by | 5 # it under the terms of the GNU General Public License as published by |
| 6 # the Free Software Foundation; either version 3 of the License, or | 6 # the Free Software Foundation; either version 3 of the License, or |
| 7 # (at your option) any later version. | 7 # (at your option) any later version. |
| 8 # | 8 # |
| 9 # This program is distributed in the hope that it will be useful, | 9 # This program is distributed in the hope that it will be useful, |
| 10 # but WITHOUT ANY WARRANTY; without even the implied warranty of | 10 # but WITHOUT ANY WARRANTY; without even the implied warranty of |
| 11 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | 11 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
| 12 # GNU General Public License for more details. | 12 # GNU General Public License for more details. |
| 13 # | 13 # |
| 14 # You should have received a copy of the GNU General Public License | 14 # You should have received a copy of the GNU General Public License |
| 15 # along with this program. If not, see <http://www.gnu.org/licenses/>. | 15 # along with this program. If not, see <http://www.gnu.org/licenses/>. |
| 16 # | 16 # |
| 17 | 17 |
| 18 # Tests for Powerpc AltiVec ABI | 18 # Tests for Powerpc AltiVec ABI |
| 19 | 19 |
| 20 | 20 |
| 21 if $tracelevel then { | |
| 22 strace $tracelevel | |
| 23 } | |
| 24 | |
| 25 # | 21 # |
| 26 # This file uses altivec-abi.c for input. | 22 # This file uses altivec-abi.c for input. |
| 27 # | 23 # |
| 28 | 24 |
| 29 if {![istarget "powerpc*"] || [skip_altivec_tests]} then { | 25 if {![istarget "powerpc*"] || [skip_altivec_tests]} then { |
| 30 verbose "Skipping altivec abi tests." | 26 verbose "Skipping altivec abi tests." |
| 31 return | 27 return |
| 32 } | 28 } |
| 33 | 29 |
| 34 set testfile "altivec-abi" | 30 set testfile "altivec-abi" |
| 35 set binfile ${objdir}/${subdir}/${testfile} | 31 set binfile ${objdir}/${subdir}/${testfile} |
| 36 set srcfile ${testfile}.c | 32 set srcfile ${testfile}.c |
| 37 | 33 |
| 38 if [get_compiler_info $binfile] { | 34 if [get_compiler_info] { |
| 39 warning "get_compiler failed" | 35 warning "get_compiler failed" |
| 40 return -1 | 36 return -1 |
| 41 } | 37 } |
| 42 | 38 |
| 43 proc altivec_abi_tests { extra_flags force_abi } { | 39 proc altivec_abi_tests { extra_flags force_abi } { |
| 44 global testfile binfile srcfile srcdir subdir | 40 global testfile binfile srcfile srcdir subdir |
| 45 global gdb_prompt | 41 global gdb_prompt |
| 46 | 42 |
| 47 set compile_flags "debug nowarnings $extra_flags" | 43 set compile_flags "debug nowarnings $extra_flags" |
| 48 | 44 |
| (...skipping 95 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 144 "back to main (2)" | 140 "back to main (2)" |
| 145 | 141 |
| 146 gdb_test "step" "" "step into array_of_vector_func" | 142 gdb_test "step" "" "step into array_of_vector_func" |
| 147 gdb_test "p matrix\[0\]" ".*= .1, 2, 3, 4, 5, 6, 7, 8." "print first vector" | 143 gdb_test "p matrix\[0\]" ".*= .1, 2, 3, 4, 5, 6, 7, 8." "print first vector" |
| 148 gdb_test "p matrix\[1\]" ".*= .11, 12, 13, 14, 15, 16, 17, 18." "print secon
d vector" | 144 gdb_test "p matrix\[1\]" ".*= .11, 12, 13, 14, 15, 16, 17, 18." "print secon
d vector" |
| 149 gdb_test "p matrix\[2\]" ".*= .21, 22, 23, 24, 25, 26, 27, 28." "print third
vector" | 145 gdb_test "p matrix\[2\]" ".*= .21, 22, 23, 24, 25, 26, 27, 28." "print third
vector" |
| 150 gdb_test "p matrix\[3\]" ".*= .31, 32, 33, 34, 35, 36, 37, 38." "print fourt
h vector" | 146 gdb_test "p matrix\[3\]" ".*= .31, 32, 33, 34, 35, 36, 37, 38." "print fourt
h vector" |
| 151 } | 147 } |
| 152 | 148 |
| 153 if [test_compiler_info gcc*] { | 149 if [test_compiler_info gcc*] { |
| 154 set saved_prefix $pf_prefix | 150 with_test_prefix "default ABI, auto" { |
| 155 | 151 » altivec_abi_tests "additional_flags=-maltivec" "auto" |
| 156 set pf_prefix "${saved_prefix} default ABI, auto:" | 152 } |
| 157 altivec_abi_tests "additional_flags=-maltivec" "auto" | |
| 158 | 153 |
| 159 # On GNU/Linux, we can mix -mabi=no-altivec and -mabi=altivec. | 154 # On GNU/Linux, we can mix -mabi=no-altivec and -mabi=altivec. |
| 160 # So test some combinations. | 155 # So test some combinations. |
| 161 if { [istarget "powerpc*-linux*"] } { | 156 if { [istarget "powerpc*-linux*"] } { |
| 162 # On 64-bit GNU/Linux with GCC 4.1 and 4.2, -mabi=no-altivec | 157 # On 64-bit GNU/Linux with GCC 4.1 and 4.2, -mabi=no-altivec |
| 163 # was broken, so skip those tests there. | 158 # was broken, so skip those tests there. |
| 164 if { ![is_lp64_target] || ![test_compiler_info "gcc-4-\[12\]-*"] } { | 159 if { ![is_lp64_target] || ![test_compiler_info "gcc-4-\[12\]-*"] } { |
| 165 set binfile ${objdir}/${subdir}/${testfile}-ge-ge | 160 set binfile ${objdir}/${subdir}/${testfile}-ge-ge |
| 166 » set pf_prefix "${saved_prefix} generic ABI, forced:" | 161 » with_test_prefix "generic ABI, forced" { |
| 167 » altivec_abi_tests "additional_flags=-maltivec additional_flags=-mabi
=no-altivec" "generic" | 162 » » altivec_abi_tests "additional_flags=-maltivec additional_flags=-
mabi=no-altivec" "generic" |
| 163 » } |
| 168 | 164 |
| 169 set binfile ${objdir}/${subdir}/${testfile}-ge-auto | 165 set binfile ${objdir}/${subdir}/${testfile}-ge-auto |
| 170 » set pf_prefix "${saved_prefix} generic ABI, auto:" | 166 » with_test_prefix "generic ABI, auto" { |
| 171 » altivec_abi_tests "additional_flags=-maltivec additional_flags=-mabi
=no-altivec" "auto" | 167 » » altivec_abi_tests "additional_flags=-maltivec additional_flags=-
mabi=no-altivec" "auto" |
| 168 » } |
| 172 } | 169 } |
| 173 | 170 |
| 174 set binfile ${objdir}/${subdir}/${testfile}-av-av | 171 set binfile ${objdir}/${subdir}/${testfile}-av-av |
| 175 » set pf_prefix "${saved_prefix} AltiVec ABI, forced:" | 172 » with_test_prefix "AltiVec ABI, forced" { |
| 176 » altivec_abi_tests "additional_flags=-maltivec additional_flags=-mabi=alt
ivec" "altivec" | 173 » altivec_abi_tests "additional_flags=-maltivec additional_flags=-mabi
=altivec" "altivec" |
| 174 » } |
| 177 | 175 |
| 178 set binfile ${objdir}/${subdir}/${testfile}-av-auto | 176 set binfile ${objdir}/${subdir}/${testfile}-av-auto |
| 179 » set pf_prefix "${saved_prefix} AltiVec ABI, auto:" | 177 » with_test_prefix "AltiVec ABI, auto" { |
| 180 » altivec_abi_tests "additional_flags=-maltivec additional_flags=-mabi=alt
ivec" "auto" | 178 » altivec_abi_tests "additional_flags=-maltivec additional_flags=-mabi
=altivec" "auto" |
| 179 » } |
| 181 } | 180 } |
| 182 } elseif [test_compiler_info xlc*] { | 181 } elseif [test_compiler_info xlc*] { |
| 183 altivec_abi_tests "additional_flags=-qaltivec" "auto" | 182 altivec_abi_tests "additional_flags=-qaltivec" "auto" |
| 184 } else { | 183 } else { |
| 185 warning "unknown compiler" | 184 warning "unknown compiler" |
| 186 return -1 | 185 return -1 |
| 187 } | 186 } |
| OLD | NEW |