Załóżmy, że zmienna __m128
ma 4 wartości SP, a chcesz minimalną, czy jest dostępna jakaś funkcja wewnętrzna lub coś innego niż naiwne liniowe porównanie wartości?Minimum 4 wartości SP w __m128
prawo znać moje rozwiązanie jest następujące (załóżmy zmienna wejściowa __m128
jest x
):
x = _mm_min_ps(x, (__m128)_mm_srli_si128((__m128i)x, 4));
min = _mm_min_ss(x, (__m128)_mm_srli_si128((__m128i)x, 8))[0];
który jest dość straszne, ale to działa (btw, czy istnieje coś takiego jak _mm_srli_si128
ale dla typu __m128
?)
jesteś pewien, że to prawda? Przetestowałem z tym wektorem wejściowym (od 'v [0]' do 'v [3]') '0.109375 0.096875 0.093750 0.096875' i jest to wynik:' 0.096875 0.096875 0.093750 0.093750'. Co masz na myśli przez replikację? –
Przepraszam - Zniszczyłem stałe permutacji - zostało to naprawione i przetestowane. Wektor wyjściowy ma wszystkie 4 elementy równe minowi elementu wektora wejściowego. –