aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorUros Bizjak <uros@gcc.gnu.org>2018-11-29 19:22:30 +0100
committerUros Bizjak <uros@gcc.gnu.org>2018-11-29 19:22:30 +0100
commit9bb3d6c4ef6c5cbaa7e457b59dbe2ade9055b3fa (patch)
tree8e06597e75ed9b272b280dc8db59e283153a872c /gcc
parent550dfbdcf6d93d88edd469089be54850e19128e1 (diff)
downloadgcc-9bb3d6c4ef6c5cbaa7e457b59dbe2ade9055b3fa.zip
gcc-9bb3d6c4ef6c5cbaa7e457b59dbe2ade9055b3fa.tar.gz
gcc-9bb3d6c4ef6c5cbaa7e457b59dbe2ade9055b3fa.tar.bz2
i386.c (inline_memory_move_cost): Check "in" for 2 in MMX_CLASS_P case.
* config/i386/i386.c (inline_memory_move_cost): Check "in" for 2 in MMX_CLASS_P case. * config/i386/mmx.md (*mov<mode>_internal): Correct TARGET_INTER_UNIT_MOVES_FROM_VEC and TARGET_INTER_UNIT_MOVES_TO_VEC alternatives in preferred_for_speed attribute calculation. From-SVN: r266635
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog10
-rw-r--r--gcc/config/i386/i386.c10
-rw-r--r--gcc/config/i386/mmx.md4
3 files changed, 15 insertions, 9 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index bc8d2b1..8cf443f 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,11 @@
+2018-11-29 Uros Bizjak <ubizjak@gmail.com>
+
+ * config/i386/i386.c (inline_memory_move_cost):
+ Check "in" for 2 in MMX_CLASS_P case.
+ * config/i386/mmx.md (*mov<mode>_internal): Correct
+ TARGET_INTER_UNIT_MOVES_FROM_VEC and TARGET_INTER_UNIT_MOVES_TO_VEC
+ alternatives in preferred_for_speed attribute calculation.
+
2018-11-29 Martin Sebor <msebor@redhat.com>
PR c/88172
@@ -20,7 +28,7 @@
inlining when flag_live_patching is LIVE_PATCHING_INLINE_ONLY_STATIC.
* opts.c (control_options_for_live_patching): New function.
(finish_options): Make flag_live_patching incompatible with flag_lto.
- Control IPA optimizations based on different levels of
+ Control IPA optimizations based on different levels of
flag_live_patching.
2018-11-29 Giuliano Belinassi <giuliano.belinassi@usp.br>
diff --git a/gcc/config/i386/i386.c b/gcc/config/i386/i386.c
index cef809f..209b74a 100644
--- a/gcc/config/i386/i386.c
+++ b/gcc/config/i386/i386.c
@@ -39480,8 +39480,7 @@ sse_store_index (machine_mode mode)
Q_REGS classes.
*/
static inline int
-inline_memory_move_cost (machine_mode mode, enum reg_class regclass,
- int in)
+inline_memory_move_cost (machine_mode mode, enum reg_class regclass, int in)
{
int cost;
if (FLOAT_CLASS_P (regclass))
@@ -39528,7 +39527,7 @@ inline_memory_move_cost (machine_mode mode, enum reg_class regclass,
default:
return 100;
}
- if (in)
+ if (in == 2)
return MAX (ix86_cost->mmx_load [index], ix86_cost->mmx_store [index]);
return in ? ix86_cost->mmx_load [index] : ix86_cost->mmx_store [index];
}
@@ -39567,7 +39566,7 @@ inline_memory_move_cost (machine_mode mode, enum reg_class regclass,
if (mode == TFmode)
mode = XFmode;
if (in == 2)
- cost = MAX (ix86_cost->int_load[2] , ix86_cost->int_store[2]);
+ cost = MAX (ix86_cost->int_load[2], ix86_cost->int_store[2]);
else if (in)
cost = ix86_cost->int_load[2];
else
@@ -39577,8 +39576,7 @@ inline_memory_move_cost (machine_mode mode, enum reg_class regclass,
}
static int
-ix86_memory_move_cost (machine_mode mode, reg_class_t regclass,
- bool in)
+ix86_memory_move_cost (machine_mode mode, reg_class_t regclass, bool in)
{
return inline_memory_move_cost (mode, (enum reg_class) regclass, in ? 1 : 0);
}
diff --git a/gcc/config/i386/mmx.md b/gcc/config/i386/mmx.md
index e60b229..66da7bc 100644
--- a/gcc/config/i386/mmx.md
+++ b/gcc/config/i386/mmx.md
@@ -208,9 +208,9 @@
]
(const_string "DI")))
(set (attr "preferred_for_speed")
- (cond [(eq_attr "alternative" "10,15")
+ (cond [(eq_attr "alternative" "9,15")
(symbol_ref "TARGET_INTER_UNIT_MOVES_FROM_VEC")
- (eq_attr "alternative" "11,16")
+ (eq_attr "alternative" "10,16")
(symbol_ref "TARGET_INTER_UNIT_MOVES_TO_VEC")
]
(symbol_ref "true")))])