# been observed to fail on at least mips-irix6, alpha, ia64, hppa64,
# sparc64/sparcv9 and mmix during April 2002.
-if { [istarget "*64*-*-*"] || [istarget "alpha*-*-*"] || [istarget "mmix-*-*"]
- || [istarget "sparcv9-*-*"] || [istarget "mips*-*-irix6*"] } {
- set torture_execute_xfail [istarget]
-}
-
-# Regular sparc- also fails with -m64.
-set torture_eval_before_execute {
- global compiler_conditional_xfail_data
- set compiler_conditional_xfail_data {
- "This test fails on 64-bit targets, see PR6221." \
- { "sparc-*-*" } \
- { "-m64" } \
- { "" }
+if { [istarget "sparc64-*-*"] || [istarget "sparcv9-*-*"] } {
+ # On sparc64/sparcv9 it doesn't fail at -O0/-O1, or at all with -m32.
+ set torture_eval_before_execute {
+ global compiler_conditional_xfail_data
+ set compiler_conditional_xfail_data {
+ "This test fails on 64-bit targets, see PR6221." \
+ { "*-*-*" } \
+ { "-O2" "-O3" "-Os" } \
+ { "-m32" }
+ }
}
+} elseif { [istarget "sparc-*-*"] } {
+ # Regular sparc fails with -m64, but not with -O0/-O1.
+ set torture_eval_before_execute {
+ global compiler_conditional_xfail_data
+ set compiler_conditional_xfail_data {
+ "This test fails on 64-bit targets, see PR6221." \
+ { "*-*-*" } \
+ { "-m64" } \
+ { "-O0" "-O1" }
+ }
+ }
+} elseif { [istarget "*64*-*-*"] || [istarget "alpha*-*-*"]
+ || [istarget "mmix-*-*"] || [istarget "mips*-*-irix6*"] } {
+ # Other 64-bit targets fail at all optimization levels.
+ set torture_execute_xfail [istarget]
}
return 0