re PR middle-end/19706 (Recognize common Fortran usages of copysign.)

2017-08-23  Tamar Christina  <tamar.christina@arm.com>

	PR middle-end/19706
	* doc/sourcebuild.texi (Other hardware attributes):
	Document xorsign.


gcc/testsuite
2017-08-23  Tamar Christina  <tamar.christina@arm.com>

	PR middle-end/19706
	* gcc.dg/tree-ssa/pr19706.c: New.
	* lib/target-supports.exp (check_effective_target_xorsign): New.

From-SVN: r251304
This commit is contained in:
Tamar Christina 2017-08-23 11:34:59 +00:00 committed by Tamar Christina
parent 9880acc19e
commit c37691e5cd
4 changed files with 37 additions and 0 deletions

View File

@ -1,3 +1,9 @@
2017-08-23 Tamar Christina <tamar.christina@arm.com>
PR middle-end/19706
* doc/sourcebuild.texi (Other hardware attributes):
Document xorsign.
2017-08-23 Tamar Christina <tamar.christina@arm.com> 2017-08-23 Tamar Christina <tamar.christina@arm.com>
PR middle-end/19706 PR middle-end/19706

View File

@ -1908,6 +1908,9 @@ or @code{EM_SPARCV9} executables.
@item vect_cmdline_needed @item vect_cmdline_needed
Target requires a command line argument to enable a SIMD instruction set. Target requires a command line argument to enable a SIMD instruction set.
@item xorsign
Target supports the xorsign optab expansion.
@end table @end table
@subsubsection Environment attributes @subsubsection Environment attributes

View File

@ -1,3 +1,9 @@
2017-08-23 Tamar Christina <tamar.christina@arm.com>
PR middle-end/19706
* gcc.dg/tree-ssa/pr19706.c: New.
* lib/target-supports.exp (check_effective_target_xorsign): New.
2017-08-22 Daniel Santos <daniel.santos@pobox.com> 2017-08-22 Daniel Santos <daniel.santos@pobox.com>
* gcc.target/i386/pr71958.c: New test to verify error on -mx32 and * gcc.target/i386/pr71958.c: New test to verify error on -mx32 and

View File

@ -5332,6 +5332,28 @@ proc check_effective_target_vect_perm_short { } {
return $et_vect_perm_short_saved($et_index) return $et_vect_perm_short_saved($et_index)
} }
# Return 1 if the target plus current options supports folding of
# copysign into XORSIGN.
#
# This won't change for different subtargets so cache the result.
proc check_effective_target_xorsign { } {
global et_xorsign_saved
global et_index
if [info exists et_xorsign_saved($et_index)] {
verbose "check_effective_target_xorsign: using cached result" 2
} else {
set et_xorsign_saved($et_index) 0
if { [istarget aarch64*-*-*] || [istarget arm*-*-*] } {
set et_xorsign_saved($et_index) 1
}
}
verbose "check_effective_target_xorsign:\
returning $et_xorsign_saved($et_index)" 2
return $et_xorsign_saved($et_index)
}
# Return 1 if the target plus current options supports a vector # Return 1 if the target plus current options supports a vector
# widening summation of *short* args into *int* result, 0 otherwise. # widening summation of *short* args into *int* result, 0 otherwise.
# #