aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorliuhongt <hongtao.liu@intel.com>2023-02-08 11:03:14 +0800
committerliuhongt <hongtao.liu@intel.com>2023-03-31 14:15:57 +0800
commit5de5e977aa0b653e9c4982db5da5e3e428840a22 (patch)
tree20c724098881d3692bd92277c2b7b8d39a830567
parent65dd42d2c3dac76afc26228750821dd05e75fca8 (diff)
downloadgcc-5de5e977aa0b653e9c4982db5da5e3e428840a22.zip
gcc-5de5e977aa0b653e9c4982db5da5e3e428840a22.tar.gz
gcc-5de5e977aa0b653e9c4982db5da5e3e428840a22.tar.bz2
Adjust memory_move_cost for MASK_REGS when MODE_SIZE > 8.
It's impossible to put modes whose size > 8 into MASK_REGS. gcc/ChangeLog: * config/i386/i386.cc (inline_memory_move_cost): Return 100 for MASK_REGS when MODE_SIZE > 8.
-rw-r--r--gcc/config/i386/i386.cc5
1 files changed, 4 insertions, 1 deletions
diff --git a/gcc/config/i386/i386.cc b/gcc/config/i386/i386.cc
index 2cc8e95..2581b80 100644
--- a/gcc/config/i386/i386.cc
+++ b/gcc/config/i386/i386.cc
@@ -19847,9 +19847,12 @@ inline_memory_move_cost (machine_mode mode, enum reg_class regclass, int in)
index = 1;
break;
/* DImode loads and stores assumed to cost the same as SImode. */
- default:
+ case 4:
+ case 8:
index = 2;
break;
+ default:
+ return 100;
}
if (in == 2)