| // PR target/88998 |
| // { dg-do run { target sse2_runtime } } |
| // { dg-options "-O2 -msse2 -mfpmath=387" } |
| // { dg-require-effective-target c++11 } |
| |
| #include <cassert> |
| #include <unordered_map> |
| #include <x86intrin.h> |
| |
| double |
| __attribute__((noinline)) |
| prepare (int a, int b) |
| { |
| __m128i is = _mm_setr_epi32 (a, b, 0, 0); |
| __m128d ds = _mm_cvtepi32_pd (is); |
| return ds[0] + ds[1]; |
| } |
| |
| int |
| main (int, char **) |
| { |
| double d = prepare (1, 2); |
| |
| std::unordered_map < int, int >m; |
| m.insert ({0, 0}); |
| m.insert ({1, 1}); |
| assert (m.load_factor () <= m.max_load_factor ()); |
| |
| assert (d == 3.0); |
| return 0; |
| } |