void test_mm_store1_ps(float* x, __m128 y) {
// CHECK-LABEL: test_mm_store1_ps
// CHECK: shufflevector <4 x float> %{{.*}}, <4 x float> %{{.*}}, <4 x i32> zeroinitializer
- // CHECK: store <4 x float> %{{.*}}, <4 x float>* {{.*}}, align 16
+ // CHECK: call void @llvm.x86.sse.storeu.ps(i8* %{{.*}}, <4 x float> %{{.*}})
_mm_store1_ps(x, y);
}
void test_mm_storeu_ps(float* x, __m128 y) {
// CHECK-LABEL: test_mm_storeu_ps
- // CHECK: store <4 x float> %{{.*}}, <4 x float>* {{.*}}, align 1
+ // CHECK: call void @llvm.x86.sse.storeu.ps(i8* %{{.*}}, <4 x float> %{{.*}})
_mm_storeu_ps(x, y);
}
void test_mm_storeu_pd(double* A, __m128d B) {
// CHECK-LABEL: test_mm_storeu_pd
- // CHECK: store <2 x double> %{{.*}}, <2 x double>* %{{.*}}, align 1
+ // CHECK: call void @llvm.x86.sse2.storeu.pd(i8* %{{.*}}, <2 x double> %{{.*}})
_mm_storeu_pd(A, B);
}
void test_mm_storeu_si128(__m128i* A, __m128i B) {
// CHECK-LABEL: test_mm_storeu_si128
- // CHECK: store <2 x i64> %{{.*}}, <2 x i64>* %{{.*}}, align 1
+ // CHECK: call void @llvm.x86.sse2.storeu.dq(i8* %{{.*}}, <16 x i8> %{{.*}})
_mm_storeu_si128(A, B);
}