Fix std::bit_cast misuse

This commit is contained in:
Nekotekina 2021-03-10 16:11:30 +03:00
parent 03332c340d
commit 4adf412049
1 changed files with 3 additions and 2 deletions

View File

@ -4,6 +4,7 @@
#include "emmintrin.h"
#include "immintrin.h"
#include "util/asm.hpp"
template <typename Traits>
void program_state_cache<Traits>::fill_fragment_constants_buffer(gsl::span<f32> dst_buffer, const RSXFragmentProgram &fragment_program, bool sanitize) const
@ -52,11 +53,11 @@ void program_state_cache<Traits>::fill_fragment_constants_buffer(gsl::span<f32>
const auto masked = _mm_and_si128(shuffled_vector, _mm_set1_epi32(0x7fffffff));
const auto valid = _mm_cmplt_epi32(masked, _mm_set1_epi32(0x7f800000));
const auto result = _mm_and_si128(shuffled_vector, valid);
_mm_stream_si128(std::bit_cast<__m128i*>(dst), result);
_mm_stream_si128(utils::bless<__m128i>(dst), result);
}
else
{
_mm_stream_si128(std::bit_cast<__m128i*>(dst), shuffled_vector);
_mm_stream_si128(utils::bless<__m128i>(dst), shuffled_vector);
}
dst += 4;