1 /* PR rtl-optimization/21239 */
3 /* { dg-options "-O2 -msse2" } */
4 /* { dg-require-effective-target sse2 } */
6 #include "sse2-check.h"
11 foo (unsigned int x
, double *y
, const double *z
)
16 tmp
= _mm_load_sd (z
);
17 _mm_store_sd (y
, tmp
);
23 bar (unsigned int x
, float *y
, const float *z
)
27 for (i
= 0; i
< x
; ++i
)
29 tmp
= (__m128
) { *z
, 0, 0, 0 };
30 *y
= __builtin_ia32_vec_ext_v4sf (tmp
, 0);
33 for (i
= 0; i
< x
; ++i
)
35 tmp
= (__m128
) { 0, *z
, 0, 0 };
36 *y
= __builtin_ia32_vec_ext_v4sf (tmp
, 1);
39 for (i
= 0; i
< x
; ++i
)
41 tmp
= (__m128
) { 0, 0, *z
, 0 };
42 *y
= __builtin_ia32_vec_ext_v4sf (tmp
, 2);
45 for (i
= 0; i
< x
; ++i
)
47 tmp
= (__m128
) { 0, 0, 0, *z
};
48 *y
= __builtin_ia32_vec_ext_v4sf (tmp
, 3);
59 for (i
= 0; i
< 16; ++i
)
68 for (i
= 0; i
< 16; ++i
)