1 /* { dg-do compile } */
2 /* { dg-options "-O2" } */
3
4 int mul3(int v)
5 {
6 return v * 3;
7 }
8
9 int mul5(int v)
10 {
11 return v * 5;
12 }
13
14 int mul7(int v)
15 {
16 return v * 7;
17 }
18
19 int mul9(int v)
20 {
21 return v * 9;
22 }
23
24 int mul2sub(int a, int b)
25 {
26 return a * 2 - b;
27 }
28
29 int mul4sub(int a, int b)
30 {
31 return a * 4 - b;
32 }
33
34 short index2(short *p, int i)
35 {
36 return p[i];
37 }
38
39 int index4(int *p, int i)
40 {
41 return p[i];
42 }
43
44 long long index8(long long *p, int i)
45 {
46 return p[i];
47 }
48
49 /* { dg-final { scan-assembler-times "addx2" 2 } } */
50 /* { dg-final { scan-assembler-times "addx4" 2 } } */
51 /* { dg-final { scan-assembler-times "addx8" 2 } } */
52 /* { dg-final { scan-assembler-times "subx2" 1 } } */
53 /* { dg-final { scan-assembler-times "subx4" 1 } } */
54 /* { dg-final { scan-assembler-times "subx8" 1 } } */