1 /* { dg-options "-O2" } */
2
3 int
load(int * arr)4 load (int *arr)
5 {
6 return arr[527] << 1 + arr[400] << 1 + arr[401] << 1 + arr[528] << 1;
7 }
8
9 /* { dg-final { scan-assembler-times "ldp\tw\[0-9\]+, w\[0-9\]+, " 2 } } */
10
11 float
load_float(float * arr)12 load_float (float *arr)
13 {
14 return arr[404] + arr[403] + arr[400] + arr[401];
15 }
16
17 /* { dg-final { scan-assembler-times "ldp\ts\[0-9\]+, s\[0-9\]+, " 2 } } */
18
19 long long
load_long(long long int * arr)20 load_long (long long int *arr)
21 {
22 return arr[400] << 1 + arr[401] << 1 + arr[403] << 1 + arr[404] << 1;
23 }
24
25 /* { dg-final { scan-assembler-times "ldp\tx\[0-9\]+, x\[0-9\]+, " 2 } } */
26
27 double
load_double(double * arr)28 load_double (double *arr)
29 {
30 return arr[200] + arr[201] + arr[263] + arr[264];
31 }
32
33 /* { dg-final { scan-assembler-times "ldp\td\[0-9\]+, d\[0-9\]+, " 2 } } */
34