1 /* { dg-do compile { target { { i?86-*-* x86_64-*-* } && lp64 } } } */ 2 3 extern double sqrt(double x); 4 5 struct foo 6 { 7 double x; 8 double y; 9 }; 10 11 struct bar 12 { 13 double x; 14 double y; 15 }; 16 test(struct foo * f,const struct bar * b)17double __RTL test (struct foo *f, const struct bar *b) 18 { 19 #if 0 20 /* Result of "expand" on this C code, compiled for x86_64 with -Os. */ 21 f->x += b->x; 22 f->y += b->y; 23 return sqrt (f->x * f->x + f->y * f->y); 24 #endif 25 (function "test" 26 (insn-chain 27 (cnote 1 NOTE_INSN_DELETED) 28 (block 2 29 (edge-from entry (flags "FALLTHRU")) 30 (cnote 5 [bb 2] NOTE_INSN_BASIC_BLOCK) 31 (cinsn 2 (set (reg/v/f:DI <10> [ f ]) 32 (reg:DI di [ f ])) "../../src/gcc/testsuite/gcc.dg/rtl/x86_64/different-structs.c":18) 33 (cinsn 3 (set (reg/v/f:DI <11> [ b ]) 34 (reg:DI si [ b ])) "../../src/gcc/testsuite/gcc.dg/rtl/x86_64/different-structs.c":18) 35 (cnote 4 NOTE_INSN_FUNCTION_BEG) 36 (cinsn 7 (set (reg:DF <12>) 37 (mem:DF (reg/v/f:DI <10> [ f ]) [2 f_11(D)->x+0 S8 A64])) "../../src/gcc/testsuite/gcc.dg/rtl/x86_64/different-structs.c":21) 38 (cinsn 8 (set (reg:DF <2> [ _3 ]) 39 (plus:DF (reg:DF <12>) 40 (mem:DF (reg/v/f:DI <11> [ b ]) [2 b_12(D)->x+0 S8 A64]))) "../../src/gcc/testsuite/gcc.dg/rtl/x86_64/different-structs.c":21) 41 (cinsn 9 (set (mem:DF (reg/v/f:DI <10> [ f ]) [2 f_11(D)->x+0 S8 A64]) 42 (reg:DF <2> [ _3 ])) "../../src/gcc/testsuite/gcc.dg/rtl/x86_64/different-structs.c":21) 43 (cinsn 10 (set (reg:DF <13>) 44 (mem:DF (plus:DI (reg/v/f:DI <10> [ f ]) 45 (const_int 8)) [2 f_11(D)->y+0 S8 A64])) "../../src/gcc/testsuite/gcc.dg/rtl/x86_64/different-structs.c":22) 46 (cinsn 11 (set (reg:DF <5> [ _6 ]) 47 (plus:DF (reg:DF <13>) 48 (mem:DF (plus:DI (reg/v/f:DI <11> [ b ]) 49 (const_int 8)) [2 b_12(D)->y+0 S8 A64]))) "../../src/gcc/testsuite/gcc.dg/rtl/x86_64/different-structs.c":22) 50 (cinsn 12 (set (mem:DF (plus:DI (reg/v/f:DI <10> [ f ]) 51 (const_int 8)) [2 f_11(D)->y+0 S8 A64]) 52 (reg:DF <5> [ _6 ])) "../../src/gcc/testsuite/gcc.dg/rtl/x86_64/different-structs.c":22) 53 (cinsn 13 (set (reg:DF <14>) 54 (mult:DF (reg:DF <2> [ _3 ]) 55 (reg:DF <2> [ _3 ]))) "../../src/gcc/testsuite/gcc.dg/rtl/x86_64/different-structs.c":23) 56 (cinsn 14 (set (reg:DF <15>) 57 (mult:DF (reg:DF <5> [ _6 ]) 58 (reg:DF <5> [ _6 ]))) "../../src/gcc/testsuite/gcc.dg/rtl/x86_64/different-structs.c":23) 59 (cinsn 15 (set (reg:DF <16>) 60 (plus:DF (reg:DF <14>) 61 (reg:DF <15>))) "../../src/gcc/testsuite/gcc.dg/rtl/x86_64/different-structs.c":23) 62 (cinsn 16 (set (reg:DF xmm0) 63 (reg:DF <16>)) "../../src/gcc/testsuite/gcc.dg/rtl/x86_64/different-structs.c":23) 64 (ccall_insn/j 17 (set (reg:DF xmm0) 65 (call (mem:QI (symbol_ref:DI ("sqrt") [flags 0x41] <function_decl 0x7fa24e331d00 sqrt>) [0 __builtin_sqrt S1 A8]) 66 (const_int 0))) "../../src/gcc/testsuite/gcc.dg/rtl/x86_64/different-structs.c":23 67 (expr_list:REG_CALL_DECL (symbol_ref:DI ("sqrt") [flags 0x41] <function_decl 0x7fa24e331d00 sqrt>) 68 (expr_list:REG_EH_REGION (const_int 0))) 69 (expr_list:DF (use (reg:DF xmm0)))) 70 (edge-to exit (flags "ABNORMAL | SIBCALL")) 71 ) ;; block 2 72 (cbarrier 18) 73 ) ;; insn-chain 74 (crtl 75 (return_rtx 76 (reg/i:DF xmm0) 77 ) ;; return_rtx 78 ) ;; crtl 79 ) ;; function "test" 80 81 } 82