aboutsummaryrefslogtreecommitdiff
path: root/gcc/expr.c
diff options
context:
space:
mode:
authorSegher Boessenkool <segher@kernel.crashing.org>2017-02-23 00:50:46 +0100
committerSegher Boessenkool <segher@gcc.gnu.org>2017-02-23 00:50:46 +0100
commitc5f06528e56621ce683517a5d2ca30e6b3c7b71c (patch)
tree0d88fc2c67e4724582485e7125a2c65df904e471 /gcc/expr.c
parent0a864a97e9ab9b1bb6dbf13d6b471460c451be88 (diff)
downloadgcc-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