I get the following ICE with current gcc 4.3. This goes back until at least 4.3 20070303. 4.1 works. I cannot test 4.2.
[EMAIL PROTECTED]:~$ /usr/lib/gcc-snapshot/bin/gcc -c -O2 mpfr-mul.c mpfr-mul.c: In function 'mpfr_mul': mpfr-mul.c:19: error: unrecognizable insn: (insn:TI 69 102 68 3 (parallel [ (set (reg:DI 136 f8) (asm_operands:DI ("xma.hu %0 = %2, %3, f0 xma.l %1 = %2, %3, f0") ("=&f") 0 [ (reg:DI 137 f9) (reg:DI 134 f6 [orig:345 D.1826 ] [345]) ] [ (asm_input:DI ("f") ("") 0) (asm_input:DI ("f") ("") 0) ] ("mpfr-mul.c") 16)) (set (reg/v:DI 135 f7 [orig:340 t3 ] [340]) (asm_operands:DI ("xma.hu %0 = %2, %3, f0 xma.l %1 = %2, %3, f0") ("=f") 1 [ (reg:DI 137 f9) (reg:DI 134 f6 [orig:345 D.1826 ] [345]) ] [ (asm_input:DI ("f") ("") 0) (asm_input:DI ("f") ("") 0) ] ("mpfr-mul.c") 16)) ]) -1 (nil) (nil)) mpfr-mul.c:19: internal compiler error: in get_attr_first_insn, at config/ia64/itanium2.md:1839 Please submit a full bug report, with preprocessed source if appropriate. See <URL:http://gcc.gnu.org/bugs.html> for instructions. For Debian GNU/Linux specific bug reporting instructions, see <URL:file:///usr/share/doc/gcc-4.1/README.Bugs>. [EMAIL PROTECTED]:~$ /usr/lib/gcc-snapshot/bin/gcc -c -O mpfr-mul.c [EMAIL PROTECTED]:~$ gcc-4.1 -c -O2 mpfr-mul.c [EMAIL PROTECTED]:~$ Testcase: typedef struct { unsigned long int *_mpfr_d; } __mpfr_struct; typedef const __mpfr_struct *mpfr_srcptr; mpfr_mul (mpfr_srcptr b, mpfr_srcptr c) { unsigned long int *tmp; unsigned long int t1, t2, t3; unsigned long int __x; __x = tmp[1] + t1; tmp[1] = __x; __asm__ ("xma.hu %0 = %2, %3, f0\n\txma.l %1 = %2, %3, f0": "=&f" (t1), "=f" (t2):"f" (((b)->_mpfr_d)[0]), "f" (((c)->_mpfr_d)[1])); __asm__ ("xma.hu %0 = %2, %3, f0\n\txma.l %1 = %2, %3, f0": "=&f" (tmp[3]), "=f" (t3):"f" (((b)->_mpfr_d)[1]), "f" (((c)->_mpfr_d)[1])); tmp[3] += t1; } -- Summary: [4.3 Regression] ICE in get_attr_first_insn, at config/ia64/itanium2.md:1839 at -O2 Product: gcc Version: 4.3.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: target AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: tbm at cyrius dot com http://gcc.gnu.org/bugzilla/show_bug.cgi?id=31684