https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87761
--- Comment #2 from Paul Hua <paul.hua.gm at gmail dot com> --- and and new fails: 716 FAIL: gcc.target/mips/octeon-exts-3.c -O2 scan-assembler-times \\texts\\t 3 717 FAIL: gcc.target/mips/octeon-exts-3.c -O2 -flto -fno-use-linker-plugin -flto-partition=none scan-assembler-times \\texts\\t 3 718 FAIL: gcc.target/mips/octeon-exts-3.c -O2 -flto -fuse-linker-plugin -fno-fat-lto-objects scan-assembler-times \\texts\\t 3 719 FAIL: gcc.target/mips/octeon-exts-3.c -O3 -g scan-assembler-times \\texts\\t 3 720 FAIL: gcc.target/mips/octeon-exts-3.c -Os scan-assembler-times \\texts\\t 3 $cat octeon-exts-3.i # 1 "/home/xuchenghua/GCC/gcc_git_trunk/gcc/testsuite/gcc.target/mips/octeon-exts-3.c" # 1 "<built-in>" # 1 "<command-line>" # 1 "/usr/include/stdc-predef.h" 1 3 4 # 1 "<command-line>" 2 # 1 "/home/xuchenghua/GCC/gcc_git_trunk/gcc/testsuite/gcc.target/mips/octeon-exts-3.c" struct foo { unsigned long long a:10; unsigned long long b:32; unsigned long long c:22; }; __attribute__((nomips16)) unsigned f (struct foo s) { return s.b; } struct bar { unsigned long long a:15; unsigned long long b:48; unsigned long long c:1; }; __attribute__((nomips16)) int g (struct bar s) { return (int) s.b; } __attribute__((nomips16)) int h (int i) { return (i << 4) >> 24; } ./gcc/cc1 -fpreprocessed octeon-exts-3.i -mel -quiet -dumpbase octeon-exts-3.c -march=octeon -mgp64 -mno-micromips -mabi=64 -mllsc -mips64r2 -mno-shared -auxbase-strip octeon-exts-3.s -O2 -version -fdiagnostics-color=never -fno-diagnostics-show-caret -fno-diagnostics-show-line-numbers -ffat-lto-objects -fno-ident -o octeon-exts-3.s -mno-abicalls good : h: .frame $sp,0,$31 # vars= 0, regs= 0/0, args= 0, gp= 0 .mask 0x00000000,0 .fmask 0x00000000,0 .set noreorder .set nomacro jr $31 exts $2,$4,20,7 .set macro .set reorder bad: h: .frame $sp,0,$31 # vars= 0, regs= 0/0, args= 0, gp= 0 .mask 0x00000000,0 .fmask 0x00000000,0 sll $2,$4,4 .set noreorder .set nomacro jr $31 sra $2,$2,24 .set macro .set reorder