forked from OSchip/llvm-project
[X86] Ensure load/store tests unaligned pointers really are align 1
llvm-svn: 271227
This commit is contained in:
parent
582d75b0eb
commit
0e90936fea
|
@ -473,27 +473,27 @@ __m256i test_mm256_load_si256(__m256i* A) {
|
|||
|
||||
__m256d test_mm256_loadu_pd(double* A) {
|
||||
// CHECK-LABEL: test_mm256_loadu_pd
|
||||
// CHECK: load <4 x double>, <4 x double>* %{{.*}}, align 1
|
||||
// CHECK: load <4 x double>, <4 x double>* %{{.*}}, align 1{{$}}
|
||||
return _mm256_loadu_pd(A);
|
||||
}
|
||||
|
||||
__m256 test_mm256_loadu_ps(float* A) {
|
||||
// CHECK-LABEL: test_mm256_loadu_ps
|
||||
// CHECK: load <8 x float>, <8 x float>* %{{.*}}, align 1
|
||||
// CHECK: load <8 x float>, <8 x float>* %{{.*}}, align 1{{$}}
|
||||
return _mm256_loadu_ps(A);
|
||||
}
|
||||
|
||||
__m256i test_mm256_loadu_si256(__m256i* A) {
|
||||
// CHECK-LABEL: test_mm256_loadu_si256
|
||||
// CHECK: load <4 x i64>, <4 x i64>* %{{.+}}, align 1
|
||||
// CHECK: load <4 x i64>, <4 x i64>* %{{.+}}, align 1{{$}}
|
||||
return _mm256_loadu_si256(A);
|
||||
}
|
||||
|
||||
__m256 test_mm256_loadu2_m128(float* A, float* B) {
|
||||
// CHECK-LABEL: test_mm256_loadu2_m128
|
||||
// CHECK: load <4 x float>, <4 x float>* %{{.*}}, align 1
|
||||
// CHECK: load <4 x float>, <4 x float>* %{{.*}}, align 1{{$}}
|
||||
// CHECK: shufflevector <4 x float> %{{.*}}, <4 x float> %{{.*}}, <8 x i32> <i32 0, i32 1, i32 2, i32 3, i32 undef, i32 undef, i32 undef, i32 undef>
|
||||
// CHECK: load <4 x float>, <4 x float>* %{{.*}}, align 1
|
||||
// CHECK: load <4 x float>, <4 x float>* %{{.*}}, align 1{{$}}
|
||||
// CHECK: shufflevector <4 x float> %{{.*}}, <4 x float> %{{.*}}, <8 x i32> <i32 0, i32 1, i32 2, i32 3, i32 undef, i32 undef, i32 undef, i32 undef>
|
||||
// CHECK: shufflevector <8 x float> %{{.*}}, <8 x float> %{{.*}}, <8 x i32> <i32 0, i32 1, i32 2, i32 3, i32 8, i32 9, i32 10, i32 11>
|
||||
return _mm256_loadu2_m128(A, B);
|
||||
|
@ -501,9 +501,9 @@ __m256 test_mm256_loadu2_m128(float* A, float* B) {
|
|||
|
||||
__m256d test_mm256_loadu2_m128d(double* A, double* B) {
|
||||
// CHECK-LABEL: test_mm256_loadu2_m128d
|
||||
// CHECK: load <2 x double>, <2 x double>* %{{.*}}, align 1
|
||||
// CHECK: load <2 x double>, <2 x double>* %{{.*}}, align 1{{$}}
|
||||
// CHECK: shufflevector <2 x double> %{{.*}}, <2 x double> %{{.*}}, <4 x i32> <i32 0, i32 1, i32 undef, i32 undef>
|
||||
// CHECK: load <2 x double>, <2 x double>* %{{.*}}, align 1
|
||||
// CHECK: load <2 x double>, <2 x double>* %{{.*}}, align 1{{$}}
|
||||
// CHECK: shufflevector <2 x double> %{{.*}}, <2 x double> %{{.*}}, <4 x i32> <i32 0, i32 1, i32 undef, i32 undef>
|
||||
// CHECK: shufflevector <4 x double> %{{.*}}, <4 x double> %{{.*}}, <4 x i32> <i32 0, i32 1, i32 4, i32 5>
|
||||
return _mm256_loadu2_m128d(A, B);
|
||||
|
@ -511,9 +511,9 @@ __m256d test_mm256_loadu2_m128d(double* A, double* B) {
|
|||
|
||||
__m256i test_mm256_loadu2_m128i(__m128i* A, __m128i* B) {
|
||||
// CHECK-LABEL: test_mm256_loadu2_m128i
|
||||
// CHECK: load <2 x i64>, <2 x i64>* %{{.*}}, align 1
|
||||
// CHECK: load <2 x i64>, <2 x i64>* %{{.*}}, align 1{{$}}
|
||||
// CHECK: shufflevector <2 x i64> %{{.*}}, <2 x i64> %{{.*}}, <4 x i32> <i32 0, i32 1, i32 undef, i32 undef>
|
||||
// CHECK: load <2 x i64>, <2 x i64>* %{{.*}}, align 1
|
||||
// CHECK: load <2 x i64>, <2 x i64>* %{{.*}}, align 1{{$}}
|
||||
// CHECK: shufflevector <2 x i64> %{{.*}}, <2 x i64> %{{.*}}, <4 x i32> <i32 0, i32 1, i32 undef, i32 undef>
|
||||
// CHECK: shufflevector <4 x i64> %{{.*}}, <4 x i64> %{{.*}}, <4 x i32> <i32 0, i32 1, i32 4, i32 5>
|
||||
return _mm256_loadu2_m128i(A, B);
|
||||
|
|
|
@ -346,7 +346,7 @@ __m128 test_mm_load_ps1(float* y) {
|
|||
|
||||
__m128 test_mm_load_ss(float* y) {
|
||||
// CHECK-LABEL: test_mm_load_ss
|
||||
// CHECK: load float, float* {{.*}}, align 1
|
||||
// CHECK: load float, float* {{.*}}, align 1{{$}}
|
||||
// CHECK: insertelement <4 x float> undef, float %{{.*}}, i32 0
|
||||
// CHECK: insertelement <4 x float> %{{.*}}, float 0.000000e+00, i32 1
|
||||
// CHECK: insertelement <4 x float> %{{.*}}, float 0.000000e+00, i32 2
|
||||
|
@ -389,7 +389,7 @@ __m128 test_mm_loadr_ps(float* A) {
|
|||
|
||||
__m128 test_mm_loadu_ps(float* A) {
|
||||
// CHECK-LABEL: test_mm_loadu_ps
|
||||
// CHECK: load <4 x float>, <4 x float>* %{{.*}}, align 1
|
||||
// CHECK: load <4 x float>, <4 x float>* %{{.*}}, align 1{{$}}
|
||||
return _mm_loadu_ps(A);
|
||||
}
|
||||
|
||||
|
|
|
@ -604,7 +604,7 @@ __m128d test_mm_load_pd1(double const* A) {
|
|||
|
||||
__m128d test_mm_load_sd(double const* A) {
|
||||
// CHECK-LABEL: test_mm_load_sd
|
||||
// CHECK: load double, double* %{{.*}}, align 1
|
||||
// CHECK: load double, double* %{{.*}}, align 1{{$}}
|
||||
return _mm_load_sd(A);
|
||||
}
|
||||
|
||||
|
@ -655,13 +655,13 @@ __m128d test_mm_loadr_pd(double const* A) {
|
|||
|
||||
__m128d test_mm_loadu_pd(double const* A) {
|
||||
// CHECK-LABEL: test_mm_loadu_pd
|
||||
// CHECK: load <2 x double>, <2 x double>* %{{.*}}, align 1
|
||||
// CHECK: load <2 x double>, <2 x double>* %{{.*}}, align 1{{$}}
|
||||
return _mm_loadu_pd(A);
|
||||
}
|
||||
|
||||
__m128i test_mm_loadu_si128(__m128i const* A) {
|
||||
// CHECK-LABEL: test_mm_loadu_si128
|
||||
// CHECK: load <2 x i64>, <2 x i64>* %{{.*}}, align 1
|
||||
// CHECK: load <2 x i64>, <2 x i64>* %{{.*}}, align 1{{$}}
|
||||
return _mm_loadu_si128(A);
|
||||
}
|
||||
|
||||
|
@ -1235,7 +1235,7 @@ void test_mm_store1_pd(double* x, __m128d y) {
|
|||
void test_mm_storeh_pd(double* A, __m128d B) {
|
||||
// CHECK-LABEL: test_mm_storeh_pd
|
||||
// CHECK: extractelement <2 x double> %{{.*}}, i32 1
|
||||
// CHECK: store double %{{.*}}, double* %{{.*}}, align 1
|
||||
// CHECK: store double %{{.*}}, double* %{{.*}}, align 1{{$}}
|
||||
_mm_storeh_pd(A, B);
|
||||
}
|
||||
|
||||
|
@ -1249,7 +1249,7 @@ void test_mm_storel_epi64(__m128i x, void* y) {
|
|||
void test_mm_storel_pd(double* A, __m128d B) {
|
||||
// CHECK-LABEL: test_mm_storel_pd
|
||||
// CHECK: extractelement <2 x double> %{{.*}}, i32 0
|
||||
// CHECK: store double %{{.*}}, double* %{{.*}}, align 1
|
||||
// CHECK: store double %{{.*}}, double* %{{.*}}, align 1{{$}}
|
||||
_mm_storel_pd(A, B);
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue