[maybe duplicate of or related to PR37434] fails for i486, i586, works with i386, i686:
----- 8< ----- $ cat mknod.6.i int gnu_dev_minor (unsigned long long int dev) { return (dev & 0xff) | ((unsigned int) (dev >> 12) & ~0xff); } int mknod(const char *path, unsigned int mode, unsigned long long int dev) { unsigned short k_dev; k_dev = ((gnu_dev_major (dev) & 0xff) << 8) | (gnu_dev_minor (dev) & 0xff); return __syscall_mknod(path, mode, k_dev); } ----- 8< ----- $ gcc-4.4-HEAD -Os -march=i486 -c mknod.6.i -o mknod.o -v Using built-in specs. Target: i686-linux-gnu Configured with: ../../src/gcc-4.4/configure -v --enable-languages=c CFLAGS='-O0 -g3 -ggdb3 -finline-limit=1' CXXFLAGS='-O0 -g3 -ggdb3 -finline-limit=1' 'BOOT_CFLAGS=-O0 -g3 -ggdb3 -finline-limit=1' 'BOOT_CXXFLAGS=-O0 -g3 -ggdb3 -finline-limit=1' 'CFLAGS_FOR_TARGET=-O0 -g3 -ggdb3 -finline-limit=1' 'CXXFLAGS_FOR_TARGET=-O0 -g3 -ggdb3 -finline-limit=1' --prefix=/opt/gcc-4.4/ --enable-shared --with-system-zlib --libexecdir=/opt/gcc-4.4/lib --enable-nls --without-included-gettext --enable-threads=posix --program-suffix=-4.4-HEAD --enable-__cxa_atexit --enable-libstdcxx-allocator=mt --enable-clocale=gnu --enable-libstdcxx-debug --enable-mpfr --disable-werror --enable-checking=yes --enable-debug --disable-intermodule --enable-multilib i686-linux-gnu Thread model: posix gcc version 4.4.0 20080904 (experimental) [trunk revision 139986] (GCC) COLLECT_GCC_OPTIONS='-Os' '-march=i486' '-c' '-o' 'mknod.o' '-v' /opt/gcc-4.4/bin/../../gcc-4.4/lib/gcc/i686-linux-gnu/4.4.0/cc1 -fpreprocessed mknod.6.i -quiet -dumpbase mknod.6.i -march=i486 -auxbase-strip mknod.o -Os -version -o /tmp/cckAXH2c.s GNU C (GCC) version 4.4.0 20080904 (experimental) [trunk revision 139986] (i686-linux-gnu) compiled by GNU C version 4.4.0 20080904 (experimental) [trunk revision 139986], GMP version 4.2.2, MPFR version 2.3.1. GGC heuristics: --param ggc-min-expand=30 --param ggc-min-heapsize=4096 Compiler executable checksum: 88d8e62b153efecf9e83ecd8fac9180d mknod.6.i: In function mknod: mknod.6.i:10: error: unrecognizable insn: (insn 47 17 19 2 mknod.6.i:9 (set (reg:HI 3 bx [69]) (zero_extend:HI (reg:QI 3 bx [orig:63 dev ] [63]))) -1 (nil)) mknod.6.i:10: internal compiler error: in extract_insn, at recog.c:2027 -- Summary: [4.4 Regression] ICE in extract_insn, at recog.c:2027 for i{4,5}86 Product: gcc Version: 4.4.0 Status: UNCONFIRMED Keywords: ice-on-valid-code Severity: normal Priority: P3 Component: target AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: aldot at gcc dot gnu dot org GCC target triplet: i{4,5}86-*-* http://gcc.gnu.org/bugzilla/show_bug.cgi?id=37438