diff options
author | Uros Bizjak <uros@gcc.gnu.org> | 2011-09-22 19:35:00 +0200 |
---|---|---|
committer | Uros Bizjak <uros@gcc.gnu.org> | 2011-09-22 19:35:00 +0200 |
commit | 63d045e14e1a5f89e97af66dba6166f434c18fcc (patch) | |
tree | bd0ecc6be3346ab77392394e5c3bd3da2fcb6e1e /gcc/config | |
parent | 163f8b71672b09e7f3a1c8edc185aa4d1952035b (diff) | |
download | gcc-63d045e14e1a5f89e97af66dba6166f434c18fcc.zip gcc-63d045e14e1a5f89e97af66dba6166f434c18fcc.tar.gz gcc-63d045e14e1a5f89e97af66dba6166f434c18fcc.tar.bz2 |
re PR target/50482 (internal compiler error at recog.c:2137)
PR target/50482
* config/i386/i386.c (ix86_expand_sse_movcc): When generating
blendv, force op_true to register if it doesn't satisfy
nonimmediate_operand predicate.
testsuite/ChangeLog:
PR target/50482
* gcc.target/i386/pr50482.c: New test.
From-SVN: r179094
Diffstat (limited to 'gcc/config')
-rw-r--r-- | gcc/config/i386/i386.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/gcc/config/i386/i386.c b/gcc/config/i386/i386.c index f952d2e..954b879 100644 --- a/gcc/config/i386/i386.c +++ b/gcc/config/i386/i386.c @@ -18911,6 +18911,9 @@ ix86_expand_sse_movcc (rtx dest, rtx cmp, rtx op_true, rtx op_false) { rtx (*gen) (rtx, rtx, rtx, rtx) = NULL; + if (!nonimmediate_operand (op_true, mode)) + op_true = force_reg (mode, op_true); + op_false = force_reg (mode, op_false); switch (mode) |