Changeset View
Changeset View
Standalone View
Standalone View
test/CodeGen/avx-builtins.c
Show First 20 Lines • Show All 308 Lines • ▼ Show 20 Lines | |||||
} | } | ||||
__m256 test_mm256_dp_ps(__m256 A, __m256 B) { | __m256 test_mm256_dp_ps(__m256 A, __m256 B) { | ||||
// CHECK-LABEL: test_mm256_dp_ps | // CHECK-LABEL: test_mm256_dp_ps | ||||
// CHECK: call <8 x float> @llvm.x86.avx.dp.ps.256(<8 x float> {{.*}}, <8 x float> {{.*}}, i8 7) | // CHECK: call <8 x float> @llvm.x86.avx.dp.ps.256(<8 x float> {{.*}}, <8 x float> {{.*}}, i8 7) | ||||
return _mm256_dp_ps(A, B, 7); | return _mm256_dp_ps(A, B, 7); | ||||
} | } | ||||
// FIXME: ZEXT instead of SEXT | |||||
int test_mm256_extract_epi8(__m256i A) { | int test_mm256_extract_epi8(__m256i A) { | ||||
// CHECK-LABEL: test_mm256_extract_epi8 | // CHECK-LABEL: test_mm256_extract_epi8 | ||||
// CHECK: and i32 %{{.*}}, 31 | // CHECK: and i32 %{{.*}}, 31 | ||||
// CHECK: extractelement <32 x i8> %{{.*}}, i32 %{{.*}} | // CHECK: extractelement <32 x i8> %{{.*}}, i32 %{{.*}} | ||||
// CHECK: ext i8 %{{.*}} to i32 | // CHECK: zext i8 %{{.*}} to i32 | ||||
return _mm256_extract_epi8(A, 32); | return _mm256_extract_epi8(A, 32); | ||||
} | } | ||||
// FIXME: ZEXT instead of SEXT | |||||
int test_mm256_extract_epi16(__m256i A) { | int test_mm256_extract_epi16(__m256i A) { | ||||
// CHECK-LABEL: test_mm256_extract_epi16 | // CHECK-LABEL: test_mm256_extract_epi16 | ||||
// CHECK: and i32 %{{.*}}, 15 | // CHECK: and i32 %{{.*}}, 15 | ||||
// CHECK: extractelement <16 x i16> %{{.*}}, i32 %{{.*}} | // CHECK: extractelement <16 x i16> %{{.*}}, i32 %{{.*}} | ||||
// CHECK: ext i16 %{{.*}} to i32 | // CHECK: zext i16 %{{.*}} to i32 | ||||
return _mm256_extract_epi16(A, 16); | return _mm256_extract_epi16(A, 16); | ||||
} | } | ||||
int test_mm256_extract_epi32(__m256i A) { | int test_mm256_extract_epi32(__m256i A) { | ||||
// CHECK-LABEL: test_mm256_extract_epi32 | // CHECK-LABEL: test_mm256_extract_epi32 | ||||
// CHECK: and i32 %{{.*}}, 7 | // CHECK: and i32 %{{.*}}, 7 | ||||
// CHECK: extractelement <8 x i32> %{{.*}}, i32 %{{.*}} | // CHECK: extractelement <8 x i32> %{{.*}}, i32 %{{.*}} | ||||
return _mm256_extract_epi32(A, 8); | return _mm256_extract_epi32(A, 8); | ||||
▲ Show 20 Lines • Show All 1,029 Lines • Show Last 20 Lines |