| /* { dg-do compile } */ |
| /* { dg-options "-mdejagnu-cpu=power10 -O3 -dp" } */ |
| |
| long addadd0(long a, long b, long c) |
| { |
| return a+b+c; |
| } |
| long addadd1(long a, long b, long c, long *t) |
| { |
| long r=a+b+c; |
| *t = b; |
| return r; |
| } |
| long addadd2(long s, long a, long b, long c) |
| { |
| return b+c+a; |
| } |
| |
| typedef vector long vlong; |
| vlong vaddadd(vlong a, vlong b, vlong c) |
| { |
| return a+b+c; |
| } |
| vlong vaddadd1(vlong a, vlong b, vlong c, vlong *t) |
| { |
| vlong r=a+b+c; |
| *t = b; |
| return r; |
| } |
| vlong vaddadd2(vlong s, vlong a, vlong b, vlong c) |
| { |
| return a+b+c; |
| } |
| |
| /* { dg-final { scan-assembler-times {\mfuse_add_add\M/} 3 { target lp64 } } } */ |
| /* { dg-final { scan-assembler-times {\mfuse_vaddudm_vaddudm\M/} 3 { target lp64 } } } */ |
| /* { dg-final { scan-assembler-times {\mfuse_add_add\M/} 3 { target ilp32 } } } */ |
| /* { dg-final { scan-assembler-times {\mfuse_vaddudm_vaddudm\M/} 0 { target ilp32 } } } */ |