diff options
Diffstat (limited to 'gcc/tree-ssa-math-opts.c')
-rw-r--r-- | gcc/tree-ssa-math-opts.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/gcc/tree-ssa-math-opts.c b/gcc/tree-ssa-math-opts.c index 2a984a1..c46a57f 100644 --- a/gcc/tree-ssa-math-opts.c +++ b/gcc/tree-ssa-math-opts.c @@ -1111,8 +1111,9 @@ execute_optimize_bswap (void) && optab_handler (bswap_optab, SImode)->insn_code != CODE_FOR_nothing); bswap64_p = (built_in_decls[BUILT_IN_BSWAP64] - && optab_handler (bswap_optab, DImode)->insn_code != - CODE_FOR_nothing); + && (optab_handler (bswap_optab, DImode)->insn_code != + CODE_FOR_nothing + || (bswap32_p && word_mode == SImode))); if (!bswap32_p && !bswap64_p) return 0; |