[CodeGen][X86] Cleanup labels on some sse/avx intrinsics tests. NFCI.

Add some missing CHECK-LABEL lines.

Remove leading '@' so it'll be possible to match against c and c++ builds in a future patch.
This commit is contained in:
Simon Pilgrim 2020-10-07 17:27:32 +01:00
parent c1247f0e74
commit 42d91438ad
6 changed files with 86 additions and 86 deletions

View File

@ -4,7 +4,7 @@
#include <immintrin.h>
__m256d test_mm256_cmp_pd_eq_oq(__m256d a, __m256d b) {
// CHECK-LABEL: @test_mm256_cmp_pd_eq_oq
// CHECK-LABEL: test_mm256_cmp_pd_eq_oq
// CHECK: call <4 x i1> @llvm.experimental.constrained.fcmp.v4f64(<4 x double> %{{.*}}, <4 x double> %{{.*}}, metadata !"oeq", metadata !"fpexcept.strict")
return _mm256_cmp_pd(a, b, _CMP_EQ_OQ);
}
@ -196,7 +196,7 @@ __m256d test_mm256_cmp_pd_true_us(__m256d a, __m256d b) {
}
__m256 test_mm256_cmp_ps_eq_oq(__m256 a, __m256 b) {
// CHECK-LABEL: @test_mm256_cmp_ps_eq_oq
// CHECK-LABEL: test_mm256_cmp_ps_eq_oq
// CHECK: call <8 x i1> @llvm.experimental.constrained.fcmp.v8f32(<8 x float> %{{.*}}, <8 x float> %{{.*}}, metadata !"oeq", metadata !"fpexcept.strict")
return _mm256_cmp_ps(a, b, _CMP_EQ_OQ);
}
@ -388,7 +388,7 @@ __m256 test_mm256_cmp_ps_true_us(__m256 a, __m256 b) {
}
__m128d test_mm_cmp_pd_eq_oq(__m128d a, __m128d b) {
// CHECK-LABEL: @test_mm_cmp_pd_eq_oq
// CHECK-LABEL: test_mm_cmp_pd_eq_oq
// CHECK: call <2 x i1> @llvm.experimental.constrained.fcmp.v2f64(<2 x double> %{{.*}}, <2 x double> %{{.*}}, metadata !"oeq", metadata !"fpexcept.strict")
return _mm_cmp_pd(a, b, _CMP_EQ_OQ);
}
@ -580,7 +580,7 @@ __m128d test_mm_cmp_pd_true_us(__m128d a, __m128d b) {
}
__m128 test_mm_cmp_ps_eq_oq(__m128 a, __m128 b) {
// CHECK-LABEL: @test_mm_cmp_ps_eq_oq
// CHECK-LABEL: test_mm_cmp_ps_eq_oq
// CHECK: call <4 x i1> @llvm.experimental.constrained.fcmp.v4f32(<4 x float> %{{.*}}, <4 x float> %{{.*}}, metadata !"oeq", metadata !"fpexcept.strict")
return _mm_cmp_ps(a, b, _CMP_EQ_OQ);
}

View File

