]>
git.proxmox.com Git - ceph.git/blob - ceph/src/boost/libs/uuid/test/test_msvc_simd_bug981648_main.cpp
2 * Copyright 2014 Andrey Semashev
4 * Distributed under the Boost Software License, Version 1.0.
5 * See accompanying file LICENSE_1_0.txt or copy at
6 * http://www.boost.org/LICENSE_1_0.txt
9 * This is a part of the test for a workaround for MSVC 12 (VS2013) optimizer bug
10 * which causes incorrect SIMD code generation for operator==. See:
12 * https://svn.boost.org/trac/boost/ticket/8509#comment:3
13 * https://connect.microsoft.com/VisualStudio/feedbackdetail/view/981648#tabs
15 * This file contains the main entry point.
18 #include "test_msvc_simd_bug981648.hpp"
19 extern void mp_grid_update_marker_parameters(headerProperty
* header_prop
, my_obj
¤t_marker
);
20 static my_obj g_my_obj
;
23 my_obj
*p
= &g_my_obj
;
26 one
.data
[0] = 0; two
.data
[0] = 1;
27 //*****************************************
28 // This != statement generates two movdqu statements or pcmpeqd with a memory operand which crashes
30 std::printf("The first != operator works okay if it reaches this printf.\n");
34 std::printf("There should be a another printf coming next.\n");
35 //*****************************************
36 // The != statement in this function generates a movups and a movdqu statement.
37 // It also crashes because the optimizer also creates a pcmpeqd for a non-aligned memory location.
38 mp_grid_update_marker_parameters(p
, a
);