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