Fix SVE fallout from r260951

2018-06-01  Richard Sandiford  <richard.sandiford@linaro.org>

gcc/
	* config/aarch64/aarch64.c (aarch64_ira_change_pseudo_allocno_class):
	Fix subreg tests so that we only return a choice between
	GENERAL_REGS and FP_REGS if the original classes included both.

From-SVN: r261057
This commit is contained in:
Richard Sandiford 2018-06-01 08:22:13 +00:00 committed by Richard Sandiford
parent 07205c411f
commit 67e5c59afb
2 changed files with 10 additions and 4 deletions

View file

@ -1,3 +1,9 @@
2018-06-01 Richard Sandiford <richard.sandiford@linaro.org>
* config/aarch64/aarch64.c (aarch64_ira_change_pseudo_allocno_class):
Fix subreg tests so that we only return a choice between
GENERAL_REGS and FP_REGS if the original classes included both.
2018-06-01 Richard Biener <rguenther@suse.de>
PR ipa/85960

View file

@ -1108,12 +1108,12 @@ aarch64_ira_change_pseudo_allocno_class (int regno, reg_class_t allocno_class,
{
machine_mode mode;
if (reg_class_subset_p (allocno_class, GENERAL_REGS)
|| reg_class_subset_p (allocno_class, FP_REGS))
if (!reg_class_subset_p (GENERAL_REGS, allocno_class)
|| !reg_class_subset_p (FP_REGS, allocno_class))
return allocno_class;
if (reg_class_subset_p (best_class, GENERAL_REGS)
|| reg_class_subset_p (best_class, FP_REGS))
if (!reg_class_subset_p (GENERAL_REGS, best_class)
|| !reg_class_subset_p (FP_REGS, best_class))
return best_class;
mode = PSEUDO_REGNO_MODE (regno);