static long long sse4a_test_extrq (long long in) { __m128i v1, v2; long long index_length, pad; LI v_out; index_length = 0x0000000000000810LL; pad = 0x0; v1 = _mm_set_epi64x (pad, in); v2 = _mm_set_epi64x (pad, index_length); v_out.vec = _mm_extract_si64 (v1, v2); return (v_out.i[0]); }
__m128i test_mm_extract_si64(__m128i x, __m128i y) { // CHECK-LABEL: test_mm_extract_si64 // CHECK: call <2 x i64> @llvm.x86.sse4a.extrq(<2 x i64> %{{[^,]+}}, <16 x i8> %{{[^,]+}}) return _mm_extract_si64(x, y); }
__m128i __attribute__((__target__("sse4a"))) mm_extract_si64_wrap(__m128i x, __m128i y) { return _mm_extract_si64(x, y); }