diff options
Diffstat (limited to 'clang/test/CodeGen/avx-shuffle-builtins.c')
-rw-r--r-- | clang/test/CodeGen/avx-shuffle-builtins.c | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/clang/test/CodeGen/avx-shuffle-builtins.c b/clang/test/CodeGen/avx-shuffle-builtins.c index d071f825aa9..76e2395fe8e 100644 --- a/clang/test/CodeGen/avx-shuffle-builtins.c +++ b/clang/test/CodeGen/avx-shuffle-builtins.c @@ -63,3 +63,37 @@ __m256i test_mm256_permute2f128_si256(__m256i a, __m256i b) { // CHECK: @llvm.x86.avx.vperm2f128.si.256 return _mm256_permute2f128_si256(a, b, 0x20); } + +__m128 +test_mm_broadcast_ss(float const *__a) { + // CHECK-LABEL: @test_mm_broadcast_ss + // CHECK: insertelement <4 x float> {{.*}}, i32 0 + // CHECK: insertelement <4 x float> {{.*}}, i32 1 + // CHECK: insertelement <4 x float> {{.*}}, i32 2 + // CHECK: insertelement <4 x float> {{.*}}, i32 3 + return _mm_broadcast_ss(__a); +} + +__m256d +test_mm256_broadcast_sd(double const *__a) { + // CHECK-LABEL: @test_mm256_broadcast_sd + // CHECK: insertelement <4 x double> {{.*}}, i32 0 + // CHECK: insertelement <4 x double> {{.*}}, i32 1 + // CHECK: insertelement <4 x double> {{.*}}, i32 2 + // CHECK: insertelement <4 x double> {{.*}}, i32 3 + return _mm256_broadcast_sd(__a); +} + +__m256 +test_mm256_broadcast_ss(float const *__a) { + // CHECK-LABEL: @test_mm256_broadcast_ss + // CHECK: insertelement <8 x float> {{.*}}, i32 0 + // CHECK: insertelement <8 x float> {{.*}}, i32 1 + // CHECK: insertelement <8 x float> {{.*}}, i32 2 + // CHECK: insertelement <8 x float> {{.*}}, i32 3 + // CHECK: insertelement <8 x float> {{.*}}, i32 4 + // CHECK: insertelement <8 x float> {{.*}}, i32 5 + // CHECK: insertelement <8 x float> {{.*}}, i32 6 + // CHECK: insertelement <8 x float> {{.*}}, i32 7 + return _mm256_broadcast_ss(__a); +} |