@ -214,7 +214,7 @@ __m256 test_mm_ceil_ps(__m256 x) {
}
__m256d test_mm256_cmp_pd_eq_oq(__m256d a, __m256d b) {
// CHECK-LABEL: @test_mm256_cmp_pd_eq_oq
// CHECK-LABEL: test_mm256_cmp_pd_eq_oq
// CHECK: fcmp oeq <4 x double> %{{.*}}, %{{.*}}
return _mm256_cmp_pd(a, b, _CMP_EQ_OQ);
}
@ -406,7 +406,7 @@ __m256d test_mm256_cmp_pd_true_us(__m256d a, __m256d b) {
}
__m256 test_mm256_cmp_ps_eq_oq(__m256 a, __m256 b) {
// CHECK-LABEL: @test_mm256_cmp_ps_eq_oq
// CHECK-LABEL: test_mm256_cmp_ps_eq_oq
// CHECK: fcmp oeq <8 x float> %{{.*}}, %{{.*}}
return _mm256_cmp_ps(a, b, _CMP_EQ_OQ);
}
@ -598,7 +598,7 @@ __m256 test_mm256_cmp_ps_true_us(__m256 a, __m256 b) {
}
__m128d test_mm_cmp_pd_eq_oq(__m128d a, __m128d b) {
// CHECK-LABEL: @test_mm_cmp_pd_eq_oq
// CHECK-LABEL: test_mm_cmp_pd_eq_oq
// CHECK: fcmp oeq <2 x double> %{{.*}}, %{{.*}}
return _mm_cmp_pd(a, b, _CMP_EQ_OQ);
}
@ -790,7 +790,7 @@ __m128d test_mm_cmp_pd_true_us(__m128d a, __m128d b) {
}
__m128 test_mm_cmp_ps_eq_oq(__m128 a, __m128 b) {
// CHECK-LABEL: @test_mm_cmp_ps_eq_oq
// CHECK-LABEL: test_mm_cmp_ps_eq_oq
// CHECK: fcmp oeq <4 x float> %{{.*}}, %{{.*}}
return _mm_cmp_ps(a, b, _CMP_EQ_OQ);
}
@ -2062,19 +2062,19 @@ int test_mm256_testz_si256(__m256i A, __m256i B) {
}
__m256 test_mm256_undefined_ps() {
// CHECK-LABEL: @test_mm256_undefined_ps
// CHECK-LABEL: test_mm256_undefined_ps
// CHECK: ret <8 x float> zeroinitializer
return _mm256_undefined_ps();
}
__m256d test_mm256_undefined_pd() {
// CHECK-LABEL: @test_mm256_undefined_pd
// CHECK-LABEL: test_mm256_undefined_pd
// CHECK: ret <4 x double> zeroinitializer
return _mm256_undefined_pd();
}
__m256i test_mm256_undefined_si256() {
// CHECK-LABEL: @test_mm256_undefined_si256
// CHECK-LABEL: test_mm256_undefined_si256
// CHECK: ret <4 x i64> zeroinitializer
return _mm256_undefined_si256();
}
@ -2150,21 +2150,21 @@ __m256i test_mm256_zextsi128_si256(__m128i A) {
double test_mm256_cvtsd_f64(__m256d __a)
{
// CHECK-LABEL: @test_mm256_cvtsd_f64
// CHECK-LABEL: test_mm256_cvtsd_f64
// CHECK: extractelement <4 x double> %{{.*}}, i32 0
return _mm256_cvtsd_f64(__a);
}
int test_mm256_cvtsi256_si32(__m256i __a)
{
// CHECK-LABEL: @test_mm256_cvtsi256_si32
// CHECK-LABEL: test_mm256_cvtsi256_si32
// CHECK: extractelement <8 x i32> %{{.*}}, i32 0
return _mm256_cvtsi256_si32(__a);
}
float test_mm256_cvtss_f32(__m256 __a)
{
// CHECK-LABEL: @test_mm256_cvtss_f32
// CHECK-LABEL: test_mm256_cvtss_f32
// CHECK: extractelement <8 x float> %{{.*}}, i32 0
return _mm256_cvtss_f32(__a);
}

View File

@ -5,67 +5,67 @@
#include <immintrin.h>
//
// Test LLVM IR codegen of shuffle instructions
// Test LLVM IR codegen of shuffle instructions, checking if the masks are correct
//
__m256 x(__m256 a, __m256 b) {
// Check if the mask is correct
// CHECK-LABEL: x
// CHECK: shufflevector{{.*}}<i32 3, i32 2, i32 8, i32 11, i32 7, i32 6, i32 12, i32 15>
return _mm256_shuffle_ps(a, b, 203);
}
__m128d test_mm_permute_pd(__m128d a) {
// Check if the mask is correct
// CHECK-LABEL: test_mm_permute_pd
// CHECK: shufflevector{{.*}}<i32 1, i32 0>
return _mm_permute_pd(a, 1);
}
__m256d test_mm256_permute_pd(__m256d a) {
// Check if the mask is correct
// CHECK-LABEL: test_mm256_permute_pd
// CHECK: shufflevector{{.*}}<i32 1, i32 0, i32 3, i32 2>
return _mm256_permute_pd(a, 5);
}
__m128 test_mm_permute_ps(__m128 a) {
// Check if the mask is correct
// CHECK-LABEL: test_mm_permute_ps
// CHECK: shufflevector{{.*}}<i32 3, i32 2, i32 1, i32 0>
return _mm_permute_ps(a, 0x1b);
}
// Test case for PR12401
__m128 test_mm_permute_ps2(__m128 a) {
// Check if the mask is correct
// CHECK-LABEL: test_mm_permute_ps2
// CHECK: shufflevector{{.*}}<i32 2, i32 1, i32 2, i32 3>
return _mm_permute_ps(a, 0xe6);
}
__m256 test_mm256_permute_ps(__m256 a) {
// Check if the mask is correct
// CHECK-LABEL: test_mm256_permute_ps
// CHECK: shufflevector{{.*}}<i32 3, i32 2, i32 1, i32 0, i32 7, i32 6, i32 5, i32 4>
return _mm256_permute_ps(a, 0x1b);
}
__m256d test_mm256_permute2f128_pd(__m256d a, __m256d b) {
// Check if the mask is correct
// CHECK-LABEL: test_mm256_permute2f128_pd
// CHECK: shufflevector{{.*}}<i32 2, i32 3, i32 6, i32 7>
return _mm256_permute2f128_pd(a, b, 0x31);
}
__m256 test_mm256_permute2f128_ps(__m256 a, __m256 b) {
// Check if the mask is correct
// CHECK-LABEL: test_mm256_permute2f128_ps
// CHECK: shufflevector{{.*}}<i32 4, i32 5, i32 6, i32 7, i32 12, i32 13, i32 14, i32 15>
return _mm256_permute2f128_ps(a, b, 0x13);
}
__m256i test_mm256_permute2f128_si256(__m256i a, __m256i b) {
// Check if the mask is correct
// CHECK-LABEL: test_mm256_permute2f128_si256
// CHECK: shufflevector{{.*}} <8 x i32> <i32 0, i32 1, i32 2, i32 3, i32 8, i32 9, i32 10, i32 11>
return _mm256_permute2f128_si256(a, b, 0x20);
}
__m128
test_mm_broadcast_ss(float const *__a) {
// CHECK-LABEL: @test_mm_broadcast_ss
// CHECK-LABEL: test_mm_broadcast_ss
// CHECK: insertelement <4 x float> {{.*}}, i32 0
// CHECK: shufflevector <4 x float> {{.*}}, <4 x float> undef, <4 x i32> zeroinitializer
return _mm_broadcast_ss(__a);
@ -73,7 +73,7 @@ test_mm_broadcast_ss(float const *__a) {
__m256d
test_mm256_broadcast_sd(double const *__a) {
// CHECK-LABEL: @test_mm256_broadcast_sd
// CHECK-LABEL: test_mm256_broadcast_sd
// CHECK: insertelement <4 x double> {{.*}}, i32 0
// CHECK: shufflevector <4 x double> {{.*}}, <4 x double> undef, <4 x i32> zeroinitializer
return _mm256_broadcast_sd(__a);
@ -81,7 +81,7 @@ test_mm256_broadcast_sd(double const *__a) {
__m256
test_mm256_broadcast_ss(float const *__a) {
// CHECK-LABEL: @test_mm256_broadcast_ss
// CHECK-LABEL: test_mm256_broadcast_ss
// CHECK: insertelement <8 x float> {{.*}}, i32 0
// CHECK: shufflevector <8 x float> {{.*}}, <8 x float> undef, <8 x i32> zeroinitializer
return _mm256_broadcast_ss(__a);
@ -90,37 +90,37 @@ test_mm256_broadcast_ss(float const *__a) {
// Make sure we have the correct mask for each insertf128 case.
__m256 test_mm256_insertf128_ps_0(__m256 a, __m128 b) {
// CHECK-LABEL: @test_mm256_insertf128_ps_0
// CHECK-LABEL: test_mm256_insertf128_ps_0
// CHECK: shufflevector{{.*}}<i32 0, i32 1, i32 2, i32 3, i32 12, i32 13, i32 14, i32 15>
return _mm256_insertf128_ps(a, b, 0);
}
__m256d test_mm256_insertf128_pd_0(__m256d a, __m128d b) {
// CHECK-LABEL: @test_mm256_insertf128_pd_0
// CHECK-LABEL: test_mm256_insertf128_pd_0
// CHECK: shufflevector{{.*}}<i32 0, i32 1, i32 6, i32 7>
return _mm256_insertf128_pd(a, b, 0);
}
__m256i test_mm256_insertf128_si256_0(__m256i a, __m128i b) {
// CHECK-LABEL: @test_mm256_insertf128_si256_0
// CHECK-LABEL: test_mm256_insertf128_si256_0
// CHECK: shufflevector{{.*}}<i32 0, i32 1, i32 2, i32 3, i32 12, i32 13, i32 14, i32 15>
return _mm256_insertf128_si256(a, b, 0);
}
__m256 test_mm256_insertf128_ps_1(__m256 a, __m128 b) {
// CHECK-LABEL: @test_mm256_insertf128_ps_1
// CHECK-LABEL: test_mm256_insertf128_ps_1
// CHECK: shufflevector{{.*}}<i32 0, i32 1, i32 2, i32 3, i32 8, i32 9, i32 10, i32 11>
return _mm256_insertf128_ps(a, b, 1);
}
__m256d test_mm256_insertf128_pd_1(__m256d a, __m128d b) {
// CHECK-LABEL: @test_mm256_insertf128_pd_1
// CHECK-LABEL: test_mm256_insertf128_pd_1
// CHECK: shufflevector{{.*}}<i32 0, i32 1, i32 4, i32 5>
return _mm256_insertf128_pd(a, b, 1);
}
__m256i test_mm256_insertf128_si256_1(__m256i a, __m128i b) {
// CHECK-LABEL: @test_mm256_insertf128_si256_1
// CHECK-LABEL: test_mm256_insertf128_si256_1
// CHECK: shufflevector{{.*}}<i32 0, i32 1, i32 2, i32 3, i32 8, i32 9, i32 10, i32 11>
return _mm256_insertf128_si256(a, b, 1);
}
@ -128,73 +128,73 @@ __m256i test_mm256_insertf128_si256_1(__m256i a, __m128i b) {
// Make sure we have the correct mask for each extractf128 case.
__m128 test_mm256_extractf128_ps_0(__m256 a) {
// CHECK-LABEL: @test_mm256_extractf128_ps_0
// CHECK-LABEL: test_mm256_extractf128_ps_0
// CHECK: shufflevector{{.*}}<i32 0, i32 1, i32 2, i32 3>
return _mm256_extractf128_ps(a, 0);
}
__m128d test_mm256_extractf128_pd_0(__m256d a) {
// CHECK-LABEL: @test_mm256_extractf128_pd_0
// CHECK-LABEL: test_mm256_extractf128_pd_0
// CHECK: shufflevector{{.*}}<i32 0, i32 1>
return _mm256_extractf128_pd(a, 0);
}
__m128i test_mm256_extractf128_si256_0(__m256i a) {
// CHECK-LABEL: @test_mm256_extractf128_si256_0
// CHECK-LABEL: test_mm256_extractf128_si256_0
// CHECK: shufflevector{{.*}}<i32 0, i32 1, i32 2, i32 3>
return _mm256_extractf128_si256(a, 0);
}
__m128 test_mm256_extractf128_ps_1(__m256 a) {
// CHECK-LABEL: @test_mm256_extractf128_ps_1
// CHECK-LABEL: test_mm256_extractf128_ps_1
// CHECK: shufflevector{{.*}}<i32 4, i32 5, i32 6, i32 7>
return _mm256_extractf128_ps(a, 1);
}
__m128d test_mm256_extractf128_pd_1(__m256d a) {
// CHECK-LABEL: @test_mm256_extractf128_pd_1
// CHECK-LABEL: test_mm256_extractf128_pd_1
// CHECK: shufflevector{{.*}}<i32 2, i32 3>
return _mm256_extractf128_pd(a, 1);
}
__m128i test_mm256_extractf128_si256_1(__m256i a) {
// CHECK-LABEL: @test_mm256_extractf128_si256_1
// CHECK-LABEL: test_mm256_extractf128_si256_1
// CHECK: shufflevector{{.*}}<i32 4, i32 5, i32 6, i32 7>
return _mm256_extractf128_si256(a, 1);
}
__m256 test_mm256_set_m128(__m128 hi, __m128 lo) {
// CHECK-LABEL: @test_mm256_set_m128
// CHECK-LABEL: test_mm256_set_m128
// CHECK: shufflevector{{.*}}<i32 0, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7>
return _mm256_set_m128(hi, lo);
}
__m256d test_mm256_set_m128d(__m128d hi, __m128d lo) {
// CHECK-LABEL: @test_mm256_set_m128d
// CHECK-LABEL: test_mm256_set_m128d
// CHECK: shufflevector{{.*}}<i32 0, i32 1, i32 2, i32 3>
return _mm256_set_m128d(hi, lo);
}
__m256i test_mm256_set_m128i(__m128i hi, __m128i lo) {
// CHECK-LABEL: @test_mm256_set_m128i
// CHECK-LABEL: test_mm256_set_m128i
// CHECK: shufflevector{{.*}}<i32 0, i32 1, i32 2, i32 3>
return _mm256_set_m128i(hi, lo);
}
__m256 test_mm256_setr_m128(__m128 hi, __m128 lo) {
// CHECK-LABEL: @test_mm256_setr_m128
// CHECK-LABEL: test_mm256_setr_m128
// CHECK: shufflevector{{.*}}<i32 0, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7>
return _mm256_setr_m128(lo, hi);
}
__m256d test_mm256_setr_m128d(__m128d hi, __m128d lo) {
// CHECK-LABEL: @test_mm256_setr_m128d
// CHECK-LABEL: test_mm256_setr_m128d
// CHECK: shufflevector{{.*}}<i32 0, i32 1, i32 2, i32 3>
return _mm256_setr_m128d(lo, hi);
}
__m256i test_mm256_setr_m128i(__m128i hi, __m128i lo) {
// CHECK-LABEL: @test_mm256_setr_m128i
// CHECK-LABEL: test_mm256_setr_m128i
// CHECK: shufflevector{{.*}}<i32 0, i32 1, i32 2, i32 3>
return _mm256_setr_m128i(lo, hi);
}

View File

@ -4,7 +4,7 @@
#include <immintrin.h>
__m128 test_mm_cmpeq_ps(__m128 __a, __m128 __b) {
// CHECK-LABEL: @test_mm_cmpeq_ps
// CHECK-LABEL: test_mm_cmpeq_ps
// CHECK: [[CMP:%.*]] = call <4 x i1> @llvm.experimental.constrained.fcmp.v4f32(<4 x float> %{{.*}}, <4 x float> %{{.*}}, metadata !"oeq", metadata !"fpexcept.strict")
// CHECK-NEXT: [[SEXT:%.*]] = sext <4 x i1> [[CMP]] to <4 x i32>
// CHECK-NEXT: [[BC:%.*]] = bitcast <4 x i32> [[SEXT]] to <4 x float>
@ -13,7 +13,7 @@ __m128 test_mm_cmpeq_ps(__m128 __a, __m128 __b) {
}
__m128 test_mm_cmpge_ps(__m128 __a, __m128 __b) {
// CHECK-LABEL: @test_mm_cmpge_ps
// CHECK-LABEL: test_mm_cmpge_ps
// CHECK: [[CMP:%.*]] = call <4 x i1> @llvm.experimental.constrained.fcmps.v4f32(<4 x float> %{{.*}}, <4 x float> %{{.*}}, metadata !"ole", metadata !"fpexcept.strict")
// CHECK-NEXT: [[SEXT:%.*]] = sext <4 x i1> [[CMP]] to <4 x i32>
// CHECK-NEXT: [[BC:%.*]] = bitcast <4 x i32> [[SEXT]] to <4 x float>
@ -22,7 +22,7 @@ __m128 test_mm_cmpge_ps(__m128 __a, __m128 __b) {
}
__m128 test_mm_cmpgt_ps(__m128 __a, __m128 __b) {
// CHECK-LABEL: @test_mm_cmpgt_ps
// CHECK-LABEL: test_mm_cmpgt_ps
// CHECK: [[CMP:%.*]] = call <4 x i1> @llvm.experimental.constrained.fcmps.v4f32(<4 x float> %{{.*}}, <4 x float> %{{.*}}, metadata !"olt", metadata !"fpexcept.strict")
// CHECK-NEXT: [[SEXT:%.*]] = sext <4 x i1> [[CMP]] to <4 x i32>
// CHECK-NEXT: [[BC:%.*]] = bitcast <4 x i32> [[SEXT]] to <4 x float>
@ -31,7 +31,7 @@ __m128 test_mm_cmpgt_ps(__m128 __a, __m128 __b) {
}
__m128 test_mm_cmple_ps(__m128 __a, __m128 __b) {
// CHECK-LABEL: @test_mm_cmple_ps
// CHECK-LABEL: test_mm_cmple_ps
// CHECK: [[CMP:%.*]] = call <4 x i1> @llvm.experimental.constrained.fcmps.v4f32(<4 x float> %{{.*}}, <4 x float> %{{.*}}, metadata !"ole", metadata !"fpexcept.strict")
// CHECK-NEXT: [[SEXT:%.*]] = sext <4 x i1> [[CMP]] to <4 x i32>
// CHECK-NEXT: [[BC:%.*]] = bitcast <4 x i32> [[SEXT]] to <4 x float>
@ -40,7 +40,7 @@ __m128 test_mm_cmple_ps(__m128 __a, __m128 __b) {
}
__m128 test_mm_cmplt_ps(__m128 __a, __m128 __b) {
// CHECK-LABEL: @test_mm_cmplt_ps
// CHECK-LABEL: test_mm_cmplt_ps
// CHECK: [[CMP:%.*]] = call <4 x i1> @llvm.experimental.constrained.fcmps.v4f32(<4 x float> %{{.*}}, <4 x float> %{{.*}}, metadata !"olt", metadata !"fpexcept.strict")
// CHECK-NEXT: [[SEXT:%.*]] = sext <4 x i1> [[CMP]] to <4 x i32>
// CHECK-NEXT: [[BC:%.*]] = bitcast <4 x i32> [[SEXT]] to <4 x float>
@ -49,7 +49,7 @@ __m128 test_mm_cmplt_ps(__m128 __a, __m128 __b) {
}
__m128 test_mm_cmpneq_ps(__m128 __a, __m128 __b) {
// CHECK-LABEL: @test_mm_cmpneq_ps
// CHECK-LABEL: test_mm_cmpneq_ps
// CHECK: [[CMP:%.*]] = call <4 x i1> @llvm.experimental.constrained.fcmp.v4f32(<4 x float> %{{.*}}, <4 x float> %{{.*}}, metadata !"une", metadata !"fpexcept.strict")
// CHECK-NEXT: [[SEXT:%.*]] = sext <4 x i1> [[CMP]] to <4 x i32>
// CHECK-NEXT: [[BC:%.*]] = bitcast <4 x i32> [[SEXT]] to <4 x float>
@ -58,7 +58,7 @@ __m128 test_mm_cmpneq_ps(__m128 __a, __m128 __b) {
}
__m128 test_mm_cmpnge_ps(__m128 __a, __m128 __b) {
// CHECK-LABEL: @test_mm_cmpnge_ps
// CHECK-LABEL: test_mm_cmpnge_ps
// CHECK: [[CMP:%.*]] = call <4 x i1> @llvm.experimental.constrained.fcmps.v4f32(<4 x float> %{{.*}}, <4 x float> %{{.*}}, metadata !"ugt", metadata !"fpexcept.strict")
// CHECK-NEXT: [[SEXT:%.*]] = sext <4 x i1> [[CMP]] to <4 x i32>
// CHECK-NEXT: [[BC:%.*]] = bitcast <4 x i32> [[SEXT]] to <4 x float>
@ -67,7 +67,7 @@ __m128 test_mm_cmpnge_ps(__m128 __a, __m128 __b) {
}
__m128 test_mm_cmpngt_ps(__m128 __a, __m128 __b) {
// CHECK-LABEL: @test_mm_cmpngt_ps
// CHECK-LABEL: test_mm_cmpngt_ps
// CHECK: [[CMP:%.*]] = call <4 x i1> @llvm.experimental.constrained.fcmps.v4f32(<4 x float> %{{.*}}, <4 x float> %{{.*}}, metadata !"uge", metadata !"fpexcept.strict")
// CHECK-NEXT: [[SEXT:%.*]] = sext <4 x i1> [[CMP]] to <4 x i32>
// CHECK-NEXT: [[BC:%.*]] = bitcast <4 x i32> [[SEXT]] to <4 x float>
@ -76,7 +76,7 @@ __m128 test_mm_cmpngt_ps(__m128 __a, __m128 __b) {
}
__m128 test_mm_cmpnle_ps(__m128 __a, __m128 __b) {
// CHECK-LABEL: @test_mm_cmpnle_ps
// CHECK-LABEL: test_mm_cmpnle_ps
// CHECK: [[CMP:%.*]] = call <4 x i1> @llvm.experimental.constrained.fcmps.v4f32(<4 x float> %{{.*}}, <4 x float> %{{.*}}, metadata !"ugt", metadata !"fpexcept.strict")
// CHECK-NEXT: [[SEXT:%.*]] = sext <4 x i1> [[CMP]] to <4 x i32>
// CHECK-NEXT: [[BC:%.*]] = bitcast <4 x i32> [[SEXT]] to <4 x float>
@ -85,7 +85,7 @@ __m128 test_mm_cmpnle_ps(__m128 __a, __m128 __b) {
}
__m128 test_mm_cmpnlt_ps(__m128 __a, __m128 __b) {
// CHECK-LABEL: @test_mm_cmpnlt_ps
// CHECK-LABEL: test_mm_cmpnlt_ps
// CHECK: [[CMP:%.*]] = call <4 x i1> @llvm.experimental.constrained.fcmps.v4f32(<4 x float> %{{.*}}, <4 x float> %{{.*}}, metadata !"uge", metadata !"fpexcept.strict")
// CHECK-NEXT: [[SEXT:%.*]] = sext <4 x i1> [[CMP]] to <4 x i32>
// CHECK-NEXT: [[BC:%.*]] = bitcast <4 x i32> [[SEXT]] to <4 x float>
@ -94,7 +94,7 @@ __m128 test_mm_cmpnlt_ps(__m128 __a, __m128 __b) {
}
__m128 test_mm_cmpord_ps(__m128 __a, __m128 __b) {
// CHECK-LABEL: @test_mm_cmpord_ps
// CHECK-LABEL: test_mm_cmpord_ps
// CHECK: [[CMP:%.*]] = call <4 x i1> @llvm.experimental.constrained.fcmp.v4f32(<4 x float> %{{.*}}, <4 x float> %{{.*}}, metadata !"ord", metadata !"fpexcept.strict")
// CHECK-NEXT: [[SEXT:%.*]] = sext <4 x i1> [[CMP]] to <4 x i32>
// CHECK-NEXT: [[BC:%.*]] = bitcast <4 x i32> [[SEXT]] to <4 x float>
@ -103,7 +103,7 @@ __m128 test_mm_cmpord_ps(__m128 __a, __m128 __b) {
}
__m128 test_mm_cmpunord_ps(__m128 __a, __m128 __b) {
// CHECK-LABEL: @test_mm_cmpunord_ps
// CHECK-LABEL: test_mm_cmpunord_ps
// CHECK: [[CMP:%.*]] = call <4 x i1> @llvm.experimental.constrained.fcmp.v4f32(<4 x float> %{{.*}}, <4 x float> %{{.*}}, metadata !"uno", metadata !"fpexcept.strict")
// CHECK-NEXT: [[SEXT:%.*]] = sext <4 x i1> [[CMP]] to <4 x i32>
// CHECK-NEXT: [[BC:%.*]] = bitcast <4 x i32> [[SEXT]] to <4 x float>

View File

@ -35,7 +35,7 @@ __m128 test_mm_andnot_ps(__m128 A, __m128 B) {
}
__m128 test_mm_cmpeq_ps(__m128 __a, __m128 __b) {
// CHECK-LABEL: @test_mm_cmpeq_ps
// CHECK-LABEL: test_mm_cmpeq_ps
// CHECK: [[CMP:%.*]] = fcmp oeq <4 x float>
// CHECK-NEXT: [[SEXT:%.*]] = sext <4 x i1> [[CMP]] to <4 x i32>
// CHECK-NEXT: [[BC:%.*]] = bitcast <4 x i32> [[SEXT]] to <4 x float>
@ -44,13 +44,13 @@ __m128 test_mm_cmpeq_ps(__m128 __a, __m128 __b) {
}
__m128 test_mm_cmpeq_ss(__m128 __a, __m128 __b) {
// CHECK-LABEL: @test_mm_cmpeq_ss
// CHECK-LABEL: test_mm_cmpeq_ss
// CHECK: @llvm.x86.sse.cmp.ss(<4 x float> %{{.*}}, <4 x float> %{{.*}}, i8 0)
return _mm_cmpeq_ss(__a, __b);
}
__m128 test_mm_cmpge_ps(__m128 __a, __m128 __b) {
// CHECK-LABEL: @test_mm_cmpge_ps
// CHECK-LABEL: test_mm_cmpge_ps
// CHECK: [[CMP:%.*]] = fcmp ole <4 x float>
// CHECK-NEXT: [[SEXT:%.*]] = sext <4 x i1> [[CMP]] to <4 x i32>
// CHECK-NEXT: [[BC:%.*]] = bitcast <4 x i32> [[SEXT]] to <4 x float>
@ -59,14 +59,14 @@ __m128 test_mm_cmpge_ps(__m128 __a, __m128 __b) {
}
__m128 test_mm_cmpge_ss(__m128 __a, __m128 __b) {
// CHECK-LABEL: @test_mm_cmpge_ss
// CHECK-LABEL: test_mm_cmpge_ss
// CHECK: @llvm.x86.sse.cmp.ss(<4 x float> %{{.*}}, <4 x float> %{{.*}}, i8 2)
// CHECK: shufflevector <4 x float> %{{.*}}, <4 x float> %{{.*}}, <4 x i32> <i32 4, i32 1, i32 2, i32 3>
return _mm_cmpge_ss(__a, __b);
}
__m128 test_mm_cmpgt_ps(__m128 __a, __m128 __b) {
// CHECK-LABEL: @test_mm_cmpgt_ps
// CHECK-LABEL: test_mm_cmpgt_ps
// CHECK: [[CMP:%.*]] = fcmp olt <4 x float>
// CHECK-NEXT: [[SEXT:%.*]] = sext <4 x i1> [[CMP]] to <4 x i32>
// CHECK-NEXT: [[BC:%.*]] = bitcast <4 x i32> [[SEXT]] to <4 x float>
@ -75,14 +75,14 @@ __m128 test_mm_cmpgt_ps(__m128 __a, __m128 __b) {
}
__m128 test_mm_cmpgt_ss(__m128 __a, __m128 __b) {
// CHECK-LABEL: @test_mm_cmpgt_ss
// CHECK-LABEL: test_mm_cmpgt_ss
// CHECK: @llvm.x86.sse.cmp.ss(<4 x float> %{{.*}}, <4 x float> %{{.*}}, i8 1)
// CHECK: shufflevector <4 x float> %{{.*}}, <4 x float> %{{.*}}, <4 x i32> <i32 4, i32 1, i32 2, i32 3>
return _mm_cmpgt_ss(__a, __b);
}
__m128 test_mm_cmple_ps(__m128 __a, __m128 __b) {
// CHECK-LABEL: @test_mm_cmple_ps
// CHECK-LABEL: test_mm_cmple_ps
// CHECK: [[CMP:%.*]] = fcmp ole <4 x float>
// CHECK-NEXT: [[SEXT:%.*]] = sext <4 x i1> [[CMP]] to <4 x i32>
// CHECK-NEXT: [[BC:%.*]] = bitcast <4 x i32> [[SEXT]] to <4 x float>
@ -91,13 +91,13 @@ __m128 test_mm_cmple_ps(__m128 __a, __m128 __b) {
}
__m128 test_mm_cmple_ss(__m128 __a, __m128 __b) {
// CHECK-LABEL: @test_mm_cmple_ss
// CHECK-LABEL: test_mm_cmple_ss
// CHECK: @llvm.x86.sse.cmp.ss(<4 x float> %{{.*}}, <4 x float> %{{.*}}, i8 2)
return _mm_cmple_ss(__a, __b);
}
__m128 test_mm_cmplt_ps(__m128 __a, __m128 __b) {
// CHECK-LABEL: @test_mm_cmplt_ps
// CHECK-LABEL: test_mm_cmplt_ps
// CHECK: [[CMP:%.*]] = fcmp olt <4 x float>
// CHECK-NEXT: [[SEXT:%.*]] = sext <4 x i1> [[CMP]] to <4 x i32>
// CHECK-NEXT: [[BC:%.*]] = bitcast <4 x i32> [[SEXT]] to <4 x float>
@ -106,13 +106,13 @@ __m128 test_mm_cmplt_ps(__m128 __a, __m128 __b) {
}
__m128 test_mm_cmplt_ss(__m128 __a, __m128 __b) {
// CHECK-LABEL: @test_mm_cmplt_ss
// CHECK-LABEL: test_mm_cmplt_ss
// CHECK: @llvm.x86.sse.cmp.ss(<4 x float> %{{.*}}, <4 x float> %{{.*}}, i8 1)
return _mm_cmplt_ss(__a, __b);
}
__m128 test_mm_cmpneq_ps(__m128 __a, __m128 __b) {
// CHECK-LABEL: @test_mm_cmpneq_ps
// CHECK-LABEL: test_mm_cmpneq_ps
// CHECK: [[CMP:%.*]] = fcmp une <4 x float>
// CHECK-NEXT: [[SEXT:%.*]] = sext <4 x i1> [[CMP]] to <4 x i32>
// CHECK-NEXT: [[BC:%.*]] = bitcast <4 x i32> [[SEXT]] to <4 x float>
@ -121,13 +121,13 @@ __m128 test_mm_cmpneq_ps(__m128 __a, __m128 __b) {
}
__m128 test_mm_cmpneq_ss(__m128 __a, __m128 __b) {
// CHECK-LABEL: @test_mm_cmpneq_ss
// CHECK-LABEL: test_mm_cmpneq_ss
// CHECK: @llvm.x86.sse.cmp.ss(<4 x float> %{{.*}}, <4 x float> %{{.*}}, i8 4)
return _mm_cmpneq_ss(__a, __b);
}
__m128 test_mm_cmpnge_ps(__m128 __a, __m128 __b) {
// CHECK-LABEL: @test_mm_cmpnge_ps
// CHECK-LABEL: test_mm_cmpnge_ps
// CHECK: [[CMP:%.*]] = fcmp ugt <4 x float>
// CHECK-NEXT: [[SEXT:%.*]] = sext <4 x i1> [[CMP]] to <4 x i32>
// CHECK-NEXT: [[BC:%.*]] = bitcast <4 x i32> [[SEXT]] to <4 x float>
@ -136,14 +136,14 @@ __m128 test_mm_cmpnge_ps(__m128 __a, __m128 __b) {
}
__m128 test_mm_cmpnge_ss(__m128 __a, __m128 __b) {
// CHECK-LABEL: @test_mm_cmpnge_ss
// CHECK-LABEL: test_mm_cmpnge_ss
// CHECK: @llvm.x86.sse.cmp.ss(<4 x float> %{{.*}}, <4 x float> %{{.*}}, i8 6)
// CHECK: shufflevector <4 x float> %{{.*}}, <4 x float> %{{.*}}, <4 x i32> <i32 4, i32 1, i32 2, i32 3>
return _mm_cmpnge_ss(__a, __b);
}
__m128 test_mm_cmpngt_ps(__m128 __a, __m128 __b) {
// CHECK-LABEL: @test_mm_cmpngt_ps
// CHECK-LABEL: test_mm_cmpngt_ps
// CHECK: [[CMP:%.*]] = fcmp uge <4 x float>
// CHECK-NEXT: [[SEXT:%.*]] = sext <4 x i1> [[CMP]] to <4 x i32>
// CHECK-NEXT: [[BC:%.*]] = bitcast <4 x i32> [[SEXT]] to <4 x float>
@ -152,14 +152,14 @@ __m128 test_mm_cmpngt_ps(__m128 __a, __m128 __b) {
}
__m128 test_mm_cmpngt_ss(__m128 __a, __m128 __b) {
// CHECK-LABEL: @test_mm_cmpngt_ss
// CHECK-LABEL: test_mm_cmpngt_ss
// CHECK: @llvm.x86.sse.cmp.ss(<4 x float> %{{.*}}, <4 x float> %{{.*}}, i8 5)
// CHECK: shufflevector <4 x float> %{{.*}}, <4 x float> %{{.*}}, <4 x i32> <i32 4, i32 1, i32 2, i32 3>
return _mm_cmpngt_ss(__a, __b);
}
__m128 test_mm_cmpnle_ps(__m128 __a, __m128 __b) {
// CHECK-LABEL: @test_mm_cmpnle_ps
// CHECK-LABEL: test_mm_cmpnle_ps
// CHECK: [[CMP:%.*]] = fcmp ugt <4 x float>
// CHECK-NEXT: [[SEXT:%.*]] = sext <4 x i1> [[CMP]] to <4 x i32>
// CHECK-NEXT: [[BC:%.*]] = bitcast <4 x i32> [[SEXT]] to <4 x float>
@ -168,13 +168,13 @@ __m128 test_mm_cmpnle_ps(__m128 __a, __m128 __b) {
}
__m128 test_mm_cmpnle_ss(__m128 __a, __m128 __b) {
// CHECK-LABEL: @test_mm_cmpnle_ss
// CHECK-LABEL: test_mm_cmpnle_ss
// CHECK: @llvm.x86.sse.cmp.ss(<4 x float> %{{.*}}, <4 x float> %{{.*}}, i8 6)
return _mm_cmpnle_ss(__a, __b);
}
__m128 test_mm_cmpnlt_ps(__m128 __a, __m128 __b) {
// CHECK-LABEL: @test_mm_cmpnlt_ps
// CHECK-LABEL: test_mm_cmpnlt_ps
// CHECK: [[CMP:%.*]] = fcmp uge <4 x float>
// CHECK-NEXT: [[SEXT:%.*]] = sext <4 x i1> [[CMP]] to <4 x i32>
// CHECK-NEXT: [[BC:%.*]] = bitcast <4 x i32> [[SEXT]] to <4 x float>
@ -183,13 +183,13 @@ __m128 test_mm_cmpnlt_ps(__m128 __a, __m128 __b) {
}
__m128 test_mm_cmpnlt_ss(__m128 __a, __m128 __b) {
// CHECK-LABEL: @test_mm_cmpnlt_ss
// CHECK-LABEL: test_mm_cmpnlt_ss
// CHECK: @llvm.x86.sse.cmp.ss(<4 x float> %{{.*}}, <4 x float> %{{.*}}, i8 5)
return _mm_cmpnlt_ss(__a, __b);
}
__m128 test_mm_cmpord_ps(__m128 __a, __m128 __b) {
// CHECK-LABEL: @test_mm_cmpord_ps
// CHECK-LABEL: test_mm_cmpord_ps
// CHECK: [[CMP:%.*]] = fcmp ord <4 x float>
// CHECK-NEXT: [[SEXT:%.*]] = sext <4 x i1> [[CMP]] to <4 x i32>
// CHECK-NEXT: [[BC:%.*]] = bitcast <4 x i32> [[SEXT]] to <4 x float>
@ -198,13 +198,13 @@ __m128 test_mm_cmpord_ps(__m128 __a, __m128 __b) {
}
__m128 test_mm_cmpord_ss(__m128 __a, __m128 __b) {
// CHECK-LABEL: @test_mm_cmpord_ss
// CHECK-LABEL: test_mm_cmpord_ss
// CHECK: @llvm.x86.sse.cmp.ss(<4 x float> %{{.*}}, <4 x float> %{{.*}}, i8 7)
return _mm_cmpord_ss(__a, __b);
}
__m128 test_mm_cmpunord_ps(__m128 __a, __m128 __b) {
// CHECK-LABEL: @test_mm_cmpunord_ps
// CHECK-LABEL: test_mm_cmpunord_ps
// CHECK: [[CMP:%.*]] = fcmp uno <4 x float>
// CHECK-NEXT: [[SEXT:%.*]] = sext <4 x i1> [[CMP]] to <4 x i32>
// CHECK-NEXT: [[BC:%.*]] = bitcast <4 x i32> [[SEXT]] to <4 x float>
@ -213,7 +213,7 @@ __m128 test_mm_cmpunord_ps(__m128 __a, __m128 __b) {
}
__m128 test_mm_cmpunord_ss(__m128 __a, __m128 __b) {
// CHECK-LABEL: @test_mm_cmpunord_ss
// CHECK-LABEL: test_mm_cmpunord_ss
// CHECK: @llvm.x86.sse.cmp.ss(<4 x float> %{{.*}}, <4 x float> %{{.*}}, i8 3)
return _mm_cmpunord_ss(__a, __b);
}
@ -651,8 +651,8 @@ __m128 test_mm_sqrt_ps(__m128 x) {
return _mm_sqrt_ps(x);
}
__m128 test_sqrt_ss(__m128 x) {
// CHECK: define {{.*}} @test_sqrt_ss
__m128 test_mm_sqrt_ss(__m128 x) {
// CHECK-LABEL: test_mm_sqrt_ss
// CHECK: extractelement <4 x float> {{.*}}, i64 0
// CHECK: call float @llvm.sqrt.f32(float {{.*}})
// CHECK: insertelement <4 x float> {{.*}}, float {{.*}}, i64 0
@ -785,7 +785,7 @@ int test_mm_ucomineq_ss(__m128 A, __m128 B) {
}
__m128 test_mm_undefined_ps() {
// CHECK-LABEL: @test_mm_undefined_ps
// CHECK-LABEL: test_mm_undefined_ps
// CHECK: ret <4 x float> zeroinitializer
return _mm_undefined_ps();
}

View File

@ -1629,13 +1629,13 @@ int test_mm_ucomineq_sd(__m128d A, __m128d B) {
}
__m128d test_mm_undefined_pd() {
// CHECK-LABEL: @test_mm_undefined_pd
// CHECK-LABEL: test_mm_undefined_pd
// CHECK: ret <2 x double> zeroinitializer
return _mm_undefined_pd();
}
__m128i test_mm_undefined_si128() {
// CHECK-LABEL: @test_mm_undefined_si128
// CHECK-LABEL: test_mm_undefined_si128
// CHECK: ret <2 x i64> zeroinitializer
return _mm_undefined_si128();
}