diff options
author | Segher Boessenkool <segher@kernel.crashing.org> | 2017-02-23 00:50:46 +0100 |
---|---|---|
committer | Segher Boessenkool <segher@gcc.gnu.org> | 2017-02-23 00:50:46 +0100 |
commit | c5f06528e56621ce683517a5d2ca30e6b3c7b71c (patch) | |
tree | 0d88fc2c67e4724582485e7125a2c65df904e471 /gcc/expr.c | |
parent | 0a864a97e9ab9b1bb6dbf13d6b471460c451be88 (diff) | |
download | gcc-c5f06528e56621ce683517a5d2ca30e6b3c7b71c.zip gcc-c5f06528e56621ce683517a5d2ca30e6b3c7b71c.tar.gz gcc-c5f06528e56621ce683517a5d2ca30e6b3c7b71c.tar.bz2 |
rs6000: Fix fsel pattern (PR79211)
The fsel define_insn uses fpr_reg_operand for its predicates. This
won't work because passes can put a hard register in the operands: in
the testcase, combine likes to forward the parameter registers to what
then is still an smin, and then split1 uses "*s<minmax><mode>3_fpr"
(which has gpc_reg_operand). And then we have a GPR in the operand,
which does not match fpr_reg_operand.
It seems to me the predicates should be gpc_reg_operand here as well.
This patch changes that.
PR target/79211
* config/rs6000/rs6000.md (*fsel<SFDF:mode><SFDF2:mode>4): Use
gpc_reg_operand instead of fpr_reg_operand.
From-SVN: r245667
Diffstat (limited to 'gcc/expr.c')
0 files changed, 0 insertions, 0 deletions